APP下载

基于Capsule-BiGRU的文本相似度分析算法

2021-08-06杜彦辉芦天亮沈少禹

计算机工程与应用 2021年15期
关键词:胶囊向量单词

赵 琪,杜彦辉,芦天亮,沈少禹

中国人民公安大学 警务信息工程与网络安全学院,北京 100038

文本相似度在自然语言处理中有着重要的地位。其旨在对给定的两个文本进行特征提取,计算文本特征向量相似度,以此来量化两个文本之间的的相似程度。文本相似度在自动问答系统、信息检索、自动文本摘要、文本分类等自然语言处理的任务中都有着广泛的应用[1]。

近年来,随着深度学习的发展,深度学习在文本相似度的任务中得到广泛的应用。由于卷积神经网络[2]与循环神经网络[3]在各个领域的任务中表现出了良好的性能,从而成为如今主要的两种神经网络模型结构。卷积神经网络通过对词向量矩阵进行处理,从而有效地提取出文本的局部特征,但缺点在于不能考虑文本的上下文信息,有时不能表达文本真正的含义。循环神经网络将文本视为一个序列,它可以将上一神经元的输出作用于下一神经元,因此这种网络结构具有记忆性,利用循环神经网络完成文本特征向量提取,可以考虑词语的顺序信息,利用文本的上下文信息提取文本的全局特征,但对于长距离的依赖关系,循环神经网络不能很好地提取文本特征。针对两种网络结构的特点,本文提出基于capsule-BiGRU 的文本相似度分析方法,该方法将两个文本通过两种神经网络结构处理之后得到的文本特征向量进行相似度分析,得到局部相似度矩阵和全局相似度矩阵,将两个层次的相似度矩阵进行融合,以此完成文本相似度分析。

本文提出的方法首先利用互注意力机制赋予单词不同的权重,针对两个文本,对两个文本的词向量距离进行计算,对于更接近另一个文本的单词给更高的权重。其次结合胶囊网络与BiGRU 网络构建集成模型,将胶囊网络提取的文本局部特征和BiGRU网络提取的文本全局特征分别进行相似度分析,将两个层次的相似度矩阵进行融合。最后根据两个句子的相似度向量判断文本是否相似。

1 相关工作

传统的文本相似度研究的方法主要是以one-hot、词袋模型、N-gram,TF-IDF 等作为文本的特征向量[4-5],利用余弦相似度等方法作为量化文本相似程度的指标。但这些方法单纯地以文本的统计信息作为文本的特征向量,没能考虑词语的上下文信息,同时在特征提取时存在特征稀疏和维度爆炸的问题[6]。

随着深度学习的发展,利用深度学习的方法研究文本相似度任务成为了如今的主流方法。

Mikolov等人[7]在文中提出word2vec词向量嵌入方法,作为一种神经网络语言模型,该方法将单词转化为多维向量表示,极大地方便了后续工作。Pennington等人[8]在文中提出Glove 词向量嵌入方法,该方法融合了全局矩阵分解方法和局部文本框捕捉方法的优点,词向量嵌入考虑了上下文的信息,更准确地表达了文本的上下文信息,在多个自然语言处理任务中有良好的表现。

Kim等人[9]在2014年发表的论文中提出了TextCNN模型,将CNN应用到自然语言处理领域中,进行文本分类任务。使用预先训练好的词向量作为模型的输入,使用多个不同尺寸的卷积核来提取句子的文本特征向量,经过最大池化层筛选句子的显著特征,将筛选出的特征连接,最后进入全连接层输出每个类别的概率。Sabour等人[10]在2017年在文中提出了胶囊网络,胶囊网络是卷积神经网络的一种变体,使用神经元向量代替传统卷积神经网络中的单个神经元节点,以向量的形式保存更多的信息。同时以动态路由机制训练胶囊网络,减少了网络的参数,在手写数字识别数据集上有很好的效果。Zhao等人[11]将胶囊网络引入自然语言处理中,做文本分类的任务,胶囊网络可以对文本信息进行有效的编码,保存了文本多层次的特征,提取出的特征向量更准确地表达了文本的取得了很好的效果。Francis-Landau 等人[12]在文中使用CNN 完成实体关系抽取任务,该模型使用的多个粒度的卷积网络,具有良好的表现。

Mikolov 等人[13]将循环神经网络引入自然语言处理领域,利用循环神经网络完成了机器翻译的任务,使用循环结构遍历整个文本,得到文本的全局特征。Sundermeyer 等人[14]在文献中将LSTM 应用于自然语言处理领域,LSTM解决了传统循环神经网络对于输入序列长距离信息依赖关系的问题。Neculoiu等人[15]提出基于孪生网络结构的双向长短期记忆神经网络用于文本相似度,该网络通过两个LSTM 网络遍历整个文本,综合考虑每个单词的上下文信息,提取句子的特征,完成文本相似度的判别。Bahdanau 等人[16]在将注意力机制应用到了自然语言处理领域,通过注意力机制,神经网络具备专注于某些特征的能力,对于重要的特征分配较多的注意力。

He 等人[17]在文中提出基于注意力机制的卷积神经网络模型用于文本相似度分析,该模型利用注意力机制对文本单词赋予权重并使用卷积网络提取特征矩阵。方炯焜等人[18]将GloVe 词向量嵌入方法与GRU 网络结合起来做文本分类的任务,该方法利用GloVe方法完成单词表示,并利用GRU 网络作为分类器在文本分类中有较好的表现。Pontes 等人[19]提出利用CNN 与LSTM网络提取文本特征完成文本相似度分析任务。郭浩等人[20]提出基于CNN-BiLSTM的文本相似度计算方法,使用CNN 和BiLSTM 网络提取文本特征,完成相似度计算。唐庄等人[21]提出一种transformer-capsule集成模型,分别利用胶囊网络和transformer 来提取文本的局部短语特征和全局特征,得到文本序列的多层次特征表示,完成文本分类的任务。尹春勇等人[22]对传统胶囊网络改进,将卷积神经网络和胶囊网络融合做文本分类的任务。

针对CNN 网络与RNN 网络在特征提取阶段的优势与不足,本文提出的方法将CNN 网络变体capsule 与RNN网络变体BiGRU结合,同时引入互注意力机制,解决了传统神经网络模型不能很好地提取文本的特征向量的问题。本文提出的方法在文本相似度任务中有较好的表现。

2 模型

基于capsule-BiGRU的文本相似度分析模型框架如图1 所示。本文提出的模型主要包括:词向量嵌入模块、特征矩阵提取模块、特征矩阵分析判断模块。本文提出的方法首先针对文本相似度任务,使用互注意力机制分析重要的单词赋予较高的权重。其次将胶囊网络(capsule)和双向门控循环单元网络(BiGRU)相结合,使用胶囊网络提取文本的局部特征,使用BiGRU 网络提取文本的全局特征,将提取出的两个层次的特征融合得到文本的多层次特征。同时对将传统的胶囊网络进行改进,将与文本语义无关的单词视为噪声胶囊,赋予较小权值,从而减轻对后续任务的影响。

图1 基于capsule-BiGRU的文本相似度分析模型框架Fig.1 Framework of text similarity analysis model based on capsule-BiGRU

本文提出的方法首先使用预训练的GloVe模型,将两个文本分别映射为300 维的词向量矩阵。将词向量矩阵作为模型的输入,经过注意力机制模块赋予权重,然后将其结果分别输入到BiGRU网络和胶囊网络模型中。在胶囊网络中,首先进行卷积运算,经过主胶囊层做胶囊卷积运算,经挤压函数运算后作为主胶囊层的输出,经过动态路由协议机制运算后连接到分类胶囊层,将分类胶囊层的输出结果展开作为文本的局部特征向量。在BiGRU 网络中,使用双向的GRU 网络从两个方向提取文本的信息,得到文本的全局特征向量。同时在特征向量提取阶段,使用孪生神经网络结构,即处理两个词向量矩阵使用完全相同的网络结构,这样将两个词向量矩阵编码到同一矢量空间。最后将两个文本各自的局部特征和全局特征分别进行相似度分析,得到两个文本的相似度矩阵,将相似度矩阵作为全连接网络的输入,全连接网络最后一层使用sigmoid函数作为分类器,判断两个文本是否相似。

2.1 词向量嵌入模块

在词向量嵌入模块首先对文本进行预处理,主要包括去停用词、特殊符号等,通过分析所有文本,本实验选择句子最大长度为25 个字符,对不足25 个字符的句子进行补齐,超过25 个字符的句子截取前25 个字符作为句子表示。使用了斯坦福大学自然语言处理小组预训练的GloVe 模型将文本中每个单词映射为300 维词向量。

GloVe 模型对单词进行向量化表示过程如下:首先计算语料库的共现矩阵X,其中Xij为在语料库中单词i与单词j共同出现在同一窗口中的次数。

Xi表示单词i在语料库中出现的次数,Pij表示单词j在单词i的语境中出现的概率。假设已经知道单词i和j的词向量分别是vi和vj,计算vi与vj的相似度与Pij进行比较,当差值较小的时候证明词向量与共现矩阵一致性较高,词向量对上下文信息把握准确。

使用代价值J表示两项的差值,bi与bj为偏差项。通过迭代的更改所有单词的词向量使得代价值J在整个语料库中最小,即得到了语料库中所有单词最优的词向量,这样通过上下文信息计算出单词的词向量。斯坦福大学自然语言处理小组收集了维基百科网站上的数据集作为语料库进行了词向量训练,该数据集包含大量的英文文本,预训练得到的词向量中包含更准确的上下文信息,发布了50维、100维200维与300维词向量训练结果。本文选用斯坦福大学自然语言处理小组发布的300维词向量作为词向量表示。

2.2 特征矩阵提取模块

2.2.1 注意力

在自然语言处理中,传统的注意力模型主要是分析文本中与任务更相关的单词,从而赋予较高的注意力,这样的注意力模型在处理单个句子的任务时会有较好的表现。但针对本文的任务——文本相似度而言,主要关注两个文本是否相似,对于两个输入的文本t1和t2而言,更应该关注的是t1与t2相似的部分,对于相似的部分给予更高的注意力[23]。计算t1中任意一个单词与t2中所有单词之间的相似度并求和,相似度计算方法使用余弦相似度,将余弦相似度的和作为描述该单词的权重的值。假设文本t1和t2经过词向量嵌入层得到的词向量矩阵为:

其中,表示文本t1中第j个单词的词向量。余弦相似度计算公式如下:

根据前式文本t1和t2的词向量矩阵为vt1,vt2,利用余弦相似度计算公式计算两个输入文本所有单词与另一文本的相似程度。

式中,kt1[i] 为文本t1中第i个单词与文本t2各个单词的余弦相似度和,通过计算得到文本t1与t2中各个单词的余弦相似度kt1、kt2并作为计算各个单词权重的值。使用kt1、kt2以及SoftMax函数完成单词权重的计算。

At1、At2为文本t1和t2各个单词对应的权值,将单词的词向量与对应权值相乘得到文本的特征矩阵,作为后续网络的输入。

2.2.2 胶囊网络

在文本中存在大量的限定词,感叹词等与文本语义无关的单词,这些单词在两个文本中有极高的概率同时存在,经过注意力模块运算后这些单词可能得到较高的权重,但这些单词对文本的语义没有较大的影响,赋予较大的权重会对最后的结果有一定的影响。在胶囊网络模块中称这些无关单词为噪声胶囊。使用NLTK 工具对句子中的单词进行词性标注,在胶囊网络中首先根据单词词性对限定词、连词、感叹词、代词赋予较低权重,以减轻噪声胶囊对后续任务的影响,解决上述问题。将经过注意力机制的特征矩阵输入胶囊网络,使用动态路由算法计算上层胶囊输出,计算步骤如下。

(1)Ai=attention(ui)

(2)bij=0

(3)迭代r次:

(4)返回vj

其中,ui为互注意力模块得到的特征向量,Ai为降低噪声胶囊权重之后的特征向量,r为动态路由算法迭代次数,wij为两层胶囊之间的权值矩阵,cij为耦合系数,表示下层胶囊i激活上层胶囊j的可能性,u(j|i)为上层胶囊的输入,squash为激活函数,vj为上层胶囊的输出。动态路由算法将bij的初始值设为0,这样vj的初始值为u(j|i)的均值,通过迭代更新bij,从而更新cij与vj的值。wij为神经网络模型的参数,模型通过大量的训练数据学习wij的值。Sabour在文中提出的胶囊网络包括三层结构,分别为:卷积层、PrimaryCaps层、DigitCaps层。在本文提出的方法中,使用DigitCaps 层的输出作为文本的局部特征矩阵。

2.2.3 BiGRU

双向门控循环单元网络(BiGRU)是一种双向的基于门控的循环神经网络,由前向GRU与后向GRU组合而成。通过两个方向的网络遍历文本,得到包含文本上下文的信息,解决了GRU 模型只能包含上文信息的问题。GRU 模型是长短期记忆网络(LSTM)的变体。相较于LSTM,GRU 模型网络结构较简单,但效果与LSTM基本相同,大大减少了网络训练所需的时间。循环神经网络当前时间步的输出与前面时间步的输出有关,这使循环神经网络具有记忆性,适合处理序列数据。但传统的神经网络只具有短期记忆,对于长距离的依赖关系效果不好,同时存在梯度爆炸或梯度消失的问题。LSTM通过门控机制解决了上述问题,可以学习跨度较长的依赖关系。LSTM神经元结构如图2所示。

图2 LSTM神经元结构图Fig.2 LSTM neuron structure diagram

GRU网络将LSTM中输入门和遗忘门合并,称为更新门,这使训练网络所需的时间大大减少。GRU 神经元结构如图3所示。

图3 GRU神经元结构图Fig.3 GRU neuron structure diagram

在GRU 网络中,更新门控制当前时刻的隐状态状态ht中保留多少历史时刻的隐状态和当前时刻的候选状态。重置门的作用是决定当前时刻的候选状态h′t与上一时刻的隐状态之间的依赖程度。

xt为当前时刻的输入,ht-1为上一时刻的隐状态,为当前时刻的候选状态,ht为当前时刻的隐状态,yt为当前时刻输出。公式(8)为更新门的计算公式,公式(9)为重置门的计算公式。

在GRU 网络中信息只能单向传递,但在实际中每个单词可能与上下文中的单词都有依赖关系,使用BiGRU 网络通过两个方向的网络训练文本,使得模型的效果更好,BiGRU网络结构如图4所示。本文提出的方法使用BiGRU网络的输出作为文本的全局特征矩阵[24]。

图4 BiGRU网络结构图Fig.4 BiGRU network structure diagram

2.3 特征矩阵分析判断模块

将两个文本的局部特征矩阵与全局特征矩阵分别进行相似度计算,得到局部特征的相似度矩阵E1和全局的相似度矩阵E2。其中E1和E2的计算方法相同,这里介绍E1的计算方法。假设两个文本的局部特征分别为S1和S2,E1计算公式如下:

为相似度矩阵第i行第j列元素,为S1的第i行,为S2的第j行。在得到相似度矩阵后将两个相似度矩阵展平并连接。将融合后的相似度向量作为全连接层的输入,将全连接网络输出与softmax 分类器连接。使用softmax分类器判别两个文本是否相似。

3 实验结果与分析

3.1 数据集

为了评估模型在文本相似度任务上的表现,本文使用了Quora Question Pairs 数据集和MRPC(Microsoft Research Paraphrase Corpus)数据集进行实验。

Quora Question Pairs数据集包含404 000个句子对,相似的句子对标签为1,否则为0。在本文的实验中将数据集进行分割,80%作为训练集,10%作为测试集,10%作为验证集。MRPC(Microsoft Research Paraphrase Corpus)数据集包括4 076个训练样本和1 725个测试样本,相似的句子对标签为1,否则为0。

3.2 实验设置

本文进行的实验基于keras框架实现,使用Adam优化器,在Quora Question Pairs 数据集进行的实验模型参数设置如表1所示。

表1 实验参数设置Table 1 Experimental parameter settings

3.3 评价指标

本文实验的性能评价指标主要包括:准确率、精确率、召回率、F1值。设TP为将正确类预测为正确类的个数;TN 为将错误类预测为错误类的个数;FP 为将错误类预测为正确类的个数;FN 为将正确类预测为错误类的个数。评价指标的计算公式如下:

3.4 实验结果分析

验证本文提出方法的有效性,本文进行了三个实验。实验(1)与深度学习领域主流模型进行对比实验;实验(2)与其他论文中提出方法进行对比实验;实验(3)改变capsule网络迭代次数进行对比实验;实验(4)在两个数据集上测试模型表现。

实验(1)中选取深度学习领域主流的模型进行比较实验,包括:LSTM、BiLSTM、capsule、GRU、BiGRU、Siamese-capsule、Siamese-BiGRU、capsule-BiGRU,使用上述模型进行实验,实验结果如表2所示。

表2 实验(1)数据结果Table 2 Experimen(t1)data results %

从表2 中可以看出,与传统的CNN、LSTM 网络相比,本文提出的模型在文本相似度任务中表现更好。GRU网络与LSTM网络在任务中的表现基本相同,但在相同的网络规模,训练GRU 网络所需时间远小于训练LSTM 网络。通过对比capsule 与Siamese-capsule,BiGRU 与Siamese-BiGRU 的表现发现,Siamese-BiGRU 网络相较于BiGRU网络,准确率提升了2.52个百分点,精确率提升了2.99 个百分点,召回率提升了1.31 个百分点,F1值提升了2.19个百分点。Siamese-capsule网络相较于capsule网络,准确率提升了1.88个百分点,精确率提升了3.63 个百分点,F1 值提升了1.78 个百分点。从中可以发现孪生神经网络结构可以有效地提高模型的表现。本文提出的方法在准确率、精确率、召回率、F1值上的表现都优于传统的神经网络模型。相较于传统的LSTM模型准确率提高了6.08个百分点,F1值提高了4.49个百分点。

实验(2)中将本文提出方法与其他论文所提方法进行比较,对比结果如表3所示。

表3 实验(2)数据结果Table 3 Experimen(t2)data results %

通过比较可以发现,本文提出的方法相较于文献[20]提出的模型准确率提高了1.58 个百分点、F1 值提高了3.75个百分点。相较于文献[25]提出的模型准确率提高了0.66个百分点,F1值提高了1.67个百分点,该模型使用了6层堆叠的BiLSTM网络,模型较为复杂,训练所需时间较长。

实验(3)中改变capsule 网络中动态路由算法迭代次数做对比实验,实验结果如表4所示。

表4 实验(3)数据结果Table 4 Experimen(t3)data results %

基于上述实验结果可知,动态路由算法迭代次数对capsule网络有一定影响。随着迭代次数的增加,训练模型所需时间不断增加。当动态路由算法迭代次数设置为3时,模型有较好的表现且训练时间为198 min,迭代次数超过3次后,模型表现逐渐下降。在本文的其他实验中胶囊网络动态路由迭代次数设置为3,以获得更好的表现。

由于MRPC 数据集样本较少,所以调整了Dropout参数为0.1,其他模型参数不做调整。在表5 中可以看出,模型在Quora Question Pairs 数据集上表现更加出色,主要是因为Quora Question Pairs 数据集中的样本数量更多,模型训练更加完善,说明本文提出的模型的表现比较依赖于数据集中样本的数量。

表5 实验(4)数据结果Table 5 Experimen(t4)data results %

4 结束语

针对文本相似度任务,本文提出基于capsule-BiGRU的文本相似度分析方法。capsule 网络可以有效地提取文本的局部特征向量,BiGRU 网络使用双向的循环网络结构从两个方向遍历整个文本,从而有效地提取上下文信息得到文本的全局特征矩阵,对两个文本的特征矩阵进行相似度分析,判断文本是否相似。实验表明本文提出的方法对文本相似度任务而言有更好的效果,同时模型的表现比较依赖于数据集中样本的数量。

猜你喜欢

胶囊向量单词
Shugan Jieyu capsule (舒肝解郁胶囊) improve sleep and emotional disorder in coronavirus disease 2019 convalescence patients: a randomized,double-blind,placebo-controlled trial
向量的分解
Shumian capsule(舒眠胶囊)improves symptoms of sleep mood disorder in convalescent patients of Corona Virus Disease 2019
聚焦“向量与三角”创新题
单词连一连
看图填单词
看完这些单词的翻译,整个人都不好了
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
聚焦“毒胶囊”