謝卓亨,李偉銘,馮浩男,李明軒,陳珂
(廣東石油化工學(xué)院 計算機學(xué)院,廣東 茂名 525000)
自然語言處理范疇里的信息抽取主要是從文本數(shù)據(jù)選出的信息創(chuàng)建相應(yīng)的實體關(guān)系。實體關(guān)系抽取則是信息抽取里非常重要的環(huán)節(jié),其功能是結(jié)構(gòu)化地識別已標(biāo)記的實體間關(guān)系[1]?,F(xiàn)階段實體關(guān)系抽取普遍采用基于句法特征工程、基于核函數(shù)和基于神經(jīng)網(wǎng)絡(luò)等方法。基于句法特征的方法其優(yōu)點是了解上下文,考慮到語境的因素,缺點在于語法結(jié)構(gòu)的復(fù)雜需要大量的人工進行特征標(biāo)注,難以進一步提升該方法對關(guān)系抽取任務(wù)的精準(zhǔn)性?;诤撕瘮?shù)的方法通過注重語料本身的結(jié)構(gòu)信息,輸入對象為語法結(jié)構(gòu)樹的輸入,關(guān)系分類是通過語料之間的結(jié)構(gòu)相似性,其優(yōu)點在于無需構(gòu)建多維的特征空間向量,缺點是長語句的結(jié)構(gòu)樹復(fù)雜,使得分析過程耗時緩慢。文獻[2]主要探討基于核方法中選取不同語料樹和最短路徑的關(guān)系在關(guān)系提取中的性能問題,取得了不錯的進展。近年來機器學(xué)習(xí)領(lǐng)域不斷地出現(xiàn)神經(jīng)網(wǎng)絡(luò)的身影,許多人傾向于采用神經(jīng)網(wǎng)絡(luò)去構(gòu)建機器學(xué)習(xí)中的模型。文獻[3] 為了解決遞歸神經(jīng)網(wǎng)絡(luò)模型中時間復(fù)雜度的問題,提出了基于分析樹和遞歸神經(jīng)網(wǎng)絡(luò)的方法,卻沒有考慮到文本的特征信息。文獻[4]提出了基于逐詞輸入雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的模型來提取文本信息特征,缺點在于沒有消除無用信息和保留有效信息。黃兆瑋等[5]提出了基于 GRU和注意力機制的方法來抽取實體關(guān)系,該模型收斂快,但擬合的效果一般;車金立等[6]則采用了遠程監(jiān)督結(jié)合雙重注意力機制的方法,較好地取得了有效信息,但沒有簡化輸入語料信息,整個數(shù)據(jù)過于龐大。以上方法都取得了一定的效果。
本文借鑒以上設(shè)計思路,考慮到神經(jīng)網(wǎng)絡(luò)的優(yōu)勢,采用cw2vec、雙向門控循環(huán)單元和雙重注意力機制來構(gòu)建模型。使用cw2vec詞嵌入模型訓(xùn)練出詞向量庫作為輸入值之一,進而加大詞與詞之間的關(guān)聯(lián)。使用雙向門控循環(huán)單元神經(jīng)網(wǎng)絡(luò)消除前后詞對該詞的影響和歧義性,使用雙重注意力機制提高對關(guān)注目標(biāo)的細節(jié)信息,剔除無用信息。
雙向門控循環(huán)單元和雙重注意力實體關(guān)系抽取的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)(如圖1所示)主要分為五層:數(shù)據(jù)預(yù)處理層、嵌入層、雙向門控循環(huán)單元層、注意力機制層和輸出層。
圖1 雙向門控循環(huán)單元和雙重注意力實體關(guān)系模型
該層結(jié)構(gòu)主要是將實體對、關(guān)系和對應(yīng)句子數(shù)據(jù)經(jīng)過分詞、獨熱編碼、詞向量化處理后轉(zhuǎn)變?yōu)榭杀挥嬎銠C快速處理的序列向量,保持數(shù)據(jù)本身特征后為下一層提供輸入數(shù)據(jù)。
一個具有r個詞的句子可表示為S= {x1,x2,x3,…,xr},利用cw2vec模型將詞x1,2,3,…,r映射到對應(yīng)的200維的向量空間來進行句子的向量化。其表示為
er=Wordw.vi
(1)
式中:vi為詞的獨熱編碼表示形式;Wordw為句子的向量矩陣,w為詞向量維數(shù),取200。
此時,詞的向量化為
ev={e1,e2,e3,…,er}
(2)
該層使用 cw2vec模型將中文語料庫映射到低維向量,每個詞語使用n-gram計算出相對應(yīng)的筆畫序列。計算句子的相似度時,先計算出詞WA,WB之間的相似度,查詢HowNet[7]得到相應(yīng)的DEF集合,可得詞WA,WB的最大相似度為
simW(WA,WB)=sim(DEFWA,DEFAB)
(3)
此時,句子的相似度simS(s1,s2,n)為
(4)
(5)
圖2 GRU單元內(nèi)部結(jié)構(gòu)
該層將從cw2vec模型訓(xùn)練而得的詞向量庫和上一層的數(shù)據(jù)通過扁平化操作轉(zhuǎn)變?yōu)榈途S數(shù)據(jù),便于模型的訓(xùn)練,通過雙向門控循環(huán)單元多次迭代訓(xùn)練后獲得輸入數(shù)據(jù)的特征向量,為自我學(xué)習(xí)并尋找到一組合適的參數(shù)和一個符合模型輸入值到輸出特征值之間聯(lián)系的函數(shù)。GRU(門控循環(huán)神經(jīng)網(wǎng)絡(luò))是一種改進的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),GRU解決了時間序列中時間步距離較大的依賴關(guān)系的問題,并且通過學(xué)習(xí)門來控制信息的流動,能很好地應(yīng)用在實體關(guān)系抽取中。GRU單元(見圖2)包括更新門和重置門,使其具備學(xué)習(xí)長距離內(nèi)容的能力。
更新門zt為zt=σ(Wz·[ht-1,xt])
(6)
重置門rt為rt=σ(Wr·[ht-1,xt])
(7)
(8)
(9)
t時刻記憶體的值為yt=σ(W0·ht)
(10)
圖3 雙向GRU網(wǎng)絡(luò)
利用正向和反向輸入的信息,采用雙向GRU網(wǎng)絡(luò)作為模型的一部分,其結(jié)構(gòu)見圖3。
雙向GRU網(wǎng)絡(luò)多了一層隱藏層,文字信息可以通過正向和反向輸入,第x個文字的輸出為
(11)
神經(jīng)網(wǎng)絡(luò)學(xué)得權(quán)重向量Ω后與由雙向門控循環(huán)單元層訓(xùn)練得到的特征向量進行矩陣乘積后得到基于字級別的特征向量R,將特征向量R與句子特征r進行矩陣相乘后再與relation_embedding相乘加上偏移bias后,再經(jīng)過字、句子級別注意力層。
注意力機制的出現(xiàn),可以讓計算機在處理數(shù)據(jù)的行為更接近于人類的行為,更好地解決計算機注意不集中的問題。本文在模型中使用詞級別注意力層和句子級別注意力層的雙重注意力,設(shè)由實體(e1,e2)所有句子集合S={s1,s2,s3,…,si},設(shè)e1與e2的關(guān)系為L,集合S中每個句子si都含有一定量的信息表示L,為了測定L,先把集合S轉(zhuǎn)成對應(yīng)的向量Sv,其表示為
(12)
式中:βi為句子si的權(quán)重;A為一個對角矩陣。
此時,集合S的向量表示形式
(13)
得到Sv后,用一個線性函數(shù)表達出關(guān)系L的得分,其表示為
y=MSv+b
(14)
式中:b為偏置量;M為關(guān)系矩陣。
輸出層的結(jié)果由GRU輸出的向量,經(jīng)過字級別注意力層后再經(jīng)過句子級別注意力層的處理求得,再經(jīng)過softmax算法的處理后得到一個score。此時,將score通過一次softmax with temperature放大分類結(jié)果,從而獲得關(guān)系分類結(jié)果。
實驗采用的是遠程監(jiān)督學(xué)習(xí)模式, 通過遠程監(jiān)督的模式來爬取數(shù)據(jù)集。該數(shù)據(jù)集包含12類關(guān)系(父母、師生、兄弟姐妹、夫妻、合作、同門、情侶、祖孫、朋友、上下級、親戚、同學(xué)),80000條關(guān)系語句,數(shù)據(jù)集格式見表1,并抽取60000條為訓(xùn)練語句。訓(xùn)練模型的參數(shù)設(shè)置見表2。
表1 實驗數(shù)據(jù)格式
表2 模型參數(shù)表
為了比較本文使用的模型中注意力機制對命名實體關(guān)系抽取效果的影響,將模型拆分為:(1)利用訓(xùn)練語料無字和無句子注意力層機制模型,記為GRU;(2)利用訓(xùn)練語料采用句子注意力層和無字注意力層的單注意力模型,記為SattGRU;(3)利用訓(xùn)練語料采用字注意力層和無句子注意力層的單注意力模型,記為WattGRU;(4)利用訓(xùn)練語料采用字注意力和句子注意力層模型的雙注意力模型,記為WattSattGRU。
本文基于Google的深度學(xué)習(xí)框架tensorflow實現(xiàn)4種模型的關(guān)系抽取的訓(xùn)練,并在訓(xùn)練時使用交叉熵作為模型的損失函數(shù),還使用L2正則化防止模型出現(xiàn)過擬合和Dropout技巧防止神經(jīng)網(wǎng)絡(luò)連接過多導(dǎo)致模型訓(xùn)練時間過長,并且對于每一種模型,都盡量地通過調(diào)節(jié)學(xué)習(xí)率、詞、句子向量的大小、訓(xùn)練次數(shù)等參數(shù)以得到最好的訓(xùn)練結(jié)果。
為了更方便對比模型之間的性能,本文采用準(zhǔn)確率(ACC值)、損失值(sofxmax_loss)和正確率-召回值(P-R)曲線來對模型進行評估。P-R圖能夠直觀地顯示出模型性能的優(yōu)劣,通常,P-R曲線下所包含的面積越大,則表明改模型性能越好。4種模型實驗經(jīng)過350次迭代訓(xùn)練后,每50次訓(xùn)練輸出的ACC值、sofxmax_loss值和P-R曲線分別見圖4、圖5和圖6。
圖4 4種模型ACC值 圖5 4種模型softmax_loss值 圖6 4種模型的P-R曲線
由圖4可知,使用注意力機制(WattGRU模型和SattGRU模型)相比無注意力機制(GRU模型)表現(xiàn)得更好,而本文提出的雙重注意力機制模型(WattSattGRU模型)相比于其它兩種使用單層的注意力機制擁有更高的ACC。由圖5可知,使用雙層注意力的模型在訓(xùn)練的后半部分收斂得更快,且在訓(xùn)練中具有更低的損失值。圖6中,使用單層注意力機制(WattGRU模型和SattGRU模型)分別考慮了語料中字或句子中的信息,相比完全不考慮語料中特定信息的注意力機制(GRU模型)在一定程度上提高了模型的性能。而使用雙重注意力機制(WattSattGRU模型)相比其它三種模型的表現(xiàn)更好,其原因是雙重注意力機制模型可結(jié)合字符級與句子級機制的優(yōu)點,通過對字符級注意力機制自動捕獲句子中關(guān)鍵的特征信息,再通過句子級注意力解決了句子與句子之間的噪聲問題,從而提高實體關(guān)系抽取的準(zhǔn)確率。
本文針對自然語言處理中的實體關(guān)系抽取,提出了基于雙向門控循環(huán)單元和雙重注意力機制的模型。實驗表明該模型有效地提高了文本實體識別關(guān)系的精確度。但由于數(shù)據(jù)的限制,模型評估結(jié)果達不到測試集上的表現(xiàn)。因此,下一步的工作將進一步擴展實體關(guān)系表示,探究各種實體關(guān)系的度量方法,并進一步優(yōu)化模型。