基于深度神经网络的语义角色标注
2018-04-16王明轩
王明轩,刘 群,2
(1.中国科学院 计算技术研究所 智能信息重点实验室,北京 100190;2.ADAPT Centre,School of Computing,Dublin City University,Glasnevin,Dublin 9,Ireland.)
0 引言
语义角色标注(SRL)是通往自然语言理解的必由之路,也是一种浅层的语义分析,其主要目标是挖掘谓词和论元之间的关系。语义角色表明了事件实体的基本性质并且提供了一个中间层的语义表示,因此可以对很多自然语言处理任务起到帮助作用,比如信息抽取[1]、自动问答[2]、机器翻译[3]等。
一般认为语义角色标注任务和句法分析是相关的,传统的语义角色标注严重地依赖句法分析结果,这导致了语义角色标注系统的复杂和领域受限性。研究人员一直在寻找简单的方法来解决这个问题。Collobert[4]等人提出了一种通用的基于卷积神经网络的框架去解决这个问题,然而他们依然需要引入句法信息,才能达到与最好模型接近的水平。Zhou[5]等人试图构建多层LSTM解决该问题,但是在网络层数较深的情况下很难取得理想的结果。另一方面,为了提升性能,他们也引入了CRF做预测,导致模型并行比较困难。
在本文中,我们提出了一种深层的双向神经网络模型,它装备了精心设计的递归单元EU来做语义角色标注,这个系统简称为DBLSTM-EU。由于语言内部存在潜在的复杂结构,因此我们扩展了“时间深度”的概念到“空间深度”,通过将网络层层堆栈来构造深度模型,捕捉复杂的语义结构。然而深度网络的训练并不是堆栈网络那么简单,模型优化随着网络层数的增加而变得复杂起来。正如Zhou[5]提到的,当网络到第六层的时候就很难观察到性能提升了。“空间深度”也面临着梯度消失的问题,这个问题和递归神经网络(RNN)应用到长的句子的时候所面临的问题相似。
为了缓解梯度消失的问题,本文借鉴了LSTM的设计思路,提出了一个全新的“直梯”单元(EU),混合了线性和非线性信息。通过EU,信息可以在空间和时间维度上更通畅地传播,并且只存在比较小的信息损失。这个机制让深度网络的训练变得更为容易,而深度的LSTM更容易捕捉句子中潜在的复杂的内部结构。最重要的是EU包含了一个“门”函数,可以动态地选择或者忽略信息在垂直方向上的传播,这样不同层次的抽象表示就可以更方便地被传递到输出层。
DBLSTM-EU在CoNLL-2005公开数据集上取得了F=81.56%的结果,在CoNLL-2012公开数据集上取得了F=82.53%的结果,比之前最好的结果分别提高了0.5%和1.26%,达到了目前世界上最好的性能。另外,在领域外的数据集上DBLSTM-EU取得了2.2%的F值显著提升。由于该模型比较简洁,具有易于并行的特性,在单一的K40 GPU上取得了每秒11.8K单词的解析速度,远高传统的方法。
1 语义角色标注
给定一个句子,语义角色标注的目标是识别所有谓词所对应的论元,并且给对应的论元进行分类,指定不同的语义角色。例如,给定输入语句“Marry borrowed a book from John last week”,SRL的目标就是识别不同论元与谓词borrowed 的关系,最后产生下面的输出:
[A0 Marry] [V borrowed] [A1 a book] [A2 from John] [AM-TMP last week]
这里A0代表借东西的人,A1代表被借的东西,A2代表被借东西的人,AM-TMP是介词短语表明了动作发生的时间,而V代表对应的谓词borrowed。
在传统的标注模型中,对角色的标注通常分两步进行:识别和分类。识别确定了每一个论元和谓词之间是否存在语义关系,而分类是对存在语义关系的论元指定具体的语义类别的过程。一般情况下,识别部分包含了剪枝,而分类部分包含了后处理,修正标记的不一致性。最后会采纳动态规划算法搜索全局最优的标注序列。
如图1所示,本文提出了一种极其简单的标记方法。首先,最原始的句子和它对应的标签被映射成实数向量,也就是词嵌入(word embedding),这个向量作为下一层的输入。然后,通过一个装备了EU的深度双向神经网络捕捉句子内部和标签之间隐含的关系。图1中,“L”和“R”分别代表了从左到右和从右到左处理句子的方向。在推断阶段,只有最顶层的隐含状态被使用,通过逻辑线性回归做最后的决策分类。与传统的序列标记任务不同的是,模型只输出当前概率最大的类别,并不需要全局搜索和剪枝。
图1 DBLSTM示意图
2 递归神经网络
递归神经网络(RNN)是具有递归连接的一类神经网络,具有部分的记忆功能,网络的历史信息通过递归关系传播,这样可以使RNN被应用到具有任意长度句子的序列预测问题上。给定输入句子x=(x1,x2,…,xT)作为输入,标准的RNN递归地执行下面的操作并生成隐藏节点ht,如式(1)所示。
ht=H(Wxhxt+Whhht+bh)
(1)
其中,H是一个非线性函数,可以是简单的tanh函数,也可以是一系列非常复杂的操作,比如LSTM[6]。
由于每一个隐藏节点都是所有历史隐藏节点的函数,RNN在时间维上具有天然的深度。传统的RNN训练主要面临着两个问题。第一,RNN梯度传递路径过长,导致它比较难捕捉到长距离的依赖关系。第二, 在处理长句子的时候,容易出现梯度消失或者梯度爆炸现象。这两个问题都被深度地探讨过[6]。
3 长短期记忆单元
长短期记忆(LSTM)是由Hochreiter[6]等人提出来解决长距离依赖和梯度消失的问题。如图2所示,LSTM包含了记忆单元ct,输入门it,忘记门ft和输出门ot。其中,记忆单元储存了LSTM单元的历史信息,通过输入门仔细地控制当前输入有哪部分可以被存储进来,通过忘记门控制历史信息有多少应该被忘记。最后,输出门被用来决定有多少信息可以被输出进行决策。正式的,LSTM通过下面的方式进行计算:
(2)
图2 LSTM单元信息流动图
这里σ是sigmoid激活函数,为了方便起见,我们将公式简写为式(3)。
[ht,ct]=LSTM(xt,ht-1,ct-1)
(3)
最近,Cho[14]等人提出了门递归神经元(gated recurrent unit,GRU)中采用了自适应的记忆和忘记策略,与LSTM取得了相当的结果。
4 深度的双向LSTM和EU
这部分我们首先讨论LSTM的双向组合方式,随后介绍新提出的神经元EU。
4.1 深度双向LSTM
如图1所示,我们提出了一个深度的双向LSTM(DBLSTM)来解决SRL这个典型的序列标注问题。
传统RNN的一个缺点是只能利用序列过去的信息。在序列标注问题上,整个句子的信息实际上是一次就可以得到的,所以没有理由不利用未来的信息。因而,双向连接的LSTM被提出来了,它可以充分利用过去和未来的信息。典型的双向LSTM分别从前向和后向两个方向处理原始输入,然后将这两个输出连接起来。在这里,我们采用了Zhou[5]的方法,以获得更复杂的依赖关系。具体来说,第一个LSTM层正向地处理输入的句子,这层的输出直接作为下一个层的输入,然后进行反向的处理。这样做的好处是,同样多的参数,可以获得在空间上更深的神经网络。
为了增强模型的表达能力,我们也增加了神经网络的模型深度。在这种拓扑结构中,第l层的输入恰好就是第l-1层的输出。更正式地,给定一个输入序列x=(x1,x2,…,xT),第l层的输出如式(4)所示。
(4)
4.2 基于LSTM的EU
(5)
图3 EU与LSTM的差异图
5 语义角色标注流程
神经网络处理离散数据的第一步就是把离散符号映射到实数向量的表示形式,也就是word embedding。DBLSTM-EU 采用最原始的语句和对应的预测标记m作为输入特征。m设置为1表示当前词是需要被预测的谓词,设为0则表示是要预测关系的论元。一个输入实例里包含一个谓词1,如果一个句子有多个谓词,那么就分多次处理。正如图1所示,谓词borrowed就被标记为1。
在SRL任务中,词汇表表示为Ѵ,标记集合表示为C∈{0,1}。给定输入序列{w1,w2…,wT}和标记序列{m1,m2…,mT},输入词wt∈r与其对应的标记mt∈C通过查找表(lookup table),被映射为实数向量的表示形式e(wt)和e(mt)。这两个向量连接起来组成xt=[e(wt),e(mt)]作为DBLSTM-EU第一层的输入。
然后我们建立深度的双向神经网络(DBLSTM-EU)学习句子的序列化和结构化信息,最后只有网络最顶层的被用作标记预测。由于标签之间也存在着转移概率,之前的大部分工作都引入了标签之间的跳转概率进行建模。DBLSTM-EU采用了更简单的模式,SRL被当作一个典型的分类问题来处理,标签之间的转移概率都被隐含在RNN序列的隐状态之间。与前人的工作相比,DBLSTM-EU更易于并行和实现。
给定特定的输入特征序列x={x,x2,…,xT},其对应的正确标记序列y={y1,y2,…,yT}的对数似然估计如式(6)所示。
logp(y;θ)=∑logp(yT|x;θ)
(6)
模型预测标签yt依赖于对应的DBLSTM-EU的隐状态ht,如式(7)所示。
p(yt|x;θ)=softmax(Woht)TδyT
(7)
6 实验和分析
实验主要基于公开数据集合CoNLL-2005和CoNLL-2012。
6.1 数据说明
与前人工作相似,我们用CoNLL-2005第2~21节的Wall Street Journal (WSJ)作为训练集,第24节作为开发集。测试集包含了WSJ的第23节和Brown corpus的3节。更具体的设置说明可以参考Pradhan[7]的说明。
6.2 实验细节
初始化所有的递归矩阵都被随机初始化为正交矩阵,所有的偏移都被初始化为0。其他的参数都随机从均值为0和方差为0.01的高斯分布中获取。词向量也可以从预先训练好的词向量进行初始化,关于这部分的影响,6.3节进行了进一步讨论。
设置隐节点的维度设置为256,增加维度并不能再提高效果。词向量和标记的维度都是128。
学习策略参数的优化采用了随机梯度下降(SGD),Adadelta[8]被用来进行自适应的学习率。为了避免梯度爆炸的情况,我们对梯度进行了l2规范,超过1.0的梯度都被进行了规范。模型的批处理值设置为80。
6.3 实验结果
表1展示了DBLSTM-EU与前人工作的对比。在CoNLL-2005上,Pradhan[7]综合了三种句法分析的结果,F值为77.3%。Collobert[4]提出了一个通用的卷积神经网络模型解决这个问题,借助句法分析的结果,可以接近当时的最好结果。Zhou[5]利用LSTM和CRF,并利用了少量的词汇化特征,取得了81.07%F值,然而对于领域外数据,他们的表现并不理想。DBLSTM-EU做了最少的特征工程,仅仅依靠增加模型深度,在这个数据集上得到了当前世界上最好的性能:F值81.56%。值得一提的是,本文方法在领域外数据集Brown上的表现更为出色。因此,我们推测,深度模型对领域适应是有帮助的,因为更深的模型提供了更多层次的抽象,可以捕捉到句子微妙的语义信息。在CoNLL-2012测试集上,DBLSTM-EU 取得了更好的结果,比前人最好结果的F值提高了1.3%。CoNLL-2012比CoNLL-2005有更多的数据,也部分说明了在大数据情况下,深度模型会有更好的表现。
表1 与前人工作对比
续表
6.4 实验分析
Resvs.EU如图1所示,我们首先比较了“残差” 网络(ResNet)和EU,构造了与DBLSTM-EU类似的网络,命名为DBLSTM-Res。装备了“残差”连接的深度卷积神经网络,在图像识别上取得了巨大的突破,也是目前最成功的跨层连接网络[17]。与“残差”相比,EU具有两个优势:(1)EU装备了“门”函数,可以扩大正则线性输入和非线性输入的规模; (2)EU是神经元内部结构的变化,线性信息可以在时间和空间两个维度传播。从试验也可以看出,DBLSTM-EU在两个测试集上都比DBLSTM-Res有一定的优势。
双向vs.单向从表2第一行和第二行可以看出,双向模型比单向模型有非常明显的提升,分别为68.33%、60.62%。可以说明,未来的文本信息对预测起着至关重要的作用。为了简洁起见,我们在随后的实验中不再对比这个因素的影响。
表2 实验结果分析
词向量之前的工作已经发现词向量在大规模数据上的预训练对分类结果非常重要。 然而,在和句法相关的任务中,不考虑词序的词向量模型表现得不够好。因此我们用了大量英语维基百科(EWK.)的数据,用神经网络语言模型(NLM[18])得到了词向量。表2第三行展示了使用EWK初始化词向量可以带来的显著提升。
模型规模模型规模是影响神经网络性能的重要因素。为了公平起见,我们扩大了对比模型的宽度,从256到512,但是并没有发现更高的性能提升,说明简单增加模型参数并不能带来持续的收益。虽然模型深度的增加可以带来持续的收益,但是当深度扩大到六层的时候,训练开始变得很难,甚至结果会下降。
EU的影响当模型足够深的时候,EU可以有效地帮助模型的训练。图4给出了详细的比较,可以发现即使18层的LSTM也能得到比较好的训练,直到20层才出现了微弱的下降。然而没有EU,模型性能到六层就不再持续增长,到20层,性能已经有了显著下降。
图4 深度对SRL影响分析
句长分析更详细的分析结果如图5所示,实线代表DBLSTM-EU的实验结果,虚线代表Zhou[5]的实验结果。上面两条线是领域内的结果,下面两条线是领域外的结果。从图5可以看出,DBLSTM-EU 在句子长度比较长的时候表现更好。一个可能的解释是,句子比较长的时候,句子内部的语义结构更为复杂,需要更深的模型捕捉这种长距离的潜在的语义结构。另外我们可以发现,在领域外数据上DBLSTM-EU和Zhou[5]的模型比有更明显的优势,也说明了深度模型可能带来更好的泛化能力。
图5 模型在不同句长的实验结果
7 相关工作
SRLGildea[18]开发了第一个基于FrameNet的自动语义角色标注系统。此后语义角色标注得到了持续的关注和发展。一部分工作聚焦于扩展SRL的句法特征,希望可以获取句子的全局信息[10-15]。也有一部分工作试图融合多种不同的句法分析结果,提供更鲁棒的句法分析特征[16-17]。
除了传统的方法,Collobert[4]等人提出了基于卷积神经网络的方法处理一系列自然语言处理问题,SRL正是其中之一,然而相对于其他几个问题,这个模型在SRL上的表现相对不够出色。Zhou[5]等人进一步利用LSTM引入了少量的词汇化信息,取得了不错的实验结果。DBLSTM-EU受到 Zhou[5]等人工作的启发,通过增加模型深度来抓取语义信息,进一步简化了模型的特征和推断策略,更易于实现,并且有更快的解码速度。
深度学习递归神经网络通过循环的操作存储上下文信息,可以被应用到各种序列相关的问题上。一些基于“门”控制的递归神经网络也被逐渐提出,比如LSTM和GRU。这些方法可以捕捉更长距离的信息,而且可以有效缓解梯度消失的问题。传统的RNN只依赖于过去的历史信息,双向的RNN被提出,同时也可以获取未来的信息[18]。将RNN堆栈起来,组成更深的网络也取得了不错的结果。近期研究人员利用深度模型在多种任务上都取得了比较好的实验结果[22]。
我们的工作和优化深层网络也有关系。Srivastava[19]提出了Highway,在卷积神经网络之间加入了线性连接,我们和他们的思路相似,但是我们的模型主要改变了神经网络单元的内部结构,在时间和空间两个维度上都可以优化梯度传递。Chung[20]等人在多层LSTM之间都加入了全连接,提供了更好的层与层之间的交互。Kalchbrenner[11]提出了更为通用的跨层连接的LSTM模型。He[21]提出了更为简单的跨层连接方式——“残差”网络。EU和这些工作都有相同的思想,尽可能在深层网络之间加入跨层的线性连接,主要区别在于解决的方式不同。
8 总结
本文提出了一种通用的双向深度LSTM模型(DBLSTM-EU),用以解决语义角色标注问题,为了方便训练深度模型,我们提出了EU解决梯度消失在空间传播的问题。在CoNLL-2005和CoNLL-2012两个公开数据集上取得了目前最好的结果。
DBLSTM-EU并没有对任务本身做任何假设,具有广泛的适用性,可以被应用在其他自然语言处理任务上。另一方面,我们通过EU构造了18层的递归神经网络,是已知自然语言处理领域最深的递归神经网络,为深度网络在自然语言处理领域的应用提供了借鉴。
[1]Emanuele Bastianelli,Giuseppe Castellucci,Danilo Croce,et al.Textual inference and meaning representation in human robot interaction[C]//Proceedings of the Joint Symposium on Semantic Processing.Textual Inference and Structures in Corpora,2013:65-69.
[2]Shen Dan,Mirella Lapata.Using semantic roles to improve question answering[C]//Proceedings of the EMNLP-CoNLL,2007:12-21.
[3]Kevin Knight,Steve K Luk.Building a large-scale knowledge base for machine translation[C]//Proceedings of the AAAI,1994,94:773-778.
[4]Ronan Collobert,Jason Weston,Léon Bottou,et al.Natural language processing (almost) from scratch[J].Journal of Machine Learning Research,2011,12:2493-2537.
[5]Jie Zhou,Wei Xu.End-to-end learning of semantic role labeling using recurrent neural networks[C]//Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing,Beijing,China,2015:1127-1137.
[6]Sepp Hochreiter,Jürgen Schmidhuber.Long short-term memory[J].Neural computation,1997,9(8):1735-1780.
[7]Sameer Pradhan,Kadri Hacioglu,Wayne Ward,et al.Semantic role chunking combining complementary syntactic views[C]//Proceedings of the Conference on Computational Natural Language Learning ,2005:217-220.
[8]Matthew D Zeiler.Adadelta:an adaptive learning rate method[C]//arXiv preprint arXiv:1212.5701.2012.
[9]Daniel Gildea,Daniel Jurafsky.Automatic labeling of semantic roles[J].Computational linguistics,2002,28(3):245-288.
[10]Mihai Surdeanu,Lluís Màrquez,Xavier Carreras,et al.Combination strategies for semantic role labeling[J].Journal of Artificial Intelligence Research,2007,29:105-151.
[11]Nal Kalchbrenner,Ivo Danihelka,and Alex Graves.2015.Grid long short-term memory[C]//arXiv preprintarXiv:1507.01526.2015.
[12]Xavier Carreras,Lluís Màrquez.Introduction to the CoNLL-2005 shared task:semantic role labeling[C]//Proceedings of the 9th Conference on Computational Natural Language Learning (CoNLL-2005),2005:152-164.
[13]Dekai Wu,Pascale Fung.Semantic roles for SMT:a hybrid two-pass model[C]//Proceeding of the Conference:Human Language Technologies:The 2009 Annual Conference of the North American Chapter of the Association for Computational Linguistics,2009:13-16.
[14]孙萌,姚建民,吕雅娟,等.基于最大熵短语重排序模型的特征抽取算法改进[J].中文信息学报,2011,25(2):78-83.
[15]宋毅君,王瑞波,李济洪,等.基于条件随机场的汉语框架语义角色自动标注[J].中文信息学报,2014,28(3):36-47.
[16]熊皓,刘群,吕雅娟.联合语义角色标注和指代消解[J].中文信息学报,2013,27(6):58-69.
[17]王臻,常宝宝,穗志方.基于分层输出神经网络的汉语语义角色标注[J].中文信息学报,2014,28(6):56-61.
[18]Mike Schuster and Kuldip K Paliwal.Bidirectional recurrent neural networks[J].IEEE Transactions on Signal Processing,1997,45(11):2673-2681.
[19]Rupesh Kumar Srivastava,Klaus Greff,Jürgen Schmidhuber,et al.Highway Networks[C]// arXiv preprint arXiv:1505.00387.2015.
[20]Junyoung Chung,Caglar Gulcehre,Kyunghyun Cho,et al.Gated feedback recurrent neural networks[J].Computer Science,2015:2067-2075.
[21]Kaiming He,Xiangyu Zhang,Shaoqing Ren,et al.Deep residual learning for image recognition[R].arXiv preprint arXiv:1512.03385.2015.
王明轩(1989—),博士,主要研究领域为自然语言处理,深度学习。E-mail:xuanswang@tencent.com
刘群(1966—),博士生导师,研究员,主要研究领域为机器翻译,自然语言处理。E-mail:liuqun@ict.ac.cn