張梅山 車萬翔 劉挺
摘要:詞性標注和依存句法分析是自然語言處理領域中句子級別基本分析技術的兩個重要任務,一般來說詞性標注是依存句法分析的一個前提條件?;诼?lián)合分析的方法將這兩個任務在一個統(tǒng)一的統(tǒng)計模型中聯(lián)合處理能避免錯誤傳播這類問題的發(fā)生,因此這種聯(lián)合模型能取得比較好的性能。但是這種聯(lián)合模型會帶來算法上的時間復雜度的額外開銷,因此導致聯(lián)合分析的方法,速度非常慢。本文提出一種基于過訓練的方法,通過極少量的性能損失,使得聯(lián)合模型的解碼速度提升了6倍。
關鍵詞:詞性標注; 依存句法分析; 聯(lián)合模型; 過訓練
中圖分類號: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]。詞性標注和依存句法分析,分別屬于詞法分析和句法分析的范疇,且都能為自然語言的上層處理任務,包括機器翻譯、信息檢索、問答等等,提供最基本的信息,使得這些任務的性能達到更好。
一般來說,對于給定的一個句子,往往首先會對該句子進行詞性標注,然后在詞性標注的基礎之上進行依存句法分析,因為依存句法分析中用到的大量特征都是依賴于詞的詞性的,如此邏輯為依存句法分析的性能提供了保證。這一方法通??煞Q為串行的方法,但卻存在兩個方面的大問題。第一個問題是錯誤蔓延,也就是詞性標注的錯誤會加劇依存句法分析的錯誤,第二個問題是詞性標注很難用到上層的句法信息,更多情況下,句法層面的詞語和詞語之間相互依賴的非詞序信息即能較好地幫助詞性的消歧,只是這種串行的方法對于上述信息的利用具有相當?shù)碾y度。
近年來,聯(lián)合模型的方法得到了自然語言處理領域中研究者們的廣泛關注,這一方法正是為了解決串行模型所面臨的那兩類問題而極富創(chuàng)造性地提出的。聯(lián)合模型將兩個相互依賴而且相鄰的任務放在一個統(tǒng)一的模型中進行處理,這樣詞性標注和依存句法之間便可以得到非常充分的互相利用。
目前典型的詞性標注和依存句法的聯(lián)合模型一共有兩種,基于圖的聯(lián)合模型[3]和基于轉移的聯(lián)合模型[4],這兩種聯(lián)合模型分別是在基于圖的依存分析模型和基于轉移的依存分析模型的框架下進行擴展而得到的。對于基于圖的聯(lián)合模型,李正華等人發(fā)現(xiàn),聯(lián)合模型的速度和串行模型相比,有著很嚴重的下降,由串行的5.8句每秒下降到聯(lián)合模型的0.6句每秒。而針對基于轉移的聯(lián)合模型, Jun Harori等人也有類似的發(fā)現(xiàn)。這一速度的發(fā)現(xiàn),會大大降低聯(lián)合模型的實用性。
為了提升聯(lián)合模型的速度,同時也盡可能少地影響最終詞性標注和依存句法分析的性能,本文提出了一種基于過訓練的方法[5]。在文中,由于基于轉移的聯(lián)合模型可以非常簡單地在速度和性能之間進行調節(jié),因此可以通過改進該聯(lián)合模型來達到研究的最終目標?;谵D移的聯(lián)合模型是一個線性時間復雜度的基于柱搜索的統(tǒng)計模型,其速度的快慢僅僅取決于模型的柱大小,因此可以非常方便地通過減少柱大小使得分析速度加快,但是因為一個較小的柱會導致較小的搜索空間,并帶來最終性能的急劇下降。通過分析知道,提高一個統(tǒng)計機器學習模型效果的最簡單方法便是增加訓練語料。在這里,可以根據(jù)過訓練的原理,首先使用最基準的64柱大小的模型自動解析大量原始句子,并將解碼的結果加入到與一個柱大小相對來說較小的聯(lián)合模型中,這樣就可使得這個柱比較小的聯(lián)合模型的性能得到提升,從而使得最終的聯(lián)合模型不僅速度加快,而且在性能上也和原來64柱大小的聯(lián)合模型的性能相差不大。
1背景介紹
1.1詞性標注
2基于轉移的詞性標注依存句法聯(lián)合模型
基于轉移的聯(lián)合模型最早由Jun Hatori等人于2011年提出并發(fā)表在IJCNLP上[4],本文使用JTrans來表示這一聯(lián)合模型。該方法借鑒了自動機的思想,其核心模塊集中表現(xiàn)為一個轉移系統(tǒng),轉移系統(tǒng)由系統(tǒng)的狀態(tài)和這個狀態(tài)能接受的一系列操作組成。在開始解碼時,有一個初始的狀態(tài),經過一系列轉移操作后,系統(tǒng)進入終結狀態(tài),每個終結狀態(tài)對應為一顆依存句法樹,這顆依存句法樹可以由中間經歷的轉移操作序列直接得到。
對于文中的詞性標注依存句法聯(lián)合模型,系統(tǒng)的狀態(tài)由一個棧和一個隊列組成,棧中是部分解碼的依存句法子樹序列,記為S0, S1, …,隊列中是需要進一步處理的詞語序列,記為Q0, Q1, …。在初始狀態(tài)時,棧為空,隊列中為w1, …, wn;而終結狀態(tài),棧中僅有一顆依存句法樹,隊列為空。在系統(tǒng)的狀態(tài)上定義的操作有兩類,移進和歸約,兩類動作都有參數(shù)。對于移進,參數(shù)是詞性,對于隊列中詞賦予詞性并移入棧中,而對于歸約,實際上就是將棧頂?shù)膬深w子依存樹進行合并,其主要參數(shù)將指明該歸約是左歸約還是右歸約,左歸約后棧頂?shù)牡诙脴鋵⒊蔀榈谝豢脴涞暮⒆咏Y點,而右歸約后則是棧頂?shù)牡谝豢脴鋵⒊蔀榈诙w樹的孩子結點。如圖2所示顯示了聯(lián)合模型情況下的轉移系統(tǒng),最上面的是轉移系統(tǒng)的狀態(tài),下面分別表示經過移進和歸約之后狀態(tài)的變化情況。
對于一個指定的狀態(tài),一般會有多種操作,這樣在分析過程中,從初始狀態(tài)到結束狀態(tài),就可能有多種轉移動作序列,每一種轉移動作序列都面臨一個不同的分析結果。為了得到最好的分析結果,可以根據(jù)目前的解碼狀態(tài)得到分數(shù)最高的那個動作,從而得到下一個狀態(tài),這種方法是一種基于貪心的搜索算法,但是這種方法是一種局部最優(yōu)的算法,而且還會裁剪掉初始動作分數(shù)不高但是后期動作分數(shù)很高的一些動作轉移序列。為了緩解這一問題,本文一般采用了柱搜索算法,如算法所示,其中st代表狀態(tài), A代表所有可能操作的結合。柱搜索每次保留固定的多個轉移動作而不是貪心算法中的一個轉移動作。柱大小的設置方法往往是根據(jù)實驗的需求進行設定的,一般在研究中采用柱大小為64來實現(xiàn)解碼,這樣就能和其它性能最好的詞性標注依存句法聯(lián)合模型取得相當?shù)慕Y果。
采用柱大小為64的聯(lián)合模型面臨著解碼速度非常慢的問題,其搜索空間和存儲空間都要比貪心算法大上64倍,因此研究希望通過降低柱的大小使得速度能夠獲得提升,但是柱大小的降低勢必會影響聯(lián)合模型的性能。鑒于此,本文采用了過訓練的方法來使得柱降低之后的聯(lián)合模型性能得到較大的提升。
過訓練最早由Slav Petrov等人在2010年提出。假設一個任務存在兩種不同的模型M1和M2,同時還有大規(guī)模未標注數(shù)據(jù),其中M1速度非常慢但是準確率高,而M2速度非常快但是準確率卻有較大下降,過訓練即是使用M1去自動解析大規(guī)模的未標注數(shù)據(jù),而后用自動解析得到的數(shù)據(jù)去進一步訓練模型M2,從而使得M2的性能可以獲得大幅度提升。
對于詞性標注和依存句法聯(lián)合模型,研究中就存在一個高精度但是速度慢的統(tǒng)計模型,即柱大小為64的JTrans,通過改變JTrans的柱的大小,相應地也可以得到一系列精度低但是速度更快的簡單聯(lián)合模型, 這兩類模型分別對應于上面提到的M1和M2。因此本文即采用柱大小為64的JTrans來自動解析接近50萬句的原始句子,然后加入到柱大小降低后的簡單聯(lián)合模型的訓練語料中,從而使得簡單模型的性能大大提升,甚至和原始的柱大小為64的JTrans相比,性能損失也已不再明顯。
4實驗
本文通過在中文賓州樹庫5.1版上進行實驗來驗證上述提出的方法,該樹庫是一個短語句法樹庫,在此通過張岳等人2008年提出的規(guī)則,將中文賓州樹庫的短語結構轉換成依存結構。而且,更進一步地將這一數(shù)據(jù)按照7:1:2的方式劃分成為三個集合,分別為訓練集(用于訓練統(tǒng)計模型中的特征權重)、開發(fā)集(用于調整模型中一些比較宏觀的參數(shù))和測試集(用戶評價最終的模型性能)。使用過訓練的方法時,本文從賓夕法尼亞大學共享的Linguistic Data Consortium語料中提取了關于中文的50萬句原始語料作為自動標注的原始語料。
在評價詞性標注性能時,使用了詞性標注準確率,即詞性標注正確的詞的總數(shù)占所有詞比例;在評價依存分析性能時,使用了依存弧準確率(Unlabeled Attached Score, UAS),即父親節(jié)點被正確找到的詞的個數(shù)占所有詞的個數(shù)的比例。另外,還使用了根節(jié)點識別準確率(Root Accuracy, RA)以及整個句子正確識別準確率(Completely Match, CM),并且在評價依存的過程中,本文忽略了標點符號。
在使用了過訓練算法之后,聯(lián)合模型的性能如表2的上半部分所示。從數(shù)據(jù)結果的分析可以得出,依存分析和詞性標注的性能下降速度變慢了。當柱大小下降為4時,聯(lián)合模型的準確率和不使用過訓練時柱大小為8的性能幾乎一致;類似地,柱大小為8的模型和不使用過訓練柱大小為16的性能幾乎一致。由此可以得到結論:使用了過訓練的方法后,基于同樣的準確率,聯(lián)合模型的速度有了一定的提升,集效率也得到了提高。
5結束語
詞性標注和依存句法的聯(lián)合模型雖然一定程度上可提升各自的任務性能,但是其解碼速度卻超出了可接受范圍,以致于在很多實際應用中受到了技術限制。針對這一問題,本文采用了一種基于過訓練的方法來提升聯(lián)合模型的速度。研究中使用的基準聯(lián)合模型是一種基于轉移的聯(lián)合模型,這種模型可以非常方便地通過柱大小的調整來平衡聯(lián)合模型的準確率和速度,本文即以其為基礎,并結合過訓練方法,實現(xiàn)了一個不僅速度快而且性能損失也比較少的聯(lián)合模型,并最終使得文中聯(lián)合模型的速度達到了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.