王嘉文,王傳棟,楊雁瑩
(1.南京郵電大學 計算機學院,江蘇 南京 210023;2.南京森林警察學院,江蘇 南京 210023)
當前大數據環境下,海量化數據的結構日趨呈現多樣化和異構化。然而在許多問題中,數據事實因應用需求的不同,其數據結構的組織形式存在多方差異。為了滿足不同數據挖掘任務對數據事實的統一理解,需要建立一種數據的統一內部表示。
在自然語言處理(natural language processing,NLP)[1]任務中,許多高度工程化的NLP系統應用,大都采取基于特定任務特征的線性統計模型,這些模型由應用背景激發、受領域知識的限制,通過面向工程的專用特征發現數據表示。這些特征通常由一些特征提取的輔助工具預處理而得到,是一種監督學習的訓練方法。但是這種方法不僅會導致復雜的運行時依賴關系,而且要求研發人員必須擁有大量的語言學知識。
為了減少這種依賴,必須捕捉關于自然語言的更多的一般性,分析語言的元信息,如詞性、實體、語法、句法等,以期獲取一種更一般的描述方法,減少甚至忽略先驗領域知識對模型的影響,用無監督學習的方式,盡量避免工程化特征,在大規模未標記數據上學習產生模型。
文中描述了一種基于深度神經網絡的字詞訓練模型,通過發現其內部表示,盡量避免了工程特征對于模型的限制,采取一種無監督學習方式對中文人名識別進行了研究,最后通過實驗驗證該模型的合理性。
20世紀90年代初,國外就已經開始了對命名實體識別的研究。最早采用的大多是基于規則的方法,專家和學者在某些特定領域對于相關文本進行總結和歸納,提取一種易于理解和表達的規則進行命名實體識別,如GATE項目中的ANNIE系統和曾經參加過MUC評測的FACILE系統等,并在小規模文本上取得了較好的效果。但是這種方法需要極富經驗的領域專家進行人工干預,會耗費大量的人工成本,在面對大數據量的命名實體識別任務時效率較為低下。
隨著機器學習理論的發展以及計算機性能的提升,基于統計的方法開始不再受限于計算量不足而導致的識別率低的問題,逐漸被廣大的專家和學者所接受和青睞。自1997年開始,國外的專家依次將隱馬爾可夫[2]、支持向量機[3]、條件隨機場[4]等模型應用到英文命名實體識別任務中,都取得了較好的效果。
因為中文的特殊性,中文命名實體識別擁有比英文更高的難度,國內專家和學者在借鑒國外研究成果的基礎上進行了長期的研究。張華平等引入隱馬爾可夫模型[5],根據人工制定的角色編碼使用Viterbi算法在分詞結果上標注人名構成角色,根據標注的角色序列進行最長模式串匹配,對中文人名識別進行了研究,在開放性測試集中的F1值達到95%左右。張素香等使用專家知識對各類特征進行定義,利用條件隨機場建立了相應的語言模型[6],在人民日報語料上進行實驗,也獲得了超過95%的F1值。這些方法都可以看作是從句中提取一組依靠純語言學經驗的人工設計的特征,再經過不斷地修正將其饋送到經典的淺分類算法中。特征選擇因應用背景的不同,對每種NLP應用都需要進行額外的研究,任務較為復雜時(比如SRL語義角色標注[7])就需要進行大量關于特征的人工提取。由于受研究人員語言學知識的限制,這些模型隨著語料規模的擴大,工作效率會出現顯著下降。
命名實體識別應用為了規避這種限制,目前的研究多采用詞的向量化[8]對自然語言進行數字化表示,以期刻畫詞的更一般性。1986年Hinton提出了Distributed Representation[9],將語料中每個詞用一個N維向量表示,N個維度代表詞的N個不同特征,有效地避免One-hot所造成的維度災難、數據稀疏等問題,并且能用向量的距離來計算詞與詞之間意思的遠近,刻畫了詞與詞之間所隱藏的關聯性,避免了兩個詞之間的孤立。但是要從大量未標記文本中無監督地提取詞向量,還必須借助語言模型。2003年,Bengio等在n元模型的基礎上,提出神經概率語言模型-NNLM[10],用一種三層前饋神經網絡建模詞的上下文關系。后人將詞向量和神經網絡引入到命名實體識別工作中,極大地減少了維度災難對模型性能的影響。2007年,為了提高效率,降低算法時間復雜度,Mnih等又提出Log雙線性語言模型-LBL[11]。2010年Mikolov等使用循環神經網絡模型[12],通過迭代多個隱藏層保存更豐富的上下文信息,提高了命名實體識別的潛力。
2011年Collobert等提出一種靈活的層疊式神經網絡架構[13],將訓練好的詞向量應用于各種NLP任務,避開過多的面向特定任務的特征工程,在降低計算資源的同時保持了優秀的性能。Mikolov在2013年提出CBOW和Skip-gram兩個模型[14],以過渡的投影層代替隱藏層,減少了矩陣運算的次數,提高了訓練速度,而且用上下文各詞的詞向量的平均值來刻畫目標詞,排除了詞序對訓練的影響。近年來,卷積神經網絡(CNM)[15]、Glove模型[16]、時間遞歸神經網絡(LSTM)等模型相繼被應用到命名實體識別中,在提高識別效果的同時也不斷降低識別過程對語言學知識的依賴,使用無監督學習進行命名實體識別已經成為國外命名實體識別技術研究的新方向。但是由于中文的復雜性,中文命名實體識別在無監督學習方向上的研究目前仍然存在不足。
文中提出一種基于深度神經網絡的中文人名訓練架構,如圖1所示,圖中使用的訓練語料和測試數據集均進行了分詞預處理。訓練可概述為4個模塊:
(1)基本詞面的向量化訓練。僅基于訓練語料統計詞頻,以詞頻為依據利用連續詞袋CBOW模型迭代訓練得到基本詞面向量。
(2)特征提取及其特征項向量表示。獲取包含每個人名特征項的目標詞上下文的基本詞面向量,構建共現矩陣,提取特征向量作為特征項向量。
(3)中文人名識別的模型參數訓練。以目標詞的基本詞面向量與各特征向量的拼接作為輸入,構建前向全連接的深度神經網絡,使用梯度下降法迭代更新訓練參數,并用Viterbi算法返回最佳路徑,最終獲得穩定的模型參數。
(4)使用測試語料進行模型測試。測試模塊使用訓練好的穩定參數構建中文人名識別模型,根據Viterbi算法返回的最優路徑,設定閾值提取標簽結果并進行分析。

圖1 中文人名識別的訓練框架
訓練以句子為單位迭代進行,訓練的前期工作是遍歷語料統計詞頻信息,以詞頻對所有詞降序排序,并建立詞典的hash索引以應對訓練中的頻繁查詢。
對目標詞w來說,Context(w)表示其由m個詞組成的上下文,訓練中去除上下文中的詞序信息,使用上下文中各個詞向量的均值作為輸入,具體表示為:
(1)
模型為了提高訓練速度,擯棄傳統隱含層以減少矩陣運算,直接從神經網絡結構轉化為與Logistic回歸一致的Log線性結構,用二分類的思想以式2所示的目標函數為優化目標:

(2)
輸出層是對于特征函數值進行一個二分類的處理以得出其發生的條件概率。在實際訓練中,將任意一個目標詞作為葉子節點,取其詞頻作為權值來構造Huffman樹。從根節點到該目標詞的葉子節點路徑上的每個分支節點,都是一個影響目標詞最終語義的隱式二分類器。訓練中構造與每一個分支節點對應的權值向量,組成權值矩陣作為訓練參數,這個參數矩陣在迭代訓練中得到更新。為此,在模型構造中引入Sigmoid函數:
(3)
對于某一個目標詞w,其Huffman樹路徑中的每一個分支節點,通過權值向量θ計算其與上下文環境向量x語義距離xTθ,依據Sigmoid函數,可將分支節點對目標節點的概率貢獻歸結為正類概率p(L=1|x,θ)=g(xTθ)或負類概率p(L=0|x,θ)=1-g(xTθ)。其中L可視為最終的標簽輸出,取值為1表示正類,取值為0表示為負類,二式可統一寫為:
p(L|x,θ)=g(xTθ)L·[1-g(xTθ)]1-L
(4)
由此,可得到目標詞w受上下文的語義影響產生的隱含條件概率為:

(5)
其中,n為目標詞Huffman編碼的長度,也就是從根節點到目標詞節點路徑中的父節點個數,由式2、4與5可推出目標函數:

g(xTθ)])}
(6)
接下來使用隨機梯度下降法對E更新,函數E關于參數θ的梯度計算為:?E/?θ=[L-g(xTθ)]x,由此得到參數θ的更新公式為:θ←θ+η[L-g(xTθ)]x。同理得到參數x的更新公式為:x←x+η[L-g(xTθ)]θ。訓練目標是使得目標詞受上下文環境影響的編碼概率最大,向量x與θ的更新僅用于訓練迭代計算,因為x是目標詞w的上下文向量的累加的均值,因此目標詞的向量v(w)的更新是一次迭代訓練完成后,將梯度的累加更新到向量的每一個分量中,如式7所示:
(7)
其中,η表示學習率。訓練中η隨著模型處理而動態調整,直到達到閾值ηmin為止,目的在于緩解梯度更新中的波動,使更新過程更加平穩。根據上述的迭代算法依次對所有的目標詞和它們的詞頻進行訓練,通過神經網絡的反復迭代,網絡對于輸入的響應達到預定的目標范圍后,w(v)就是訓練好的最后的詞向量。
在中文人名識別領域,特征的提取主要考慮人名的姓氏特征、稱謂修飾特征與特殊人名特征,通過構建特征知識庫,以特征的每一個特征項為單位,從訓練語料中匹配其窗口上下文,從前一個模塊的訓練結果中提取擁有該特征項的目標詞向量,構建特征項的共現矩陣R。對于特征項共現矩陣R,求其協方差矩陣CR=1/n*RRT。
利用公式CRμ=λμ求得協方差矩陣的所有特征值與所有特征向量μ,對所有非0的特征值所對應的特征向量取均值,即為所求的特征項向量。
訓練以句子為單位,使用統一的模型架構,分三種方案組織輸入向量St(t∈(1,n))訓練三組模型參數,以評估人名識別的特征提取對于標簽結果的影響。方案一,僅以詞頻訓練的基本詞面向量作為輸入。方案二,在基本詞面向量的基礎上,融入姓氏特征和稱謂修飾特征等人名的基本特征,攜帶更多的上下文信息。方案三,在方案二的基礎上再引入特殊人名知識庫,結合特殊人名特征進行強化學習,以期得到更佳的模型參數。特別需要指出的是,在訓練中使用UNKNOWN關鍵詞作為未識詞和未識特征項的初始向量。將這個目標詞組合向量作為訓練模型輸入,在后續的神經網絡層中進行運算。
圖2是中文人名識別的模型參數訓練架構。
圖2 中文人名識別的模型參數訓練架構
對于輸入目標詞向量St,在架構的一個或多個神經網絡的隱藏層中做如下的映射變換進行降維操作,如圖中的步驟①所示:

(8)
其中,K和b分別表示權值矩陣和偏置向量;τ表示堆疊的隱藏層的層數。
將這多個隱藏層進行堆疊,對輸入向量St進行降維,將其轉化成一個向量z以獲取非線性特征。這里要添加一個硬性的雙曲正切函數h(z)作為激活函數,用以保證模型的非線性,最終得到隱藏層向量y,如圖中的步驟②所示。

(9)
激活函數的優點在于能夠在不增加過多的計算量的同時保證泛化性能基本不變。
類似輸入層到隱藏層的處理,對于隱藏層向量y,同樣對它在后續的一個或多個神經網絡的隱藏層中做映射變換,從而進行降維,最終獲得輸出層向量o,如圖中的步驟③所示。這里的權值矩陣和偏置向量為K'和b'。
根據邏輯回歸的二分類可以得到條件概率p(L|St,φ)。
p(L|St,φ)=[g(St·φ)]L·[1-g(St·φ)]1-L
(10)
以輸出向量o為觀察序列,用隨機梯度下降法對所有的參數φ進行梯度更新,在更新的同時用一個反向指針保存更新的路徑:

(11)
其中,φ是參數更新過程中所有參數組成的集合;L是二分類的標簽。與前面一樣,引入一個學習率λ來減少梯度更新中的波動。
Viterbi算法是解決分類標簽標注問題的理想選擇。使用式11每進行一次更新,都能通過反向指針,對Viterbi算法的初始概率矩陣和狀態轉移概率矩陣進行更新,參數更新終止條件是Viterbi算法中最終局部概率達到最大,即人名識別的條件概率達到局部最優。達到局部最優時的參數集就是模型最佳時的穩定參數集φ*,φ*={K,b,K',b',π,A},通過φ確定最佳的中文人名識別模型,根據輸入向量St的三種不同組織方案最終獲得三種最佳模型。
確定最佳的中文人名識別模型后,引入測試數據集,以句子為單位進行人名識別測試。首先將測試句進行分詞等預處理操作,隨后獲取句子中每個詞的基本詞面向量,根據2.3節提到的三種方案訓練得到的三種最佳模型分別獲得句子中每個詞的輸出向量。
對于每一種方案,將所有詞的輸出向量序列作為Viterbi算法的觀察序列進行輸入,根據φ*中最優模型的初始概率矩陣和狀態轉移概率矩陣,得到一條最優路徑,最優路徑上的每個概率值都是對應目標詞是人名的最優概率,隨后人工設置一個閾值對其進行判斷。對每個詞來說,是人名的概率大于這個閾值即判斷其為人名,否則判斷其不是人名。
最后根據每種方案的不同結果對三種模型的效果分別進行一個評價。
使用的訓練語料是來自2008年的搜狐新聞總計超過1.2 GB的中文文本,總計文本的句子數目共計26 964條,使用20 223條進行訓練,6 741條用于測試,采用中科院ICTCLAS分詞系統進行分詞操作,分詞后統計獲得的詞面數共有89 464個。
對于實驗結果,采用識別率P、召回率R和它們的調和平均值F1值作為評價標準。識別率表示正確識別出的人名占總計識別出的人名的百分比,衡量模型排除非相關信息干擾的能力;召回率表示正確識別出的人名占語料中所有人名的百分比,衡量模型獲得相關信息的能力;F1值作為識別率和召回率的調和平均值,是對模型性能的綜合考量。
記正確識別出的人名的個數為α,總計識別出的人名的個數為β,語料中所有人名的個數為γ,則具體公式如下:
(12)
(13)
(14)
根據2.3節中提到的三種方案訓練得到的三種最佳模型進行人名識別,共獲得三個實驗結果。使用文獻[9]的隱馬爾可夫模型和文獻[10]的條件隨機場,在文中所使用的訓練語料中進行實驗所得到的結果作為對照,進行對比分析。具體實驗結果如表1所示。

表1 各模型的人名識別結果 %
通過表1不難得出,方案1在只考慮詞頻特征時,識別率、召回率、F1值都十分低下,甚至劣于隱馬爾可夫模型和條件隨機場的識別效果。但方案2在添加了人名的基本特征后,識別效果得到很大的提升,優于傳統的識別方法。而方案3在引入了人工離散特征之后,識別效果獲得了進一步的提升,其F1值甚至能達到89.07%。說明文中提出的模型在中文人名識別中,能夠在盡量避免工程化特征影響的同時保持較好的識別效果,并能夠在添加少量人工特征時獲得更好的性能,在高度工程化的實際應用中也非常有效。
以詞向量為媒介,設計深度神經網絡架構,將復雜的命名實體識別工作轉移到多層的前向全連接的神經網絡中實現,盡可能避免工程化特征的影響,有效提高了識別效率。但隨著計算機技術的發展,遞歸神經網絡等更先進的技術也開始逐漸應用到命名實體識別任務之中,筆者在對這些先進技術的調研中發現這些新技術在命名實體識別領域的應用尚處在開始階段,效果并不能達到預期的要求。下一步的工作中,將對遞歸神經網絡做進一步的研究,用其對現在的前向全連接網絡進行改造,以期望獲得更好的識別效果。