使用过训练提升词性标注依存句法联合模型的速度

2014-04-29 00:44张梅山车万翔刘挺
智能计算机与应用 2014年4期

张梅山 车万翔 刘挺

摘要:词性标注和依存句法分析是自然语言处理领域中句子级别基本分析技术的两个重要任务,一般来说词性标注是依存句法分析的一个前提条件。基于联合分析的方法将这两个任务在一个统一的统计模型中联合处理能避免错误传播这类问题的发生,因此这种联合模型能取得比较好的性能。但是这种联合模型会带来算法上的时间复杂度的额外开销,因此导致联合分析的方法,速度非常慢。本文提出一种基于过训练的方法,通过极少量的性能损失,使得联合模型的解码速度提升了6倍。

关键词:词性标注; 依存句法分析; 联合模型; 过训练

中图分类号:TP391 文献标识码:A文章编号:2095-2163(2014)04-0021-04

Abstract:POS tagging and dependency parsing are basic tasks of sentence-level natural language processing. Generally POS-tagging is a necessary prerequisite for dependency parsing. The joint models which link the two tasks together and process them by a unified model have achieved improved performances, because joint modeling can avoid the error-propagation problem. However, the time complexity of joint models can be always so large, thus yields much slower speed. This paper proposes a method based on uptraining technique to improve the speed of joint models, with only very little loss in performances.

Key words:POS-Tagging; Dependency Parsing; Joint Models; Uptraining

0引言

词性标注和句法分析都是自然语言处理句子级别的基础分析研究中非常重要的两个任务,在自然语言处理领域,有不少的研究者对其展开了深入的研究[1-2]。词性标注和依存句法分析,分别属于词法分析和句法分析的范畴,且都能为自然语言的上层处理任务,包括机器翻译、信息检索、问答等等,提供最基本的信息,使得这些任务的性能达到更好。

一般来说,对于给定的一个句子,往往首先会对该句子进行词性标注,然后在词性标注的基础之上进行依存句法分析,因为依存句法分析中用到的大量特征都是依赖于词的词性的,如此逻辑为依存句法分析的性能提供了保证。这一方法通常可称为串行的方法,但却存在两个方面的大问题。第一个问题是错误蔓延,也就是词性标注的错误会加剧依存句法分析的错误,第二个问题是词性标注很难用到上层的句法信息,更多情况下,句法层面的词语和词语之间相互依赖的非词序信息即能较好地帮助词性的消歧,只是这种串行的方法对于上述信息的利用具有相当的难度。

近年来,联合模型的方法得到了自然语言处理领域中研究者们的广泛关注,这一方法正是为了解决串行模型所面临的那两类问题而极富创造性地提出的。联合模型将两个相互依赖而且相邻的任务放在一个统一的模型中进行处理,这样词性标注和依存句法之间便可以得到非常充分的互相利用。

目前典型的词性标注和依存句法的联合模型一共有两种,基于图的联合模型[3]和基于转移的联合模型[4],这两种联合模型分别是在基于图的依存分析模型和基于转移的依存分析模型的框架下进行扩展而得到的。对于基于图的联合模型,李正华等人发现,联合模型的速度和串行模型相比,有着很严重的下降,由串行的5.8句每秒下降到联合模型的0.6句每秒。而针对基于转移的联合模型, Jun Harori等人也有类似的发现。这一速度的发现,会大大降低联合模型的实用性。

为了提升联合模型的速度,同时也尽可能少地影响最终词性标注和依存句法分析的性能,本文提出了一种基于过训练的方法[5]。在文中,由于基于转移的联合模型可以非常简单地在速度和性能之间进行调节,因此可以通过改进该联合模型来达到研究的最终目标。基于转移的联合模型是一个线性时间复杂度的基于柱搜索的统计模型,其速度的快慢仅仅取决于模型的柱大小,因此可以非常方便地通过减少柱大小使得分析速度加快,但是因为一个较小的柱会导致较小的搜索空间,并带来最终性能的急剧下降。通过分析知道,提高一个统计机器学习模型效果的最简单方法便是增加训练语料。在这里,可以根据过训练的原理,首先使用最基准的64柱大小的模型自动解析大量原始句子,并将解码的结果加入到与一个柱大小相对来说较小的联合模型中,这样就可使得这个柱比较小的联合模型的性能得到提升,从而使得最终的联合模型不仅速度加快,而且在性能上也和原来64柱大小的联合模型的性能相差不大。

1背景介绍

1.1词性标注

2基于转移的词性标注依存句法联合模型

基于转移的联合模型最早由Jun Hatori等人于2011年提出并发表在IJCNLP上[4],本文使用JTrans来表示这一联合模型。该方法借鉴了自动机的思想,其核心模块集中表现为一个转移系统,转移系统由系统的状态和这个状态能接受的一系列操作组成。在开始解码时,有一个初始的状态,经过一系列转移操作后,系统进入终结状态,每个终结状态对应为一颗依存句法树,这颗依存句法树可以由中间经历的转移操作序列直接得到。

对于文中的词性标注依存句法联合模型,系统的状态由一个栈和一个队列组成,栈中是部分解码的依存句法子树序列,记为S0, S1, …,队列中是需要进一步处理的词语序列,记为Q0, Q1, …。在初始状态时,栈为空,队列中为w1, …, wn;而终结状态,栈中仅有一颗依存句法树,队列为空。在系统的状态上定义的操作有两类,移进和归约,两类动作都有参数。对于移进,参数是词性,对于队列中词赋予词性并移入栈中,而对于归约,实际上就是将栈顶的两颗子依存树进行合并,其主要参数将指明该归约是左归约还是右归约,左归约后栈顶的第二棵树将成为第一棵树的孩子结点,而右归约后则是栈顶的第一棵树将成为第二颗树的孩子结点。如图2所示显示了联合模型情况下的转移系统,最上面的是转移系统的状态,下面分别表示经过移进和归约之后状态的变化情况。

对于一个指定的状态,一般会有多种操作,这样在分析过程中,从初始状态到结束状态,就可能有多种转移动作序列,每一种转移动作序列都面临一个不同的分析结果。为了得到最好的分析结果,可以根据目前的解码状态得到分数最高的那个动作,从而得到下一个状态,这种方法是一种基于贪心的搜索算法,但是这种方法是一种局部最优的算法,而且还会裁剪掉初始动作分数不高但是后期动作分数很高的一些动作转移序列。为了缓解这一问题,本文一般采用了柱搜索算法,如算法所示,其中st代表状态, A代表所有可能操作的结合。柱搜索每次保留固定的多个转移动作而不是贪心算法中的一个转移动作。柱大小的设置方法往往是根据实验的需求进行设定的,一般在研究中采用柱大小为64来实现解码,这样就能和其它性能最好的词性标注依存句法联合模型取得相当的结果。

采用柱大小为64的联合模型面临着解码速度非常慢的问题,其搜索空间和存储空间都要比贪心算法大上64倍,因此研究希望通过降低柱的大小使得速度能够获得提升,但是柱大小的降低势必会影响联合模型的性能。鉴于此,本文采用了过训练的方法来使得柱降低之后的联合模型性能得到较大的提升。

过训练最早由Slav Petrov等人在2010年提出。假设一个任务存在两种不同的模型M1和M2,同时还有大规模未标注数据,其中M1速度非常慢但是准确率高,而M2速度非常快但是准确率却有较大下降,过训练即是使用M1去自动解析大规模的未标注数据,而后用自动解析得到的数据去进一步训练模型M2,从而使得M2的性能可以获得大幅度提升。

对于词性标注和依存句法联合模型,研究中就存在一个高精度但是速度慢的统计模型,即柱大小为64的JTrans,通过改变JTrans的柱的大小,相应地也可以得到一系列精度低但是速度更快的简单联合模型, 这两类模型分别对应于上面提到的M1和M2。因此本文即采用柱大小为64的JTrans来自动解析接近50万句的原始句子,然后加入到柱大小降低后的简单联合模型的训练语料中,从而使得简单模型的性能大大提升,甚至和原始的柱大小为64的JTrans相比,性能损失也已不再明显。

4实验

本文通过在中文宾州树库5.1版上进行实验来验证上述提出的方法,该树库是一个短语句法树库,在此通过张岳等人2008年提出的规则,将中文宾州树库的短语结构转换成依存结构。而且,更进一步地将这一数据按照7:1:2的方式划分成为三个集合,分别为训练集(用于训练统计模型中的特征权重)、开发集(用于调整模型中一些比较宏观的参数)和测试集(用户评价最终的模型性能)。使用过训练的方法时,本文从宾夕法尼亚大学共享的Linguistic Data Consortium语料中提取了关于中文的50万句原始语料作为自动标注的原始语料。

在评价词性标注性能时,使用了词性标注准确率,即词性标注正确的词的总数占所有词比例;在评价依存分析性能时,使用了依存弧准确率(Unlabeled Attached Score, UAS),即父亲节点被正确找到的词的个数占所有词的个数的比例。另外,还使用了根节点识别准确率(Root Accuracy, RA)以及整个句子正确识别准确率(Completely Match, CM),并且在评价依存的过程中,本文忽略了标点符号。

在使用了过训练算法之后,联合模型的性能如表2的上半部分所示。从数据结果的分析可以得出,依存分析和词性标注的性能下降速度变慢了。当柱大小下降为4时,联合模型的准确率和不使用过训练时柱大小为8的性能几乎一致;类似地,柱大小为8的模型和不使用过训练柱大小为16的性能几乎一致。由此可以得到结论:使用了过训练的方法后,基于同样的准确率,联合模型的速度有了一定的提升,集效率也得到了提高。

5结束语

词性标注和依存句法的联合模型虽然一定程度上可提升各自的任务性能,但是其解码速度却超出了可接受范围,以致于在很多实际应用中受到了技术限制。针对这一问题,本文采用了一种基于过训练的方法来提升联合模型的速度。研究中使用的基准联合模型是一种基于转移的联合模型,这种模型可以非常方便地通过柱大小的调整来平衡联合模型的准确率和速度,本文即以其为基础,并结合过训练方法,实现了一个不仅速度快而且性能损失也比较少的联合模型,并最终使得文中联合模型的速度达到了100多句每秒,而性能损失却仅有0.3%。

参考文献:

[1]ZHANG Y, CLARK S. Syntactic processing using the generalized perceptron and beam search[J]. Computational Linguistics, 2011, 37(1): 105-151.

[2]MCDONALD R, NIVRE J. Analyzing and integrating dependency parsers[J]. Computational Linguistics, 2011, 37(1): 197-230.

[3]LI Z, ZHANG M, CHE W, et al. Joint optimization for Chinese POS tagging and dependency parsing[J]. IEEE/ACM Transactions on Audio, Speech and Language Processing (TASLP), 2014, 22(1): 274-286.

[4]HATORI J, MATSUZAKI T, MIYAO Y T J. Incremental joint POS tagging and dependency parsing in Chinese[C]// Chiang Mai, Thailand: 2011.

[5]PETROV S, CHANG P, RINGGAARD M A H. Uptraining for accurate deterministic question parsing[C]// Cambridge, MA, 2010.

[6]李正华,车万翔,刘挺. 基于柱搜索的高阶依存句法分析[J]. 中文信息学报, 2010, 24(1): 37-41.

[7]COLLINS M, KOO T. Discriminative reranking for natural language parsing[J]. Computational Linguistics, 2005, 31(1): 25-70.

[8]COLLINS M R B. Incremental parsing with the perceptron algorithm[C]//Barcelona, Spain, 2004.