基于知识增强的文本隐喻识别图编码方法
2023-01-30黄河燕
黄河燕 刘 啸 刘 茜
(北京理工大学计算机学院 北京 100081)
(北京海量语言信息处理与云计算工程研究中心 北京 100081)
(北京理工大学东南信息技术研究院 福建莆田 351100)(hhy63@bit.edu.cn)
隐喻(metaphor)是一种在自然语言中广泛存在的语言现象.当借用某一概念的属性和特点来看待和使用另一个概念时,隐喻现象就发生了[1].文本隐喻识别(metaphor detection)作 为 自 然 语 言 处 理 (natural language processing,NLP)中的一个重要语义理解任务,获得越来越多研究者的广泛关注.其目标是:从文本中识别出表现为隐喻的词汇.表1给出了4条包含隐喻词汇的文本样例,其中粗体显示的单词“went(出现)”“kill(终止)”“invested(投入)”“forged(建立)”表示隐喻现象,在句子中体现出了该单词原本所不具有的语义.
Table 1 Examples of Sentences with Metaphor Words表1 包含隐喻词汇的文本样例
隐喻识别方法的发展大致分为3个阶段:
1)早期隐喻识别研究处于特征向量构建阶段.传统隐喻识别方法采用人工编制的特征抽取器,将输入文本转化为特征向量,包括上下文特征[2]、词性特征[3]、属性特征[4]、语音视觉特征[5]等,对在特定上下文中出现的词或短语进行隐喻现象的识别.
2)随着深度学习在自然语言处理中的流行,隐喻识别的研究进入朴素序列建模阶段.该阶段的方法[6-8]一般利用文本表示学习替代人工编制的特征抽取器,将每个词转化为词向量,使用卷积神经网络(convolution neural network, CNN)、 循 环 神 经 网 络(recurrent neural network,RNN)等基础算法搭建编码器,对输入的文本进行序列编码和建模,进而利用全连接网络实现分类.
3)在外部知识融合阶段,研究者发现单纯的神经网络方法受到数据集规模和标注稀疏性问题的制约,由此衍生出探索外部知识结合神经网络模型寻求突破的方法.有研究者探索了基于预训练引入其他任务知识的方式[9-10]和结合粗粒度句法知识的方法[11].
然而,现有的隐喻识别深度学习模型对词法和句法知识的利用不充分,主要体现为2个局限性:
1)忽略了词级别的义项知识.一词多义现象在自然语言处理中是常见的现象和难点.隐喻现象的判定就与词义有关,若一个词在上下文中所表现的含义不为它本义,那么这种现象很可能就是隐喻.现有的隐喻识别深度学习方法没有显式地利用词义项知识,在建模过程中会对区分词义产生困难,从而产生对更大标注数据规模的需求.
2)忽略了细粒度句法知识.句法分析中的关系具有设定完备的标签和方向性,它们是句法知识中的重要组成部分,可以帮助在文本建模时的信息传递.但是,现有的隐喻识别方法舍弃了句法分析中关系的标签和方向性,仅仅利用了粗类别的句法知识,使得模型难以对复杂语境进行建模.
针对2个局限,本文提出基于知识增强的图编码方法(knowledge-enhanced graph encoding method,KEG)来进行文本中的隐喻识别.该方法首先利用预训练语言模型为输入文本构建上下文向量,利用词义项知识训练得到语义向量,拼接形成文本语义表示;然后,根据细粒度句法知识构建信息图,利用图循环神经网络建模输入文本序列,通过边感注意力机制和边绑定权重进行细粒度上下文计算,迭代进行信息传递,得到代表词信息的节点向量和代表句子信息的全局向量;最后,利用条件随机场进行序列建模,计算和解码最佳输出标签序列,实现隐喻识别.
本文将所提出的KEG模型在4个国际公开数据集 VUA-VERB[12],VUA-ALLPOS[12],TroFi[13], MOH-X[5]上分别与3类先进的隐喻识别方法进行了对比.实验结果表明,KEG模型在这4个数据集上的F1值和准确率均获得提升,在图编码方法中结合词义项知识和细粒度句法知识对隐喻识别的性能有明显增强.
本文的主要贡献分为3个方面:
1)提出融合细粒度句法信息的图编码方法,提出边感注意力机制和边绑定权重在图神经网络中进行细粒度上下文计算,并利用句子级别细粒度句法知识构建信息图实现信息传递,进而实现了对复杂语境的高效建模.
2)利用词义项知识学习词义向量,并利用注意力机制将词义向量和上下文向量结合,增强文本的语义表示,降低对一词多义现象建模的困难,以此获得融合了语境信息和词义信息的文本表示.
3)相比于先进的隐喻识别方法,本文提出的KEG模型在国际公开数据集VUA-VERB,VUA-ALLPOS,TroFi,MOH-X上均获得提升.
1 相关工作
本节将从隐喻识别方法和数据集构建这2个方面介绍相关工作.
1.1 隐喻识别方法
早期的隐喻识别方法主要是基于特征向量的方法,依赖人工设计的特征提取器,将文本转化为特征向量,进而针对在特定上下文中的单个词或短语,实现隐喻识别.例如,Dunn[14]设计了文本特征,以回归任务的设定实现句子级隐喻识别.Jang等人[2]提出了一种显式利用对话中的全局上下文来检测隐喻的方法.Klebanov等人[3]利用语义分类来做动词的隐喻分类,从正交的一元语法(1-gram)特征开始,尝试了各种定义动词语义类的方法(语法的、基于资源的、分布的),并测量了这些类对一篇文章中的所有动词分类为隐喻或非隐喻的有效性.Bulat等人[4]提出了第1种基于属性规范的隐喻识别方法.Shutova等人[5]提出了第1种同时从语言和视觉数据中提取知识的隐喻识别方法.Gutiérrez等人[15]探讨文本隐喻的上下文构成在组合分布语义模型框架中的特殊性,并提出了一种将隐喻特征作为向量空间中的线性变换来学习的方法.但是受制于设计特征提取器的复杂性和涵盖面的不完全性,该类方法难以迁移到新数据集上.
随着深度学习在自然语言处理中的飞速发展和广泛应用,隐喻识别的方法逐步转向利用文本表示学习来代替人工设计的特征向量的方法.此外,序列建模的方式也在隐喻识别中逐步流行.本文称该阶段的隐喻识别方法为朴素序列建模的方法.例如,Rei等人[8]提出一种词对级别的隐喻识别方法,提出了第1个用于捕获隐喻含义组合的神经网络架构,并在MOH数据集[16]和TSV数据集[17]上进行测试.Gao等人[7]提出利用双向长短期记忆网络(long short-term memory,LSTM)做序列标注,并结合注意力机制实现词级别分类的文本隐喻识别方法.Mao等人[6]提出结合2种语言学理论的神经网络模型,针对SPV理论[18]设计了基于上下文和目标词的多头窗口注意力机制,针对MIP理论[19]设计了基于词本意和语境含义的表示结合方法.虽然深度学习的方法可以避免大量的手工特征,但是朴素序列建模的方法忽略了在自然语言处理领域中长期积累并被广泛证明有效的各类知识.
近年来,结合知识的方法在隐喻识别中取得了更好的性能.这类方法主要可以分为2种类型:1)通过引入其他任务中的知识来辅助隐喻识别.例如,Chen等人[9]提出利用2个数据集相互微调BERT模型[20],并利用习语检测任务(idiom detection)的标注数据对BERT模型进一步微调.Su等人[10]提出利用孪生Transformer编码器[21]编码文本,并在阅读理解任务的框架下利用预训练的RoBERTa初始化模型权重[22],同时为每一个词级别分类设计查询文本和上下文文本,进而实现隐喻识别.这类方法在ACL2020会议的隐喻识别评测任务[23]中取得了靠前的排名.2)结合粗粒度句法知识的方法.例如,Rohanian等人[11]提出使用多词表达式(multiword experssion,MWE)结构信息结合省略类别的句法信息,利用图卷积神经网络[24]进行编码,从而实现隐喻识别.该类方法没有考虑到词级别义项知识在隐喻识别中的潜力,也忽略了句法信息中的细粒度信息对复杂语境建模的有效性.本文将从这2种类型入手,利用知识增强的图编码方法实现文本隐喻识别.
1.2 数据集构建
数据集构建在隐喻识别中是一个重要的研究方向,分为单语数据集构建和多语数据集构建2个方面.
在单语数据集方面,Steen等人[25]构建了VUAMC数据集,具有万级的标注实例,被用于NAACL2018会议[12]和ACL2020会议[23]的隐喻识别评测任务中.Birke等人[13]基于《华尔街日报》的新闻内容构建了TroFi语料库.Mohammad等人[16]针对动词构建了一个句子级别的隐喻识别标注语料库MOH,Shutova等人[5]在此基础上针对“动词–主语”和“动词–宾语”对进一步标注了MOH-X数据集.Klebanov等人[26]利用240篇非英语母语作者完成的文章作为语料,标注了TOEFL隐喻识别语料库,被用于ACL2020会议[23]的隐喻识别评测任务中.
在多语隐喻识别标注方面,Tsvetkov等人[17]针对“主语–谓语–宾语”三元组构建了一个句子级别的隐喻识别标注的语料库,包含英语训练集和英语、俄语、西班牙语、波斯语测试集.Levin等人[27]在这4个语种上,针对多种词对级别,构建了隐喻识别标注语料库CCM,包括“主语–动词”“动词–宾语”“动词–副词”“名词–形容词”“名词–名词”“名词–复合词”等类型.之后Mohler等人[28]构建了英语、俄语、西班牙语、波斯语的多种词对级别的隐喻识别标注语料库LCC,包括动词、名词、多词表达式、形容词、副词之间的词对.
此外,还有研究者针对隐喻现象中的属性构建了数据集.例如,Parde等人[29]在VUAMC语料库之上,针对有句法关系的词对,标注了规模较大的隐喻重要性(metaphor novelty)语料库.Tredici等人[30]探讨了隐喻性与动词分布特征之间的关系,引入语料库衍生指标POM,标注了某个动词所在的任何表达式的隐喻性上限.
为了与各类先进的隐喻识别方法进行对比,本文采用了被广泛用于实验对比的VUAMC数据集、TroFi数据集和MOH-X数据集进行实验.
2 本文方法
在本节中,我们主要介绍基于知识增强的图编码方法在文本隐喻识别中的应用,将带标签的有向句法信息融入图神经网络中,并提出KEG模型.
2.1 基本定义
本文提出基于知识增强的文本隐喻识别图编码方法.本文用S={s1,s2,…,sn}表示长度为n个词的句子.文本隐喻识别任务是为句子S中的每一个词si计算一个0-1标签yi,表示该词是否为隐喻.
2.2 总体框架
图1所示为KEG模型整体网络结构,主要分为3 个部分:1)文本编码层;2)图网络层;3)解码层.对于一个句子S={s1,s2,…,sn},首先在文本编码层中结合知识转换为上下文向量序列Ec={ec1,ec2,…,ecn}和语义向量序列Es={es1,es2,…,esn},进而将两者进行拼接得到词表示序列E={e1,e2,…,en};接着构建句子S对应的信息图GS,利用图网络层结合图信息进行编码,得到图编码向量序列Q={q1,q2,…,qn};最后利用解码层对图编码向量序列进行解码,获取各个单词对应的预测标签Y={y1,y2,…,yn},其中yi∈{L,M}, L 表示不存在隐喻(literal), M 表示隐喻(metaphorical).
Fig.1 Overall network framework of KEG图1 KEG整体网络架构图
2.3 文本编码层
本文采用的语义表示分为上下文向量和语义向量2个部分.
2.3.1 上下文向量构建
预训练语言模型在自然语言处理任务中十分广泛,取得了良好的成绩和明显的效果.本文采用BERT模型[20]计算上下文向量.BERT模型是一个预训练编码器,由多层Transformer编码层[21]堆叠而成.具体地,对于一个句子S={s1,s2,…,sn},首先进行词块(word piece)划分;然后将词块序列输入 BERT 模型,获得最后一层Transformer编码层的输出向量序列作为词块上下文向量序列;最后取每个词的第1个词块上下文向量作为该词的上下文向量,从而形成句子S的上下文向量序列Ec={ec1,ec2,…,ecn}.
2.3.2 语义向量构建
语义向量构建如图2所示.虽然上下文向量中蕴含了语境信息,但是缺少语义知识.本文利用语义知识对上下文向量进行增强,即利用WordNet中每个词的义项标注信息训练义项向量.本文继承Chen等人[31]的方法,首先利用skip-gram算法[32]训练词向量,使用WordNet中每个义项的自然语言释义文本中词向量的平均值作为义项向量的初始值;然后利用义项 初 始 值 设 计 了 词 义 消 歧(word dense disambiguation,WSD)模块,用其在Wikipedia语料库上产生词义消歧结果;最后修改skip-gram的目标函数,从而重新训练词向量和义项向量.获得预训练的义项向量之后,对句子S中的每一个词si通过词根(lemma)匹配查找所有可能的义项,然后使用注意力机制根据上下文向量计算语义向量,具体的计算公式为
其中,Wc为模型参数, ℓec为上下文向量的维度, αij为义项向量的权重.
Fig.2 Structure of the encoding layer图2 文本编码层结构
其中 [⊕ ]为向量拼接操作.
2.4 图网络层
图神经网络作为编码器在许多自然语言处理中有着很大的应用价值.其在自然语言处理领域的经典应用[11,33-34]中通常使用依存分析(dependency parsing)工具,将句子转化成依存树,以词作为节点,使用粗 粒 度 句 法 知 识(coarse-grained syntactic knowledge)构建信息图,进而指导图神经网络的信息传递.
由于堆叠图神经网络会导致模型参数增加,从而增加过拟合的风险,本文扩展图循环神经网络[35-36]作为图网络层的编码器.一个图循环神经网络以一个图的邻接矩阵、词表示e、 初始时刻的节点向量h0和全局向量g0作为输入,利用多层之间参数共享的特性,经过K次迭代式状态传递,输出最终时刻的节点向量hK和全局向量gK.
同时,针对目前图神经网络方法在自然语言处理应用中仅仅利用到粗粒度句法知识的局限,本文提出将细粒度句法知识(fine-grained syntactic knowledge)与图循环神经网络(graph recurrent neural network)相结合的方法,首先利用边感注意力机制(edge-aware attention mechanism)和边绑定权重(edge-tied weight)进行细粒度上下文计算,接着利用图循环神经网络结合细粒度信息进行K次状态传递.下面,本文将从图构建、细粒度上下文计算和状态传递3个方面介绍图网络层.
2.4.1 图构建
首先为句子S={s1,s2,…,sn}构造一个信息图GS.其中,节点为句子S中的词,边为词之间的关系.本文继承图神经网络在自然语言处理中的经典应用方法[11,33-34],利用句子S的依存树TS作为信息图GS的基本结构,并在图中每个节点上增加了自环 [s elf].但是与传统构图方法不同的是,本文一方面保留了依存树TS中边的方向信息;另一方面在图中加入了代表文本序列顺序的边 [s eq],从而将序列建模信息与句法信息相结合.信息图GS的 邻接矩阵中从节点i到节点j的有向边 类型aij为:
其中 n ull 表示有向边 不存在.
2.4.2 细粒度上下文计算
本节提出利用边感注意力机制和边绑定权重进行细粒度上下文计算,其中结合的细粒度句法知识包括有向信息和句法类别信息.具体地,本节将为句子S中的词si构 造时刻t的传入上下文向量和传出上下文向量.
首先利用基于双线性(bilinear)的边感注意力机制分别计算传入和传出边的权重和.
其中,Win和Wout为模型参数, ℓh为节点向量ht−1的维度,type(i,j)表示信息图GS中有向边 类型,T表示向量和矩阵的转置操作.
接着,时刻t的传入和传出上下文向量和被表示为时刻t− 1的节点向量ht−1与有向边类别权重k的带权和.具体计算公式为
其中初始节点向量h0被初始化为零向量0.
2.4.3 状态传递
本文扩展经典的图循环神经网络[35-36],结合细粒度上下文进行状态传递.本文以时刻t− 1到时刻t为例进行说明.本文提出的图网络层分别采用2个门控循环单元[37](gated recurrent unit,GRU)作为节点向量ht和全局向量gt的更新框架.图3为图循环神经网络的状态传递示例图.
Fig.3 Layer structure of the graph recurrent neural network图3 图循环神经网络层结构
为了更新句子S中词si所 对应的的节点向量,首先将拼接词表示ei、 细粒度上下文向量和、时刻t−1的全局向量gt−1得到含有更新信息的向量,然后 分别计算重置门和更新门的状态,最后计算时刻t的节点向量具体更新过程为:
其中Wr,Ur,Wz,Uz,Wµ,Uµ为模型参数, ⊙ 为向量和矩阵的元素积(element-wise product)操作,初始全局向量g0也被初始化为零向量0.
相似地,本文为了更新句子S对应的全局向量gt,首先将节点向量求平均得到全局更新信息向量dt,然后分别计算重置门和更新门的状态,最后计算时刻t的全局向量gt.具体更新过程为:
最终,经过K次状态传递,图网络层输出最终的节点向量hK和全局向量gK.
2.5 解码层
由于任务目标是对句子S中每一个词进行二分类判断是否隐喻,最终本方法产生一个标签序列本文采用条件随机场(condition random field,CRF)[38]作为解码层.
首先采用前馈网络将图网络层输出的每个词所对应的最终节点向量转化为输出分值向量.解码层中对一个标签序列的评分为
其中Wy和A为模型参数.为了描述得更具一般性和简洁性,本文在序列的首尾加入了表示标签序列开始和终结的特殊标志 [s tart]和 [e nd]作为和.
其中Z为包含所有可能的标签序列的集合.在测试阶段和验证阶段,通过维特比算法(Viterbi algorithm)对输出标签序列进行解码.
3 实验与分析
3.1 数据集
实验中使用的数据集包括NAACL2018评测任务中使用的VUA-VERB和VUA-ALLPOS数据集[12]、TroFi数据集[13]和MOH-X数据集[5].数据统计信息如表2所示,包括数据集中单词(token)总数、数据集中句子总数、标注为隐喻的数量、标注为隐喻的数量占所有标注结果中的百分比、平均每个句子中的单词数.在实验中按照相关工作[6-7,9-12,23]对VUA-VERB和VUA-ALLPOS数据集进行训练集、开发集、测试集划分,并在TroFi和MOH-X数据集上进行10折交叉验证.
Table 2 Statistics of Datasets表2 数据集统计信息
VUA-VERB和VUA-ALLPOS数据集[12]分别源于依照MIP规则[19]对句子为单位所标注的VUAMC阿姆斯特丹隐喻语料库[25],具有超过2000个被标注为隐喻的不同词汇.NAACL2018会议的隐喻识别评测任务[12]首次基于VUAMC语料库设置了VERB和ALLPOS这2个赛道,并分别形成了VUA-VERB和VUA-ALLPOS数据集,并被沿用于ACL2020会议的隐喻识别评测任务[23]中.
TroFi数据集[13]是由包含1987—1989年《华尔街日报》新闻内容的第1版WSJ语料库[39]中的句子组成,标注人员针对每个句子中的动词进行了隐喻标注.TroFi数据集只有50个被标注为隐喻的不同词汇,且其中句子的平均长度是本文所采用的数据集中最长的.
MOH-X数据集[5]来源于MOH数据集[16],其中的句子来自WordNet中义项的例句.在该数据集中,标注人员针对每个句子中的“动词–主语”对和“动词–宾语”对进行了隐喻标注,得到了214个不同的词汇.MOH-X数据集中句子的平均长度是本文所采用的数据集中最短的.
3.2 实验设置及超参数
本文所提出的模型在实验中所使用的超参数均由在VUA-VERB的测试集上针对F1值的格搜索(grid search)得出,具体数值如表3 所示.
模型采用BERT-Large的权值初始化上下文向量构建模块,并在训练时采用学习率热身(warm-up)方法,即总共训练50个回合(epoch),在前5个回合中,模型各部分的学习率从0开始线性增长至最大值,并在之后的回合中线性衰减至0.本文采用AdamW算法[40]对参数进行优化.在后续的实验中,为了保证公平起见,根据开发集上的评测结果选择一组F1值最高的模型参数,然后在测试集上评测使用了这组参数的模型并记录各项指标.为了减少模型中随机种子对结果的影响,后续实验结果表格中的值为3次运行结果的平均值.
Table 3 Hyper-Parameters Used in Our Experiment表3 本文实验中使用的超参数
3.3 评价指标
与相关工作[6-7,9-12,23]相同,本文采用精确率(precision,P)、召回率(recall,R)、F1 值和准确率(accuracy,Acc)作为实验的评价指标.
对测试集中的每一个标注结果,本文提出的模型会对其进行二分类,产生一个预测结果.将标注结果与预测结果一致,且为隐喻的词数量记为TP,不为隐喻的词数量记为TN;标注结果与预测结果不一致,且预测结果为隐喻的词数量记为FP,不为隐喻的词数量记为FN.则精确率P、召回率R、F1值、准确率Acc分别计算得到:
3.4 KEG与SOTA方法比较
为了验证本文提出的KEG模型的有效性,本文设置3组对比模型,包含了3类SOTA方法.
第1组是朴素序列建模的方法,其中的模型均未采用词级别义项知识或句子级别细粒度句法知识,具体模型为:
1)RNN_ELMo[7]将GloVe向量[41]和 ELMo 向量[42]拼接作为词级别特征,使用双向LSTM进行编码,对输出的隐状态采用softmax分类器进行序列分类.
2)RNN_BERT[20]依照RNN_ELMo的序列分类框架,将BERT-Large模型后4层输出向量作为特征.
3)RNN_HG[6]在 RNN_ELMo 模 型的基础 上 ,在利用双向LSTM对词级别特征进行编码之后,将双向LSTM输出的隐状态与GloVe向量拼接,然后采用softmax分类器进行序列分类.
4)RNN_MHCA[6]在 RNN_ELMo模型的基础上强化了softmax分类器的输入,利用多头注意力机制为双向LSTM输出的隐状态计算了上下文向量,并将它们拼接后输入softmax分类器.
第2组是采用其他任务的知识来辅助增强隐喻识别的方法,具体模型为:
1)Go Figure![9]是在 ACL2020 会议的隐喻识别评测任务[23]中VUA榜单排名第2的模型,采用基于微调预训练BERT模型的多任务架构,将习语识别作为辅助任务,引入其他修辞语言(figurative language)识别任务的知识,通过学习到更具一般性的BERT参数增强隐喻识别的效果.
2)DeepMet-S[10]是一个基于 RoBERTa[22]的阅读理解(reading comprehension)式隐喻识别模型,其多模型集成(ensemble)的结果在ACL2020会议的隐喻识别评测任务[23]中VUA榜单排名第1.DeepMet-S将需要被识别的句子作为上下文,为句中每一个需要进行隐喻识别的词建立了问题提示(prompt),利用其他任务的知识进行隐喻识别.
第3组是结合粗粒度句法知识的方法,具体为:
1)GCN_BERT[11]首先利用预训练BERT模型对词进行编码,然后利用粗类别依存分析结果结合注意力机制为句子构建了仅含无类别边的信息图,并采用图卷积神经网络[24]进行编码.
2)MWE[11]在GCN_BERT的基础上,利用额外的图卷积神经网络[24]编码了属于粗类别句法知识的多词表达式结构信息,并与原网络的编码进行拼接.
表4展示了本文提出的KEG模型与上述3组SOTA模型的对比结果.
在第1组对比实验中,与朴素序列建模方法进行比较,KEG模型在4个数据集上均取得了更高的F1值,在除VUA-ALLPOS数据集之外也取得了更高的准确率.相比于RNN_HG和RNN_MHCA,在F1值方面分别提升了 8.1,1.2,4.3,1.8个百分点.这体现了知识增强的图编码方法相对朴素序列建模方法有助于提升隐喻识别的性能.朴素序列建模方法仅依靠词向量将文本转化为输入向量,双向LSTM进行序列建模,会出现长距离依赖关系难以捕获的问题.而KEG不仅丰富了输入向量,也利用句法知识和信息图能更直接捕获到文本中的依赖关系,是朴素序列建模方法不具备的优势.
Table 4 Experimental Results of KEG and SOTA Methods表4 KEG与SOTA方法对比的实验结果 %
在第2组对比实验中,还比较了采用其他任务知识来增强隐喻识别的方法.从实验结果来看,第2组中结合知识的方法在VUA-VERB上明显优于第1组中的朴素序列建模方法.此外,相比结合习语识别进行多任务建模的Go Figure!模型,KEG在VUA-VERB和VUA-ALLPOS上的F1值分别提升了1.4和2.1个百分点.相比于阅读理解架构的DeepMet-S,KEG在VUA-VERB和VUA-ALLPOS上的F1值分别提升了1.7和2.0个百分点.这表明结合知识是可以有效提升隐喻识别的性能,而且本文提出的KEG引入词级别和句子级别2方面的知识在VUA-VERB和VUAALLPOS数据集上可以取得更优的效果.
在第3组对比实验中,比较了结合粗粒度句法知识的方法.KEG在TroFi和MOH-X上均取得了更优的F1值和准确率.MWE的各项指标均高于GCN_BERT.相比于MWE模型,KEG分别在F1值方面提升了3.9和1.6个百分点,在准确率方面提升了2.7和1.1个百分点.MWE和GCN_BERT均基于堆叠的图卷积神经网络进行隐喻识别,仅利用句法分析中的无向关系构建信息图,还舍弃了细粒度的类别信息.本文提出的KEG扩展了图循环神经网络架构进行图编码,利用循环迭代的方式达到堆叠图卷积神经网络的目的,包含更少的参数,降低了过拟合的风险.此外,KEG可以建模细粒度的句法知识,对信息的利用率更高.KEG还利用词级别义项知识丰富了输入向量,是MWE所不具备的优势.
综上可见,本文提出的KEG模型优于对比的3类SOTA方法,本文提出的词级别义项知识和细粒度句法知识应用于隐喻识别任务具有一定的优越性.
3.5 状态传递次数K对比分析
状态传递次数K是本文提出的KEG模型中的一个重要超参数.为了验证状态传递次数对实验结果的影响,在3.4节的实验基础上,本节设置不同的状态传递次数K值,得到不同的实验结果,如表5所示:
Table 5 Experimental Results With Different State Transition Times表5 对比不同状态传递次数的实验结果%
实验结果表明,当状态传递次数K从1增大到3时,在4个数据集上的F1值和准确率均有所提升,其中F1值提升了9.1,3.0,5.2,3.0个百分点,准确率提升了 4.2,1.1,1.6,3.5个百分点.增大状态传递次数K可以使模型学习到句子中距离更长的依赖关系,这证明了在一定范围内增加状态传递次数有利于提升模型的性能.当状态传递次数K从3增大到5时,在4个数据集上的F1值和准确率并没有观察到明显提升.而且增大状态传递次数K会导致模型运行所需时间变长.所以,实验中的状态传递次数K并不是越大越好.由于在4个数据集上,状态传递次数K= 3时取得了较优的F1值和准确率,并且在K> 3时评价指标均无明显提升.考虑到模型运行时间,本文在所有数据集上统一选择了状态传递次数K= 3时的实验结果作为KEG性能的对比和分析.
3.6 上下文向量对比分析
本文提出的KEG方法中构建了上下文向量.为了验证上下文向量对实验结果的影响,本文在KEG的基础上分别使用word2vec[32](记为KEG-word2vec),GloVe[41](记为KEG-GloVe),ELMo[42](记为KEG-ELMo)算法训练的词向量替换上下文向量,与使用BERT构建上下文向量的KEG进行对比,实验结果如表6所示.
Table 6 Experimental Results of Constructing Word Vectors and Context Vectors表6 词向量和上下文向量构建方法的实验结果 %
根据实验结果,使用BERT构建上下文向量的KEG相对于使用word2vec训练词向量的方法,在4个数据集上均有性能提升,F1值提升了5.2,1.4,2.9,4.3个百分点,准确率提升了 4.4,2.2,1.8,3.0个百分点.原因在于,KEG-word2vec通过静态查表的方式将每个词转化为对应的词向量,同一个词在不同上下文中产生的词向量相同;而KEG则利用BERT中的编码器动态地根据上下文的内容实时计算一个向量表示,具有更强的编码能力.
对比KEG-word2vec和KEG-GloVe可以发现,这2个模型在4个数据集上的性能相差不多,F1值和准确率的差距均不超过0.5个百分点.经过分析,这2个模型相似,都采用了静态查表转化词向量的方式,产生相同维度的词向量,并在训练过程中对词向量进行微调.
若将BERT方法替换为ELMo方法构建上下文向量,在4个数据集上的性能有所下降,F1值下降了3.0,0.4,1.5,1.5 个百分点,准确率下降了 1.9,1.1,0.6,0.9个百分点.KEG与KEG-ELMo相比,使用的编码器参数更多,产生的上下文向量维度更大,进而有利于对上下文建模.
3.7 词级别义项知识对比分析
为了验证词级别义项知识对实验结果的影响,本文在KEG的基础上去掉利用词级别义项知识构造的语义向量(记为KEG-NOS),实验结果与KEG进行对比,如表7所示:
Table 7 Experimental Results of KEG With and Without Lexicon Word Sense Knowledge表7 KEG有无词级别义项知识的实验结果 %
从表7分析可知,在KEG基础上去掉利用词级别义项知识构造的语义向量,在4个数据集上都出现了性能下降,其中F1值下降了 8.4,2.7,4.4,3.0个百分点,准确率下降了 4.0,0.7,0.8,2.8个百分点.由此可见,引入词级别义项知识有助于隐喻识别.其原因在于,词级别义项知识归纳了每个词常用的几种义项,并通过训练词义向量的方式,将常用的义项编码成向量.进而通过注意力机制在当前上下文环境下对各义项进行加权,利用义项知识对上下文表示进行补充,具备更强的语境表现力,从而有助于隐喻识别的性能提升.
3.8 细粒度句法知识对比分析
本文提出的KEG方法中为了指导图神经网络的信息传递,引入了细粒度句法知识来构建信息图.为了验证细粒度句法知识对实验结果的影响,本文设置了2组对比实验:在第1组中,在KEG的基础上,采用图神经网络经典应用[11,33-34]中利用粗粒度句法知识的方法构建信息图(记为KEG-CSK);在第2组中,采用无向完全图(undirected completed graph)作为信息图(记为KEG-UCG),实验结果对比如表8所示.
由表8可见,对比KEG-CSK与KEG,利用粗粒度句法知识的方法构建信息图会在4个数据集上造成性能下降,其中F1值下降了 8.0,3.8,4.8,3.6个百分点,准确率下降了 5.4,2.6,1.5,3.3个百分点.通过分析,相对于KEG-CSK,本文提出的KEG中利用细粒度句法知识涵盖了更为细致的信息,即有向边和细粒度的边类型标签,并且通过KEG中的边感注意力机制和边绑定权重实现了在每次状态传递中有向边贡献的计算,进而从出、入2个视角分别计算了上下文表示向量,具有更强的语境建模能力,有助于提升隐喻识别性能.
Table 8 Experimental Results of KEG With and Without Fine-Grained Syntactic Knowledge表8 KEG有无细粒度句法知识的实验结果 %
另一方面,通过对比KEG-CSK和KEG-UCG可以发现,利用句法知识构建信息图比直接利用完全图作为信息图时的性能更好,F1值提升了1.6,0.9,0.6,1.0个百分点,准确率提升了 0.7,0.8,0.7,1.2个百分点.经过分析,利用完全图作为信息图时,由于没有考虑到不同边的贡献可能不同,经过多次状态传递之后,各点的节点向量会趋于相似,丧失了其表示的独立性.利用粗粒度句法信息构建信息图以先验知识指导的形式对完全图进行剪枝,删除了在状态转移中作用小的边,保护了节点向量的独立性,进而产生了更好的性能.这证明了计算信息图中边贡献的必要性和融入句法知识对性能提升的有效性.
3.9 解码方式对比分析
本文提出的KEG方法中采用了条件随机场作为解码层.为了验证解码方式对实验结果的影响,本文按照文献[7]中提出的位置分类架构,在KEG的基础上,将一个序列的解码拆分成多次给定位置的预测(KEG-C).具体地,在单次给定位置的预测中,首先在模型的文本编码层加入位置向量,并在解码时采用注意力机制,针对给定位置计算了所有词的最终节点向量的加权和,进而利用类似式(19)的方式计算输出分值进行训练和测试.本节中将预测给定位置的KEG-C与序列解码的KEG进行对比,对比实验结果如表9所示:
Table 9 Experimental Results of Two Decoding Methods表9 2种解码方式的实验结果%
从表9可以看出,利用序列解码的KEG比预测给定位置的KEG-C在4个数据集上的性能方面稍显优势,F1 值提升了 0.5,0.6,0.7,0.2个百分点,准确率提升了 0.2,0.6,0.3,0.1个百分点.经过分析,在训练时,KEG利用序列解码的方式将序列标签作为整体进行优化,将多个位置的标签监督信号聚合之后进行梯度下降;而KEG-C中的预测给定位置的方式在优化过程中显得较为分散,所以可能需要更长的训练时间才能达到与KEG相似的性能.但是由于使用的数据集规模相同,仅仅延长训练时间可能会增大模型过拟合的风险.因此,在这种情况下,采用序列解码的方式有助于模型学习到更健壮的监督信号,从而有助于隐喻识别.
4 结 论
本文提出一种基于知识增强的文本隐喻识别图编码方法.该方法包含3个部分,分别是文本编码层、图网络层和解码层.在文本编码层,利用了预训练语言模型计算输入文本的上下文向量,与通过skipgram和词义消歧共同训练得到的词义向量进行拼接,融合了词义项知识,增强了语义表示.在图网络层,相比于传统图神经网络建模文本的方法,构造了引入细粒度句法知识的信息图,并设计了边感注意力机制和边绑定权重计算细粒度上下文;结合图循环神经网络进行迭代式状态传递,并通过多层之间参数共享的特性,降低了模型参数,降低了过拟合的风险,有助于有效建模复杂语境.在解码层,利用了条件随机场对序列标签进行计算.实验证明,本文提出的方法在4个国际公开数据集上性能均有提升.
作者贡献声明:黄河燕指导并修改论文;刘啸提出了算法思路和实验方案,完成实验并撰写论文;刘茜提出算法和方案指导意见并修改论文.