基于注意力机制的混合神经网络关系分类方法*

2020-03-04 07:56庄传志靳小龙
计算机工程与科学 2020年1期
关键词:实体卷积向量

庄传志,靳小龙,李 忠,孙 智

(1.中国科学院计算技术研究所网络数据科学与技术重点实验室,北京,100190; 2.中国科学院大学计算机与控制学院,北京 100049)

1 引言

随着互联网技术的发展,人们越来越多地使用互联网来交流信息,导致网络中散布着大量无结构的文本知识。如何将这些异质网络中的信息转换为结构化知识成为自然语言处理NLP(Natural Language Processing)领域的研究热点。关系分类(Relation Classification)是其中1个很重要的研究分支,可以应用到信息检索[1]、问答系统[2]等任务中。

关系分类是指对于特定的句子,对句子中给定的实体对之间的语义关系进行分类。比如,对于句子“The flower are carried into the chapel”,关系分类的任务是判断实体flower和chapel具有entity-destination关系。

基于机器学习的关系分类方法可以分为基于特征向量的方法、基于核函数的方法和基于深度学习的方法3类。基于特征向量的方法和基于核函数的方法一般称之为传统的关系分类方法。与传统的关系分类方法相比,使用深度学习的方法来构造的关系分类模型可以减少甚至避免传统关系抽取中的特征工程,同时可以在一定程度上减少NLP工具的使用带来的错误累积。相较于传统关系抽取方法改进成本巨大,调整模型时需要对代码进行大量改动而言,深度学习的方法调整模型的结构和参数的方法较为简单,具有很强的灵活性和可迁移性。

本文提出一种用于关系分类的深度学习模型Att-Comb,该模型没有使用任何其他的词典资源或者NLP工具。首先将每个句子中的每个单词映射到1个低维向量表示;然后使用双向长短时记忆BLSTM(Bidirectional Long Short-Term Me-mory)网络来捕捉句子序列中的长程依赖和时序信息;同时,使用卷积神经网络CNN(Convolutional Neural Network)来捕捉句子中每个单词的局部特征。本文最后使用注意力(Attention)机制来关注句子中最有利于关系分类的部分。本文我们在SemEval-2000数据集上验证了该方法的有效性。

2 相关工作

关系分类任务的重点在于对关系实例进行表示,并对其进行分类。

基于特征向量的方法主要依赖设计与关系分类相关的有效特征,并将这些特征转化为特征向量来获取句子的表示,随后通过单一分类器或者多个分类器的组合来计算2个关系实例之间的相似性。Kambhatla[3]使用实体上下文、依存关系、句法树在内的多个层次的语言学特征实现了1个最大熵模型。Zhou 等人[4]在文献[3]实验的基础上,增加了基本词组块特征,并使用了WordNet等额外资源,采用支持向量机SVM(Support Vector Machine)作为分类器,其实验结果显示了实体类别特征在关系分类任务中的重要性。Jiang等人[5]将序列、句法和依存关系划分为不同的子空间,并验证了其有效性。Rink等人[6]使用支持向量机SVM构造多个二类分类器,同时设计了词性标注、WordNet、FrameNet、依存关系、n-gram特征、单词前缀等10余种类型的特征进行分类。该方法基本上覆盖了现有的语言学特征,取得了较好的分类效果。

基于核函数的方法不需要显性构造相关特征空间,将关系实例表示成特定的形式,比如以文本序列或者句法树作为输入,然后通过设计特定的核函数来计算实例之间的相似度。常用的核函数有子序列核、卷积树核和依存树核。Mooney等人[7]考虑句子中每个单词本身、单词的词性POS(Part-Of-Speech)标记、泛化的POS标记和实体类型等特征,对每个关系实例构造5个特定的子序列核函数,并通过对核函数的结果求和来表示2个实例之间的相似程度。Culotta等人[8]利用依存句法树表示关系实例,设计基于依存句法树的核函数,并通过添加POS标记、实体类型等特征,对相似度加以严格的匹配约束,使得关系分类准确性提升。Zhang等人[9]利用实体对最短路径树,综合考虑语义关系不同层面特征和谓语上下文信息,设计了卷积树核函数,有效地提升了关系性能。

基于特征向量的方法需要人工设计大量特征来表示句子实例和用于句子实例之间相似性判断,最终选择哪些特征往往通过启发式实验得出,工作量较大。基于核函数的方法的重点在于设计核函数来比较句子实例之间的相似性,而核函数的设计需要较多技巧。同时,传统的关系分类方法多使用许多传统NLP工具,比如POS标记、最短依存路径以及命名实体识别等来抽取高阶特征。这些工具容易带来较高的计算代价和误差传递,而且在不同数据集上的迁移性较差。

为此,研究人员探索使用深度学习方法来进行关系分类。将深度学习用于关系分类时,重点在于通过采取不同神经网络并结合语言学相关知识来进行模型设计。通过使用神经网络来抽取句子的特征表示并直接进行分类可以减少大量特征工程。

Zeng等人[10]使用CNN模型来着重抽取句子的特征表示。该方法直接将句子作为输入,并引入位置特征,通过窗口操作和卷积层来抽取句子的上下文信息,随后采取最大池操作获取句子最有效的特征表示,最后结合实例的部分词汇特征,如实体上下文信息、WordNet超词等信息来进行关系分类。Zhang等人[11]使用BLSTM模型抽取句子双向的隐状态输出,并通过组合词汇特征和句子级别的2类特征来丰富句子的特征表示以进行关系分类。Zhou等人[12]在文献[8]的基础上,结合注意力机制提出了Att-BiLSTM模型。该模型使用双向LSTM网络来获取句子中每个单词对应的隐状态输出,使用注意力机制来抽取关键词特征信息,赋予句子中对关系分类影响重要的单词以重要的权重,以得到句子最终表示。Zhang等人[13]综合上述模型的特点,提出了RCNN模型,使用基于Attention的BLSTM网络来抽取长距离特征和关键词信息,然后将模型输出送入1个CNN模型,并最终用来进行关系分类。

上述方法未使用其他自然语言处理工具,也未使用特征工程来人工构造特征,属于端到端的方法,本文提到的模型也属于此类方法。

3 模型

自然语言处理领域中,深度学习工作的重点在于设计合适的网络来抽取句子的特征,不同的网络具有的功能是不相同的。直观上来讲,对于特定的句子序列中的每个单词,从不同的角度对其进行观察可以得到该单词更全面的结果。因此,本文提出Att-Comb模型,通过结合不同网络的特点来对单词的特征进行抽取,进而抽取出整个句子的向量表示。具体地,Att-Comb模型通过CNN模型捕获单词的n-gram特征,通过LSTM网络得到单词融合句子时序信息的特征,并采用Attention机制关注不同时刻单词的重要程度。

本节主要介绍Att-Comb模型的组成,如图1所示,该模型包含如下部分:

Figure 1 Model of the attention based hybrid neural network for relation classification图1 基于注意力的混合神经网络关系分类方法模型

(1)预处理和词嵌入层:将数据集中给定的句子S中的所有单词经过处理转化成特征向量表示,作为神经网络的输入x。

(2)窗口处理和卷积操作层:将网络输入处理成特定的格式,并使用卷积操作抽取特定单词的上下文信息,得到每个单词位置相对应的卷积输出向量c。

(3)双向LSTM层:将预处理和词嵌入层的输出分别放入前向和后向LSTM中,将每个单词对应位置的隐层输出相加作为双向LSTM层的输出h。

(4)Attention层:将卷积层和双向LSTM层的输出相连接得到的H作为Attention层的输入,计算每个单词的权重α,并求得整个句子的特征表示。

(5)分类层:将Attention层得到的结果与标记实体的嵌入表示进行组接,作为该关系实例的最终表示,并将其投入到1个单隐层的多层感知机和Softmax分类器中。

3.1 预处理和嵌入表示层

本层首先去掉句子中不常见的符号,并将各类缩写处理成对应的全称形式,如“it’s”处理成“it is”“can’t”处理成“can not”“’ll处理成will”。为了更好地进行句子表示,我们将标点符号与单词之间加入了空格,并对常用的缩写形式进行了归一化,比如”e g ”归整成“eg”。同时保留实体标记符号,即数据集中实体前后的“〈e1〉〈e1〉〈e2〉〈e2〉”标记。

嵌入表示的主要目的是将预处理得到的句子以向量的形式表示,每1列对应1个单词,经过处理的文本中可能出现的各类符号也看作1个单词。嵌入层将文本转化为计算机能够处理的数字向量形式,便于之后的网络提取特征。对每1个单词,我们仅使用了2种映射方法:单词的嵌入表示和位置的嵌入表示。

3.1.1 单词嵌入

单词嵌入的目的是将单词转化为低维向量表示,该方法能够捕捉单词之间的语义信息,并使得语义相似的单词具有相近的向量表示。Collobert等人[14]认为,使用从大规模语料中学习到的词向量表示要比随机初始化效果好得多。因此,本文首先使用了Pennington等人[15]预训练得到的单词初始嵌入表示,并在随后的模型训练过程中对其进行调整。

3.1.2 位置嵌入

位置嵌入的目的是将词汇表中每个单词相对于实体的位置进行编码。最早由Zeng等人[10]将句子中相对于实体的位置特征引入关系分类中。由于句子中有2个实体,因此本文定义了2个位置嵌入。这2个位置嵌入假设每个实体的位置是固定的值,然后将句子中其他的单词相对于实体的位置进行编码。比如,对于句子“The〈e1〉flower 〈e1/〉 are carried into the 〈e2〉chapel〈/e2〉。”,假设实体“flower”的位置和“chapel“的位置分别是0,那么就得到同1个句子关于2个实体的位置编码(-2,-1,0,1,2,3,4,5,6,7,8)和(-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1)。随后将这些数字映射到低维向量表示,这些向量表示有效地融合了句子语义信息和位置信息。

3.2 窗口处理和卷积层

近年来,卷积神经网络在图像分类领域发挥了重要作用,其主要是基于局部感受野[16]的思想,可以有效减少全连接网络存在的参数量较大的问题,并被广泛应用于自然语言处理领域。

窗口和卷积操作可以在避免传统方法人工提取大量特征的情况下,提取出句子的词汇特征等信息。窗口操作的功能是收集句子的局部特征,其基本思想是单词本身及上下文窗口为l的句子可以整合成为1个句子更丰富的表示。在句首或者句尾,由于窗口有可能超出句子的界限,需要进行“补零”操作,也就是把超出范围的输入向量设置为0。

例如,对于句子S:[People]0have1been2moving3back4into5[downtown]6,令xi表示第i个单词的嵌入表示,那么句子可以被表示成{x0,x1,x2,x3,x4,x5,x6},通过1个宽度为3的窗口操作可以将句子中的每1个单词对应1个上下文为3的更丰富的特征表示,{[xs,x0,x1], [x0,x1,x2],[x1,x2,x3],[x2,x3,x4],[x3,x4,x5],[x4,x5,x6],[x5,x6,xe]},其中xs和xe分别对应句子的开始向量和结束向量。随后对于特定的窗口操作得到的句子,使用对应窗口大小的卷积核进行卷积操作。在位置i,采取如式(1)的方法处理:

(1)

其中,w表示卷积窗口大小为k的卷积核对应的权重,b为对应的偏差项,mi表示在句中第i个位置使用窗口大小为l的卷积核进行卷积得到的结果,对于特定的k,这里f是1个非线性函数。将每1个卷积核得到的所有特征连接起来就得到了该位置特征Mi,如式(2)所示:

Mi=[mi1,mi2,…,mil]

(2)

其中l表示窗口的大小。同时,定义每1个窗口卷积核的数量为d,因此在位置i处,最终的输出特征xi-conv的维度为d*l。

3.3 双向LSTM层

LSTM是由Hochreiter等人[17]提出的,该网络通过各类门机制来“记住”或“忘记”相关信息,以解决循环神经网络中出现的梯度消失或者梯度爆炸问题。由于句子中单词与单词出现的顺序是相关的,通常把句子看作是1个有序的单词序列,因此可以使用LSTM网络来抽取其特征。

每1个LSTM单元由1个内存单元和输入门、遗忘门、输出门共同组成,这些特定的结构使得LSTM可以选择记住或者遗忘哪些信息。若时刻t的输入向量为xt,前一时刻的输出为ht-1,前一时刻的隐层状态为ct-1,则当前时刻的状态ct,隐状态输出ht,LSTM单元内部按式(3)~式(8)计算更新:

it=σ(Wxixt+Whiht-1+bi)

(3)

ft=σ(Wxfxt+Whfht-1+bc)

(4)

gt=tanh(Wxcxt+Whcht-1+bc)

(5)

ct=it·gt+ft·ct-1

(6)

ot=σ(Wxoxt+Whoht-1+bc)

(7)

ht=ot·tanh(ct)

(8)

其中,σ表示Sigmoid触发函数,·表示按位点乘操作。it,ft,ct,ot分别表示输入门、遗忘门、内存单元状态和输出门的结果,Wxi,Wxf,Wxc,Wxo分别表示不同门控制变量对应的权重矩阵,Whi,Wxf,Wxc,Wxo为隐状态输出ht对应的权重矩阵,bi,bf,bc,bo分别对应偏差项。

多数情况下,自然语言中的反向单词序列也有可能包含有序的信息。由于LSTM只能保留“过去”的信息,即只能正向提取句子中的相关语法和语义信息,Graves等人[18]提出双向LSTM,该网络分别通过从前往后和从后往前地操作2个LSTM,能够同时访问“过去”的信息和“未来”的信息,得到更丰富、更深入的句子信息,对于关系分类任务非常有益。

双向LSTM层是由前向和后向LSTM网络组成的,网络中的任一时刻t,既可以通过逆向LSTM从后往前捕捉输入序列中该时刻之后的序列中包含的信息,也可以通过正向LSTM捕获输入序列中该时刻之前的信息,同时也可以通过门机制捕获单词之间长程依赖的特征捕捉,前向RNN和后向RNN同时训练,这2个RNN之间没有共享向量。

最后将前向和后向的特征采取按位加和操作,如式(9)所示:

(9)

因此,在时刻i,最终的输出特征xi-BLSTM的维度为p,p为LSTM中隐层神经元的个数。

3.4 Attention层

注意力机制的目的是让模型在训练过程中学习模型中输入的哪一个部分是重要的,因此,模型可以对这些信息以更大的注意力。这里,我们首先从CNN层和LSTM层分别获得不同维度的输出,将其组接得到1个矩阵H,如式(10)所示:

H=[x1-comb,x2-comb,x3-comb,…,xT-comb]

(10)

其中,T为输入句子的长度,xi-comb表示将CNN层的输出xi-conv与BLSTM层的输出xi-BLSTM进行组接,维度dcomb=d*l+p,那么句子的最终向量表示r通过式(11)~式(13)进行计算更新:

M=tanh(H)

(11)

α=Softmax(wTM)

(12)

r=HαT

(13)

其中,w,α,r的维度分别为dcomb,T,dcomb。

3.5 分类层

分类层由1个单隐层的感知机组成。感知机的输入是Attention层的输出以及2个实体向量的词嵌入之间的连接。对于任意给定的句子,最终使用Softmax分类器来进行分类,其计算过程如式(14)~式(17)所示:

h*=[tanh(r);xe1;xe2]

(14)

mid=fr(W(r)h*+br)

(15)

p(y-|S)=Softmax(W(S)mid+b(S))

(16)

y=arg maxp(y-|S)

(17)

其中,y为模型的预测结果,fr为非线性激活函数,这里设置为ReLU函数。代价函数为句子的真实关系标记y-与预测结果y之间的交叉熵损失函数,m为样本的个数。一般认为,正则化方法能够防止过拟合以增强泛化能力,为此在交叉熵损失函数的基础上增加了参数的正则信息,如式(18)所示:

(18)

4 实验

4.1 数据集和评价指标

为了评价本文提出的组合模型,选择近年来被广泛使用的SemEval-2010Task8关系分类数据集[19]进行实验。这个数据集包含了10种关系,分别是Cause-Effect,Component-Whole,Content-Container,Entity-Destination,Entity-Origin,Instrument-Agency,Member-Collection,Message-Topic,Product-Producer,other类。other类意味着2个实体之间不存在上述关系,除了other类以外,其他9类都是有方向的。比如:Cause-Effect(e1,e2)和Cause-Effect(e2,e1)是2个不同的类别。

该数据集包含10 717个标记样本,包含8 000个训练样本,2 717个测试样本,每1个句子中包含2个标记实体以及他们之间的关系。在实验中,我们随机采取10%的训练数据作为验证集来选取最优的参数,并采用官方的评价指标macro-F1值来评价方法的好坏,计算方式如式(19)~式(21)所示:

precision=Ncorrect/Npredicted

(19)

recall=Ncorrect/Ntarget

(20)

(21)

其中,Ncorrect表示正确识别出关系类别j的样本数量,Npredicted表示预测结果中识别为特定的关系类别j的数量,Ntarget表示数据集中该类别的样本数量。我们在每1个关系类别上分别计算精确度和召回率,然后使用平均macro-F1值对模型进行评价。

4.2 参数设计

深度学习由于其自身特点,模型中的参数都比较多,为了更好地解决这个问题,本文引入了Dropout技术。Dropout最早是由Srivastava等人[20]提出的,通过随机忽略掉神经网络中的部分变量,使用更少的独立网络节点来达到更好的效果。Dropout层将特定的输入向量中的每个元素以一定的概率置零。本文分别在嵌入层、卷积层、LSTM层、Attention层以及分类层的组接部添加Dropout层,概率分别为0.3,0.4,0.4,0.5,0.5。其他参数设置如表1所示。

Table 1 Hyper parameters表1 超参数设计

4.3 实验结果

本文方法的实验结果与使用了多特征的传统的关系分类方法以及仅使用词嵌入或少量外部特征作为输入的端到端的方法进行了对比,结果如表2所示。从表2可以发现:

(1)端到端的关系分类方法仅仅使用BLSTM[11]以及Att-BLSTM[12]模型即可达到甚至优于通过构造所有可能特征的传统关系分类方法相近的结果。

(2)本文模型的F1-值为83.2%,在未使用其他NLP工具及词典资源的情况下优于其他仅使用单个网络或者Attention机制的模型。

(3)相比较于RCNN模型先采用Att-BLTM模型学习再进行CNN模型学习而言,通过不同网络进行特征抽取再进行Attention操作,可以在一定程度上提升F1值。

Table 2 Comparison of relation classification methods表2 关系分类方法对比

5 结束语

本文提出了一种混合CNN和BLSTM的端到端的关系分类方法。该方法分别继承了各自网络的特点,既能使用CNN抽取句子的局部特征,也能通过BLSTM来获取句子的长程依赖等全局特征,同时也考虑了每个单词的语义对关系的影响。SemEval-2010关系分类数据集上的实验结果表明了该方法的有效性。

猜你喜欢
实体卷积向量
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
卷积神经网络的分析与设计
前海自贸区:金融服务实体
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”