基于GCN和门机制的汉语框架排歧方法
2024-05-09游亚男苏雪峰闫智超孙民帅
游亚男,李 茹,2,苏雪峰,3,闫智超,孙民帅,王 超
(1. 山西大学 计算机与信息技术学院,山西 太原 030006;2. 山西大学 计算智能与中文信息处理教育部重点实验室,山西 太原 030006;3. 山西工程科技职业大学 现代物流学院,山西 晋中 030609)
0 引言
汉语框架网(Chinese FrameNet,CFN)[1]是以Fillmore的框架语义学[2]为理论基础,以汉语真实语料为依据,参照伯克利大学的框架语义知识库(FrameNet,FN)[3]构建的汉语词汇语义知识库,包括框架库、句子库和词元库,其中相关术语如表1所示。汉语框架语义分析是基于汉语框架网的标注资源提出的任务[5],而汉语框架排歧作为汉语框架语义分析中的重要研究任务,其正确与否直接关系到汉语框架语义分析的准确性。
汉语框架排歧任务即给定一个句子和一个目标词以及该目标词在CFN中能激起的所有框架,需根据目标词的上下文推断出该目标词在当前语境下所匹配的框架。如表2所示,在CFN中,目标词“炒”可以激起两个框架“解雇”“烹饪”,“解雇”表示雇主终结与雇员之间的雇佣关系;“烹饪”表示烹调者对食物进行加工。在s1中,根据上下文信息可以判断“炒”激起的框架为“解雇”,而s2中“炒”激起的框架为“烹饪”。
目前大多数研究将框架排歧看作多分类任务,主要有两类方法: 一种是基于传统机器学习的方法,该类方法使用自然语言处理工具分析句子,人工抽取特征,通过机器学习方法训练模型。该类方法得到的特征矩阵维度大,特征稀疏,并且特征之间没有关联,模型难以在不同的树结构上并行计算,计算效率低下。另一种是基于深度学习的方法,该类方法实现了自动学习特征,避免了特征维度过高,有效地融合了上下文信息,在一定程度上解决了特征之间无关联的问题,提升了框架排歧的准确率。已有工作将依存信息集成到深度学习的模型中来进一步提高模型性能,取得了一定的效果。但这些方法仍然存在以下不足: ①在框架排歧中,不同目标词在上下文中关注的词应该有所不同,但现有方法在进行向量计算时并没有考虑这一点。如在表2的句子s2中,“炒”和“迎接”是两个目标词,在对它们进行框架排歧时希望模型得到的句子表示是不同的;②已有方法只考虑句法上与目标词相邻的词,忽略了句法不相邻词对目标词的影响。
本文首先使用BERT[6]进行上下文编码,利用哈工大语言技术分析平台(LTP)[7]进行句法分析以此构建依存图。然后通过GCN对依存图中的信息交互进行建模,充分利用GCN对图的特征提取能力。针对问题①,考虑到BERT得到的隐层向量并不是特定于目标词的,在输入GCN更新节点的过程中会保留与目标词无关的冗余信息,本文引入门机制,计算一个特定于目标词的门向量,并将门向量应用于每个GCN层,改变上下文的表示,得到特定于目标词的隐层向量来过滤无关特征;针对问题②,本文认为句法不相邻词对于目标词的表示学习具有指导作用,因此本文提出依据句法信息为句子中的每个词分配一个分数,明确量化其对目标词进行框架排歧的贡献,注入模型,以此来约束模型的学习,改进向量表示。
本文的贡献之处包括:
(1) 提出一种基于GCN和门机制的向量调整方法,生成特定于目标词的向量表示,过滤与目标词无关的噪声信息。
(2) 引入一种基于依存图的约束机制来获取句子中每个词相对于目标词的重要性得分,注入模型,作为计算隐层向量的训练信号,改进向量表示。
(3) 在数据集CFN、FN 1.5和FN 1.7上进行了详细的对比实验,实验结果表明,本文方法提高了框架排歧的准确率。
1 相关工作
著名语言学家Fillmore基于认知角度提出了框架语义学。此后,SemEval 2007语义评测任务[8]提出了框架语义结构抽取任务,包括目标词识别、框架识别和语义角色标注等任务。框架排歧作为框架识别的子任务也受到了广泛关注。
早期的框架排歧模型采用传统的机器学习方法,人工构建特征,使用条件随机场、最大熵、支持向量机等模型来建模。李济洪等人[9]使用开窗口技术和BOW策略抽取了词包等若干特征,用最大熵模型建模,特征信息稀疏。李国臣等人[10]提出了特征模板的自动选择算法,通过打分机制将得分高的特征加入特征模板,使用最大熵模型来进行框架排歧。这些传统的机器学习算法,由于人工选择了大量特征导致空间维度过高,特征稀疏,费时费力。
随着深度学习的发展,近年来有许多研究采用神经网络模型来进行框架排歧。Hermann等人[11]使用WSABIE算法将目标词以及框架表示学习映射到同一空间,通过计算它们之间的距离进行框架识别。赵红燕等人[12]提出了一种通用的框架识别模型,通过使用DNN架构来学习目标词的上下文特征进行框架识别,对于未登录词元和歧义词元的框架识别有较好的泛化能力。张力文等人[13]针对人工抽取特征使得特征空间维度过高和特征之间缺乏关联性的问题,在词语分布式表征的基础上提出了基于距离和词语相似度矩阵的框架排歧模型,证明词语分布式表征对框架排歧的有效性。Botschen等人[14]使用Word2Vec训练词向量表征上下文来进行框架识别。侯运瑶等人[15]提出了一种基于Hinge-loss的框架表示学习算法,通过计算目标词表示和框架表示之间的相似度来进行框架排歧,相较之前的工作有了明显的性能提升。郭哲铭[16]将BERT与Bi-GRU结合起来编码上下文信息,使用注意力机制融入局部和全局信息来进行框架识别,在CFN和FN上提高了框架识别的准确率。Su等人[17]通过融入框架关系和框架定义来进行框架识别。但以上工作都不是特定于目标词生成的向量表示,会保留与目标词无关的冗余信息;并且未充分考虑句法信息的重要性。在框架语义角色标注中,大多句法信息是目标词的语义角色,对于目标词的所属框架选择有着重要作用。Li等人[18]使用层次条件随机场(T-CRF),将框架识别视为依存树结构上的标注任务。王智强等人[19]使用T-CRF模型建模,选取词、词性和不同类型的依存特征进行框架语义角色自动标注。但以上模型难以在不同的树结构上并行计算,计算效率低下。近年来,图卷积网络(Graph Convolutional Networks,GCN)[20]的兴起为依存树的构建提供了新的思路。GCN可以有效存储任何结构的依存树信息,并且能够并行计算,计算效率得到了显著提升。Zhang等人[21]将BiLSTM和GCN结合起来编码句子中的句法信息,用来解决关系抽取任务,证明了GCN编码依存树的有效性。
因此本文提出了基于GCN和门机制的框架排歧模型生成特定于目标词的向量表示,并利用句法信息构造依存图,使用一种基于依存图的约束机制来约束模型学习,改进向量表示。相比基于上下文生成的向量表示,使用目标词附近的局部信息,句法信息对目标词更为重要。实验结果表明,模型在CFN和FN框架排歧数据集上取得了一定的性能提升。
2 基于GCN和门机制的框架排歧模型
在框架排歧中,给定句子s: {c1,…,ci,…,cn}和目标词c′(可能由多个字组成),对于目标词c′,它所能激起的框架F={f1,…,fg}为来自CFN的框架库中,框架排歧任务就是在候选框架列表{f1,…,fg}中为c′在当前语境句子s下找到最合适的框架f,其形式化描述如式(1)所示。
(1)
本文提出了一种基于GCN和门机制的框架排歧模型,模型整体架构如图1所示。
该模型是针对给定目标词和包含该目标词的句子,通过模型训练得到目标词的表征,进行框架排歧。模型的整体包括编码层、融合门机制的图卷积网络层(GGCN层)、分类层三个模块。本文通过预先训练的BERT来获取基于上下文的词表征,使用LTP进行句法分析,以此构建依存图,将图和词表征输入GCN来更新图节点的信息,为每个GCN层增加一个门,以过滤与目标词无关的信息;并依据依存图计算句子中每个词到目标词的距离,取其负值作为每个词基于句法的得分,输入模型,监督模型的训练,改进向量表示;将模型最终得到的目标词表征,通过Softmax函数,得到一个向量表示,向量每个维度上的值为候选框架的概率分布,选择概率值最大的框架作为正确框架。
2.1 编码层
2.1.1 序列表示模块
BERT是一个大规模的预训练模型,以无监督的方式对大规模未标记的语料库进行训练,能够大规模学习语言中隐含且丰富的文本语义。其体系结构是一种多层双向Transformer 编码器,相比传统的Transformer,其拥有双向编码能力,可以更彻底地捕捉上下文信息,获得动态词向量表示,具有更深的层数和并行性,进一步增加词向量模型泛化能力,充分提取到了字符级、词级、句子级和句间等特征。因此本文使用BERT作为编码层,对预训练的BERT进行了微调来适应框架排歧任务。
将“[CLS]+s: {c1,…,ci,…,cn}+[SEP]”作为模型输入,编码层将输入中的每一个字符ci编码成字符嵌入Etoken(ci)、分段嵌入Eseg(ci)和位置嵌入Epos(ci)三个向量,将三个向量相加输入BERT预训练模型得到输入的BERT向量X∈Rn×d,如式(2)、式(3)所示。
Ei=Etoken(ci)+Eseg(ci)+Epos(ci)
(2)
X=BERT(E0,…,Ei,…,En+1)
(3)
Token Embedding: 模型通过查询向量表将输入中的每个字符转换为一维向量。
Segment Embedding: 框架排歧只输入模型一个句子,Segment Embedding全设为0。
Position Embedding: Transformers无法编码序列的顺序性,而文本中不同位置的字符携带的信息是不同的,应该用不同的向量表示,通过让BERT模型为每个位置学习一个位置嵌入来编码序列的顺序性。
本文采用对应于目标词的BERT向量(如果目标词有多个字,将其平均)作为目标词的表示zt,如式(4)所示。
zt=avg(xj,…,xk)
(4)
2.1.2 依存图抽取模块
从图2中可以看出,与目标词有依存句法关系的词往往是目标词的框架元素,对目标词所属框架的确定起重要作用。目标词“炒”的直接依存信息主语(SBV)、状语(ADV)和宾语(VOB)分别对应框架“烹饪”的框架元素“烹调者(cook)”、“方式(manr)”、“食物(food)”等,但如果只考虑直接依存关系,很可能会忽略目标词的一些有用的信息,例如,“迎接我们的到来”也是“烹饪”的框架元素。因此本文采用多层GCN来聚合直接或间接依存信息。
图2 “炒”的依存关系和角色标注
本文直接使用哈工大的LTP工具包来进行分词和句法分析,利用得到的分词信息将BERT得到的字向量做平均得到词的表示,作为GCN的节点输入。
2.2 融合门机制的图卷积网络层
从2.1.2节中可知,框架排歧任务与目标词的依存句法信息密切相关。之前使用依存信息的框架排歧工作都是将依存特征通过拼接的方式融入,特征不存在时用0向量表示,得到的特征向量维度高且稀疏。为了更好地融入目标词的依存信息,本文引入了图卷积网络(GCN),它是卷积神经网络(CNN)的一种改编,完善了CNN在非矩阵结构数据上的不适用性。GCN在进入下一层非线性变换之前,每个节点先将其自身的邻居节点的信息通过非线性方式聚合,相比BiLSTM和Word2Vec只利用了词周围的信息,GCN采用多层卷积,节点不仅利用了自身邻居节点的信息,同时也聚合了邻居的邻居节点信息,相比之下感受野更广,能够利用更大范围的信息。本文使用L层GCN来更新依存图的节点信息并抽出聚合依存句法信息的目标词表示。
首先定义无向图G=(V,E)作为句子s的依存图,其中V={v1,…,vm}是图节点的集合,是将句子s经过LTP分词得到的分词结果。E是图边的集合,(vi,vj)∈E表示第i个词和第j个词之间存在有向句法弧,为了实现信息的反向传播,向E中添加一条与有向句法弧方向相反的边(vj,vi),同时为了利用节点自身的信息,对所有的节点vi∈V向E中添加一个自循环,即(vi,vi)。完成构图之后,使用神经网络模型GCN(Z,A)对图结构进行编码。首先获得节点的特征矩阵Z并计算图的邻接矩阵A。利用V将经过BERT得到的字向量做平均作为图节点的特征矩阵Z∈Rm×d;通过E构建邻接矩阵A∈Rm×m,Ai,j∈{0,1}表示第i个词和第j个词之间是否存在边。
GCN层的计算如式(5)所示。
(5)
(6)
其中,W(l)为第l层的权值矩阵,用于将节点的特征表示映射到相应的隐层状态。W(l+1)为第l+1层的权值矩阵,用于将节点的隐层表示映射为相应的输出。
2.3 分类层
2.3.1 基于依存图的约束机制
其中,Wz和Wo是权值矩阵。
2.3.2 分类层
(11)
将z′输入全连接层进行分类,通过Softmax层计算各个候选框架概率值,如式(12)所示。
p=Softmax(z′)
(12)
框架排歧为多分类任务,所以模型采用交叉熵损失函数作为分类损失,如式(13)所示,其中preal表示真实样本类别分布。
CE(preal,p)=-∑preallog(p)
(13)
最后,本文采用式(10)和式(13)组合作为模型整体的损失函数来训练模型,其中,α为权重系数。计算如式(14)所示。
Loss=CE(preal,p)+αKL(S,Q)
(14)
3 实验设计与分析
3.1 实验数据
本文使用的框架排歧数据来源于CFN数据库(1)http://sccfn.sxu.edu.cn/portal-en/frame.aspx中抽取出来的88个有歧义的词元,共10 012条数据,涉及到90个框架,训练集和测试集、验证集按8∶1∶1的比例分配。同时为了验证模型的可行性和有效性,本文在FN 1.5和FN 1.7数据集上进行了实验。数据分布如表3所示。
表3 数据集分布
3.2 实验指标
本文采用准确率作为评价指标,计算如式(15)所示。
(15)
其中,TP表示排歧正确的例句数,ALL表示排歧的总例句数。
3.3 实验环境
本文实验环境如表4所示。
表4 实验环境
3.4 参数设置
在BERT中,隐层维度为768维,最大序列长度为512,Batch_size设为4,Learning_rate为1e-5,Dropout设为0.1,GCN隐层维度为768维。
3.5 实验结果与分析
本文分别在CFN和FN数据集上进行了实验,并对GCN的层数、μ和α进行了分析。
首先在CFN数据集上进行了实验,本文设置了如下几组实验: (1)Hermann,et al、Botschen,et al、C&W_FR和BTGAT四组对比实验;(2)BiLSTM框架排歧模型;(3)使用BERT模型作为基线模型;(4)BERT+GCN(BGCN)模型;(5)使用门机制的BERT+GCN+GATE(BGCNG)模型;(6)使用约束机制的BERT+GCN+CON(BGCNC)模型;(7)使用门机制和约束机制的BERT+GCN+GATE+CON(BGCNGC)模型。实验结果如表5所示,其中C&W_FR是侯运瑶等提出的框架排歧模型,BTGAT是郭哲铭提出的模型。
表5 CFN实验结果
表5中的实验结果显示,本文提出的方法优于之前的方法,相比Hermann,et al.和Botschen,et al.的方法分别提升了12.49%和8.09%,相比C&W_FR提升了3.45%,上述方法都是通过现有数据集学习到的框架表示,计算其与上下文表征的相似度,数据集不均衡,学到的框架表示较差,并且未利用大规模预训练模型,上下文特征抽取能力较弱。BTGAT模型使用BERT作为编码器,BiGRU强化上下文语义表示,用全局和局部注意力机制抽取目标词的全局信息和局部信息,BGCN相比BTGAT提升了0.47%,证明句法信息相比目标词局部信息和全局信息对于框架排歧更重要。从BERT和BiLSTM模型的实验结果可知,BERT相比BiLSTM可以更充分地利用上下文信息,具有更强的信息表达能力。BGCNG通过增加门机制,强化对目标词重要的信息,降低冗余信息的影响,在一定程度上提升了框架排歧的准确率;BGCNC模型加入约束机制来监督模型学习,充分利用目标词和句法信息,相比BGCN,准确率提升了0.5%;BGCNGC同时加入门机制和约束机制,相比基线取得了较大的性能提升。以上结果证明了本文提出模型对汉语框架排歧的有效性。
为了验证模型的有效性和通用性,本文还在英文数据集FN 1.5和FN 1.7上进行了实验,并与之前的方法进行了对比,实验结果如表6所示。KGFI是Su提出的模型,将框架定义和框架元素通过框架关系构图,利用GCN融入到框架表示当中来进行框架排歧,并采取了框架过滤的规则,本文不考虑框架过滤规则。从表中可知,本文提出的模型在数据集FN 1.5和FN 1.7上都有所提升,并且在不利用外部知识的情况下在两个数据集上都超过了当前最新工作KGFI,在FN 1.5上提升了0.33%,在FN 1.7上提升了0.21%。
表6 FrameNet实验结果 (单位: %)
本文在数据集CFN、FN 1.5和FN 1.7 上探讨了GCN层数、μ、α对实验结果的影响。
依据图3可知,对于数据集CFN、FN 1.5和FN 1.7来说,GCN的层数为2时,取得的结果最好。经分析,当GCN层数为1时,目标词只聚合了自身邻居节点的信息,只利用了一阶依存信息,而对于目标词来说,有的二阶依存信息对其框架的选择也是必不可少的,相比之下两层GCN不仅聚合了自身的邻居信息,同时也融入了邻居的邻居信息,充分利用了二阶依存信息。但随着GCN层数的增加,在三个数据集上都表现出了下降的趋势,分析原因主要是因为GCN每次卷积都是节点和周围信息聚合的过程,随着GCN层数的增加,词节点聚合的信息越来越多,到最后会使得每个节点的嵌入表示变得非常相近,而框架排歧是针对句子中的某个词来排歧,并非在句子层面,给框架排歧带来了噪声干扰。
图3 GCN层数对排歧性能的影响
本文设置了线性插值层来插值BERT和GCN的输出,插值参数μ控制BERT和GCN的权重,为了探究μ对整体模型的影响,在数据集CFN、FN 1.5和FN 1.7上对μ进行不同设置,结果如图4和图5所示。图4为10个epoch下CFN数据集上的μ参数分析,从图中可知,随着μ的增加,准确率越来越高,当μ为0.7时,模型效果达到最佳,表现效果好于仅使用BERT预测(μ=0)和GCN预测(μ=1);μ>0.7时准确率开始下降,模型收敛相对较慢;当μ=1时,GCN后直接计算损失、梯度下降,模型收敛速度变慢。
图4 μ对CFN排歧性能的影响
图5 μ对FN排歧性能的影响
图5为15个Epoch下FN数据集上的μ参数分析,从图中可知,在FN数据集上,当μ为0.6时,模型效果达到最佳。从实验数据中可知,不同的数据集,μ的最佳值不同。
图6、图7为α的不同设置下的实验结果,从图中可知,当α取0.2时,准确率达到最优。当α取0.1到0.3时相对比较平稳,随着α的增大,准确率下降。
图6 α对CFN排歧性能的影响
图7 α对FN排歧性能的影响
3.6 案例分析
本节从框架排歧数据中选取了一条数据“现在全世界每年黄金供需缺口为一千吨,需要开采新矿增加产量才能缓解。”进行分析,通过对门权重进行可视化验证加入门机制的有效性。在标准化之后,绘制每个单词的值,如图8所示。其中横坐标对应于句子的分词结果,纵坐标对应句子中的两个目标词“为”和“增加”。通过分析可知,目标词为“为”时,“供需”“缺口”“一千”“吨”的权重较大,当目标词为“增加”时,“新矿”“增加”“产量”权重较大,由此可见门机制的加入,强化了对目标词重要的信息,降低了噪声信息的干扰。
图8 门的可视化
4 总结
本文提出了一种基于GCN和门机制的框架排歧模型,该模型通过GCN将句法信息融入目标词的表示,使用门机制过滤与目标词无关的信息,并提出一种基于依存图的约束机制来监督模型学习,改进向量表示,框架排歧性能得到了提升。目前汉语框架排歧还存在一定的挑战,如现有框架排歧数据规模有限,并且存在数据不平衡问题,对于出现频率低的框架很难通过有监督的模型训练得到好的性能,如何更好地解决数据不均衡性,可否将元学习[22-25]方法应用到框架排歧上,以及模型对领域外的数据是否同样具有通用性还有待研究与解决。