王郝日钦 王晓敏 缪祎晟 许童羽 刘志超 吴华瑞
(1.国家农业信息化工程技术研究中心, 北京 100097; 2.内蒙古民族大学计算机科学与技术学院, 通辽 028043;3.北京市农林科学院信息技术研究中心, 北京 100097; 4.沈阳农业大学信息与电气工程学院, 沈阳 110866)
随着互联网时代的快速发展,在网络问答社区[1]提出问题、回答问题和讨论问题已经成为人们日常寻求问题解答,满足自身信息需求的重要方法。“中国农技推广信息平台”是一个专业提供农技问答、专家指导、在线学习、成果速递、技术交流等的综合性服务平台,其中农技问答模块在帮助农户找到问题的解决方案方面发挥着重要作用。用户每天在问答模块[2]提出的问题有千万余条,农业专家会及时对所提问题进行解答,但是由于中文语义表达的复杂性,会出现很多描述方式不同但语义相同的问句,对这类问题重复进行解答会耗费大量的人力和物力。这类农业文本具有冗余性、稀疏性[3],以及规范性差等特点,导致了文本特征提取不准确,难以挖掘特征之间的关系,从文本数据集中快速、自动、准确地检测出语义相同的问句并将相同语义问句对应的正确答案返回给用户是实现农业智能问答[4]的关键技术环节。传统的文本语义相似度判断[5]依靠人工筛查很难高效地完成文本数据的处理。目前常用的关键词查询及浅层神经网络学习模型[6]虽然能够辅助完成相似问句判断等工作,但是由于采用人工特征选择的方式,不具备从大量的农业文本数据中自动、准确地判断相同语义问句的功能。因此利用深度学习[7]和自然语言处理技术[8]实现农业相同语义问句智能检索是“中国农技推广信息平台”需要解决的一个重要难题。
随着深度学习技术的快速发展,国内外学者主要使用卷积神经网络[9]和循环神经网络[10]等模型研究文本相似度计算。文献[11]提出的DSSM(Deep structured semantic models)模型是最早将孪生网络架构作为基础模型用于语义文本相似度计算的方法,DSSM模型在文本匹配任务上取得了良好的效果, 但是忽略了文本语序和上下文信息。文献[12]将卷积神经网络加入到DSSM模型以保留更多文本语序和上下文信息,在表示层中增加了卷积层和池化层,提升了文本匹配效果,但是由于卷积神经网络的限制,仍会丢失一些距离较远的文本特征。文献[13]将长短期记忆网络引入其中,LSTM[14]模型可以很好地解决上述问题, 使得文本匹配效果提升。随着自注意力机制在图像和自然语言处理领域的应用,文献[15]将双向长短期记忆网络和自注意力机制技术相结合用来提取文本的特征向量,提高了文本匹配精确度。由于基于孪生网络的方法在提取文本特征时是互相独立的,而基于交互模型的神经网络可以解决上述问题,它是在编码层增加2个网络之间的交互作用, 从而提取句子对之间的特征关联来提高文本匹配的精确率。文献[16]提出了基于注意力机制的卷积神经网络模型,首先使用Word2Vec对文本进行向量化的基础上通过卷积神经网络对句子进行特征提取, 再分别对文本对进行卷积和池化操作的同时, 使用注意力机制对2个中间过程进行交互,提升了文本匹配的精确率。以上研究表明,交互模型对文本相似度匹配具有更好的效果。文献[17-24]为深度学习和自然语言处理技术在农业文本处理方面提供了可行性依据和参考。但是在农业问句相似度匹配过程中,仍存在无法解决多义词在不同语境下具有不同含义的问题和文本特征提取不精确等问题。同时由于农业领域一直缺乏大规模可用的数据库, 因此关于农业文本相似度计算的研究还鲜有报道。
为了实现农业问答社区提问数据的快速自动重复语义检测, 本文首先利用12层的中文BERT[25]预训练模型获得文本的上下文特征表示,使用密集连接的双向GRU网络进一步提取农业问句对的文本特征,使用连接操作将注意力机制对2个问句交互的信息合并到密集连接的BiGRU中用于问句相似度匹配,并进一步针对神经网络的重要参数进行优化和改进, 提出基于BERT-Attention-DenseBiGRU的农业文本相似度匹配模型,以期实现农业问答社区相同语义问句自动、精确识别。
从“中国农技推广信息平台”问答社区后台服务器中导出农业问答文本数据,共提取到涉及8个类别的30 000对问答数据,针对8个类别内的每条提问文本数据使用Simhash算法[26]检索相同语义文档,并进行人工筛选及校对,语义表达相同的问句对记作标签1,语义表达不相同的问句对记作标签0,这样可以尽量避免使神经网络认为2个句子相同关键词越多越相似,得到农业文本相似问句对共17 000对,其中病虫草害、动物疫病、栽培管理、市场销售、养殖管理、土壤肥料、储运保鲜、其他8个类别问句对数量分别为5 890、2 100、3 870、760、1 210、765、217、2 188。训练集样本示例如表1所示。
表1 训练集样本示例Tab.1 Training set sample example
本文提出的BERT-Attention-DenseBiGRU模型如图1所示。该模型主要由文本预处理层、密集连接BiGRU(DenseBiGRU)、注意力机制层和交互分类层4部分组成。与传统深度学习模型相比,首先本文使用12层的中文BERT预训练模型得到问句特征向量化表示;其次本文提出的模型利用DenseBiGRU和协同注意力机制提取文本不同粒度的局部特征;最后将提取的特征向量输入到交互分类层。
图1 模型架构图Fig.1 Model architecture diagram
首先使用12层的中文BERT预训练模型作为词向量转换工具获得问句特征表示,既能获得农业问句文本语法、语义特征,又能解决Word2Vec[27]忽略词语多义性的问题。BERT是一个预训练的语言表征模型,不同于传统的单向语言表征模型,BERT使用双向的Transformer[28]对语言模型进行训练,可以获得更深层次的语言表征信息,Transformer模型结构如图2所示。
图2 Transformer模型结构Fig.2 Transformer model structure
Transformer模型中包含2个相同的编码器,每个编码单元都由自注意力机制和前向传播网络构成,并且在前向传播的过程中使用了残差连接,将之前层的输入和本层的输出合并之后向后传递,最后进行求和归一化操作。解码单元跟编码单元相比,增加了1层注意力机制。BERT作为文本特征的提取器优于传统的卷积神经网络和循环神经网络,这是因为BERT采用了双向的Transformer获取词向量,可以充分考虑每个词的上下文信息,从而提取到更加准确的词向量表示,解决了中文一词多义的现象。
BERT是一种遮蔽语言模型,在获取词向量的过程中随机遮蔽一些词语,然后在预训练过程中在原始词汇的位置进行预测。对于BERT 模型的输入,每个词语的表示都由词语向量、段向量和位置向量共同组成, 其中,标记[CLS]代表句子的开始,标记[SEP]代表句子的结束,如图3所示。
图3 BERT输入示例Fig.3 BERT input example
使用哈尔滨工业大学开发的语言技术平台(LTP)工具[29]作为分词工具。它会屏蔽组成同一个单词的所有汉字,然后训练模型以获得分段单词。
使用双向GRU获取文本的特征向量。GRU[30]是一种特殊的循环神经网络(RNN),RNN是一种对序列数据建模的神经网络。它以有序的方式向网络传输文字存储之前的单词信息,可以有效地解决长期依赖关系。然而RNN存在消失梯度问题,文献[14]针对上述问题提出了长期短期记忆网络(LSTM)改进了RNN。LSTM通过遗忘门和输入门持续更新内存内容,以便LSTM可以有效地获得长期依赖关系,解决梯度消失和梯度爆炸问题,文献[24]提出了门控循环单元网络(GRU),将LSTM的输入门和遗忘门合并形成了更新门,形成了更加流线型的门结构。
使用BERT预训练模型获得的词向量作为BiGRU层的输入。BiGRU层包含2部分,同时读取向前和向后方向的单词向量。然后GRU计算传递的向量并输出固定维度的向量。GRU包括4部分:
(1)重置门。GRU使用重置门进行选择在前一刻要放弃哪些信息。
(2)更新门。GRU通过更新门选择并更新当前时刻的信息,重置门和更新门计算公式为
Rt=σ(WrSt+Urht-1+Br)
(1)
Zt=σ(WzSt+Uzht-1+Bz)
(2)
式中Wr、Ur、Wz、Uz——权重
Rt——t时刻的重置门
ht-1——t-1时刻的隐藏状态
Br、Bz——偏差
σ——Sigmoid函数
St——输入的词向量
Zt——t时刻的更新门
(3)GRU计算候选内存内容,这是计算当前时刻输出的重要步骤,计算公式为
t=tanh(WSt+URtht-1+B)
(3)
式中W、U——权重B——偏差
(4)GRU根据上述结果计算输出,计算公式为
Ht=(1-Zt)t+ZtHt-1
(4)
式中Ht、Ht-1——t、t-1时刻的输出
(5)
(6)
(7)
式中wt——t时刻前向隐藏状态权重
vt——t时刻反向隐藏状态权重
bt——t时刻隐藏层的偏置
ctij——t时刻第i个句子第j个词的向量
本层是该模型的关键所在,采用了多层BiGRU堆叠在一起的结构并循环了5次,在每个密集连接的BiGRU层都将之前层的输入和本层的输出合并之后向后传递,Hl代表的是BiGRU,l表示的是BiGRU的层数,t表示的是时刻,其隐藏状态值计算公式为
(8)
Hl——第l层的BiGRU
注意力机制在许多领域都取得了很好的应用效果,是一种有效学习上下文向量在特定序列上匹配的技术。给定2个问句,即在每个BiGRU层基于协同注意力机制的2句话,计算上下文向量。计算出的注意信息值代表了两句话之间的对齐关系。本文使用连接操作将注意力机制对2个问句交互的信息合并到密集连接的重复特征中。这种从最下层到最上层的密集连接特征所获得的串联循环和协同注意特征,丰富了词汇的语义特征。与密集连接的BiGRU隐藏特征类似,本文将注意力上下文向量与向量hhi连接,保留注意信息作为下一层的输入。对句子Q的第i个位置词的注意信息σpi计算为与hhi的加权和,其加权值为Softmax的权值,计算公式为
ei,j=cos(hpi,hhi)
(9)
(10)
(11)
式中ei,j——2个问句向量的相似度
hpi、hhi——问句向量表示
cos(·)——相似度函数
αi,j——注意力权重
本文提出的模型使用所有层的输出作为一个语义知识的社区。然而,该网络是一种随着层的加深而增加输入特征的结构,并且具有大量的参数,尤其是在全连接层。为了解决这个问题,使用了一个自动编码器作为减少特征数量同时能维持原有信息的结构。此外,该部分在试验中作为一个正则化,从而提高了测试性能。
为了提取每个句子的适当表示,对密集连接的BiGRU和注意特征采用逐级最大池化运算。具体来说,如果最终BiGRU层的输出是句子30个单词的100维向量,得到了一个30×100的矩阵,使得合成的向量p或q的维度为100。然后,在交互层中以各种方式对2个句子P和Q的表示形式p和q进行聚合,最终得到语义句匹配的特征向量v,计算公式为
v=[p;q;p+q;p-q;|p-q|]
(12)
这里,从元素的角度执行操作+、-、|·|来推断2个句子之间的关系。元素相减p-q是用于单向类型任务的非对称操作符。提取完特征v之后使用了2个全连接层,激活函数为ReLU,后面是一个完全连接的输出层。最后应用Softmax函数得到概率分布。
本研究使用Pytorch深度学习框架构建神经网络。试验把17 000个问题对按9∶1的比例划分为训练集和测试集,使用随机梯度下降算法对模型权重进行更新,训练集共15 300条,测试集1 700条,本文以精确率、召回率和F1值作为评价指标。
采用12层的中文BERT模型对农业问句文本数据进行向量化处理。同时与Glove[31]、TF-IDF[32]、Word2Vec向量化模型进行对比分析。对4种模型训练得到的文本特征通过一个全连接层直接输入到Softmax分类器中,由表2可知,在嵌入层使用4种不同词向量转换工具,BERT预训练模型取得最高的精确率和F1值,分别达到85.3%、81.2%,TF-IDF方法的效果最差,这是由于TF-IDF主要考虑词频的重要性,忽略了词与词的位置信息以及词与词之间的相互关系。而经过BERT预训练模型方法比Word2Vec精确率和F1值分别提高2.7、3.5个百分点,这是因为Word2Vec虽然考虑了词的周边信息,但是却忽略了词序问题,以及受限于窗口尺寸的限制,不能考虑整个句子中所有词的相关性。而经过BERT模型在农业问句语料库上预训练得到文本特征后,实现了同时考虑上下文及词序信息,提高了神经网络的精确率和F1值,说明BERT可以很好地解决词语在不同语境下具有不同含义的问题。因此本文采用BERT预训练模型,将农业问句转换为词向量输入到神经网络模型中。
表2 不同嵌入层下模型匹配效果Tab.2 Model matching effect under different embedding layers %
本文设置模型迭代训练次数为50,Batch-Size设置为64,设置密集连接的BiGRU循环5次,每个密集连接的BiGRU有100个隐藏单元,将全连接层的隐藏单元设置为1 000。在单词和字符嵌入层之后,将Dropout设置为0.5。对于自动编码器,设置200个隐藏单元作为自动编码器的编码特征,Dropout设置为0.2。本文使用初始学习率为0.001的RMSProp优化器。所有权值都被L2正则化约束,正则化常数λ=10-6。
使用本文提出的BERT-Attention-DenseBiGRU模型与其他6种文本相似度匹配模型:BiLSTM[33]、Selfattention-BiLSTM[34]、TextCNN[35]、ABCNN[36]、BiGRU、Attention-BiGRU[37]在农业问句相似对文本数据集上进行对比试验,均使用12层的中文BERT模型对文本进行向量化,表3展示了7种不同深度学习模型在精确率、召回率、F1值的比较。基于自注意力机制的BiLSTM相比于BiLSTM的精确率和F1值分别提高4.7、4.4个百分点,基于注意力机制的卷积神经网络模型(ABCNN)的精确率和F1值相比于TextCNN模型精确率和F1值提高3.2、3.9个百分点,基于注意力机制的BiGRU相比于BiGRU模型的精确率和F1值提高了2.6、1.9个百分点。通过3组对比试验可以看出,加入注意力机制的深度学习模型可以明显提升模型效果,这是由于注意力机制在农业问句关键信息上分配更多的权重、突出局部的重要信息,有利于精确提取文本特征。本文提出的模型Attention-DenseBiGRU获得了最高的精确率和F1值,达到97.2%和97.6%,精确率、召回率、F1值明显优于其他6种深度学习模型,相比于Attention-BiGRU的精确率和F1值分别提高5.5、5.3个百分点,原因为:①通过密集连接的BiGRU可以加强特征的传递和提取,减少特征损失。②Attention-BiGRU只是在网络后面加入注意力机制,而本文提出的Attention-DenseBiGRU是在编码层通过注意力机制增加2个网络之间的交互作用, 从而提取句子对之间的特征关联来提高文本匹配的精确率。
表3 不同模型在农业问句数据集上的效果Tab.3 Effects of different models on agricultural question data sets %
表4展示了7种神经网络模型在BERT文本向量化表示方法和Word2Vec文本向量化表示方法下的农业问句相似度匹配精确率。本文提出的BERT文本向量化表示方法在7种神经网络模型上精确率均高于Word2Vec文本向量化表示方法。Attention-DenseBiGRU模型在BERT文本向量化表示和Word2Vec文本向量化表示方法下均取得了最高的精确率,分别达到97.2%和94.3%,问句相似度匹配效果明显优于其他6种神经网络模型。从表4可以看出,BERT文本向量化表示方法在每组对比试验中都提高了精确率,这是由于Word2Vec文本向量化表示方法忽略了不同语境下多义词的问题以及长距离语义关联信息,而BERT文本向量化表示方法可以很好地解决上述问题,从而提高问句相似度匹配的精确率。
表4 不同模型在BERT和Word2Vec文本向量化表示方法下问句相似度匹配精确率Tab.4 Question similarity matching precision of different models under BERT and Word2Vec text vectorization representation methods %
由表5可知,与BiLSTM、Selfattention-BiLSTM、TextCNN、ABCNN、BiGRU、 Attention-BiGRU 6种文本相似度计算模型相比,Attention-DenseBiGRU在病虫草害、动物疫病、栽培管理、市场销售、养殖管理、土壤肥料、储运保鲜、其他共8个类别的农业问句对数据集上均具有最高的匹配精确率,对农业问句相似对匹配的精准率大于93.7%,整体效果明显优于其他模型。在病虫草害、栽培管理2个类别试验数据量充足的数据集中,本文模型的精确率达到99.1%、98.7%,明显高于其他6种深度学习模型。这是因为深度学习模型在不断迭代训练的过程中,数据集越大,模型的训练效果越好;在市场营销、土壤肥料、储运保鲜3个类别数据量较少的数据集中,本文模型的精确率分别达到97.3%、96.6%、93.7%,明显高于其他模型,说明Attention-DenseBiGRU模型在数据量不充足的情况下,仍能够有效提取短文本的特征进行文本相似度计算,也说明了该模型具有很好的鲁棒性。
表5 不同模型在农业相似问句数据集不同类别的精确率Tab.5 Precision of different models in different categories of agricultural similar question data sets %
通过一组试验来证明本文所提出Attention-DenseBiGRU模型中每个模块的有效性。首先将模型中自编码器(autoencoder)删除后得到模型2,由表6可以看出,模型2的精确率和F1值与模型1相比下降了2、1.7个百分点,验证了自动编码器的有效性。自动编码器可以降低文本特征维度,有效提高文本相似度匹配效果。然后分别删除BiGRU之间的密集连接和注意力机制,得到模型3、4,可以看出模型3、4的精确率和F1值与模型1相比分别下降了2.9、2.9个百分点和2.1、1.8个百分点,表明BiGRU之间的密集连接比协同注意力机制更能提高模型的效果。模型5、6分别是基于注意力机制的5层普通连接BiGRU模型和不具有注意力机制的5层普通连接BiGRU模型,表6中可以看出注意力机制可以提高模型的效果,这是因为注意力机制可以强化关键词在问句相似度匹配中的权重,提升文本匹配精确率。
表6 不同模型在农业问句数据集上的效果Tab.6 Effects of different models on agricultural question data sets %
表7展示了模型1~6在不同层数BiGRU时农业问句数据集上的分类效果,由表7可知,Attention-DenseBiGRU在5层BiGRU时精确率达到最高的97.2%,这是由于通过层数的增加和密集连接,可以有效提高文本特征的提取,减少特征丢失,提高文本匹配效率。模型5、6在第2层时精确率达到最高,之后开始逐渐下降。这可能是因为没有通过密集连接的BiGRU在提取特征时会导致特征丢失。进一步验证了通过深层次的神经网络可以有效获取文本特征及表示,有利于提升文本相似度匹配效果。
表7 不同条件下模型在每层网络的匹配精确率Tab.7 Matching effect of model in each layer of network under different conditions %
表8展示了基于Attention的4种深度学习模型在1 700对农业问句对测试集上的反应时间和精确率,ABCNN速度最快,这是由于ABCNN模型主要采用卷积神经网络作为基础,模型结构简单,参数较少。本文提出的Attention-DenseBiGRU模型7 s可以完成1 700对农业问句相似性精准判断,精确率达到最高的94.7%,满足了对农业问句对语义相似度快速、精确匹配的要求,在反应时间接近的情况下,Attention-DenseBiGRU模型在文本语义相似度匹配精确率上取得了最好的效果。
表8 4种深度学习模型的反应时间和精确率Tab.8 Response time and precision of four deep learning models
通过密集连接BiGRU网络和注意力机制得到的特征是通过最大池化层连接到分类层,使每层的特征都影响损失函数,并进行深度监督学习。因此,本文使用注意力权重和最大池化位置来解释分类结果。注意力权重包含了两个句子对齐的信息,同时每个维度上最大池化位数在分类中起着重要作用。图4展示了本文提出的模型在不同层时注意力权重热力图,例如问句1:五味子黑斑病发病原因是什么?问句2:五味子果腐病症状是什么?除了黑斑病和果腐病外,问句1和问句2的大部分词同时存在。在第1层的注意力权重图中,每句话中相同或相似词的对应度较高。但是,随着层次的加深,黑斑病和果腐病的注意力权重在不断加深。因为黑斑病和果腐病虽然都是病虫害名称,但是在本质上有明显区别,在第5层时,问句1和问句2中除了黑斑病和果腐病,对应的其他词的注意权重都变得极小,由于“黑斑病”和“果腐病”2个词在语义上区别明显,因此模型判断问句对为语义不相似,即标签为0。
图4 农业问句相似度注意力权重可视化图Fig.4 Visualizations of similarity and attention weight of agricultural questions
(1)为了解决中国农业技术推广问答社区无法自动准确地发现重复性语义问题的问题,构建了一个包含8个类别17 000对农业问句相似对语料库。针对农业相关问句的特点,提出了一种基于BERT的Attention-DenseBiGRU模型。
(2)利用基于协同注意机制的密集连接BiGRU模型对农业问答社区问句文本进行快速自动的重复语义检测。
(3)利用DenseBiGRU网络提取农业问句文本的特征表达用于问句相似度匹配。在此基础上,对其重要结构参数和训练策略进行了优化和改进,构建了基于协同注意力机制的农业文本相似度匹配算法,实现了问答社区中相似语义问句精确高效识别。与其他模型相比,该模型在农业问句相似对数据集上取得了最高的精确率和F1值,分别达到97.2%和97.6%。