基于注意力机制的Siamese-BiLSTM短文本相似度算法

2022-06-24 10:02徐菲菲冯东升
计算机应用与软件 2022年4期
关键词:向量语义短文

徐菲菲 冯东升

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

0 引 言

信息搜索最核心的技术是文本抽取和信息检索,应用场景包括:搜索引擎、文档归类与聚类、提取文本摘要等。其中,衡量文本间的相似性便是一项重要的技术[1-2]。在文本检索中,为提高文本搜索的准确率,也需要计算有效文本信息的相似度[3];在文本翻译和分类等应用场景下,文本相似度技术同样不可或缺。目前,文本相似度的计算方法主要有以下几种:

一种是根据统计学的方法,通常对文本中词汇进行统计,计算其文本的频率与数量,通过向量空间模型(VSM)建立单词频率信息的空间矢量,以矢量之间的角度表示相似度[4]。由于此方法没有考虑词语在文本中的语序关系和组织结构,使得计算出的结果不准确。因此,学者们对此模型进行了诸多改进。文献[5]在VSM模型上引入语义特征和语句句法,使得计算语句相似度的准确率显著提高。文献[6]使用分层次的聚类方法来构建一棵二叉树,将词语关键词的相似度和文本主体语义的相似度进行加权计算,得到最终结果。文献[7]将潜在语义索引和TF-IDF加权向量空间模型(T_VSM)合并获得了更有效的融合模型,提高了文本分类的效果。

另一种是基于语义的方法。引入两种词典分别是HowNet和知网词典,它们能更好地解释词语语义以及语句层次结构关系,并结合文本语义进行计算。一些学者提出了一种将知网词典与向量空间模型相结合的计算方法,可以防止语义信息的丢失且确保了文本中表达的信息的完整性[8];文献[9]通过词汇间的语义相似度表示各短文本向量之间的相关性,提出了将词语语义信息加权到余弦公式上计算相似度数值。

近年来,在众多领域深度学习都有着很好的运用,因此,基于神经网络的机器学习方法层出不穷。现在主流的神经网络模型主要有CNN、RNN[10]和长短时记忆网络LSTM[11]等。一些学者提出将LSTM网络与文本相似度模型相结合的问答系统[12]。文献[13]提出的LSTM网络模型,它将多层注意力和文本间关系融合在一起,把不同类型的注意力机制加入到双向LSTM网络的不同位置上,获得深度语义的信息。

在深入分析众多应用于短文本相似性分析的神经网络模型基础上,针对现有模型的缺陷,提出一种基于注意力机制的Siamese-BiLSTM孪生神经网络(SBA)来进行短文本相似度的计算。首先使用Word2vec对短文本进行向量化的表示;再构建一种共享权重的孪生神经网络,此网络内部使用双向的LSTM提取短文本的语义;最后引入注意力机制进一步获取短文本中重要的信息,输出两个包含文本语义的向量表示,利用皮尔逊相关系数度量两短文本间的相似度。

1 相关研究基础

1.1 文本预处理

在短文本内容分析前,短文本必须要经过预处理,而分词是预处理的重要一步。分词就是对短文本进行词语粒度级别的切割,将短文本切分为多个独立的词语,并标注每个词语的词性。分词的准确性会很大程度地影响相似度计算。本文使用PKUSEG分词工具,它可以划分领域的分词以及处理特殊领域的分词,针对不同类型的数据可以使用不同的训练模型。经过PKUSEG短文本分词系统处理后,短文本会被分割为一个个独立的单词,单词间有空格隔开。停用词是指某些高频出现的词,但不影响文本含义,低频词是极少出现在文中的词,这些词在相似度计算中将导致误差。因此,为了提高计算结果的精确性,还需要从分段文本中删除停用字和低频词,一般依据停用词表去除停用词。停用词表是人为搜集整理出来的,若某个单词出现在词表中,则将其从文本中去除。

1.2 Word2vec模型

对于短文本特征表示,比较传统的方法有TF-IDF、WordNet和独热编码。WordNet通过编码不同的词性,组成一个词语语义网络[14]。WordNet编码虽然保留了词语的语义,但不能衡量同义词的差别,并且由于主观构建,所以新增词汇和维护成本较高[15];独热编码[16]把短文本中的词语编码成一个个的稀疏向量,但这种稀疏向量无法体现整体文本的语义;TF-IDF能够用词汇的特征来表示文本的重要性[17],但文本的语义仍然无法被准确表达。2013年,Mikolov等[18]提出了Word2vec模型,此模型会对词汇间和词汇语义关系建模,将单词映射到低维空间,在这个低维空间中相似语义的单词可以认为是相同的,因此被广泛运用在诸如聚类、标注和词性分析等任务中[19]。

Word2vec是从海量文本语料库中获取文本嵌入的模型,它对分词后的文本进行特征表示,文本中的单词能快速便捷地被映射成低维向量。文本集合组成词向量空间,在这个庞大的空间中,每个单词向量会被映射成向量点,然后根据向量点间的间隔来计算单词间的相似性。此模型有两种训练方式:CBOW和Skip-gram。由于短文本的文本体量较小,文本语境信息也较少,因此,使用Skip-gram方法可以得到一个包含有关单词语义信息的单词向量。Skip-gram预测上文词汇概率的表示公式为:

P(wn-c,wn-c+1,…,wn+c-1,wn+c|wn)

(1)

式中:c表示滑动窗口大小;wn是语料库中的一个单词;wn-c,wn-c+1,…,wn+c-1,wn+c是根据wn预测的前后2c个词汇。

假设短文本dm是短文本集合D={d1,d2,…,dm,…,dM}中的任意一个文本,而dm有其词汇集合W={w1,w2,…,wn,…,wN},通过Word2vec模型训练获得单词向量,利用词向量对dm进行量化表示,dm转化成N×V的二维矩阵,则短文本集合D可表示成M×N×V的三维矩阵。对应的表达式为:

(2)

D=[d1,d2,…,dm,…,dM]

(3)

式中:短文本集合中文本总数用M表示;N表示每个短文本中的单词数量;V表示单词向量维度。

Word2vec模型将单词映射成V维的词向量,避免了词汇天堑问题,且显著地降低特征维度。然后将得到的词向量分别输入两个神经网络子网络从而映射得到包含上下文词义信息的词向量。

1.3 孪生网络

孪生网络[20]是一种特殊的神经网络构造,它由两个或更多相同的子网络构成,子网络具有一致的配置,即一致的参数和权重,参数的更新是同步进行在子网上的。利用同质的子网络,得到两个短文本的向量表达,以计算向量表达式来度量相似度。

目前关于孪生网络结构已有一些研究。最早应用在文本相似度计算领域的孪生网络是深度结构化语义模型(DSSM)[21]。DSSM首先对文本主题和查找内容进行建模,它们由5层网络分别进行向量化,最后,用余弦距离计算两个短文本的相似度。DSSM的子网络结构由两个部分构成,一是利用哈希方式将文本中的单词和查找内容映射成词级向量,二是利用三层全连接网络来表达整个文本的主题向量。由于该网络参数繁琐且没有考虑文本中的词序关系,Shen等[22-23]在DSSM上添加一层全连接网络,非线性特征通过卷积池化提取,提出卷积深度结构化语义模型(CDSSM),该模型与DSSM模型主要有以下两点区别:CDSSM模型将全连接层替换成卷积层和池化层;CDSSM模型将文本中每个单词和查找信息都表示成一个词向量。虽然训练参数变少了,但不能捕获长距离语句间的语义关系。考虑到LSTM网络可以有效地使用远程信息,Palangi等[24]提出基于LSTM网络的短文本相似度算法,其查询内容与短文本分别经过LSTM网络得到向量表达。Neculoiu等[25]提出基于双向LSTM网络的文本相似度算法(BiLSTM),其每个网络分支均是双向的LSTM网络。

2 改进的基于孪生网络短文本相似度计算方法

在研究短文本相似度算法时,基于特征工程的方法不能处理那些无相同单词重现却表达相同语义的文本,获取的只是表层语义,不能完全有效地理解短文本的语义。相比于传统机器学习方法,深度学习是处理短文本相似度效果更好的方法。本文采用注意力机制完善短文本的向量表示。根据短文本的特点,在建立短文本表达时,首先建立单词向量表达,然后把它们聚合成短文本向量表达。其次,句子中的每个单词的重要性程度也不一样,因此引入注意力机制,根据句子中单词的不同重要度进行评分,将得到的单词向量以及其权重作为相似度计算的输入。为了检验改进的基于孪生网络计算结构的有效性,以基于BiLSTM网络的相似度计算方法作为基准系统。

2.1 基于孪生网络的短文本相似度计算基准系统

卷积神经网络不能捕捉远距离语句之间的语义关系,全连接神经网络的参数繁多,导致训练时间增加,递归神经网络可以有效地使用远距离语句信息。因此在孪生网络结构中加入长短时记忆网络,设计了一种基于双向LSTM模型的相似度计算的基准系统。

2.1.1孪生网络结构

基于孪生网络的相似度计算结构如图1所示,短文本数据在预处理后,经向量化表示,输入一致的两个子网络可得两个对象的向量表达,计算两个向量表达式之间的相似度来度量短文本间的相似度。

图1 基于孪生网络的相似度计算结构

2.1.2基于双向LSTM网络的计算方法

Neculoiu等[25]提出了一种基于双向LSTM孪生网络结构的相似度计算方法,该网络模型由两部分组成:首先,采用两个双向LSTM网络来抽取特征;然后由全连接词组成拟合层,通过函数实现将两个分支网络组合。选择余弦相似度作为函数实现,函数输出的实数作为相似度的度量值,如式(4)所示。

(4)

式中:fw(x1)和fw(x2)分别代表文本1和文本2的特征表达向量。

模型的输入分别是文本序列x=(x0,x1,x2,…,xn),y=(y0,y1,y2,…,yn)。使用词嵌入矩阵We,把词映射成向量表示(Ii=Wexi,Ji=Weyi)。假设有一数据集X={x1,x2,y},标签y=0表示x1与x2属于不同类型,y=1表示x1与x2属于相同类型。因此设计损失函数为:当y=0时,两文本不相似,文本间距离越大,那么损失越小。当y=1时,两文本相似,文本间距离越大,那么损失也就越大。用L+(X1,X2)表示y=1时的损失,L-(X1,X2)表示y=0时的损失,则单个文本的损失函数可以写成:

Lw=(1-y)L-(X1,X2)+yL+(X1,X2)

(5)

则N个文本的总的损失函数可以写为:

(6)

2.2 基于注意力机制的孪生网络模型

目前基于孪生网络模型的相似度算法大多是基于整个文本进行研究的。从文本长度来看,长短不一,它可以是词语,可以是语句,但在模型训练时,是把整个文本当作一个序列输入到同质子网络中。这种方法存在一定的缺陷,由于是两个有着相同参数规模的网络分支,若文本间长度相差悬殊,则会出现数据稀疏问题。根据经验可知,文本中不同的词语和语句,其重要程度是不同的。基于以上,提出基于注意力机制的孪生网络模型(Siamese-BiLSTM based Attention,SBA)。在构建短文本表达时,首先构建词语的向量表达,然后把词语聚合成一个短文本表达,在短文本的句子级别,引入注意力机制,改进的孪生网络结构如图2所示。

图2 结合注意力机制改进的Siamese-BiLSTM网络架构

该孪生网络是一个4层的神经网络结构。首先通过Word2vec层得到短文本单词的编码,输入到双向 LSTM层得到包含潜在语义信息的单词编码,输出到注意力机制层,得到包含短文本主要信息的向量表示。其中编码层和注意力层分别经由两个共享权值的子网络,注意力层是基于词级别的,经此层得到的向量链接前向循环网络即是整个短文本的向量表达,此向量有128个维度。

2.2.1编码层

在编码层中使用了Word2vec层和双向LSTM模型,输入LSTM模型的二维向量是由短文本中每个单词通过Word2vec层词嵌入矩阵映射得到的。给定一短文本是由一组文本序列构成,记作wit,t∈[0,T],T代表文本长度,经词向量嵌入矩阵We映射得到词向量Xij=Wewij。

(7)

(8)

式中:L表示句子数量。

2.2.2注意力机制层

自然语言处理中有两类LSTM模型,其一是使用模型中每个时刻的输出求出的平均值,其二是直接用模型的最后时刻的输出值。但两类方法均有一定的弊端,前者求平均的方法未能反映出不同时刻信息的不同重要性,后者则是缺少了前面诸多时刻的信息。然而双向LSTM模型仍无法区分单词在短文本中的重要程度,短文本中每个单词的重要程度不相同。同样地,不同的句子在短文本中的位置不一样,重要性也不一样。为了解决此问题,采用注意力机制获取编码后短文本中的重要信息。本文提出的注意力机制表示为:

uit=tanh(Wwhit+bw)

(9)

(10)

(11)

式(9)-式(11)的含义是:将向量hit输入双向LSTM,获得hit的隐藏层表示uit,uit和uw的相似度表示该词汇的重要性;注意力矩阵αit可以通过Softmax函数归一化得到;最终,再将输入向量hit经注意力矩阵加权求和,得到包含文本语义的向量表示si。

2.2.3皮尔逊相关系数计算方法

皮尔逊相关系数是欧氏距离上的部分优化,首先对向量的值去中心化,即对两向量的所有维度均减去平均值,而后对去中心化后向量的值求余弦相似度。相较于原始余弦相似度,它能更好地反映两变量间的线性相关性,其取值在[-1,1]之间。当相关系数r趋于0时,相关性较弱,而趋于1或-1时,相关性较强。计算相关系数公式可表示为:

(12)

3 实验与结果分析

3.1 数据集

实验环境主要基于TensorFlow和Python3.6。实验按7 ∶3的比例随机分割标注数据集,得到训练集和测试集。本实验使用的数据集如表1所示,包括来自Kaggle上的Quora短文本对数据集和蚂蚁金服句对数据集。Kaggle是一个知识分享网站,有不同的人会提出不同的问题,而这些问题有时会很类似,如:“我心目中的最佳足球进攻手是?”和“你最崇拜的足球射手是?”,这样的语句对会被认为是相似的,被标记为1。Quora数据集包含404 291个短文本对,每个问题长度大约是20~30个单词,每对的格式是“序号,文本一序号,文本二序号,文本一,文本二,是否相似”,当是否相似为1时表示两个短文本相似,相似的短文本对是149 286对。中文训练数据为蚂蚁金服句对数据,是蚂蚁金服官方开放的数据集,也是一组短文本对,每对的格式是“文本一,文本二,是否相似”,共包含39 347对短文本,其中相似的短文本对是8 563对,正负样本比例约为1 ∶3.6。

表1 数据集表示

3.2 参数设置及评价方法

实验中的一些参数设置如表2所示,参数值的设定根据经验和实验验证。

表2 参数设置

为了判断计算方法的有效性,将数据集中提供的文本和实验结果进行对比,得到相似度量值的相似性和差异性,实验采用皮尔逊系数(r)和F1值来衡量相似性和差异性。r取值范围为[-1,1],r>0表示实验结果与标注数据集所提供短文本对的相似度量值正相关。F1值是对准确率和召回率作加权平均计算得到的值,值越高表示预测模型具有更好的性能。

3.3 结果分析

实验将提出的基于注意力机制的Siamese-BiLSTM模型(SBA)分别与基于BiLSTM的孪生网络、基于LSTM的孪生网络以及传统向量空间模型VSM进行如下的对比实验研究。

TensorBoard中,基于注意力机制的Siamese-BiLSTM模型(SBA)、基于Siamese-BiLSTM模型(S-BILSTM)和基于Siamese-LSTM模型(S-LSTM)训练完成后,模型训练的精确度和损失值随迭代次数的变化如图3所示。

图3 各模型的准确度和损失对比

可以看出,在使用梯度下降方法进行训练时,函数的损失值逐步减小,并最终收敛趋向稳定状态。由于模型复杂度的增加,在引入注意力机制后的BiLSTM模型相比较于原始模型,起始损失值下降较慢,但损失值收敛到0.1以下的速度是有所增加的,且最终得到的损失函数值也是最小的。由此可见,注意机制的引入可以有效地提高模型的相似度计算能力。通过对比分类准确率图也可以发现,本文提出的SBA模型准确率是三种方法中最好的,可以达到0.91以上。

在Quora数据集上,各个模型性能结果如图4和图5所示,可以看出深度学习的方法都优于传统的向量空间模型方法,Bi-LSTM在此自然语言处理任务上的效果略强于CNN,而结合attention机制的孪生网络模型(ATT-based Siamese-Net) 能提升孪生网络的效果,且优于CNN和BiLSTM。与孪生网络相比,本文SBA模型的准确率和F1值都有着较为明显的提升。

由此可见结合了注意力机制能够有效提取短文本的局部特征和总体特征,对句子的语义表达更加丰富。

图4 Quora数据集上各模型准确率

图5 Quora数据集上各模型F1值

在蚂蚁金服句对数据集上,实验结果如图6及图7所示,通过与其他模型对比,可以看出本文提出的方法效果最好。由于中文语言及语义的复杂性,对短文本提取语义信息时会出现误差,所以在中文数据集上模型的准确率均低于英文数据集。基于Siamese-Net模型与BiLSTM模型相比,并没有提升相似性度量的准确率,而加入注意力机制后能够明显提升准确率和F1值。相比较而言,传统的VSM模型仅仅把短文本中的单词作为向量特征表示,丢失了文本语义信息,在短文本的相似性度量上效果较差。

图6 蚂蚁金服数据集上各模型准确率

图7 蚂蚁金服数据集上各模型F1值

4 结 语

短文本相似度计算是文本处理中的重要研究方向。传统的计算方法未考虑短文本本身所包含的语义信息,因此,本文提出了一种基于注意力机制改进的孪生网络结构的方法,该方法考虑到词语语义信息对相似度计算的重要性,通过双向LSTM网络提取短文本的语义信息,并引入注意力机制,构建词向量的权重,得到包含重要语义信息的文本特征表示,最后采用皮尔逊相关系数来衡量短文本相似度。对所提出的算法和现有算法在不同的数据集上进行实验研究,结果显示,所提算法在相似度计算的准确率和 F1值均高于其他算法,证明了该算法的可行性和有效性。下一步工作将再对此网络结构进行优化,加入主题模型,提升相似性度量效果,以便能够提升文本标题与短文本之间的匹配程度。

猜你喜欢
向量语义短文
向量的分解
KEYS
Keys
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
汉语依凭介词的语义范畴
短文改错
短文改错