翟社平 段宏宇 李兆兆
1(西安郵電大學計算機學院 陜西 西安 710121)2(陜西省網絡數據分析與智能處理重點實驗室 陜西 西安 710121)
知識圖譜是一種包括眾多實體及其關系的語義網絡,實現了語義表述和智能連接,是人工智能領域的重要構成技術。目前,知識圖譜已經在電商搜索、知識庫問答以及知識管理等領域得到深層應用[1]。實體抽取,也稱命名實體學習或命名實體識別,是知識圖譜構建中最為重要和關鍵的部分,實現了從文本數據中抽取出實體信息[2]。高精準度的實體抽取很大程度上保障了所構建知識圖譜的高適用性。
早期使用基于規則的方法實現實體抽取,通過領域專家和語言學者手工制定有效規則,將文本與規則進行匹配識別出實體[3]。比如,在中文系統中,人名的下文用詞可以是“吃”、“同學”等,而單位組織名的尾部可以是“集團”、“學校”等,利用這些規則,可以將人名、地點名、組織名等實體抽取出來。傳統采用制定規則的實體識別方法有:Grishman開發的Proteus系統[4]、Black開發的FACILE系統[5]等。然而,基于規則的方法構建過程中往往需要大量的語言學知識,而且費時費力、可移植性不好。之后,知識圖譜實體抽取任務被部分機器學習算法解決。機器學習使用大量的實驗語料訓練學習,得到最終的標注模型,完成對實體的詞性標注識別。常應用到實體識別任務中的模型包括隱馬爾科夫模型HMM[6]、支持向量機模型SVM[7]、條件隨機場模型CRF[8]等。目前比較流行的是條件隨機場模型,通過人工定義特征模板,利用上下文標注信息發掘命名實體。這種利用人工特征的方法取得了很好的識別效果,但人工制定特征代價較昂貴,不同領域的特征不盡相同,導致識別方法不通用,工作量大。伴隨著計算機硬件能力的提高、文本單詞向量化表示的廣泛應用,神經網絡模型在處理實體抽取任務方面表現出更高的效率,例如循環神經網絡[9]、卷積神經網絡[10]以及長短時記憶網絡[11]。使用神經網絡提取文本特征不再依賴人工特征和領域知識,減少了人工特征提取所需代價,有效地提高了系統效率。
本文對中文領域的命名實體進行識別,結合雙向長短時記憶網絡以及條件隨機場模型,自動提取句子特征,提高實體抽取效率。
在傳統的實體抽取方法中,單詞采用0和1組成的稀疏向量表示,向量中某一分量的值為1,其余分量的值為0、1的位置表示該詞在詞典中的編號[12]。這種方法可以完成一部分實體抽取任務,但存在缺點,一是詞典規模通常比較大,維度高,容易造成維度災難和數據稀疏問題;二是采用稀疏向量,導致前后單詞彼此獨立,無法得到兩個詞的關聯信息。
為了計算詞本身之間的語義相似度,深度學習利用低維、稠密的實值向量標識單詞,稱詞向量。詞向量包含了文本的語義信息,采用歐式距離或余弦夾角等方法來衡量兩個向量詞之間的距離,發掘兩個詞的關系。Bengio[13]在2003年提出了一種基于深度學習的語言模型,如圖1所示。

圖1 神經網絡語言模型
該方法引入詞向量來構建概率模型,公式表示如下:
p(s)=p(w)=p(w1,w2,…,wT)=
(1)
context為單詞wt的上下文,通過深度學習方法來實現概率語言模型。類似于傳統n-gram概率模型,利用前n-1個詞wt-n+1、…、wt-2、wt-1來推測下一個詞wt出現的概率。輸入向量x由前n-1個詞wt-n+1、…、wt-2、wt-1的詞向量連接組成,中間隱藏層引入tanh函數去線性化,輸出層獲得隱藏層的結果后利用Softmax函數歸一化處理,得到概率值P(wtcontext),最后應用極大似然估計進行訓練,得到單詞wt的詞向量C(wt)。
除了上述用于訓練詞向量的模型方法外,目前常用Google開源的詞向量訓練框架Word2vec生成詞向量[14]。Word2vec采用向量相似度表示某種隱含的語義關系,使用向量空間的向量運算簡化文本內容處理。
實體抽取是典型的文本序列標注問題,RNN網絡能夠有效地利用數據的序列信息,并具有一定的記憶功能,是一種有效地解決序列標注任務的神經網絡,但其無法很好地處理長距離依賴問題,LSTM引入門限制機制對歷史信息進行過濾,有效地解決了這個問題。由于LSTM只是利用當前詞的上文信息,而在實體抽取處理中,對當前詞的識別同樣需要下文信息,雙向長短時記憶網絡模型BILSTM結構能同時包含文本上下文信息[15],原理如圖2所示。在BILSTM模型中,包含前向和后向兩個LSTM層,連接著同一個輸出層。由于訓練序列的前向和后向LSTM層組成了BILSTM網絡結構,所以在實體抽取中,BILSTM模型能兼顧上下文信息,自動提取句子特征,獲得更好的結果。

圖2 雙向長短時記憶網絡
傳統實體抽取方法CRF模型需要大量的人工特征,現有的BLSTM神經網絡模型對每個單詞標注的過程是獨立的分類,不能直接利用上文標簽信息,導致預測出的標簽序列可能是錯誤的,影響實體抽取效果。本文用BILSTM_CRF模型完成實體抽取任務,通過BILSTM網絡學習特征,避免人工提取特征的復雜性,利用CRF層考慮前后句子的標簽信息,使實體標注抽取不再是對每個單詞獨立的分類,實體抽取更為準確、高效。
本文提出的實體抽取BILSTM_CRF模型分為三層,首先是輸入層,其次是隱含層,最后是標注層,模型架構如圖3所示。

圖3 BILSTM_CRF模型架構
look-up是輸入層,主要負責將窗口的詞進行向量化映射,使用訓練好的詞向量矩陣將輸入窗口的每個詞xi映射為分布式向量xi,xi∈Rd,d是向量的維度。為防止出現過擬合狀況,設置dropout參數。


2.2.1前向神經網絡
模型通過前向神經網絡將輸入的特征向量經過層層推導得到最后的輸出,并通過這些輸出解決實體抽取任務。本實驗實體抽取模型的輸入層是大小為n·V的窗口詞向量,n代表窗口的規模,V指詞向量的維度。向量化的字符作為隱含層的輸入數據,隱含層得到的結果則是標注層的特征。標注層表示的是輸入層的字符為每個分類的可能性。網絡架構的前向神經網絡函數如下:
h=W(x1,x2)+b1
(2)
a=f(h)
(3)
z=g(UT+b2)
(4)

2.2.2損失函數
在前向神經網絡的邏輯回歸層,常使用Softmax函數計算一種狀態序列y∈YX的概率。針對單個樣本的損失函數,應用極大似然估計來定義:
l(x,y)=-log(p(y|x))
(5)
模型進行訓練時,這種基于單樣本梯度參數更新方法不僅造成模型訓練速度慢的問題,還容易帶來優化波動現象,本文引入批量樣本的梯度進行參數更新,定義模型的損失函數為:


(6)
式中:X、Y為批量訓練樣本,大小為batch。
2.2.3參數優化
參數優化是神經網絡模型訓練的核心任務,利用反向傳播算法可以計算損失函數對每個參數的梯度,并結合學習率更新參數,從而提高訓練模型的質量。傳統梯度下降法每次都采用相同的學習速率η來更新所有的參數θi,即:
gt,i=▽iL(θ)
(7)
θt+1,i=θt,i-η·gt,i
(8)
這種采用固定學習速率的方法難以適用于稀疏梯度,而Adagrad方法可以實現為各個參數動態地分配不同的學習率。在利用Adagrad方法進行模型參數的更新時,對樣本較少的特征進行較大幅度的參數調整,對頻繁的特征進行微調,通過這種方式實現對學習率進行一定的約束,其形式化定義公式如下:
(9)
式中:φ用來防止分母為零項,Gt∈Rnn是一個對角矩陣,矩陣中的元素Gt,ii表示每個參數θi從最初狀態到t時刻所有梯度平方的求和。在t時刻,學習速率在對應參數θi的前一時刻梯度基礎上被更改,觀察式(9)發現,當θi的梯度gi持續較小時,對參數進行大幅度調動,而參數已經接近最優,僅僅需要微調。
2.2.4訓練算法
圖4展示了利用反向傳播算法優化網絡模型的過程。反向傳播是一個重復反饋的過程。首先采用較小單位訓練數據,通過前向傳播算法得到神經網絡的預測結果,然后利用損失函數計算預測值和真實值之間的差距,最后用反向傳播更新模型參數的取值,模型訓練算法如算法1所示。

圖4 神經網絡反向優化流程
算法1BILSTM_CRF模型訓練
輸入:模型參數θ,損失函數L(X,Y),訓練樣本X,訓練樣本Y
輸出:
1. 對于每個epoch循環
2. 對于每個batch循環
3. Function forward(θ,L(X,Y),X,Y)
4. BILSTM前向訓練
5. CRF前向訓練
Calculate theL(X,Y) and
gt,i=▽iL(θ)
/*計算損失函數*/
6. End function
7. Function backward(θ,gt,i)

/*參數更新*/
9. CRF反向傳播及更新參數
10. BILSTM反向傳播及更新參數
11.End function
12.結束batch循環
13. 結束epoch循環
14. Returnθ
3.1.1環境準備
為了解決CPU訓練模型需要消耗較長時間的問題,本實驗用NVIDIA GeForce GTX 1060顯卡對模型進行訓練,使用該型號GPU訓練時間縮短為小時級別,實驗需要配置的軟硬件如表1所示。

表1 軟硬件配置表
3.1.2語料準備
實驗使用2014年1月人民日報語料庫樣本,其中訓練語料占實驗樣本的80%,剩余作為實驗測試語料,分別對樣本中的人物姓名(PER)、地點名(LOC)和組織機構名(ORG)進行識別,具體的數據統計如表2所示。

表2 語料數據統計表
監督訓練方式主要標注模型包括BIO、BIEO、BIESO等,本文利用的模式是BIO,B代表命名實體首字,I代表實體中間,O代表非實體。因此,B-PER、I-PER分別表示人名首字、人名非首字,B-LOC、I-LOC表示地點名首字、地點名非首字,B-ORG、I-ORG指組織名首字、組織名非首字,O代表非命名實體。
3.1.3詞向量
實體標注抽取實驗需要一個初始詞向量,相對于直接隨機初始化詞向量,使用大量非標注樣本語料訓練詞向量效率更高。本實驗詞向量訓練工具用谷歌開源word2vec語言模型CBOW。設置CBOW模型參數:詞向量的維度大小為100、200和300維;滑動窗口大小為5;訓練迭代次數100;設置學習速率0.05等。
3.1.4神經網絡
谷歌開源的TensorFlow計算框架能夠很好地支持深度學習的各種算法,本文利用TensorFlow框架來訓練BILSTM_CRF實體抽取模型,具體的參數設置為:神經網絡層數2;隱含層節點數300;最大梯度值5;學習速率0.02;過擬合參數0.6;批量樣本大小128等。
本實驗使用準確率P(Precision)、召回率又叫查全率R(Recall)以及F1值對模型的性能進行評價[16]。3個評價指標的公式定義如下:
(10)
(11)
(12)
(1) 實驗采用傳統條件隨機場CRF模型、雙向長短時記憶網絡BILSTM模型,混合方法LSTM_CRF模型作為對比實驗。傳統的CRF方法利用實驗語料人工設計特征模板,而不是用詞向量表示字符,模板設計如圖5所示。

圖5 CRF特征模板


表3 不同模型對比表
BILSTM在所有測試模型中F1值最低,神經網絡模型結構較為復雜,需要大量的訓練語料,而本實驗語料庫較小,模型得不到充分訓練,性能受到影響;其次,BILSTM對建模的狀態是相互獨立的,不能有效利用上下已經標注過的序列信息,影響抽取效率。
混合模型LSTM_CRF比其中兩種單一模型F1值高,識別效果較好,但因LSTM網絡只能提取序列標注模型的上文信息特征,無法利用下文信息特征,抽取模型未達到最好效果。
觀察表3可以發現,相比于其他三種模型方法,基于BILSTM_CRF模型的實體抽取方法有更高的準確性和查全率,其中F1值相比傳統CRF模型提高約8%,表明基于BILSTM_CRF的方法較其他方法具有較大優勢。BILSTM_CRF結合預訓練向量,使用BILSTM選取最優特征工程,利用CRF句子級別的標簽信息優化BILSTM結構,結合兩者獲得更佳的識別效果。
(2) 通過word2vec工具生成不同維度的向量對BILSTM_CRF模型的實體抽取效率也有影響,實驗訓練100、200以及300維度的向量分別進行對比,對于每一組實驗,均循環5次并求平均值,結果如圖6所示。

圖6 不同維度詞向量實驗對比
由圖6可以發現,實體抽取實驗所得的準確率、召回率以及F1值在詞嵌入向量維度為200最高,模型獲得最佳性能。維度過低,獲取的特征不完整,出現欠擬合情況;維度太高,語料中的噪聲容易被捕獲,產生過擬合狀況。
(3) 在BILSTM_CRF模型中,網絡結構復雜度和模型誤差大小受隱含層節點數目量的影響。實驗訓練包含不同隱含層節點數量的模型作對比,每種參數設置都執行5次,計算求得F1值平均值。圖7說明了F1均值隨著隱含層節點數目的變化。

圖7 F1值均值隨隱含層節點數目變化
由圖7可知,F1值均值隨著節點數量的增加而提高,在節點數量為300時達到一個最高值,隨后又呈現出遞減趨勢。在隱含層節點數目是300時,模型獲得最好實體抽取效果。分析原因是隱含層節點太少時,模型得不到充分訓練,性能較差;節點數過多,又容易造成模型過度擬合和浪費訓練時間等問題,影響實驗效率。
針對目前知識圖譜實體抽取方法依賴大量人工特征和領域專家的問題,提出了一種結合雙向長短時記憶網絡和條件隨機場模型的實體抽取方法。該方法融入了詞語的上下文信息,把詞的分布式表示引入到特征提取,充分利用詞語標簽的前后聯系,識別效果得到進一步提高。實驗結果表明,基于BILSTM_CRF模型的實體抽取方法與傳統方法相比,F1測度值更高,有更好的實體識別效果。
本文實體抽取模型訓練需要大量標注語料,但在一些領域并沒有海量的標注數據,所以基于所提方法引入遷移學習,使用少量的標注數據進行實體抽取將是以后研究的重點。