基于深度学习的依存句法分析进展

http://www.cipsc.org.cn/qngw/?p=885

前言:

中国中文信息学会青年工作委员会(简称青工委)是中国中文信息学会的下属学术组织,专门面向全国自然语言处理领域的青年学者和学生开展工作,在青年学者与学生中拥有较大影响力。近年来,在大数据和深度学习的推动下,自然语言处理技术发展迅速。为了增进国内对自然语言处理前沿动态的了解,青工委在微信公众号推出“青工委学术前沿专栏”,邀请自然语言处理领域青年学者撰写文章,引介前沿热点,介绍最新成果,发表学术观点,力促学术争鸣。专栏计划每周推出一期文章,欢迎大家关注!

———————————————————————————————

题目:基于深度学习的依存句法分析进展 (PDF

作者:车万翔(哈尔滨工业大学)

———————————————————————————————

 

1  引言

句法分析旨在将句子从词语的序列形式按照某种语法体系转化为图结构(通常为树结构),以刻画句子内部的句法关系(主谓宾等),是自然语言处理的核心问题之一。依存语法是众多语法体系中的一种,它使用依存弧连接句子中两个具有一定句法关系的词语,最终形成一颗句法依存树。依存语法以其形式简洁、易于标注、便于应用等优点,受到越来越多研究人员的重视,已成为句法分析研究的主流,有效支撑了信息抽取、情感分析、机器翻译等多个研究任务。

例如,对于字面上非常相似的两个句子“您转这篇文章很无知”和“您转这篇文章很无知”,虽然它们仅相差了一个“的”字,但是它们的含义完全不同,这主要是由于这两句话的主语不同造成的。图1分别给出了这两个句子的依存句法分析结果 [1],我们可以看到第一句话的主语(SBV关系)是“文章”,而第二句话的主语是“转”的动作。可见,若不使用依存句法分析工具,很难判断这两句话的情感对象,即什么是“无知”的。

图1:依存句法分析对比示例

主流依存句法分析方法分为基于图(Graph-based)和基于转移(Transition-based)两类:基于图的方法将依存句法分析看成从完全有向图中寻找最大生成树的问题,图中的边表示两个词之间存在某种句法关系的可能性;基于转移的方法通过一系列移进、规约等转移动作构建一棵依存句法树,学习的目标是寻找最优动作序列。与基于图的方法相比,基于转移的方法算法复杂度更低,因此具有更高的分析效率,同时由于能采用更丰富的特征,其分析准确率也与基于图的方法相当,因此受到了越来越多学者的关注,尤其是近年来很多深度学习技术都试图应用于基于转移的方法,因此本文也将重点介绍该类方法。

所谓深度学习技术,一般是指建立在含有多层非线性变换的神经网络结构之上,对数据的表示进行抽象和学习的一系列机器学习算法。该方法已对语音识别、图像处理等领域的进步起到了极大的推动作用,同时也引起了自然语言处理领域学者的广泛关注,已成功地应用于机器翻译、阅读理解、问答系统等任务,并已然成为新的自然语言处理标准方法。那么,近年来依存句法分析,尤其是基于转移的依存句法分析究竟是如何利用深度学习技术的呢?这些方法对其它研究领域是否也有借鉴意义呢?未来的研究方向会在哪里呢?本文试图就这些问题加以详细的阐述。

 

2  基于转移的依存句法分析方法

基于转移的依存句法分析法使用一系列由初始到终止的状态(State或Configuration)表示句法分析的过程 [2],一个状态由栈(Stack)、缓存(Buffer)以及部分已分析好的依存弧构成,其中栈用于存储已经过分析的词,缓存表示待分析的词。

初始状态下,栈中仅含有一个根节点(Root),缓存中存储句子中全部的词。一个状态经过一个转移动作(Action)变为一个新的状态,转移动作共有移进(Shift)、左归约(Left-Reduce)、右归约(Right-Reduce)三种。其中移进动作将缓存中第一个词压入栈中;左规约在栈顶的两个词之间产生一条左指向依存弧,同时将栈顶第二个词下栈;右规约在栈顶的两个词之间产生一条右指向依存弧,同时将栈顶词下栈。

可证明,经过一系列转移动作,最终能够达到终止状态,即栈中仅含有一个根节点,缓存为空,此时恰好构成一颗完整的依存树,并完成对一个句子的依存句法分析过程。

基于转移的依存句法分析目的就是要学习一个分类器,其输入为一个状态,输出为该状态下最可能的动作,这又被称为贪心解码算法,后面我们会介绍其它非贪心的解码算法。

传统的方法通过抽取一系列人工定义的特征来表示状态,即分类的依据,如栈顶的词、词性,缓存中的第一个词、词性,已生成部分依存树的最左或最右词,这些又被称为核心特征。为了提高分类的精度,还需要人工定义各种组合特征。如Zhang and Nivre (2011) 曾给出了一套准优化的特征及特征组合模板,共有20种核心特征,72种组合特征。

抽取出特征后,传统方法往往采用线性分类器,即将特征进行线性加权组合,组合系数为分类器学习获得的权重,最终选取分数最高的类别作为所要采取的动作。

以上传统的做法存在一个较为严重的问题,就是人工定义特征极其繁琐,需要丰富的句法分析领域知识,即便如此也往往很难将全部有效特征都抽取出来,例如仅使用最左或最右叶子节点表示已生成的部分依存树显然不够准确,而传统方法又无法使用更合适的特征来表示它们。随着深度学习技术的兴起,人们发现可以利用其强大的抽象表示能力来解决以上的问题。

 

3  基于深度学习的依存句法分析

根据所采用解码方法的不同,基于转移的依存句法分析技术又可分为贪心和全局解码两种算法。在将深度学习应用于此的时候,也分别对应这两种算法,下面分别加以介绍。

 

3.1  贪心解码算法

斯坦福大学的Chen and Manning (2014) 最早将深度学习技术成功应用于依存句法分析。与传统方法一样,他们也首先从一个状态中提取一些重要的核心特征,但是与传统方法使用高维、稀疏、离散向量表示(又称One-hot表示)这些特征不同,他们使用低维、稠密、连续的分布式向量来表示特征。直觉上,相似的词、词性甚至句法关系等特征可以使用相似的向量表示,从而一定程度上克服数据稀疏问题;理论上,分布式表示是一种降维方法,可有效克服机器学习中的“维数灾难(Curse of Dimensionality)”问题,同时这种分布式表示的表达能力更强,与其维度成指数关系。

深度学习中的非线性激活函数还可以隐含的达到传统方法中特征组合的效果,从而避免了繁琐的组合特征设计,最终取得了与传统方法相当的准确率。与此同时,该方法由于不需要显示地进行特征组合这一极其耗时的操作,附以预计算等深度学习计算技术,最终还极大加快了依存句法分析的速度。

当然,Chen and Manning (2014) 的方法仍然需要人工提取核心特征,同时也无法更好地表示部分依存树。CMU的Dyer等人 (2015) 提出使用长短时记忆循环神经网络(LSTM-RNN)来表示栈和缓存,并使用递归神经网络来表示部分依存树,另外还额外地使用一个LSTM表示历史的转移动作序列,最终将这些网络输出的向量进行拼接来表示一个状态,从而达到无需进行任何人工特征提取和组合的操作,即可更完备地表示状态的目的。Ballesteros等人 (2015) 后来又进一步拓展他们自己上述的工作,使用字符序列的双向LSTM来表示单词,从而更好地对单词进行泛化表示,克服低频词或未登录词表示不精确等问题。

Dyer等人的一系列工作虽然无需人工提取任何特征,但是网络过于复杂,不便于学习。Kiperwasser and Goldberg (2016) 提出了一个非常简单的特征表示和学习方法,他们使用双向LSTM来对句子中的每个词进行表示,然后将该词表示作为依存句法分析系统的输入,在仅使用少量核心特征的情况下,取得了较高的准确率。该方法不但适用于基于转移的依存句法分析算法,还适用于基于图的依存句法分析算法。

 

3.2   全局解码算法

以上一系列工作都是在利用深度学习较强的特征表示能力来表示转移状态,所采用的算法又被称为贪心解码,即每次选择给定状态下最好的转移动作,在选择的过程中并没有考虑后续状态对其的影响。在基于转移的依存句法分析领域,很早就有学者提出利用柱搜索(Beam Search)等近似全局搜索/解码算法来综合考虑多个状态之间的依赖关系,从而选择更好的转移动作序列 (Johansson and Nugues, 2007; Zhang and Clark, 2008)。基于此思想,Google的Weiss等人 (2015) 将以上贪心解码方法中获得的每个转移动作的隐层输出向量作为全局解码算法的输入特征,然后利用结构化感知器对这些特征的参数进行学习,最终获得了比贪心解码更好的准确率。

然而,Weiss等人 (2015) 的方法仅将深度学习获得的结果作为传统句法分析算法的特征,割裂了学习和解码两个部分。是否有办法一体化的使用深度学习技术进行全局的学习和解码呢?Zhou等人 (2015) 直接计算完整转移动作序列的似然函数,然而对整个句子来说,其可能的转移动作序列太多以至于无法枚举,所以无法精确地计算似然函数。为解决该问题,他们引入了对照学习(Contrastive Learning)方法来近似求解似然函数,即在进行全局归一化时,只考虑Beam中的有限结果。Google的Andor等人 (2016) 也采用了类似的思想,经过细致的参数调节,使得他们的句法分析系统获得了目前文献中报告的最高准确率,Google于今年5月份开源了他们的系统 – SyntaxNet [3]。值得一提的是,除了依存句法分析外,Google还将相同的基于转移的框架应用于词性标注、句子压缩等任务。

 

4  总结及未来趋势

深度学习在自然语言处理中的应用方兴未艾,本文以依存句法分析为例,介绍了如何利用深度学习强大的表示能力更好地进行特征学习,从而获得比传统方法更好的分析精度。同时我们注意到,深度学习并非一劳永逸,目前的方法还需利用传统方法构造转移系统,同时全局解码算法也有助于系统性能的进一步提升。

近来序列到序列(Sequence to Sequence),也称编码解码(Encoder Decoder)方法在多个自然语言处理任务中都到了广泛的应用,如机器翻译、阅读理解等。那么,该方法是否也能应用于依存句法分析呢?如果可以的话,我们就无需再使用传统方法中的转移系统了。另一方面,依存句法分析中的全局解码算法对序列到序列的模型也会有借鉴作用,尤其是在学习阶段目前还没有研究工作采用全局学习算法。

依存句法是典型的结构化学习问题,在自然语言处理中,还有很多结构化学习的任务,如分词、词性标注等,我们同样可以借鉴上述基于转移的算法框架加以解决。除此之外,还有更多的自然语言处理任务值得尝试,如上面介绍的Google就使用该框架进行句子压缩。

很多上层应用依赖于句法分析,尤其是深度学习中的递归神经网络方法主要依赖的就是句法分析的结果进行语义的递归组合 (Socher 2014)。然而在实际应用中句法分析的结果可能存在错误,同时句法分析的标准是语言学家定义的语法体系,而依据这种语法体系进行语义组合未必适合上层的应用。因此,是否可以根据上层应用来自动调整句法分析的结果,即基于动态变化的网络结构进行学习呢?传统的有监督学习框架很难实现该目标,而强化学习(Reinforcement Learning)框架为我们提供了一种自动学习动态网络结构的途径。

 

参考文献

Andor, D., Alberti, C., Weiss, D., Severyn, A., Presta, A., Ganchev, K., Collins, M. (2016). Globally Normalized Transition-Based Neural Networks. ACL.

Chen, D., & Manning, C. D. (2014). A Fast and Accurate Dependency Parser using Neural Networks. ACL.

Ballesteros, M., Dyer, C., & Smith, N. A. (2015). Improved Transition-Based Parsing by Modeling Characters instead of Words with LSTMs. EMNLP.

Dyer, C., Ballesteros, M., Ling, W., Matthews, A., & Smith, N. A. (2015). Transition-Based Dependency Parsing with Stack Long Short-Term Memory. ACL.

Johansson, R., & Nugues, P. (2007). Incremental Dependency Parsing Using Online Learning. EMNLP

Kiperwasser, E., & Goldberg, Y. (2016). Simple and Accurate Dependency Parsing Using Bidirectional LSTM Feature Representations. TACL.

Socher, R. (2014) Recursive Deep Learning for Natural Language Processing and Computer Vision. PhD Thesis, Stanford University.

Weiss, D., Alberti, C., Collins, M., & Petrov, S. (2015). Structured Training for Neural Network Transition-Based Parsing. ACL.

Zhang, Y., & Clark, S. (2008) Joint Word Segmentation and POS Tagging Using a Single Perceptron. ACL.

Zhang, Y., & Nivre, J. (2011). Transition-based Dependency Parsing with Rich Non-local Features. ACL.

Zhou, H., Zhang, Y., Huang, S., & Chen, J. (2015). A Neural Probabilistic Structured-Prediction Model for Transition-Based Dependency Parsing. ACL.


[1] 该结果通过“语言云(http://www.ltp-cloud.com/)”分析获得,具体依存句法关系解释见该网站。

[2] 随着状态表示方式、转移动作的不同,基于转移的方法可以分为多种转移系统,在此我们以最简单的标准弧(Arc-Standard)转移系统为例加以说明。

[3] https://github.com/tensorflow/models/tree/master/syntaxnet

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值