融合多粒度信息与外部知识的短文本匹配模型

2022-08-12 02:29梁登玉刘大明
计算机工程 2022年8期
关键词:分词字符语义

梁登玉,刘大明

(上海电力大学计算机科学与技术学院,上海 200090)

0 概述

传统的文本匹配方法主要从词汇层面衡量2 个文本的匹配程度,即2 个文本中出现相同词的个数越多,词序列的排序越接近,则相似度越高,典型的方法有TF-IDF、BM25 等。由于词与词之间相互独立,没有考虑上下文语境,因此这种基于词汇重合度的匹配方法有很大的局限性,例如“苹果”在不同语境下有不同的意义,可能表示水果,也可能表示公司。近年来,文本匹配的深度学习方法取得了一定进展[1-3],使用深度学习方法的文本匹配模型首先对输入文本进行分词,然后使用词嵌入技术将分好的词转化为词向量,将待比较的2 个句子向量通过同一个深度神经网络编码器映射到相同的向量空间中,最后使用分类技术计算2 个句子的匹配程度。通过词嵌入技术训练词向量的常用方法是Word2Vec[4]和Glove[5],其本质是基于共现信息训练词向量,这种词向量表示增强了词的上下文信息表示,但没有解决句子语义表示问题,因此需要将词向量输入到深度神经网络,即编码器中,获取句子级的上下文语义信息。例如,Text-CNN[6]使用卷积神经网络编码每个句子,基于双向的长短期记忆网络(Bi-directional Long Short Term Memory,BiLSTM)的文本匹配模型[7]使用双向长短期记忆神经网络实现对句子的编码表征。单纯的句子编码方法将每个句子编码成一个固定长度的向量,然后直接计算句子的相似度,模型设计简单、易于应用推广。但研究发现,通过增强句子间的交互能够提高文本匹配效果。句子对交互方法将单词对齐和句子对之间的交互考虑在内,并且通常在域内数据上训练时表现得更好。BiMPM[8]是一种双边多视角匹配模型,通过使用BiLSTM 神经网络对每个句子进行编码,从多角度匹配2 个句子。ESIM 模型[9]采用2 个BiLSTM神经网络分别对句子进行编码以及融合2 个句子间的词对齐信息。ESIM 模型在各匹配任务上取得了较好的效果。

然而,以上几乎所有模型最初都是为英文文本匹配提出的。如果将其应用于中文文本匹配,通常有两种方法,一种是以汉字作为模型的输入,另一种是先把每个句子分割成单词,然后把这些单词作为输入。虽然基于字符的模型可以克服数据在一定程度上的稀疏[10]问题,但这些模型也存在一些缺点,比如没有充分利用词汇的语义信息,而这些信息可能对文本语义匹配有用。然而,基于词的模型经常遭受一些由词分割引起的潜在问题。例如,字符序列“南京市长江大桥”因为分词不同而产生2 个不同意思,第1 个“南京市长江大桥”指的是一座桥,另一个“南京市长江大桥”指的是一个人。这句话的模糊性可以通过使用更多的上下文信息来消除。此外,不同工具的细分粒度也不同。比如“长江大桥”可以分为“长江”和“大桥”2 个词。鉴于这种情况,文献[11]使用词格长短期记忆网络(Lattice LSTM)来表示一个句子,能够在没有分词的情况下利用单词信息获取多粒度的句子表示。Lattice LSTM 模型将输入的字符和所有能在词典匹配的单词一起编码输入到模型中,在词典中选出与字符最相关的单词,降低歧义发生的概率,同时考虑了字符和词2 种粒度的输入,该模型在多个NLP 任务中取得了显著提升效果。尤其是命名实体识别任务中,基于Lattice LSTM 的模型[12]编码了一系列输入字符以及所有匹配词典的潜在单词,以获得更好的NER 结果。文献[13-15]分别展示了Lattice LSTM 模型在命名实体识别领域的应用。在神经机器翻译领域,文献[16]提出一种基于词格的递归神经网络编码器以压缩编码多个标记词格作为输入,不仅减轻了最佳标记方式标记错误的负面影响,而且具有更强的表达性和嵌入输入句子的灵活性。文献[17]使用Lattice LSTM 模型获取多粒度信息用于中文分词任务,文献[18]使用Lattice LSTM 模型融合外部知识,用于中文关系提取任务中。

受到Lattice 结构在自然语言处理领域获得成功的启发,在文本匹配任务中,文献[19]引入Lattice 结构,提出Lattice-CNN 模型,利用基于Lattcie 结构的CNN 神经网络在词格上提取句子级特征。该模型不依赖于字符或单词级序列,而是将单词格作为输入,其中每个可能的单词和字符都将得到平等对待,并拥有自己的上下文信息,以便它们可以在每一层进行交互。对于每一层中的每个词,可以通过池方法以不同的粒度捕获不同的上下文词。虽然Lattice-CNN 模型利用了词格,但它只关注了局部信息,缺乏全局的句子语义信息表示及句子之间的交互信息。文献[20]提出一种用于中文短文本匹配的神经图匹配方法,该方法以一对词格图作为输入,根据图匹配注意机制更新节点的表示。这种方法既处理了多粒度信息,又关注句子间的交互信息,该模型优于之前的模型效果。文献[19]和文献[20]证明了多粒度信息对文本匹配的重要性。

由于汉语词汇的多义性给语义理解带来了很大困难,因此短文本中的一词多义带来的问题比长文本中的一词多义问题更严重。在通常情况下,短文本的上下文信息较少,因此模型极难捕获正确的语义信息。例如“落后”,有落后和不如的意思,这2 个句子“她的成绩落后于他”和“她的成绩不如他”应该是相似的,但如果不对“落后”这个词的多义性进行解释,模型将很难判定这2 个句子是相似的。

本文提出一种融合多粒度信息和外部知识的短文本匹配模型,使用Lattice LSTM 模型融合字符和单词级别的多粒度信息,降低因为分词错误导致的误差传播。引入知网HowNet[21]作为外部知识库,解决单词的多义性带来的语义干扰问题,并将HowNet 与Lattice LSTM 相结合,丰富Lattice LSTM 词语级粒度的语义表示。此外,使用软注意力机制获取句子间的交互信息,利用BiLSTM 融合2 个句子的上下文信息,并通过最大池化和均值池化进一步提取特征信息,获取句子级语义表示,经过拼接之后输入预测层,使用softmax分类函数计算2 个句子相似的概率。

1 本文模型

图1 所示为本文模型的框架。其中,输入层输入2 个句子A和Q,使用Word2Vec 将原始字符序列转化为嵌入表示;融合外部知识的Lattice LSTM 层对字符,单词序列以及使用HowNet 释义后的词汇信息进行编码表示;模型使用软注意力机制捕获句子间的交互信息;BiLSTM 层用于综合全局上下文语义信息;池化层用于使用最大池化和均值池化进一步提取特征信息,获取句子级向量表示,并进行拼接;预测层使用前馈神经网络和softmax 分类函数计算2 个文本的相似度概率输出。

图1 本文模型框架Fig.1 Framework of the model in this paper

本文并未使用基于Bert 等有更强语义能力的预训练语言模型来设计模型,主要考虑到以下几点:

1)在词向量表示方面,本文使用了Word2Vec 来训练词向量,因为Bert 等预训练语言模型虽然具有更好的语义表示能力,但模型参数多,加载速度慢,内存、时间等消耗较大,而Word2Vec 简单高效,特别适合从大规模、超大规模的语料中获取高精度的词向量表示。

2)在与词格和外部知识结合方面,本文使用Lattice LSTM 模型。因为类似于Bert 这样的大型预训练语言模型通常采用一系列细粒度单元(汉字)作为输入,并且是按位置排序的序列,这使得利用单词格和保留位置关系变得困难。同时,传统的掩蔽语言模型(Masked Language Model,MLM)可能会使基于单词格的预训练语言模型学习到错误的语义表示。原因是这样的词格可能会引入冗余,即一个字符可以包含在多个文本单元中。在掩蔽语言模型中,模型可能引用与随机屏蔽的文本单元重叠的其他文本单元,而不是真实的上下文,导致信息泄漏。而Lattice LSTM 模型结构相对简单,且不会造成信息泄露。

因此,综合考虑到实验效果、内存消耗等原因,本文没有使用基于Bert 等有更强语义能力的预训练语言模型。

1.1 输入层

本文模型的输入为基于字符的2 个句子,输入层采用训练好的Word2Vec 模型将每个字符转换为低维实数向量,这个过程通过查找字符嵌入矩阵,即可对字符进行编码。

1.2 Lattice LSTM with HowNet 层

虽然模型将字符序列作为直接输入,但为了充分捕捉单词级特征,还需要输入句子中所有潜在单词的信息。一个潜在的单词是任何字符子序列,它与词典D中的一个单词相匹配,词典D建立在分割的大原始文本之上。1.2.1 节将介绍如何使用Lattice LSTM 融合字符和单词两个粒度的信息。

为更好地理解Lattice LSTM 模型的结构,首先给出每个LSTM 单元的计算公式,如式(1)所示:

其中:ft表示遗忘门 限;it表示输入门 限表示t时刻细胞状态的候选值;ct表示cell 状态(这里是循环发生的地方);ct-1表示t−1 时刻的细胞状态,ot表示输出门限;ht表示当前单元的输出;ht-1表示前一时刻单元的输出;xt表示当前时刻记忆单元的输入;tanh 为双曲正切函数;带角标的W和B为模型参数;σ 为sigmoid 激活函数。

1.2.1 Lattice LSTM 模型

Lattice LSTM 模型的结构如图2 所示。

图2 Lattice LSTM 模型的结构Fig.2 Structure of Lattice LSTM model

最终隐藏层的计算公式如式(9)所示:

1.2.2 融合外部知识的Lattice LSTM 编码器

虽然基于Lattice LSTM 的编码器可以利用字符和单词信息,但不能充分考虑中文的歧义性。例如图2 中,单词“落后”有“落后”和“不如”2 种含义,但在基本的Lattice LSTM 编码器中只有一种表示。因此,通过引入外部知识改进Lattice LSTM 模型,可以构建一个更全面的词汇。

最终隐藏层的计算公式与式(9)相似。

通过计算得到隐藏层的所有输出向量(h1,h2,…,hl),其中l为句子长度,即字向量的个数。

1.3 Attention 层

其中:lm和ln分别为2 个句子的长度。

在Attention 层比较2 个句子的软注意力权重,也就是对于句子Sm和Sn序列,分别计算Sm相对于Sn以及Sn相对于Sm的注意力权重,从而得到2 个不同的权重分布,通过这种方式捕获2 个句子之间的交互信息,计算公式如式(16)所示:

1.4 BiLSTM 层

BiLSTM 层用于将2 个匹配向量序列聚合成固定长度的匹配向量。由于单向LSTM 接收某个序列输入的信息,其网络中单个单元仅参考了该序列的上文信息,而没有考虑下文信息。为了弥补这一缺点,充分利用上下文信息,采用BiLSTM 网络。BiLSTM 的网络输出层能够完整地捕获输入序列中每一个点关于过去和未来的上下文信息。

根据LSTM 网络的结构,每个LSTM 单元根据式(1)进行计算。

使用BiLSTM 神经网络结构,对来自注意力层的输出进一步编码,如式(17)所示:

1.5 池化层

在池化层中,本文使用最大池化和均值池化进一步捕捉文本的特征信息,计算公式如式(18)所示:

最后将2个向量拼接得到输出向量,如式(19)所示:

1.6 预测层

预测层用于评估概率分布p(y|Sm,Sn),衡量2 个句子的相似度。将上一层的输出向量oout输入到一个具有2 层结构的前馈神经网络中,使用softmax激活函数计算2 个文本的相似度概率值,计算公式如式(20)所示:

其中:F(·)代表1 个具有两层的前馈神经网络和1 个softmax 激活后输出层。

最后,使用交叉熵Cross-Entropy 函数作为损失函数,表达式如式(21)所示:

其中:p为预测概率值;y为真实值。

2 实验结果与分析

2.1 数据集

本文在LCQMC 和BQ 中文数据集上进行实验。LCQMC 是一个用于问题匹配的大规模开放领域语料库,该数据集中的样本包含一对句子和一个二进制标签,该标签指示这2 个句子是否具有相同的含义或具有相同的意图,若具有相同的含义或意图,则标签为1,反之标签为0。LCQMC 数据集包含238 766 条训练集,8 802 条验证集,12 500 条测试集。LCQMC 数据集示例如表1 所示。

表1 LCQMC 数据集示例Table1 Example of LCQMC dataset

BQ 数据集是一个针对特定领域的大规模银行问题匹配语料库,由120 000 个中文句子对组成,包括100 000个训练样本、10 000个开发样本和10 000个测试样本。每一对还与一个二进制标签相关联,该标签指示两个句子是否具有相同的含义。

本文的词典词汇来自数据集LCQMC 和BQ,对数据集进行清洗处理并去除停用词之后,使用Jieba分词工具进行分词,同时使用知网HowNet 和百度百科词汇信息加入较新颖的词汇,例如“去哪儿网”、“余额宝”、“悦诗风吟”等,这些词即使使用Jieba 分词工具也不能得到准确分词。最后,使用Word2vec进行词汇训练,获得词向量。

2.2 评价指标

本文分别采用准确率(Accuracy,Acc)和F1 值作为测评指标,计算公式如式(22)所示:

其中:TTP为真正例;TTN真负例;FFP为假正例;FFN为假负例。

2.3 实验环境

本文实验采用型号为RTX 2080S 的GPU 服务器,在Python3.6 和Pytorch1.5 的环境下运行。由于本文采用了基于改进的Lattice LSTM 模型,因此需要设定各个部分的参数。对于字符嵌入和词格嵌入,嵌入尺寸分别设置为100 维和200 维,2 个LSTM隐藏层的大小设置为200 维,dropout 设置为0.5,学习率设置为0.001。在训练模型时,损失函数使用交叉熵损失函数,使用Adam 优化器更新参数。使用训练集训练模型,并使用测试集评估模型效果。模型参数设定如表2 所示。

表2 模型参数Table 2 Model parameter

2.4 实验分析

本文设计了3 组实验,分别是不同模型的对比实验、探究Jieba 分词和Lattice 词格对实验结果的影响实验、消融实验。

2.4.1 不同模型的对比实验

将BiMPM[8]、ESIM[9]、Lattice-CNN[19]与本文模型进行对比,实验结果如表3 和表4 所示。由表3 和表4 可知,本文模型在2 个数据集上的准确率和F1值均高于其他3 个模型。虽然ESIM 模型综合BiLSTM 模型和注意力机制,BiMPM 模型利用了更多角度的信息,从多个视角提取句子的特征,但可能因为分词错误影响了模型效果。而Lattice-CNN 模型则因为缺乏全局的句子语义表示和多角度的交互信息,而导致效果更差。

表3 不同模型在数据集LCQMC 下的对比实验结果Table 3 Comparative experimental results of different models under LCQMC dataset %

表4 不同模型在数据集BQ 下的对比实验结果Table 4 Comparative experimental results of different models under BQ dataset %

2.4.2 Jieba 分词和Lattice 词格对实验结果的影响

使用Jieba 分词容易出现错误,Jieba 分词和Lattice 词格对句子相似性的预测效果如表5 所示。其中,标签为1 代表两个句子语义相似,标签为0 代表两个句子语义不相似。从表5 可以看出,分词对句子语义的影响比较大,例如“去哪儿”、“去哪儿网”和“去哪儿网”,“余额宝”和“余额宝”,它们只有被正确分词,才能提供正确的词向量信息。综上所述,分词的正确与否,对文本语义影响很大,本文融合了Lattice 结构的文本匹配模型,可以获得比ESIM和BIMPM 模型更好的性能。

表5 Jieba 分词和Lattice 词格对句子相似性的预测效果Table 5 Prediction results of sentence similarity based on Jieba and Lattice segmentation

2.4.3 消融实验

对本文模型的不同方面进行消融研究,评估不同的池化策略(均值、最大值)、注意力层和融合外部知识对实验结果的影响。实验结果如表6所示。

由表6 可知,使用均值池化和最大池化对模型的影响相对较小,使用均值池化比使用最大池化的准确率高0.14 个百分点,因此本文综合使用了最大池化和均值池化策略。在对注意力机制的消融研究发现,有无注意力层对模型的性能影响很大,因为注意力层提供了2 个句子的交互信息,对计算2 个句子的相似度影响很大。由表6 还可知,从HowNet 上引入外部知识丰富词汇的语义信息,可以提升模型性能。可以肯定的是,一旦数据集中的句子包含更多具有多义性的词汇,例如“水分”,具有“水汽”和“夸耀”的意思,“落后”除了有落在后面的意思,还具有“不如”的意思,引入外部知识对模型的提升效果更加明显。

表6 在LCQMC 数据集下的消融实验结果Table 6 Result of the ablation experiment under LCQMC dataset %

3 结束语

本文提出融合多粒度信息和外部知识的短文本匹配模型,使用由多个分词假设形成的成对单词格和外部词汇知识作为模型输入,并结合软注意力机制获取2 个句子的交互信息。借鉴BiMPM 模型和ESIM 模型的交互机制,充分融合Lattice-CNN 模型的优点,同时引入外部知识获取更丰富的词汇表示信息。在短文本问题匹配数据集LCQMC 和BQ 上的实验结果表明,本文模型能有效提升文本匹配的准确率。后续将考虑使用Bert 等具有更强语义的预训练模型与词格结构构建文本匹配模型,在提升模型语义表示能力的同时,进一步降低模型复杂度。

猜你喜欢
分词字符语义
真实场景水下语义分割方法及数据集
分词在英语教学中的妙用
论高级用字阶段汉字系统选择字符的几个原则
语言与语义
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
结巴分词在词云中的应用
结巴分词在词云中的应用
“吃+NP”的语义生成机制研究