APP下载

基于滑动窗口注意力网络的关系分类模型

2022-06-29潘理虎陈亭亭闫慧敏赵彭彭张英俊

计算机技术与发展 2022年6期
关键词:滑动语义局部

潘理虎,陈亭亭,闫慧敏,赵彭彭,张 睿,张英俊

(1.太原科技大学 计算机科学与技术学院,山西 太原 030024;2.中国科学院 地理科学与资源研究所,北京 100101)

0 引 言

随着计算机技术的快速发展,大量的互联网数据不断产生,这些数据通常以非结构化形式存在,因此如何快速高效地提取到结构化的语义信息吸引了研究者们的注意。实体关系抽取作为一种信息抽取任务,其目标是在给定一个实体对及其对应的文本描述条件下提取出它们的语义关系,常用的方法有监督学习、半监督学习、远程监督和无监督学习四大类。该文的工作重点为第一类。

传统的基于统计方法的关系分类依赖人工特征提取,导致模型不能够学习到充分的语义信息,且容易造成误差传播。近年来,基于深度学习框架的神经网络模型成为实体关系抽取的新方法,并取得了显著的效果。以CNN、RNN为主的编码器作为神经网络的主体部分,主要用于提取文本中的上下文特征。考虑到对于一段文本,不同的成分会对语义提取有不同的贡献,于是注意力机制(Attention)成为研究者们关注的焦点。

以RNN和CNN为代表的模型主要用于对自然语言进行语义特征提取。例如,以RNN为代表的方法有LSTM、GRU等,其将文本视为序列,并串行地对每个单词或字符进行表征,获得具有时序特征的文本表示。然而对于过长的句子,RNN可能面临梯度消失或梯度爆炸等问题,虽然LSTM可以进一步缓解这一类问题,但其通常只能获得文本的全局特征信息。相比之下,CNN则通过滑动窗口的方式可并行地对每个感受野区域进行卷积和池化,因此CNN被认为可以有效加快对文本特征提取的效率,但是CNN普遍存在的问题是其提取的特征通常是离散的,且各个感受野是相互独立的,因此不能很好地处理全局信息。

注意力机制在自然语言处理领域内的有效应用通常结合RNN或CNN对特征进行加权来实现,使得模型能够更加关注更重要的语义成分。但现如今传统的方法均仅是将注意力机制简单地堆叠在现有的模型上,然而并没有实质地解决局部信息与全局信息的融合问题。以注意力机制为代表的Transformer以及预训练模型BERT、SBERT等在多个自然语言处理任务上达到最佳,其旨在通过在大规模无监督语料的基础上学习先验语义知识,并在下游任务上进行微调。这些预训练模型均通过自注意力机制来同时避免RNN存在的长距离依赖以及不能并行计算的问题。为了进一步提升关系抽取的性能,该文提出了一种基于滑动窗口的注意力模型,实现在实体对信息的基础上同时从局部和全局层面上更好地提取语义信息。该文贡献主要在于:

(1)将预训练语言模型SBERT应用于实体关系抽取任务中,在此基础上提出了新的关系分类模型,并有效缩短了模型训练时间。

(2)提出一种基于滑动窗口的注意力机制来对局部语义信息进行特征提取;并在聚集层对不同窗口获得的局部信息进行融合形成全局信息。

(3)在公开数据集SemEval 2010 Task8上进行实验,验证了该方法在已有的基线模型上性能均得以提升。

1 相关工作

从对标注数据的依赖程度区分,实体关系抽取方法分为基于机器学习的传统有监督方法和基于深度学习的方法。以下将分别介绍这些方法的研究现状。

有监督学习方法是较为传统的实体关系抽取方法,其基本步骤是先对已标注的训练数据进行训练形成机器学习模型,然后再对测试数据的关系类型进行分类。有监督关系抽取方法主要包括:基于核函数的方法[1,2]、基于逻辑回归的方法[3]、基于句法解析增强的方法[4]和基于条件随机场的方法[5]。Miao[6]等在已有特征的基础上,引入字特征,并采用条件随机场(Conditional Random Fields,CRF)进行医学领域实体间关系的抽取,F1值达到75%以上。然而,它们过度依赖特征工程致使模型无法学习到更充分的语义信息,泛化能力差。

最近,很多研究人员开始将深度学习神经网络模型应用到语义关系抽取中。所使用的模型主要都是基于现有CNN、RNN神经网络模型,在这些现有模型上做一些网络结构方面的改进或者改进输入特征,比如结合多种Attention机制、添加不同的特征、引入依存树等。

基于CNN模型的关系抽取方法主要包括:Liu等[7]首次将卷积神经网络用于关系提取任务;Zeng等[8]采用词汇向量和词的位置向量作为卷积神经网络的输入;Nguyen等[9]在Zeng等的基础上加入了多尺卷积核,这样可以提取更多N-gram特征;Santos[10]提出了一种新的卷积神经网络进行关系抽取,其中采用了新的损失函数,能够有效地提高不同关系类别之间的区分性。

基于RNN模型的关系抽取方法主要包括:Socher等[11]最早提出将RNN用于关系抽取;Wang等[12]设计了相对复杂的两层注意力机制来尽可能突出句子中哪些部分对关系标签有更大的贡献;Zhu等[13]在Wang的基础上做出改进,他们计算每个词与关系标签的注意力矩阵,同时去掉了Pool Attention部分。

虽然以RNN和CNN为主的方法在关系抽取任务上效果较好,但依然又有很大的差距。为了提升效果,以预训练语言模型为主的方法被提出。例如BERT[14-15]、SBERT、RoBERT、XLNET等,其完全以Self-attention为主的方法捕获每个句子各个成分之间的相关性,以提升对句子语义的理解。通常为了提升下游任务的学习性能,通过根据具体的任务简单地堆叠相应的模块实现微调。然而这些方法均是针对通用领域而言,对于关系抽取任务来说,则需要模型能够充分捕获实体与句子在不同层面上的交互关系。基于以上的研究思路,该文鉴于SBERT[16]强大的语义表征能力,优先选择该模型进行全局特征的提取。同时,为了提高关系分类的准确率,充分利用语义中的局部信息,挖掘更多的局部特征,紧接着引入多头注意力机制,采用滑动窗口的策略提取局部特征,并使用双向长短期记忆神经网络对上一层提取到的局部信息进行聚合。

2 滑动窗口注意模型

本节着重介绍所提出的方法——滑动窗口注意力模型(SWAN),其由五部分组成,分别是输入表征层(Input Embedding Layer)、句子编码层(Sentence Encoder)、滑动窗口注意力(Sliding-Window Attention)、局部信息聚集层(Local Aggregation Layer)以及分类层(Classifier)。模型的框架如图1所示。

图1 模型架构

2.1 输入表征层(Input Embedding Layer)

假定给定一个句子S={w1,w2,…,wn},其中n表示句子的最大长度,wi∈Rwd表示每个单词,wd为词向量的维度。采用预训练的word2vec词向量来表示句子。为了保留实体在句子中的结构和语义信息,额外添加了两个实体信息:

2.2 句子表征层(Sentence Encoder)

谷歌提出的基于双向Transformer模型的BERT(Bidirectional Encoder Representations from Transformers)模型,在文本语义相似度等句子对的回归任务上已经达到了SOTA的效果,但是由于其通常是取输出层的字向量的平均值或第一个特征位置作为句子的句向量,这种取平均值或特征值的做法使得其输出的句向量不包含充分的语义信息,并且其结构导致计算开销巨大,因此Reimers等人在此基础上提出了Sentence-BERT(SBERT)模型。

SBERT采用典型的Siamese and Triplet Network (孪生网络和三胞胎网络)结构,相同的两路模型分别对句子进行编码,最后两个编码作为一个简单模型的输入,根据目标的不同可以定义不同的损失函数对模型整体进行训练,总体目标是以训练两个编码向量的相似度最小为目标。

SBERT在输出结果上增加了一个Pooling操作,从而生成一个固定维度的句子Embedding。实验中采取了三种Pooling策略对比:

CLS:直接用CLS位置的输出向量作为Embedding。

MEAN:计算所有的token输出向量的平均值作为Embedding。

MAX:取每一维输出向量的最大值。

通过实验对比三种策略的效果,可知MEAN效果是最好的,所以实验最终采用MEA策略。

具体针对分类任务的训练模型如图1所示,使用元素级差分|u-v|来组合u,v,将其乘以一个可训练的权重矩阵Wt∈R3n×k(n为句向量的维度,k为标签的个数),使用softmax函数进行分类输出。

o=softmax(Wt(u,v,|u-v|))

(1)

2.3 滑动窗口层(Sliding-Window Layer)

滑动窗口注意力(Sliding-Window Attention Network,SWAN)是该文的核心部分。其通过窗口的滑动来捕捉句子各个部分的局部信息,并通过注意力机制对局部信息进行聚集,在不同的局部感受野中获得重要的语义成分。

图2 滑动窗口模型

如图2所示,设窗口的大小为ws,则在第i时刻窗口读入的局部token序列为X[i:i+ws-1]=[xi,xi+1,…,xi+ws-1]。该文使用多头注意力(Multi-Head Attention)来捕捉这些token的相互影响程度,公式如下:

(2)

MultiHead(Q,K,V)=[head1,head2,…,headm]

(3)

为了方便描述,将该部分封装为一个统计的函数,记做vt,k=SWAk(X[t:t+ws-1]),表示大小为ws的第k个窗口捕捉的局部语义信息为vt,k。

2.4 局部信息聚集层

为了获取更多不同的局部信息,对相同长度的窗口,使用k个不同的窗口来同时捕捉局部信息,因此本节将描述如何将不同窗口的局部信息进行聚合。使用第二层双向长短期记忆神经网络,公式如下:

(4)

(5)

(6)

(7)

其中,SWAk(·)为第k个窗口扫描注意力,ht,k表示t时刻的隐向量,st,k为记忆信息。不同于第一层,这一层目标是将同一个窗口的不同的局部信息进行表征,以获得全局信息。最后在输出层应用了一次Dot-product Attention:

Ot=βtht,k

(8)

βt=σ(Wβht,k)

(9)

因此所有局部信息聚集后,形成全局信息:

(10)

2.5 分类层

将关系抽取视为分类任务,给定已知的预定义关系,需要最大化真实关系的概率,最小化其他关系的概率。最后全连接层获得相应的概率分布:

(11)

其中,WO,bO分别表示全连接层的权重参数和偏置。

采用交叉信息熵作为目标函数:

(12)

其中,N为一批句子的数量,θ为待训练的参数,λ为正则化超参数。

3 实验与分析

3.1 数据集

在SemEval-2010Task 8数据集上进行实验,该语料集包含10个关系,分别为Other、Message-Topic(MT)、Product-Producer(PP)、Instrument-Agency(IA)、Entity-Destination(ED)、Cause-Effect(CE)、Component-Whole(CW)、Entity-Origin(EO)、Member-Collection(MC)和Content-Container(CC)。数据集共有10 717个示例,其中包含8 000个训练样本和2 717个测试样本。在具体的实验中,由于除了Other以外的其他关系皆是有向的,因此一共划分9×2+1=19个类。

3.2 评价指标

在评价指标的选取上,该文采用数据集官方文档提出的macro-averaged F1值来评价模型的有效性。首先需要分别计算每个类别样本的精确率P(Precision)、召回率R(Recall)和F1值(F1-score),最后根据P、R和F1值求出整个数据集的F1平均值。

(13)

(14)

(15)

其中,TPi表示为第i类关系中正确预测的实例个数,FPi表示将其他类别中的实例错误预测为第i类的实例个数,FNi表示将第i类的实例错误预测为其他类的实例个数。最终计算所有类别F1值的均值F1ma,N表示数据集中的所有类别数。

(16)

3.3 参数设置

对于深度神经网络模型来说参数的选取至关重要,因此该文采用5折交叉验证法验证不同超参对模型性能的影响以确定最优的参数组合。其中在训练集中随机抽取7 200个样本进行训练,800个样本用于验证,并将五次验证结果的均值作为当前模型的评估。经过多次实验,并比较不同参数下的实验结果,选取了最合适的参数。词向量选择100维度的Glove预训练词向量,且在实验中可微调。LSTM部分Dropout设置为0.7,其他部分Dropout为0.5。在训练过程中迭代次数Epoch设置为50,Batch Size设置为20。使用Adam优化方法训练模型,学习率为1.0,衰减率为0.9,窗口大小为7,窗口数为2,多头注意力个数为4.

3.4 基线模型对比实验

为了对比SWAN与现有工作的关系抽取效果,选择了一些基线模型在F1值上进行整体实验的对比,可以简单分为三类:

传统统计机器学习和特征工程的方法:支持向量机(SVM)。该类方法主要通过人工进行特征提取,并使用传统的机器学习算法实现分类。

以卷积神经网络(CNN)为代表的局部信息表征方法:CNN、FCM、DepLCNN和CNN+Attention。该类方法以CNN为特征提取工具,对句子进行语义提取。

以循环神经网络(RNN)为代表的全局信息表征方法:C-RNN、DepNN、MV-RNN、SD-LSTM和Bi-LSTM+Attention。该类方法则通过联系句子上下文进行特征提取,考虑到了句子的全局结构信息。

相关模型的特征和实验的结果如表1所示,其中SWAN为该文提出的方法。实验结论如下:

表1 整体实验结果

(1)以支持向量机(SVM)为代表的机器学习算法通过应用核函数可以进行非线性分类。该方法通过选择词性标注(POS)、前缀信息(Prefix)、依存关系路径(Dependency Path)、词网(WordNet)和词袋模型来进行特征工程。该方法在当时达到了SOTA效果,F1值为82.2%。

(2)以CNN或RNN为主的深度学习方法已在关系抽取任务上得以应用,该文选取以CNN和RNN为代表的一些方法进行实验,总体上看,神经网络模型均超越了以特征工程为主的SVM方法。另外与CNN和RNN对应的代表方法进行对比可知:在没有添加注意力机制的前提下,CNN要比RNN更好,例如FCM要比MV-RNN高出0.6%,DepLCNN也超越了改进前的DepNN约0.1%,同时添加依存关系信息后与SD-LSTM效果相同,因此可以说明CNN对局部语义信息的提取更加有利于关系抽取。而添加注意力机制后,Bi-LSTM+Attention比CNN+Attention高0.2%,说明注意力机制可以很好地对全局信息进行聚集,这一效果要比在局部信息上更好。

(3)提出的SWAN模型则利用窗口注意力兼顾对上下文的局部信息和全局信息的捕捉。当只使用词向量作为输入时,可比Bi-LSTM+Attention高出4.4%,通过使用位置信息则可以再一次提升0.1%,当使用更多的特征信息时,实验的结果达到了89.3%,因此SWAN可以对丰富的特征进行局部和全局提取。

3.5 模型结构分析

为了判断所提出的模型中各个组件对关系抽取是否起到提升作用,进行了一些扩展实验:

3.5.1 滑动窗口注意力对局部信息的表征效果

为了验证该模块的表征能力,分别设计了几种不同的窗口模型进行比较:

(1)不使用滑动窗口模型:即直接从SWAN中去除滑动窗口层,符号记做SW+None;

(2)平均池化:只对滑动窗口内包含的每个位置的向量取平均,符号记做SW+AVG;

(3)最大池化:选择滑动窗口内向量2范数最大的作为输出,符号记做SW+Max;

(4)CNN:在滑动窗口层直接使用一层卷积和最大池化运算,符号记做SW+CNN;

(5)Dot-product注意力,即去除SWAN中滑动窗口层中的多头注意力,符号记做SW+Dp。

其中,后4个滑动窗口模块的输出层隐状态向量与SWAN一致,所有的对比模型中其余层完全相同。对比实验的评测指标使用F1值,结果如表2所示。

实验中每个模型分别进行两组实验,第一组实验为仅使用词向量和位置表征,对应表2中第二列展示的F1值;第二组实验则在第一组实验基础上添加了WordNet、Dependency和POS特征,对应表2中第二列括号内的提升量。

表2 不同滑动窗口模型对局部特征提取的效果

实验结果发现,如果不显式地对局部语义进行提取,实验结果只有83.1%和83.5%,相比SWAN两组实验结果分别下降了1.3%和1.7%,说明局部语义特征的重要性。当使用平均池化和最大池化时,相比不使用滑动窗口来说稍有提升,如果使用CNN进行局部特征提取,则可以最高提升至83.8%和84.4%,因此说明CNN具有较强的局部信息提取能力。SW+Dp则比SW+CNN提升至少0.3%,说明注意力机制对局部信息的提取效果比CNN更强。SWAN方法达到了实验中的最好结果,相比SW+Dp提升了至少0.4%,从而间接说明结合Multi-Head Attention和Dot-product Attention可以提升关系抽取的效果。另外所有对比模型中,再额外添加3个特征后对于关系抽取效果的提升幅度,SWAN模型为0.8%,超过其他模型,说明了提出的滑动窗口注意力对特征敏感。

3.5.2 不同窗口规格对局部语义提取的影响

为了探析不同窗口规格对语义提取的影响,从窗口大小和数量两个方面分别进行了实验,其中窗口大小范围为ws∈{1,3,5,7,9,11,13},窗口数量范围为k∈{1,2,3,4},在测试集上的实验结果如图3所示。

图3 不同窗口大小和数量下的关系抽取效果变化

其中横坐标表示窗口大小,纵坐标表示F1值,由图可知不论窗口数量有多少,当窗口大小ws<7时,F1值随着窗口数量的增加而升高;当ws>7时,F1值呈现递减趋势,因此当窗口大小为7时,F1值达到最好。对SemEval 2010 Task8的测试集句子长度进行了统计,发现平均长度为21,由此可以推断在当前任务下窗口大小是平均句子长度的三分之一时可以接近最大值。

另外分析不同窗口数量k对实验的影响,发现当ws≤3或ws≥11时,在相同窗口大小的情况下,窗口数量越多,F1值越大,而在3

(1)当窗口过小时,窗口内的局部信息量少,模型学习不充分;而当窗口过大时,包含的语义信息量过多使得局部信息产生混淆,导致效果下降。

(2)当窗口大小适中时,单个窗口(k=1)可以通过模型自主地学习到合适的语义,但此时数量越多,提升的效果并不明显,甚至可能由于过拟合原因导致下降;当窗口过小或过大时,多个窗口(k>1)可以相互弥补各自的缺陷,使得效果要好于单个窗口。因此一个窗口也可以满足对局部信息的提取。

4 结束语

关系抽取作为知识图谱构建[17]过程中重要的步骤,如何从语义特征提取角度提升关系抽取吸引研究者们的关注。为了更好地融合句子的局部和全局信息,提出基于滑动窗口注意力机制模型(SWAN)。该模型首先采用SBERT对句子进行表征,然后使用滑动窗口注意力机制捕获句子中的局部信息,其次在局部信息聚集层对抽取到的局部信息进行聚合,最后在分类层对关系进行预测分类。在SemEval 2010 Task8数据集上的实验表明,该方法超越了一些基线模型,很好地捕捉到句子的语义特征且模型的训练效率得到极大提升。特别地,通过扩展实验对模型的结构进行了分析,并结合可视化验证了该模型相比于传统的CNN可以有效提升对局部信息的提取。在未来的工作中,将从并行角度继续改进滑动窗口层,另外尝试运用基于远程监督的方法快速构建大规模训练语料并实现关系抽取;在应用方面将迁移到煤矿事故事件因果关系分析任务上。

猜你喜欢

滑动语义局部
日常的神性:局部(随笔)
凡·高《夜晚露天咖啡座》局部[荷兰]
丁学军作品
一种动态足球射门训练器
汉语依凭介词的语义范畴
关于滑动变阻器的规格问题
局部求解也生动