成于思,施云濤
(1.東南大學 土木工程學院,江蘇 南京 210096;2.中國移動通信集團 南京分公司網絡部,江蘇 南京 210019)
中文分詞是從信息處理需要出發,按照特定的規范,對漢語按分詞單位進行劃分的過程[1]。中文分詞是其他中文信息處理應用的基礎,其結果直接影響機器翻譯、信息檢索、信息抽取等信息處理技術的正確率[2]。近年來,中文分詞技術發展迅速,但由于自然語言使用復雜,中文分詞依然是信息處理的難點之一。
目前主要的分詞方法可以分為兩類: 基于詞典匹配的方法和基于統計的方法。基于詞典匹配的分詞對未登錄詞的識別和切分歧義等問題無法很好地解決[3]。基于統計的分詞方法常用的模型有隱馬爾可夫模型[4](HMM)、條件隨機場模型[3,5](CRF)、深度神經網絡模型[6-9]等。與CRF模型相比,基于深度神經網絡模型的分詞方法在保證分詞性能的基礎上,無須設計特征模板,受到研究者的關注。
盡管基于統計的分詞方法在分詞性能方面有較大的提高,但是,當測試語料和訓練語料領域不一致時,分詞性能會大幅降低[2,10]。這意味著,對不同專業領域文本做分詞時,需要提供相應領域的分詞訓練語料。同時,為了確保分詞正確率,訓練語料的規模一般較大,例如,SIGHAN CWS BACKOFF 2005提供的PKU訓練語料包括19 056條句子。為每個專業領域標注大量分詞訓練語料,需要消耗大量人力。為了提高分詞方法的領域自適應性,張梅山等[10]將領域詞典信息以特征的方式融入CRF模型中,Zhang等[7]在深度神經網絡中加入領域詞典的相關特征,朱艷輝等[3]用領域詞典對分詞結果做進一步逆向最大匹配。然而,只加入領域詞典,不考慮領域訓練語料,可能導致分詞特征缺失。許華婷等[11]選擇專業領域文本中含有最多未標記過的小規模語料進行人工標注。鄧麗萍等[2]提出半監督CRF模型,在訓練的目標函數中引入未標注數據的條件熵,減少標注樣本。
遷移學習是將一個任務環境中學到的東西用來提升在另一個任務環境中模型的泛化能力[12],被用于解決新領域中訓練數據難以獲取以及訓練數據與測試數據分布不同等問題。遷移學習的方法分為: 基于實例的遷移,基于特征的遷移,基于參數的遷移和基于知識的遷移[13]。Yang等[14]針對序列標注問題,提出深度循環神經網絡的遷移學習。Xing等[15]為了提高專業領域的分詞性能,通過控制通用領域和專業領域兩個模型的LSTM輸出分布的距離,聯合訓練兩個領域的分詞模型。
本文在文獻[14]的基礎上,用相對少量的工程法律專業領域分詞訓練樣本,對已在通用領域分詞語料上訓練好的深度循環神經網絡進行微調,最后在工程法律專業領域語料上進行測試。測試結果顯示: 本文提出的分詞方法在工程法律領域的分詞結果F1值提高了7.02%。本文提出的專業領域分詞模型的領域自適應性主要體現在: 減少專業領域訓練樣本標注數量,降低通用領域及專業領域分詞特征不一致對專業領域分詞的影響。
本文組織結構為: 第一部分介紹深度循環神經網絡分詞模型;第二部分介紹深度循環神經網絡模型在領域分詞訓練語料上的遷移學習;第三部分為實驗部分;第四部分為結論及進一步工作。
中文分詞問題可以看作為序列標注問題。任意一個中文句子可以表示為x=(x1,x2,…,xn),其中,xi,i∈{1,2,…,n}是一個字符,具體為中文、數字、字母、標點符號或者其他符號。xi在詞語中的位置有四種: 詞首(B)、詞中(M)、詞尾(E)和單字符詞(S)。一個分詞單位表現為BE、BME (M個數大于或等于1)或S三種形式。句子x的分詞標注結果可以表示為y=(y1,y2,…,yn),其中,yi∈{B,M,E,S}是xi對應的詞語位置。


圖1 BI-LSTM-CRF模型結構
Huang等[16]最早提出用BI-LSTM-CRF模型解決序列標注問題,后來被擴展應用到中文分詞領域。BI-LSTM-CRF分詞模型由三部分組成: 字符嵌入層,BI-LSTM層和CRF層,具體結構如圖1所示。
1.2.1 字符嵌入層
字符嵌入層將句子中的字符xi轉換成向量形式ei,輸入BI-LSTM層。首先,用Word2Vec算法[17]在中文維基百科語料庫中訓練,獲得d維字符向量,形成d×N的字符矩陣,其中N表示訓練語料庫中有效的字符個數。其次,對于句子中的每個字符xi,設置長度為l=5(l的值可調)的窗口,提取xi的上下文字符序列(xi-2,xi-1,xi,xi+1,xi+2)。 對窗口中的每個字符,從字符矩陣中查找得到相應的向量。最后,為當前字符xi構建字符嵌入向量,向量ei∈R(2l-1)×d由窗口中的字符向量以及bigram特征向量拼接而成,其中,bigram特征向量是窗口中連續的字符向量取平均。在ei中加入上下文向量和bigram特征向量可以提高分詞性能[18]。
1.2.2 BI-LSTM層
長短期記憶(LSTM)網絡[19]屬于循環神經網絡(RNN),針對RNN訓練過程中的梯度消散問題做了改進。LSTM網絡由LSTM單元構成,一個LSTM單元由輸入門、遺忘門、輸出門和細胞狀態構成,如圖2所示。輸入門控制細胞狀態加入新的信息量,遺忘門控制前一時刻細胞狀態被丟棄的信息,輸出門控制細胞狀態的輸出。et∈Rd是時刻t的輸入向量,ht-1∈RK是LSTM單元的時刻t-1的輸出,ct-1∈RK是時刻t-1的細胞狀態。時刻t的LSTM的工作流程可以表示為如式(1)~式(6)所示。



圖2 LSTM結構
1.2.3 CRF層


其中,Yx表示句子x的所有可能的標注序列集合。
深度神經網絡訓練時,損失函數如式(9)所示。
其中,x和y分別是訓練數據中的句子和對應的標注序列,Ω(θ)是為了防止神經網絡的過擬合而添加的正則項。
1.2.4 領域詞典特征


(10)

(11)

(12)

(13)
領域詞典可以在分詞模型的預測階段使用,或者在訓練階段就加入。在預測階段加入領域詞典,不需要改變訓練得到的分詞模型,有更好的領域自適應性[10]。而本文提出的分詞模型在領域訓練語料上做遷移學習,提取領域的分詞特征,進而提高分詞準確率。在領域訓練語料上訓練時,加入領域詞典特征可以改善分詞性能[10]。因此,本文模型采取在訓練階段加入領域詞典的方式。這兩種分詞方式對分詞性能的影響見3.4節。領域詞典的完備性影響領域分詞性能。本文采用文獻[20]中的方法,構建工程法律領域詞典。

圖3 帶領域詞典特征的超網絡構架
給定通用領域的訓練數據DS={(xSi,ySi)|xSi∈X,ySi∈Y,i=1,2…,nS}以及訓練得到分詞模型fS(·)(包括模型參數θS),遷移學習通過利用通用領域的DS和fS(·),提高專業領域DT的分詞模型fT(·)的性能。本文將在通用領域內訓練好的BI-LSTM-CRF[7]的參數θS作為要訓練的BI-LSTM-CRF模型的初始化參數,在專業領域的分詞訓練數據上進行訓練,同時,調整訓練的學習率lr,以及在損失函數中加入適應項,提高專業領域上的分詞模型對通用領域的適應性。具體的結構框架如圖4所示。

圖4 遷移學習的BI-LSTM-CRF模型結構
BI-LSTM-CRF分詞模型的字符嵌入層將句子中的字符轉換成向量形式,由于專業領域和通用領域用字的差別,會出現一些專業領域的字被歸為未知字符類,影響分詞效果。為了解決這個問題,對字符嵌入層進行改進,為了保證通用和專業領域的網絡架構一致,對通用領域分詞網絡重新訓練。步驟如下: 首先統計專業領域字符及頻數,與通用領域相同的字符依然使用字符矩陣中對應的向量作為初始的字符向量,對于不在字符矩陣中的字符,隨機化對應的字符矩陣。調整后的字符矩陣取代通用領域原本的字符矩陣,重新訓練通用領域分詞模型。

其中,g(·)可以是L2范數,也可以是KL散度(Kullback-Leibler divergence)[15]。本文選用KL散度,JAdap進一步表示為式(15)所示。
其中,i表示BI-LSTM層輸出向量的第i項。
現階段的分詞規范,如《信息處理用現代漢語分詞規范》[1]和北京大學中文分詞規范[21],并未對專業領域的詞匯做出明確詳細的分詞標注標準。本文參考分詞規范的相關規定(表1),制定面向工程法律領域專業詞匯的中文分詞標注準則,包括:
(1) 領域內使用穩定或結合緊密的二字詞,包括“形+名”“動+名”等,成為一個切分單位,例如,“熱風”“高層”“大孔”“打樁”“舉證”“抹灰”等;
(2) 領域內“名+名”和“動+名”組成的三字名詞成為切分單位,“動+名”組成的述賓結構一般應切分開,“形+名”和“區別詞+名詞”組成的三字名詞如果切開后意義改變或使用穩定,可以成為一個切分單位,否則應切開,例如,“人工費”“證明信”“施工方”“調/結構”“刮/膩子”“吊裝/梁”“新/特性”“白水泥”“高/轉速”等;
(3) 領域內四字及以上的詞一般切分開,除非切開后意義改變,例如,“國有/獨資/公司”“合成/樹脂”“舉證/責任/倒置”“自攻螺絲”等;
(4) 領域內“前接成分+單字”為切分單位,“前接成分+二字及二字以上詞”若與前接成分有邏輯聯系的詞語是與其相鄰的,則構成一個切分單位,否則切分,前接成分有[22]超、非、可、類、亞、不、無、反、自、泛、準、軟、硬、多、大、性、雙、單、半、耐、抗、防、跨等,如“耐候”“抗腐蝕”“軟啟動”“非/國家/工作/人員”等;
(5) “單字+后接成分”為切分單位,“二字及二字以上詞+后接成分”,若與后接成分有邏輯聯系的詞語是與其相鄰的,則構成一個切分單位,否則切分,后接成分有[22]者、率、化、界、性、家、員、生、長、機、族、式、型、度、體等,如“板式”“標準化”“熱加工性”“設計/開發/者”等;
(6) “前接成分+詞+后接成分”是切分單位,若長度大于等于5字,則切分,例如,“耐腐蝕性”“可預見性”“抗/根系/滲透/性”“非/經常/參與/性”等。

表1 相關分詞規定
由于中文分詞規范具有一定的彈性,在評價分詞結果正確性時采用以下準則:
(1)域內使用穩定或結合緊密的二字詞,或者切分后意義改變的,如果被切開,則認為分詞錯誤,例如,“防水”“冷拔”“根系”“舉證”等;
(2) 三字復合詞名詞的切分彈性偏大,若切分后意義不變,則切分與不切分都認為正確,若切分后意義改變,則切分被認為錯誤,其余三字復合詞遵守切分準則,例如,“中標價”被切分為“中標/價”或不切分,都認為正確,若被切分為“中/標價”則切分錯誤;
(3) 三字以上詞若切分后意義改變,則認為分詞錯誤,例如,“教育費附加”,如果被切分為“教育費/附加”則錯誤。
本文的實驗環境如下。處理器: Inter (R) Core (TM) i7-6850k CPU @ 3.6GHz;圖形加速卡: NVIDIA GeForce GTX 1080ti 11 GB;內存: 16GB;操作系統: Ubuntu 16.04 LTS(64bit);Google開源深度學習框架TensorFlow 0.12;通用領域深度學習神經網絡模型: Zhang等[7]提出的超LSTM網絡(1)https://github.com/fudannlp16/CWS_Dict。
通用領域分詞模型在SIGHAN CWS BAKEOFF 2005提供的PKU訓練語料上訓練,語料大小為7 548KB,詞典特征使用結巴分詞詞典。
待分詞的專業領域是建設工程法律領域。專業領域訓練語料分為兩部分,一部分取自百度百科中專業領域詞條瀏覽頁面內容,另一部分取自中國裁判文書網(2)http://wenshu.court.gov.cn/的建設工程施工合同糾紛文書。專業領域詞條來自中國知網工具書庫(3)http://mall.cnki.net/reference/index.aspx的法律術語詞典和土木工程領域詞典。利用第3.1節制定的專業領域分詞標注準則進行人工分詞標注,最后得到 1 536KB 的專業領域訓練語料。
專業領域詞典是將中國知網工具書庫的法律術語詞典和土木工程領域詞典的詞條抽取出來,在百度百科進行相關詞擴展,最后規格化處理,并且保留3字以內詞條后得到的,詞典收錄領域詞條40 420條。領域詞典在專業領域分詞訓練時加入到模型中。
分詞性能評估采用準確率P、召回率R和綜合指標F1,以F1為主要參考指標。
神經網絡的超參數取值影響神經網絡的性能。以Zhang等[7]的LSTM網絡模型在通用領域語料(PKU語料)上訓練得到的網絡參數為初始值。在通用語料上訓練時,超參數取值見表2。

表2 通用領域分詞模型超參數
訓練時,選擇90%的句子作為訓練集,剩下10%作為驗證集。當迭代次數在42次時,驗證集上的F1值為97.07%。選擇此時的網絡參數為初始值。
專業領域訓練語料隨機選擇90%作為訓練集,剩下10%作為驗證集。字向量長度為100維,專業領域新出現的字對應的字符矩陣隨機化初始值,在隨后的訓練中調整。
在專業領域訓練語料上訓練時,考慮超參數的影響。首先分析學習率(lr),并確定合適的lr。 設置Dropout丟棄率為50%,正則項系數α為0.001,KL散度系數為0,lr分別取10-3、10-4和10-5時,對比驗證集在每次迭代后F1的變化情況,以及訓練集的損失函數值的變化情況,分別如圖5(a)和圖5(b)所示。從圖中可見,lr取值為10-3時,在前幾個迭代次數里,F1的性能較好,損失函數值下降較快,之后,神經網絡處于過擬合狀態,性能下降。lr取值為10-5時,F1和損失函數的性能提高比較慢,屬于學習率取值偏低。lr取值為10-4時,10個迭代次數后,性能與10-3趨于一致。因此,本文模型的學習率lr設置為10-3。

圖5 學習率對分詞模型的影響
與一般的神經網絡模型相比,本文模型在較少的迭代次數下達到最優,主要是由于網絡參數初始值是在通用領域語料訓練好的,使得在專業領域語料訓練時,網絡性能迅速達到最好。其次,確定合適的Dropout丟棄率以及正則項系數α。 設學習率lr為10-3,正則項系數α為0.001,KL散度系數為0,分析不使用Dropout丟棄率、丟棄率為20%和丟棄率為50%時對驗證集F1值的影響。對比結果如圖6所示。從圖6可知,三種丟棄率的性能差別不大。設置學習率lr為10-3,丟棄率為50%,KL散度系數為0,分析α取0.001、0.002、0.005和0.01時,對驗證集F1值的影響。對比結果如圖7所示。從圖7可知,隨著α的增加,F1值下降。選取α為0.001。

圖6 lr=10-3,α=0.001時,Dropout的影響

圖7 lr=0.001,Dropout為50%時, α的影響
最后,分析KL散度系數λ對模型性能的影響,設置學習率lr為10-3,正則項系數α為0.001,Dropout丟棄率為50%, KL散度系數λ分別取0、0.2、0.4和0.6,驗證集F1值見圖8。從圖中可知,不同KL散度系數的驗證集上F1值差別不大。在3.4節將會對λ做進一步分析和討論。

圖8 KL散度系數λ的影響
通過實驗對比分析本文模型中超參數的影響,最終專業領域上的超參數設置如下: 學習率lr為10-3,正則項系數α為0.001,Dropout丟棄率為50%。在建設工程法律領域文本中選取300個句子組成測試集,對比本文提出的模型與其他分詞模型在測試集上的性能。表3列出了本文模型(KL散度系數為0,訓練時帶領域詞典)、NLPIR分詞方法(4)http://ictclas.nlpir.org/、BI-LSTM-CRF模型[7]、預測時帶領域詞典的BI-LSTM-CRF模型[7]、本文模型(KL散度系數為0,不帶領域詞典)、本文模型(KL散度系數為0.2,不帶領域詞典)在測試集上的準確率P、召回率R和綜合指標F1。其中,BI-LSTM-CRF模型是直接使用文獻[7]中,在通用領域語料上訓練好的模型。對比分析表3中的分詞結果,可以得到如下結論。
(1) BI-LSTM-CRF模型的F1值比NLPIR的F1值提升了4.27%;BI-LSTM-CRF在預測時加入領域詞典后,F1值提升了2.8%,領域詞典有效提高了BI-LSTM-CRF模型的自適應性;本文提出的訓練時帶領域詞典的遷移學習模型比BI-LSTM-CRF在預測時加入領域詞典的F1值提升4.22%,但是,后者的領域自適應性高于前者。
(2) 在本文提出的遷移學習模型中,加入領域詞典比不加入領域詞典的F1值提升了0.6%,未作遷移學習時,在預測時加入領域詞典比不加入領域詞典的F1值提升了2.8%。這主要是因為專業領域的訓練樣本為領域分詞提供了有效特征。
(3) KL散度系數是用通用領域分詞信息約束專業領域模型參數的訓練,防止過擬合,然而,觀察領域文本組成測試集上的分詞結果發現,加入KL散度系數的分詞結果中出現與NLPIR和BI-LSTM-CRF模型一樣的錯誤的分詞結果,導致F1值比起不加KL散度系數降低了1.86%。這主要因為專業領域的訓練集中分詞特征分布與通用領域差異性較大,而KL散度系數使得分詞模型學習到了通用領域特征,導致測試集的分詞結果出現錯誤。
(4) 專業領域測試集的分詞結果F1值比專業領域驗證集的低,這主要是因為驗證集數據與訓練集數據往往來自同一篇文章(參見3.3節,專業領域訓練語料隨機選擇90%作為訓練集,剩下10%作為驗證集),數據分布比較接近,而測試集數據選自不同文章。分別統計專業領域訓練集、專業領域驗證集和專業領域測試集的N-gram分布,采用KL散度計算驗證集與訓練集,以及測試集與訓練集的數據分布距離。具體計算如式(16)所示。
其中,L∈{驗證集,測試集},U代表訓練集,Χn代表L和U中的n-gram集合,P(x|L,n)表示Χn中x在L中出現的概率,P(x|U,n)表示Χn中x在U中出現的概率,wn表示不同n-gram的重要性權重,設wn=1/3。 通過計算可得,D(驗證集‖訓練集)=1.55,D(測試集‖訓練集)=3.09。 因此,驗證集和訓練集的數據分布比測試集和訓練集更加接近。

表3 不同分詞結果對比
本文針對專業領域分詞性能下降的問題,提出了深度學習的中文分詞模型,同時,利用遷移學習原理,結合大規模通用領域分詞語料、小規模專業領域訓練語料以及領域詞典,提高領域分詞性能,實現領域自適應分詞。以工程法律領域分詞任務為例,提出領域專業術語的分詞準則,進行小規模人工標注,并且設計分詞實驗,對比各分詞模型的性能,結果表明,本文提出的分詞模型能有效改善跨領域分詞系統性能。
本文提出的方法還存在進一步改進的空間。領域文本中常出現較長的數字、字母以及符號的組合,領域術語中會出現字母和漢字的組合,影響分詞正確率,可以考慮做多層分詞。現有的文本特征只考慮了字和周圍字,以及詞典信息,在后續工作中,可以考慮加入字的邊界特征。