APP下载

基于扩展的S-LSTM的文本蕴含识别

2020-07-18胡超文邬昌兴杨亚连

计算机研究与发展 2020年7期
关键词:短语语义编码

胡超文 邬昌兴 杨亚连

(华东交通大学软件学院 南昌 330013)

文本蕴含关系(textual entailment)作为一种基本的文本间语义关系,广泛存在于自然语言文本中.文本蕴含识别(textual entailment recognition, TER)是自然语言处理领域的一项基础性工作,其识别性能的提高将促进许多下游自然语言处理应用的发展.例如在问答系统中用来生成候选答案、文档摘要中用来辅助精简文本、机器翻译中用来评估翻译系统的性能[1].文本蕴含识别通常被看作一个分类任务,即给定前提与假设(通常为2个句子),自动判断它们之间是否存在蕴含关系或矛盾关系.如表1所示,在常用的中文CNLI(1)https:github.comblcunlpCNLI(Chinese natural language inference)和英文SNLI[2](stanford natural language inference)数据集中,定义了前提与假设之间的3种关系:蕴含、中立和矛盾.

Table 1 Examples in CNLI表1 CNLI数据集中的例子

文本蕴含识别同时也是一项非常具有挑战性的任务.有的情况下可以基于2个句子中具有矛盾关系的词或短语对进行推断,如表1矛盾示例中的“黑狗”与“白狗”;而有些情况下则需要理解2个句子的语义才能进行准确的判断,如表1中的蕴含示例和中立示例.因此,文本蕴含识别既需要句子级别的全局信息,也需要短语级别的局部信息.

早期的文本蕴含识别方法主要包括:基于规则的方法[3]、基于相似度的方法[4]、基于对齐特征或其他人工定义特征的机器学习方法[5-6].这些早期的方法由于不能很好地对句子的语义进行建模,识别的性能并不理想.近年来,基于深度学习的方法在语义建模方面取得了很好的效果.例如基于双向长短时记忆网络(bidirectional long short-term memory network, Bi-LSTM)学习句子语义表示的模型在句法分析、机器翻译和实体关系抽取等诸多自然语言任务上取得了当前最好的效果[7-9].就文本蕴含识别而言,基于深度学习方法的性能已经全面超越早期的方法,成为当前主流的文本蕴含识别方法.

现有基于深度学习的文本蕴含识别方法可大致归为2类:基于句子编码的方法[2,10-17]和基于短语交互的方法[18-23].前者通常首先利用深度神经网络(例如Bi-LSTM、卷积神经网络CNN等)分别学习前提和假设的语义向量表示,然后推导它们之间的语义关系.后者通常首先分别学习前提和假设中词和短语(ngram)在上下文中的语义向量表示,并建模这些局部信息之间的语义关系,继而推断前提和假设之间的全局语义关系.当前基于深度学习的方法虽然取得了较好的识别性能,但仍然具有2点不足之处:

1) 分别学习前提和假设(或其中的词和短语)的语义向量表示,而没有把它们当作一个整体.直觉上,人类在进行蕴含关系推断时,会来回阅读2个句子.通过它们之间的信息交换,以达到充分理解句子语义的目的.

2) 没有同时利用句子级别的全局信息和短语级别的局部信息.例如基于句子编码的方法主要利用了句子级别的信息,而基于短语交互的方法则主要利用了词和短语级别的信息.

最近提出的S-LSTM(sentence-state LSTM)是一种能有效地建模文本序列的神经网络模型[24].S-LSTM通过迭代的方式在句子和短语之间交换信息,以同时学习句子级别的全局语义表示和短语级别的局部语义表示,在多个文本分类和序列标注任务上取得了优于Bi-LSTM的效果.本文提出一种基于扩展的S-LSTM的文本蕴含识别模型.具体地,我们把前提和假设看作一个整体,扩展S-LSTM以同时学习它们的语义表示.也就是说,在学习前提(假设)及其短语的语义向量表示时,考虑假设(前提)的语义信息.另一方面,在建模前提和假设之间的语义关系时,既考虑句子级别的全局信息,也考虑词和短语级别的局部信息.

在常用的英文SNLI数据集和中文CNLI数据集上的实验结果表明,本文提出的方法与基于句子编码或基于短语交互的基准方法相比,识别性能取得了一定的提高.

1 相关工作

借助于深度学习的发展和大规模数据集SNLI的发布,基于深度学习的文本蕴含识别方法成为当前的研究热点之一,其性能已经全面超越早期的方法.最近的研究工作可大致分为2类:基于句子编码的方法和基于短语交互的方法.

1) 基于句子编码的方法首先通过Bi-LSTM等神经网络分别学习前提和假设的语义向量表示,然后使用拼接、内积和作差等简单操作建模它们之间的语义关系[2,10-17].例如Bowman等人[2]基于LSTM从左至右学习前提和假设的语义表示;Liu等人[11]使用Bi-LSTM网络从左至右和从右至左2个方向加强语义的学习和表示;Chen等人[12]则使用多层Bi-LSTM网络学习前提和假设的层次化的语义表示,并基于池化操作(pooling)提取显著的特征.为了利用句子的结构信息;Mou等人[13]使用一种基于依存树结构的卷积神经网络,并取得了较好的识别性能;谭咏梅等人[14]联合使用CNN和Bi-LSTM网络,以充分发挥CNN利于局部信息建模和Bi-LSTM利于全局信息建模的优点.最近Shen等人[15]使用自注意力(self-attention)机制代替以前常用的Bi-LSTM和CNN,以发挥其能够捕获任意距离词之间的依赖的优势,并通过Mask矩阵加入方向信息.这类方法强调如何学习前提和假设的语义向量表示,而通常使用较简单的操作建模语义关系.

2) 基于短语交互的方法首先分别学习前提和假设中词和短语在上下文中的语义向量表示,然后引入注意力机制(attention mechanism)捕获这些局部信息之间的语义关系,继而推断前提和假设之间的全局语义关系[18-23].例如Parikh等人[18]将蕴含关系识别问题分解成词之间的对齐问题,利用双向注意力机制直接基于词的语义向量表示建模前提和假设之间的关系;Chen等人[20]首先基于Bi-LSTM编码词在上下文中的词义表示,然后基于双向注意力机制(bi-attention mechanism, BiAttn)计算局部语义信息,最后把这些局部信息输入到另一个Bi-LSTM计算全局蕴含关系;Tan等人[21]融合了4种不同的双向注意力机制的计算方法,用于加强局部语义关系的计算.这类方法强调如何显式地建模词之间或短语之间的交互,以有效地捕获局部语义关系.

本文提出的方法可以看作是基于句子编码方法和短语交互方法的结合与改进,主要体现在2方面:1)通过扩展S-LSTM网络,同时学习前提和假设的语义向量表示.这一点可以看作是对基于句子编码方法的改进,即学习了更好的句子级别的信息.2)在建模语义关系时,同时考虑句子级别和短语级别的信息,这可以看作是对基于短语交互方法的改进.另外,本文也是首次把S-LSTM网络应用到文本蕴含识别中,取得了比常用的Bi-LSTM更好的效果.

2 基于扩展的S-LSTM的文本蕴含识别模型

基于扩展的S-LSTM的文本蕴含识别模型以前提和假设为输入,输出它们之间是“蕴含”、“中立”还是“矛盾”关系.如图1所示,该模型包括5层:词向量层、编码层、交互层、聚合层和MLP(multilayer perceptron)层.

Fig. 1 Extended S-LSTM based textual entailment recognition model图1 基于扩展的S-LSTM的文本蕴含识别模型

词向量层把词编码成向量表示;编码层基于扩展的S-LSTM学习短语级别的信息和句子级别的信息;交互层基于双向注意力机制学习局部的语义关系表示;聚合层用于学习全局的语义关系表示;MLP层用于输出最终的分类结果.图1编码层中双向箭头和交互层中黑色大圆圈部分为本文的2处改进,即编码层前提和假设之间的信息交换和交互层中句子级别信息的利用.下面各节分别对每一层进行详细的介绍.

2.1 词向量层

基于神经网络的自然语言处理模型通常先把词表示为向量,用作模型的输入.给定基于大规模语料预训练好的词向量(word embeddings)E∈R|V|×d,其中,|V|表示词表的大小,d为词向量的维度,E中的每一行即为词表中对应词的语义向量表示.词向量层把前提和假设(可看作词序列)表示为向量序列,分别记作A=(a1,a2,…,ai,…,am)和B=(b1,b2,…,bj,…,bn),其中,ai,bj∈Rd分别为对应词的向量表示,m和n分别为前提和假设的长度.大量的研究工作证实预训练的词向量中包含语义信息,例如“高兴”和“快乐”这2个词在语义向量空间比较接近,非常适合用作自然语言模型的输入.

2.2 编码层

以前提和假设的词向量表示作为输入,编码层用于计算它们的语义向量表示.具体地,利用本文提出的扩展的S-LSTM(详见第4节)把前提和假设分别表示为

Ha=(ha1,…,hai,…,ham,ga)T,
Hb=(hb1,…,hbi,…,hbn,gb)T,

(1)

其中,hai可以看作是前提中以第i个词为中心的短语(ngram)的语义向量表示,是局部的语义信息;ga是前提的语义向量表示,是全局的语义信息;类似地,hbj是假设中短语的语义表示,gb是假设的全局语义表示;Ha∈R(m+1)×d和Hb∈R(n+1)×d为编码层的输出.

与常用的Bi-LSTM相比,扩展的S-LSTM具有2个方面的优点:

1) 如图1编码层中双向箭头连线所示,在学习前提中短语的向量表示hai时,会考虑假设的语义gb,反之亦然,具体可参见第4节式(6).

2) 如图1交互层中黑色大圆圈所示,在利用短语表示的同时,还利用了前提和假设在句子级别的语义向量表示ga和gb.理论上,Bi-LSTM中最后一个词对应的表示也可以看作是整个句子的语义表示.然而,当句子较长时,Bi-LSTM难以捕获词之间长距离的依赖信息.因此,多数情况下其最后一个词对应的向量表示实质上仅是短语级别的信息.

2.3 交互层

(2)

(3)

其中,G是多层前馈神经网络,d1是G中最后一层的维度,[;]表示向量的拼接操作.

在局部语义关系的计算过程中,既有短语表示hai与hbj之间的交互,又有短语表示hai(hbj)与句子表示gb(ga)之间的交互,还有句子表示ga与gb之间的交互.可以说,通过句子级信息的引入,交互层更好地建模了前提和假设之间的局部语义关系.

2.4 聚合层

聚合层在局部语义关系的基础上计算全局语义关系表示,采用与文献[20]中类似的方法:

va=[max(Va);avg(Va)],
vb=[max(Vb);avg(Vb)],
o=[va;vb;va·vb;|va-vb|],

(4)

其中,va,vb∈R2d1;max和avg分别表示最大池化和平均池化操作;va·vb表点乘,|va-vb|表示作差后取绝对值;o∈R8d1即为全局语义关系表示.

2.5 MLP层

MLP层由多个非线性隐层和一个softmax层组成,用于计算最终的分类结果:

(5)

3 扩展的S-LSTM

扩展的S-LSTM的网络结构如图2所示,其基本思想是把常用于单个句子建模的S-LSTM[24]扩展用于处理句对的情况.核心是同时编码2个句子,并考虑它们之间信息的交换.具体地,图2中左半部分是对前提的建模,右半部分是对假设的建模,假设到前提的连线(为了保持简洁,省略了前提到假设的连线)体现了它们之间信息的交换.

Fig. 2 Extended S-LSTM 图2 扩展的S-LSTM

(6)

4 实 验

4.1 数据与设置

我们在常用的英文SNLI数据集和中文CNLI数据集上验证所提方法的有效性.SNLI原始数据集包含570 152个句子对,每个句子对使用以下关系标记:蕴含、矛盾、中立和“-”,其中“-”表示人类标注者缺乏共识而最终没有给定标签.为了进行公平的比较,依照文献[2]中的实验设置,剔除掉带有“-”标签的数据,划分为训练集、验证集和测试集,各类别的分布情况如表2所示.类似地,把中文CNLI也划分为训练集、验证集和测试集,如表3所示.

Table 2 Training, Validation and Test Sets on SNLI表2 SNLI上的训练集、验证集和测试集

Table 3 Training, Validation and Test Sets on CNLI表3 CNLI上的训练集、验证集和测试集

使用StanfordCoreNLP工具包(2)https:stanfordnlp.github.ioCoreNLP对英文SNLI数据集进行tokenization处理,对中文CNLI数据集进行分词.实验中,使用预训练好的300维的英文Glove词向量(3)http:nlp.stanford.edudataglove.840B.300d.zip,以及预训练好的300维的中文词向量(4)https:pan.baidu.coms1kwxiPouou6ecxyJdYmnkvw.在训练的过程中,不进一步优化这些词向量.英文词表大小为36 396,中文词表大小为43 586.模型中的参数随机初始化为均值为0、方差为0.01的正态分布.使用训练实例的真实标记与模型预测的分类结果之间的交叉熵(cross-entropy loss)作为代价函数.为了缓解训练中可能出现的过拟合问题,在模型的编码层使用了dropout技术[25].实验代码基于TensorFlow1.13实现.

基于验证集上的最优性能选择模型中超参(hyper parameters)的取值.实验中发现,表4中所列各超参的取值,既适用于英文SNLI数据集,也适用于中文CNLI数据集.某种程度上,这也反映了所提方法的稳定性.

Table 4 Values of Hyper Parameters表4 超参的值

4.2 结 果

为了验证所提方法在文本蕴含识别任务上的有效性,我们对比基准模型:

1) DeBiAttn_2016[18].直接把词向量作为交互层的输入,没有使用编码层.该模型首次把双向注意力机制(BiAttn)引入文本蕴含识别中,取得了较好的效果.

2) ESIM_2017[20].基于Bi-LSTM对前提和假设分别编码,交互层基于BiAttn建模局部语义表示,聚合层使用另一个Bi-LSTM计算全局语义关系,取得了当时最好的识别效果.

3) MwAN_2018[21].采用与ESIM_2017类似的模型,不同之处在于综合了BiAttn的4种不同计算方法建模局部语义关系.

4) KIM_2018[26].采用与ESIM_2017类似的模型,并集成了WordNet中的同义词对、反义词对、上下位词对等外部知识.

5) DAN_2018[27].联合英文文本蕴含识别和篇章连接词预测2个任务,可以看作是利用了额外训练数据的半监督方法.

6) MTDNN+BERT_2019[28].以大规模预训练的BERTLarge模型[29]为基础,在多任务框架下联合训练多个语义理解任务,取得了当前最好的性能.

除了上述基准模型之外,实验中我们还对比了一些简化的模型,分别用于验证本文改进之处的效果:

1) Bi-LSTM+BiAttn与S-LSTM+BiAttn(5)S-LSTM+BiAttn模型在交互层仅使用了短语级别的语义表示,没有利用句子级的语义信息..在这2个基本的模型中编码层以Bi-LSTMS-LSTM学习前提和假设的语义表示.

2) Ours-1.本文提出模型的一种简化,即把式(1)中的ga和gb去掉,用于验证编码层信息交换的作用.

4) Ours-3.本文提出的模型.

从表5中的实验结果可以看出:1)与没有利用外部资源的模型DeBiAttn_2016,ESIM_2017,MwAN_2018相比,我们提出的模型(Ours-3)取得了相同或更高的准确率.2)与使用了外部资源的KIM_2018和DMAN_2018相比,我们提出的模型取得了可比的性能.3)MTDNN+BERT_2019取得了当前最好的性能,其性能的提高主要来源于基于超大规模语料预训练的BERTLarge模型的使用.从某种角度来说,不能直接与本文所提出的模型进行对比.4)表5的下半部分中,S-LSTM+BiAttn的效果略好于Bi-LSTM+BiAttn的效果,说明把S-LSTM用于文本蕴含识别任务的有效性;Ours-1和Ours-2的效果都好于S-LSTM+BiAttn的效果,说明在编码层考虑前提和假设之间信息的交换和在交互层考虑句子级的全局信息这2处改进都是有效的;Ours-3的效果好于Ours-1和Ours-2的效果,说明联合使用这2处改进能进一步提升识别的性能.综上所述,本文提出的模型是有效的,取得了同类模型中(没有使用外部资源)较好的识别性能.

Table 5 Results on SNLI表5 SNLI上的实验结果

如表6所示,我们提出的模型在中文CNLI数据集上的实验结果与英文CNLI上的结果具有类似的趋势,再次验证了模型的有效性.

Table 6 Results on CNLI表6 CNLI上的实验结果

4.3 超参分析

Fig. 3 Performance on the SNLI validation set图3 SNLI验证集上的性能

4.4 错误分析

参照文献[30]分析SNLI中预测错误实例的方法,我们从CNLI的测试集中随机抽样了100个预测错误的实例进行分析.把导致预测错误的原因大致分成6类(示例如表7所示):

1) 词重复(30%).前提和假设中包含大量相同的词,会使模型倾向于预测其为蕴含关系.某种程度上,这说明现在的模型学到的很可能仅是浅层的特征,而不是真正的深层语义.

2) 否定词(6%).否定词的出现容易导致模型倾向于预测其为矛盾关系.例如,示例中的“不是”.

3) 反义词(9%).模型较难识别出前提和假设中具有相反意义的词.例如,示例中的“未煮过”和“熟”.

4) 背景知识(18%).没有一定的知识背景很难正确判别这些实例的关系.例如,示例中“乐队在舞台上”暗含“音乐会”的举行.

Table 7 Examples with Wrong Predictions in the CNLI Test Set表7 CNLI测试集中预测错误的示例

5) 歧义(8%).有些实例,人类也很难作出正确的判断,存在一定的歧义.例如“在显示器旁边”有可能是“展示”,也可能不是.

6) 其他(29%).有些实例没有明显的错误来源.

从以上错误分析可以看出,现有文本蕴含识别模型还有很多可以改进的地方.例如如何集成外部知识库以缓解错误3),4);如何消除词重复带来的预测偏见(bias)等.

5 总 结

本文提出了一种基于扩展的S -LSTM的文本蕴含识别模型.具体地,从编码层中前提和假设的信息交换的建模、交互层中句子级别的全局语义的利用这2个方面对前人的工作进行改进.所提模型在英文SNLI和中文CNLI数据集上,都取得了同类方法中较好的识别性能.在未来的工作中,我们将探索把扩展的S -LSTM用于其他句子对相关的任务,如隐式篇章关系识别、复述识别等.

猜你喜欢

短语语义编码
真实场景水下语义分割方法及数据集
生活中的编码
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
“吃+NP”的语义生成机制研究
《健民短语》一则
情感形容词‘うっとうしい’、‘わずらわしい’、‘めんどうくさい’的语义分析
汉语依凭介词的语义范畴