APP下载

融合最近距离和人名窗口信息的人物关系抽取

2018-03-10刘赟张小明李舟军

关键词:语料语句卷积

刘赟,张小明,李舟军

(北京航空航天大学 计算机学院,北京 100191)

0 引言

互联网中存在海量非结构化的数据信息,这些信息蕴含着丰富、复杂的关系,如何从中挖掘出人们感兴趣的关系信息引起了越来越多科研人员的关注,实体关系正是这些信息中非常重要的一类信息。人物关系是实体关系的一部分,其主要指一条语句中表现的两个人物之间的社会关系,如“父子”关系。人物关系抽取的输入是一条语句和语句中已经标记出的两个目标人名,输出是两个人名之间的关系。人物关系抽取在智能问答、知识图谱、信息检索等领域都具有重要意义。

早期的关系抽取技术主要使用基于模式匹配的方法。Appelt等人[1]将各种关系依赖规则用一种通用的,可扩展的方式表达;邓擘等人[2]在模式匹配的基础上引入了词汇语义匹配技术。然而,这些方法都依赖于领域专家人工编制大量的模式,可移植性差。Chinatsu Aone等人[3]提出的基于词典驱动的关系抽取方法能够在高准确率抽取的前提下大量减少人工的耗费,但该方法难以应对以非动词为中心驱动关系的句子。基于依存分析的方法[4-5]在词法特征的基础上,引入了依存句法关系,却过分依赖于依存句法的正确性。监督性的机器学习方法是目前研究和应用都比较广泛的实体关系抽取方法,这种方法又分为基于特征向量的方法和基于核函数的方法。基于核函数的方法[6-7]利用结构树来计算相似度,使用支持核函数的分类器进行关系抽取。基于特征向量的方法主要提取特征向量,设计分类模型构造分类器。车万翔[8]和毛小凤[9]分别通过特征向量和特征选择,利用SVM算法进行实体关系抽取,但这些方法需要在特征抽取得好的条件下才具有较好的性能。

近年来,随着深度学习的快速发展,大量科研人员将深度学习方法应用于各种研究领域并取得了不错的效果。在实体关系抽取方面,Zeng等人[10]提出基于卷积神经网络的关系抽取技术。在卷积神经网络的基础上,又有人引入了依存句法关系[11]和注意力机制[12]。肜博辉[13]将来自不同训练方法的两种词向量应用到卷积神经网络模型中。Zhang等人[14]提出利用双向循环神经网络进行实体关系抽取;在此基础上,Cai[15]利用实体间最短依存路径作为循环神经网络的输入。这些方法相比改进的传统SVM模型取得了明显的效果。然而,这些方法都是针对英文语句设计的,如果直接将其应用于中文关系抽取,效果也不尽人意。

近年来,深度学习在自然语言处理方面的研究工作取得了巨大的成功,许多基于深度学习的方法在英文实体关系抽取上取得了非常不错的实验效果。然而,中文实体关系抽取的研究还停留在传统方法上。本文针对中文语义复杂,语句较长且频繁出现目标人名的情况,研究用深度学习模型抽取新闻语料中的人物关系信息,取得了良好的实验效果。

1 远程监督的中文关系语料获取

远程监督的方法是利用已有的知识库与自由文本对齐从而获取数据语料,不需要人工标注数据,能快速获取标注的语料信息。但是该方法可能引入噪音数据,需要对数据进行过滤以提高语料质量。

1.1 基于远程监督的关系候选语料获取

本文充分利用互动百科中提供的人物关系和介绍信息两部分数据。首先,利用网络爬虫技术在互动百科中爬取各行业人物之间的关系栏目信息用于构建本地人物关系库,关系库中存放人物关系三元组信息R=〈p1,p2,r〉,其中p1和p2分别表示一个人名,r表示p1和p2之间的关系信息;然后,爬取人物介绍栏目信息获取文本语料,按语义信息对语料进行断句处理。如果一条句中存在两个以上的人名,将任意两个人名在人物关系库中进行对齐匹配,如果匹配成功,则默认这两个人名在语句中存在人物关系库中对应的关系类型,将该语句作为关系的候选语料。

1.2 打分函数过滤候选语料

远程监督方法获取的关系候选语料中存在噪音数据的情况,即人名对在语句中没有明显表现出人物关系库中对应的关系信息。针对这一情况,本节利用刘锦文[16]提出的打分函数对关系候选语料进行筛选。假设关系r的特征词集合feature_words[r]={wr1,wr2,…,wrn},关系库中的关系三元组R=〈p1,p2,r〉。打分函数定义为:

(1)

其中,N1表示语句s包含feature_words[r]中词的数量;N2表示s中除了p1,p2外的其他人名数量;N3是p1和p2之间的标点符号数量;C是p1和p2间隔的所有词汇数量。w1,w2,w3,w4是变量所占的权重。将分值高于一定阈值的句子作为最终的关系数据语料,利用该方法获取中文人物关系语料的流程图如图1所示。

Fig.1 Flow diagram of the remote-supervised method for Chinese character relations extraction图1 远程监督的中文人物关系语料获取流程图

2 融合最近距离的人名窗口信息模型

本文提出的融合最近距离和人名窗口信息的模型是一个深度学习模型,它融合了卷积神经网络和循环神经网络两个部分。在卷积神经网络中引入了最近距离信息,在循环神经网络中引入人名窗口信息。将两个神经网络提取的信息融合起来共同作用于关系抽取。

2.1 词向量

词向量(word vector),也称词嵌入(word embedding),是用一种分布式数值表示词的方法,它将每个词表示成一个连续数值的向量形式。词向量是用神经网络训练语言模型时训练出来的,它在训练的过程中将词的上下文信息融入向量中。目前用深度学习的方法研究自然语言处理大部分都是用词向量作为网络的输入。

本文中词向量的训练是通过google在2013年开源的词向量训练工具word2vec完成的。word2vec提供了两种模型,分别是CBOW和Skip-gram。本文利用Skip-gram模型,训练语料是维基百科的中文语料。

2.2 基于最近距离的卷积神经网络模型

抽取人物关系的语句中每个词相对目标人名的位置能反映出它与目标人名之间关系的紧密性,由此反映出它对人物关系抽取的重要性。所以,本文将词的位置信息加入到卷积神经网络(Convolutional Neural Network,CNN)中进行训练。然而,一条语句中可能多次存在目标人名的情况。为此,提出最近距离的概念,在计算词相对目标人名的位置信息时,计算它与最近的目标人名之间的距离。

2.2.1 输入:扩展的词向量

中文语句相比英文更加复杂。对中文语句处理的第一步是先分词,再去停用词。利用提前训练好的词向量代替词作为网络的输入,但并不是简单的词向量替换词的方法,替换后的词是一种经过信息扩展后的词向量。

用dk表示以语句中任意词为中心,窗口值为k的连续k个词向量拼接在一起构成的向量长度,用L表示提前训练好的词向量的长度,则:

dk=L*k

(2)

本文提出的最近距离是计算每个词相对它最近的人名p1之间的距离以及最近的人名p2之间的距离。如图2,句子“2007年8月,姚明在香格里拉酒店与妻子叶莉举行了盛大的婚礼”经过分词去停用词后,“酒店”和“姚明”之间的距离是2,“酒店”和“叶莉”之间的距离是-2。本文将最近距离抽象为一个dp维的向量,然后将两个距离向量拼接到公式(2)表示的向量之后,得到每个词经扩展后的向量,其长度计算如下:

d=dk+dp*2

(3)

由此,得到输入矩阵Xc∈s×d,其中s是分词并去停用词后句子中词的个数。

Fig.2 Schemoctic diagram of the distance calculation图2 距离计算示意图

2.2.2 卷积层

关系抽取是针对输入语句中标记好的目标人名对,抽取出在语句中表现出的人物关系,这种人物关系表现在语句语义环境的上下文中。因此,有必要利用语句中的局部上下文信息为关系抽取提供一些信息支持。本文利用卷积神经网络提取语句的局部信息。

假设输入矩阵Xc={q1,q2,…,qs},qi∈d;卷积核Wc∈m(m=ωc*d)是网络要学习的参数;ωc是卷积核的长度,本文中一般取值为奇数。令qi∶j代表输入矩阵中qi到qj之间词向量连接形成的矩阵,qj-ωc/2∶j+ωc/2就表示为以qj为中心的连续ωc个词的词向量组成的矩阵。输入矩阵通过一个卷积核卷积后得到向量c∈s,卷积操作的计算如下:

cj=wcqj-ωc/2∶j+ωc/21

(4)

当qi超出输入Xc的范围,即i<1或i>s时,qi用零值向量来代替。

为捕获句子中蕴含的不同特征,卷积过程中通常采用多个不同的卷积核来进行卷积操作。本文利用N个卷积核(Wc={Wc1,Wc2,…,WcN,})对输入进行卷积,卷积操作的过程可以表示为:

cij=wciqj-ωc/2∶j+ωc/21≤i≤N

(5)

通过多核卷积操作,得到卷积后的矩阵C={c1,c2,…,cN},ci∈s。

2.2.3 池化层

多核卷积后的矩阵C∈N×s依赖于语句中词的个数s,即不同长度的语句经过多核卷积操作后得到矩阵C的大小不一样。本文把经过多核卷积后得到的数据进行转化,使结果不依赖于网络输入的句子分词长度s。设计池化层的一个目的正是解决这个问题。池化的方法一般有如下三种:

1)mean-pooling:对进行池化的邻域特征求平均值。

2)max-pooling:取邻域特征的最大值,提取的特征具有代表性。

3)stochastic-pooling:介于两者之间,按照数值大小赋予概率,再按照概率进行亚采样。

本文采用了max-pooling对多核卷积后的结果进行池化操作,其操作过程如下:

pi=maxj(cij) 1≤i≤N

(6)

池化操作后得到向量Pc=[p1,p2,…,pN]。该向量只依赖于卷积核的个数N,与语句分词长度s无关。另外,max-pooling降低了网络复杂度的同时还提取了多核卷积操作后最具代表性的特征值。图3展示了基于最近距离的卷积神经网络模型抽取人物关系的示意图,图中ωc=3。

Fig.3 Schematic diagram of the convolution neural network model based on nearest distance图3 基于最近距离的卷积神经网络模型示意图

2.2.4 Droupout层与隐层

Droupout是一种降低网络复杂程度,避免过拟合的有效手段。Droupout的实现方法是随机将一定比例的节点权重置零,丢弃掉的结点不参与网络计算。Droupout层的输出计算如下:

Dc=Pc∘γ

(7)

其中,∘表示按位相乘,γ∈RN是一个随机向量,该向量服从参数为dc的Bernoulli分布,作用是将池化层的一部分输出随机置为零。

在Dropout层之后,本文的方法添加了一个隐层神经网络层,即一个全连接的神经网络层,其计算方式如下:

Vc=tanh(WdDc+bd)

(8)

其中,Wd∈REc×N是转移矩阵,Ec是隐层神经元的个数,即输出向量的维度;bd是偏置向量。至此,得到卷积神经网络模型提取的特征向量Vc=[vc1,vc2,…,CcEc]。

2.3 基于人名窗口的循环神经网络模型

循环神经网络(Recurrent Neural Networks,RNN)处理自然语言序列时,大都采用将整条语句包含的所有词对应词向量作为网络的输入。然而,中文语料中很多语句较长,将语句中所有词的词向量全部输入到循环神经网络中,直接增加了网络的复杂性,致使网络不能准确学习距离较远的关系信息。经过反复实验并结合语句分析,发现表征人物关系信息的重要词基本出现在以目标人名为中心,在一定窗口值大小的范围内,而且这些词才是网络训练的重点。由此,本文提出人名窗口信息的概念,就是将目标人名为中心,指定窗口大小内的词对应词向量代替所有词的词向量作为网络的输入。实验证明该方法可以有效降低网络的复杂性,更容易捕捉关系关键词。

2.3.1 输入:窗口内的词向量

人物关系抽取的目标是抽取语句中目标人名对在上下文环境中表现出的关系信息,所以网络输入需要指明抽取的目标人名对位置。本文基于窗口内的词向量抽取出的词都是以目标人名为中心的词序列,即人名所在的位置是固定的,所以不再需要对人名进行位置标注。本文利用一个窗口值ωr,将语句中所有以目标人名为中心的连续ωr个词抽取出来。假设语句中共出现了m次目标人名,就可以得到一个词序列,其长度T计算如下:

T=m*ωr

(9)

由此得到网络的输入矩阵Xr={x1,x2,…,xT},xt∈L是每个词对应的词向量。

2.3.2 双向循环神经网络层

(10)

单向循环神经网络一个最大的问题在于获取语义信息的时候只利用了当前词及它之前词的信息,没有充分利用后续词的语义信息。一种有效的解决方法就是利用双向的循环神经网络。与单向循环神经网络相比,双向循环神经网络在第t步的输出ht将前向RNN和反向RNN的输出累加起来,其计算方法如下:

(11)

(12)

其中,Wb∈D×L,Ub∈D×D,bb∈D是反向RNN模型的参数。值得注意的是,前向RNN和反向RNN在训练过程中是同时进行的,它们之间没有任何参数的共享。

2.3.3 池化层

循环神经网络结构中,句子的语义信息通过一个一个的词向量被网络学习,学习后产生的词级别的特征向量实际上代表了整个语句的信息。我们借助于卷积神经网络中的max-pooling方法对循环神经网络层的输出进行处理。使用max-pooling的方法有一个好处,关系抽取的过程中,语句中仅有几个重要的词表征了关系的重要信息,而max-pooling提取的正是那些显著特征。本文利用max-pooling的池化方法如下:

pi=maxt{(ht)i} 1≤i≤D

(13)

其中,p是句子的特征向量,i是特征维度的下标。通过池化操作,得到了特征向量Pr=[p1,p2,…,pD]。基于人名窗口的双向循环神经网络模型如图4所示。

Fig.4 Structure chart of the bidrectional recurrent neural network based on the name entity window图4 基于人名窗口的双向循环神经网络模型结构图

2.3.4 隐层

同卷积神经网络在池化层后面添加了一层隐层神经网络层一样,本文在循环神经网络的池化层后面也添加了一层隐层,只是在这之前没有Dropout层,其计算如下:

Vr=tanh(WrPr+br)

(14)

其中,Wr∈Er×D是转移矩阵,Er是隐层神经元的个数,即输出向量的维度;br是偏置向量。至此,得到整个循环神经网络模型提取的特征向量Vr=[vr1,vr2,…,vrEr]。

2.4 基于联合模型的关系抽取

通过卷积神经网络提取了长度为Ec的特征向量Vc。同样,利用循环神经网络提取了长度为Er的特征向量Vr。为充分利用两种网络提取的关系信息,本文直接将两个特征向量Vc和Vr拼接起来,构成长度LM=Ec+Er的特征向量V=[v1,v2,…,vEc+Er]。

为计算分类到每个人物关系类别的概率,特征向量V被传入到以softmax为激活函数的神经网络层。softmax函数常用在神经网络的最后一层执行多分类任务,它的输出是分类到每个类别的概率值,这些概率值的和为1。令关系分类的类别数为n,利用softmax作为激活函数的计算如下:

O=softmax(W0V+b0)

(15)

其中W0∈n×LM是转移权重矩阵,b0是一个偏置参数。输出O∈n是网络最终输出的概率向量,其长度是关系类别数n。

2.5 模型训练

对上述模型的介绍,可将模型中的可训练参数记为θ=(Wc,Wd,Wf,Uf,Wb,Ub,bb,Wo,bo)。优化的目标函数是:

(16)

其中,S是训练样本的个数,p(i|x,θ)是似然函数,表示在给定x,θ的情况下,输出类别是i的概率:

(17)

使用随机梯度下降(SGD)的方法进行参数求解,随机初始化可训练参数,求导过程中使用反向传播算法:

(18)

其中,η为学习速率。由此,可以通过模型训练出参数θ。

3 实验

3.1 数据集及评价标准

本文利用远程监督的方法从互动百科中爬取人物的三元组关系信息构建本地人物关系库。利用断句后的百科人物介绍语料与本地关系库对齐匹配,提取人物关系候选语料,通过打分函数过滤掉关系候选语料中的噪音数据以获取高质量的训练语料。结合人物关系库中的关系类型和人物关系候选语料中的关系数量,将常见的人物关系类型分为n=7类,每种关系类型及其对应的数量如表1所示。

表1 关系语料类型及数量

本文将每种关系的数据集按照8∶2的比例分为训练集和测试集,经过切分后得到训练集8 771条,测试集2 193条。

本文同普通多分类问题一样采用平均F1值作为统一的评价标准。其计算方法是首先计算出每个分类的F1值,然后求所有分类的平均F1值。

3.2 超参数设置

深度学习过程中需要设置很多超参数,超参数对模型效果影响非常大,一个好的模型还得配上合适的参数才能具有良好的效果。经过大量的实验和参数调整,最终将本文提出的模型中涉及的超参数设置为表2所示。其中,卷积核长度、学习速率等是经过反复实验最终确定的。而卷积核的个数、Dropout参数、RNN输出维度等是经过10折交叉验证求得的,验证集从训练集中随机抽取获取。

表2 超参数设置

3.3 实验结果

为评估本文提出的融合最近距离和人名窗口信息的人物关系抽取性能,选取了几种已经发表的、具有代表性的研究方法在我们的实验数据上进行实验对比,实验结果如表3所示。其中SVM表示毛小丽等人提出的基于特征选择的实体关系抽取方法;RNN表示由DongXu Zhang等人提出的在标注实体位置的前提下,利用循环神经网络实现实体关系抽取的方法;CNN表示由Daojian Zeng等人提出的基于词汇和句子级别的特征提取,利用卷积神经网络实现实体关系抽取的方法。DW-NN表示本文针对中文语料提出的人物关系抽取方法。为统一比较标准,RNN和CNN模型中使用的词向量都是本文中训练的词向量。

表3 实验结果对比

从表3中的实验数据可以看出,本文提出的模型相比传统模型和普通神经网络模型提高了3个以上百分点。基于上述实验结果,可以得出以下结论:

(1)在中文人物关系抽取方面,神经网络模型相比传统采用特征选择,利用SVM等分类模型进行关系抽取能够获得更好的效果。原因是神经网络模型通过网络中参数的调整,能学习到更深层次的语义信息,从而有助于抽取人物关系。

(2)相比普通神经网络模型,本文提出的融合最近距离和人名窗口信息模型能提取更丰富的语义信息,在中文人物关系抽取方面能取得更好的效果,同时也说明了该方法的有效性。

4 结束语

本文提出了一种融合最近距离和人名窗口信息的中文人物关系抽取方法。在卷积神经网络部分提出最近距离的计算方法,将位置信息加入到网络中进行学习;在循环神经网络部分提出利用人名窗口内词向量代替整句中包含词的词向量作为网络的输入。实验结果表明,该方法能很好地提取中文人物关系信息,取得了良好的效果。

未来中文人物关系抽取可在本文的基础上尝试以下两方面的研究:a)引入注意力机制,改变不同词向量在网络输入部分的权重,使网络更关注于能表征关系的重要词汇。b)引入依存句法分析,将语句中词汇之间的依存关系也加入到网络的学习中,进一步提高模型的性能。

[1] Appelt D E,Hobbs J R,Bear J,etal.SRI International FASTUS System:MUC-6 Test Results and Analysis[C]∥Proceedings of the 6th Message Understanding Conference (MUC-6).1995:237-248.DOI:10.3115/1072399.1072420.

[2] 邓擘,樊孝忠,杨立公.用语义模式提取实体关系的方法[J].计算机工程,2007,33(10):212-214.DOI:10.3969/j.issn.1000-3428.2007.10.076.

[3] Aone C,Ramos-Santacruz M.Rees:Alarge-scale Relation and Event Extraction System[C]∥Proceedings of the 6th Applied Natural Language Processing Conference.New York:2000:76-83.DOI: 10.3115/974147.974158.

[4] 李天颖,刘璘,赵德旺.一种基于依存文法的需求文本策略依赖关系抽取方法[J].计算机学报,2013,36(1):54-62.DOI: 10.3724/SP.J.1016.2013.0054.

[5] 郭喜跃,何婷婷,胡小华.基于句法语义特征的中文实体关系抽取[J].中文信息学报,2014,28(6):183-189.DOI:10.3969/j.issn.1003-0077.2014.06.026.

[6] Zhou G,Qin L,Fan J.Tree Kernel-based Semantic Relation Extraction with Rich Syntactic and Semantic Information[J].InformationSciences,2010,180(2010):1313-1325.DOI: 10.1016/j.ins.2009.12.006.

[7] 庄成龙,钱龙华,周国栋.基于树核函数的实体语义关系抽取方法研究[J].中文信息学报,2009,23(1):1003-0077.DOI:10.3969/j.issn.1003-0077.2009.01.001.

[8] 车万翔,刘挺,李生.实体关系自动抽取[J].中文信息学报,2005,19(2):1-6.DOI: 10.3969/j.issn.1003-0077.2005.02.001.

[9] 毛小丽,何中市,邢欣来,等.基于特征选择的实体关系抽取[J].计算机应用研究,2012,29(2):530-532.DOI:10.3969/j.issn.1001-3695.2012.02.034.

[10] Zeng D,Liu K,Lai S,etal.Relation Classification Via Convolutional Deep Neural Network[C]∥Proceedings of COLING,2014:2335-2344.

[11] Xu K,Feng Y,Huang S,etal.Semantic Relation Classification via Convolutional Neural Network with Simple Negative Sampling[J].ComputerScience,2015,71(7):941-949.DOI: 10.18653/v1/D15-1062.

[12] Wang L,Cao Z,Liu Z,etal.Relation Classification via Multi-Level Attention CNNs[C]∥Proceedings of the Association for Computational Linguistics,2016:1298-1307.DOI: 10.18653/v1/P16-1123.

[13] 肜博辉,付琨,黄宇,等.基于多通道卷积神经网的实体关系抽取[J].计算机应用研究,2017,34(3):689-692.DOI:10.3969/j.issn.1001-3695.2017.03.011.

[14] Zhang D,Wang D.Relation Classification via Recurrent Neural Network[Z].ComputerScience,2015,1508.01006vl.

[15] Cai R,Zhang X,Wang H.Bidirectional Recurrent Convolutional Neural Network for Relation Classification[C]∥Proceedings of the Association for Computational Linguistics,2016:756-765.DOI: 10.18653/v1/P16-1072.

[16] 刘锦文.基于新闻数据的中文人物社会关系抽取研究[D].合肥:中国科学技术大学,2016.

猜你喜欢

语料语句卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
重点:语句衔接
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于语料调查的“连……都(也)……”出现的语义背景分析
《苗防备览》中的湘西语料
国内外语用学实证研究比较:语料类型与收集方法
如何搞定语句衔接题
Reliability assessment consideringdependent competing failure process and shifting-threshold