謝卓亨,李偉銘,馮浩男,李明軒,陳珂
(廣東石油化工學院 計算機學院,廣東 茂名 525000)
自然語言處理范疇里的信息抽取主要是從文本數據選出的信息創建相應的實體關系。實體關系抽取則是信息抽取里非常重要的環節,其功能是結構化地識別已標記的實體間關系[1]?,F階段實體關系抽取普遍采用基于句法特征工程、基于核函數和基于神經網絡等方法?;诰浞ㄌ卣鞯姆椒ㄆ鋬烖c是了解上下文,考慮到語境的因素,缺點在于語法結構的復雜需要大量的人工進行特征標注,難以進一步提升該方法對關系抽取任務的精準性?;诤撕瘮档姆椒ㄍㄟ^注重語料本身的結構信息,輸入對象為語法結構樹的輸入,關系分類是通過語料之間的結構相似性,其優點在于無需構建多維的特征空間向量,缺點是長語句的結構樹復雜,使得分析過程耗時緩慢。文獻[2]主要探討基于核方法中選取不同語料樹和最短路徑的關系在關系提取中的性能問題,取得了不錯的進展。近年來機器學習領域不斷地出現神經網絡的身影,許多人傾向于采用神經網絡去構建機器學習中的模型。文獻[3] 為了解決遞歸神經網絡模型中時間復雜度的問題,提出了基于分析樹和遞歸神經網絡的方法,卻沒有考慮到文本的特征信息。文獻[4]提出了基于逐詞輸入雙向循環神經網絡的模型來提取文本信息特征,缺點在于沒有消除無用信息和保留有效信息。黃兆瑋等[5]提出了基于 GRU和注意力機制的方法來抽取實體關系,該模型收斂快,但擬合的效果一般;車金立等[6]則采用了遠程監督結合雙重注意力機制的方法,較好地取得了有效信息,但沒有簡化輸入語料信息,整個數據過于龐大。以上方法都取得了一定的效果。
本文借鑒以上設計思路,考慮到神經網絡的優勢,采用cw2vec、雙向門控循環單元和雙重注意力機制來構建模型。使用cw2vec詞嵌入模型訓練出詞向量庫作為輸入值之一,進而加大詞與詞之間的關聯。使用雙向門控循環單元神經網絡消除前后詞對該詞的影響和歧義性,使用雙重注意力機制提高對關注目標的細節信息,剔除無用信息。
雙向門控循環單元和雙重注意力實體關系抽取的神經網絡模型結構(如圖1所示)主要分為五層:數據預處理層、嵌入層、雙向門控循環單元層、注意力機制層和輸出層。

圖1 雙向門控循環單元和雙重注意力實體關系模型
該層結構主要是將實體對、關系和對應句子數據經過分詞、獨熱編碼、詞向量化處理后轉變為可被計算機快速處理的序列向量,保持數據本身特征后為下一層提供輸入數據。
一個具有r個詞的句子可表示為S= {x1,x2,x3,…,xr},利用cw2vec模型將詞x1,2,3,…,r映射到對應的200維的向量空間來進行句子的向量化。其表示為
er=Wordw.vi
(1)
式中:vi為詞的獨熱編碼表示形式;Wordw為句子的向量矩陣,w為詞向量維數,取200。
此時,詞的向量化為
ev={e1,e2,e3,…,er}
(2)
該層使用 cw2vec模型將中文語料庫映射到低維向量,每個詞語使用n-gram計算出相對應的筆畫序列。計算句子的相似度時,先計算出詞WA,WB之間的相似度,查詢HowNet[7]得到相應的DEF集合,可得詞WA,WB的最大相似度為
simW(WA,WB)=sim(DEFWA,DEFAB)
(3)
此時,句子的相似度simS(s1,s2,n)為
(4)
(5)


圖2 GRU單元內部結構
該層將從cw2vec模型訓練而得的詞向量庫和上一層的數據通過扁平化操作轉變為低維數據,便于模型的訓練,通過雙向門控循環單元多次迭代訓練后獲得輸入數據的特征向量,為自我學習并尋找到一組合適的參數和一個符合模型輸入值到輸出特征值之間聯系的函數。GRU(門控循環神經網絡)是一種改進的循環神經網絡結構,GRU解決了時間序列中時間步距離較大的依賴關系的問題,并且通過學習門來控制信息的流動,能很好地應用在實體關系抽取中。GRU單元(見圖2)包括更新門和重置門,使其具備學習長距離內容的能力。
更新門zt為zt=σ(Wz·[ht-1,xt])
(6)
重置門rt為rt=σ(Wr·[ht-1,xt])
(7)

(8)

(9)
t時刻記憶體的值為yt=σ(W0·ht)
(10)


圖3 雙向GRU網絡
利用正向和反向輸入的信息,采用雙向GRU網絡作為模型的一部分,其結構見圖3。
雙向GRU網絡多了一層隱藏層,文字信息可以通過正向和反向輸入,第x個文字的輸出為
(11)

神經網絡學得權重向量Ω后與由雙向門控循環單元層訓練得到的特征向量進行矩陣乘積后得到基于字級別的特征向量R,將特征向量R與句子特征r進行矩陣相乘后再與relation_embedding相乘加上偏移bias后,再經過字、句子級別注意力層。
注意力機制的出現,可以讓計算機在處理數據的行為更接近于人類的行為,更好地解決計算機注意不集中的問題。本文在模型中使用詞級別注意力層和句子級別注意力層的雙重注意力,設由實體(e1,e2)所有句子集合S={s1,s2,s3,…,si},設e1與e2的關系為L,集合S中每個句子si都含有一定量的信息表示L,為了測定L,先把集合S轉成對應的向量Sv,其表示為
(12)
式中:βi為句子si的權重;A為一個對角矩陣。
此時,集合S的向量表示形式
(13)
得到Sv后,用一個線性函數表達出關系L的得分,其表示為
y=MSv+b
(14)
式中:b為偏置量;M為關系矩陣。
輸出層的結果由GRU輸出的向量,經過字級別注意力層后再經過句子級別注意力層的處理求得,再經過softmax算法的處理后得到一個score。此時,將score通過一次softmax with temperature放大分類結果,從而獲得關系分類結果。
實驗采用的是遠程監督學習模式, 通過遠程監督的模式來爬取數據集。該數據集包含12類關系(父母、師生、兄弟姐妹、夫妻、合作、同門、情侶、祖孫、朋友、上下級、親戚、同學),80000條關系語句,數據集格式見表1,并抽取60000條為訓練語句。訓練模型的參數設置見表2。

表1 實驗數據格式

表2 模型參數表
為了比較本文使用的模型中注意力機制對命名實體關系抽取效果的影響,將模型拆分為:(1)利用訓練語料無字和無句子注意力層機制模型,記為GRU;(2)利用訓練語料采用句子注意力層和無字注意力層的單注意力模型,記為SattGRU;(3)利用訓練語料采用字注意力層和無句子注意力層的單注意力模型,記為WattGRU;(4)利用訓練語料采用字注意力和句子注意力層模型的雙注意力模型,記為WattSattGRU。
本文基于Google的深度學習框架tensorflow實現4種模型的關系抽取的訓練,并在訓練時使用交叉熵作為模型的損失函數,還使用L2正則化防止模型出現過擬合和Dropout技巧防止神經網絡連接過多導致模型訓練時間過長,并且對于每一種模型,都盡量地通過調節學習率、詞、句子向量的大小、訓練次數等參數以得到最好的訓練結果。
為了更方便對比模型之間的性能,本文采用準確率(ACC值)、損失值(sofxmax_loss)和正確率-召回值(P-R)曲線來對模型進行評估。P-R圖能夠直觀地顯示出模型性能的優劣,通常,P-R曲線下所包含的面積越大,則表明改模型性能越好。4種模型實驗經過350次迭代訓練后,每50次訓練輸出的ACC值、sofxmax_loss值和P-R曲線分別見圖4、圖5和圖6。

圖4 4種模型ACC值 圖5 4種模型softmax_loss值 圖6 4種模型的P-R曲線
由圖4可知,使用注意力機制(WattGRU模型和SattGRU模型)相比無注意力機制(GRU模型)表現得更好,而本文提出的雙重注意力機制模型(WattSattGRU模型)相比于其它兩種使用單層的注意力機制擁有更高的ACC。由圖5可知,使用雙層注意力的模型在訓練的后半部分收斂得更快,且在訓練中具有更低的損失值。圖6中,使用單層注意力機制(WattGRU模型和SattGRU模型)分別考慮了語料中字或句子中的信息,相比完全不考慮語料中特定信息的注意力機制(GRU模型)在一定程度上提高了模型的性能。而使用雙重注意力機制(WattSattGRU模型)相比其它三種模型的表現更好,其原因是雙重注意力機制模型可結合字符級與句子級機制的優點,通過對字符級注意力機制自動捕獲句子中關鍵的特征信息,再通過句子級注意力解決了句子與句子之間的噪聲問題,從而提高實體關系抽取的準確率。
本文針對自然語言處理中的實體關系抽取,提出了基于雙向門控循環單元和雙重注意力機制的模型。實驗表明該模型有效地提高了文本實體識別關系的精確度。但由于數據的限制,模型評估結果達不到測試集上的表現。因此,下一步的工作將進一步擴展實體關系表示,探究各種實體關系的度量方法,并進一步優化模型。