王 侃,王孟洋,劉 鑫,田國強,李 川,劉 偉
(1.中國電子科技集團公司第十研究所,四川 成都 610036;2.西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071;3.西安郵電大學(xué) 計算機學(xué)院,陜西 西安 710121)
事件抽取是信息抽取的重要任務(wù),主要研究從自然語言文本中抽取出感興趣的結(jié)構(gòu)化事件信息,在生物醫(yī)學(xué)[1]、知識圖譜[2]、金融分析[3]等領(lǐng)域有著廣泛應(yīng)用。自動內(nèi)容抽取(Automatic Content Extraction,ACE)評測會議將事件抽取分為事件檢測和事件要素抽取兩個子任務(wù)[2]。事件檢測是事件抽取中的基礎(chǔ),主要任務(wù)是從文本中發(fā)現(xiàn)事件并確定事件類型,其結(jié)果將影響到事件要素抽取的性能[4-5]。
事件檢測的目標(biāo)是抽取文本中事件的觸發(fā)詞,并將其劃分為特定的事件類型[6]。傳統(tǒng)的事件檢測方法通常依賴于一系列自然語言處理(Natural Language Processing,NLP)工具來人工構(gòu)建特征,然后基于統(tǒng)計學(xué)習(xí)的分類模型進行分類[7-9]。這些特征可以劃分為兩類:詞匯級特征和句子級特征。詞匯級特征主要指詞匯的語義或背景知識,句子級特征指整個句子的句法及上下文依賴關(guān)系等[10]。通常這些方法中使用復(fù)雜的NLP工具,容易造成誤差傳播,且人工構(gòu)建特征工程過于繁瑣。
近幾年,神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于自然語言處理領(lǐng)域,能自動地從自然語言文本中學(xué)習(xí)特征,并在事件檢測任務(wù)上非常有效。文獻(xiàn)[10]將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)用于事件檢測任務(wù),對CNN池化層進行改進,提出動態(tài)多池化卷積神經(jīng)網(wǎng)絡(luò)模型,減少了事件抽取時的重要信息遺漏;文獻(xiàn)[11]提出一種雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)聯(lián)合模型,完成了觸發(fā)詞和事件要素的聯(lián)合抽?。晃墨I(xiàn)[12]采用了添加CNN的雙向長短期記憶網(wǎng)絡(luò)(Bidirectional Long Short Term Memory,BiLSTM)模型,從特定上下文捕獲序列和結(jié)構(gòu)語義信息,進行事件檢測;文獻(xiàn)[13]使用CNN和雙向門控循環(huán)單元(Bidirectional Gated Recurrent Units,BiGRU)聯(lián)合提取特征,完成觸發(fā)詞抽取。然而這些模型都沒有充分考慮文本的上下文聯(lián)系,對特征的提取不夠充分。
另一方面,注意力機制能夠捕捉全局信息,關(guān)注重要特征,成為自然語言處理領(lǐng)域的研究熱點。文獻(xiàn)[14]中提出了自注意力機制和多頭注意力機制,使得注意力機制的應(yīng)用場景更加廣泛,不再限于編碼器-解碼器框架中,從此注意力機制被應(yīng)用于各種神經(jīng)網(wǎng)絡(luò)模型,并在事件檢測任務(wù)中也取得了很好的效果[1,6]。文獻(xiàn)[15]提出了一種基于注意力機制的組合神經(jīng)網(wǎng)絡(luò)模型,該模型首先使用CNN提取不同粒度信息構(gòu)建句子級的特征表示,然后使用BiGRU對句子特征表示進行順序整合以提取文本的上下文語義信息特征,并使用注意力機制計算注意分?jǐn)?shù),對該模型施加不同的學(xué)習(xí)權(quán)重,提高情感分類任務(wù)的性能。文獻(xiàn)[16]在CNN的卷積層和池化層間加入了BiGRU層,將CNN提取的局部特征通過BiGRU得到全局特征,從而對全局特征進行池化,通過注意力機制進行賦予特征不同的學(xué)習(xí)權(quán)重,完成了文本分析任務(wù)。然而這些模型的不足之處在于,只考慮了文本的句子級特征,忽略了文本中的詞匯級特征和詞匯的位置信息,且CNN中的池化操作會造成位置信息的丟失,在事件檢測任務(wù)中效果不佳。
筆者引入自注意力機制,提出一種基于自注意力機制與卷積雙向門控循環(huán)單元模型(Convolutional Bidirectional Gated Recurrent Units Based on Self-Attention,Att-CNN-BiGRU)進行事件檢測,采用詞向量和位置向量作為模型輸入,用融合自注意力機制的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks based on self-Attention,Att-CNN)來提取不同粒度的詞匯級特征,并且用融合自注意力機制的雙向門控循環(huán)單元(Bidirectional Gated Recurrent Units based on self-Attention,Att-BiGRU)來提取句子級特征,使用自注意力機制分別對所提取的特征進行處理,賦予不同特征不同的注意力權(quán)重,捕獲句子的全局信息和上下文依賴關(guān)系,使提取的特征更加充分,從而提升事件檢測的性能。
Att-CNN-BiGRU事件檢測模型由文本向量化、特征提取和候選詞分類3個部分構(gòu)成,如圖1所示。第一部分是文本向量化,把輸入文本中的每個詞語映射成向量表示,文本向量由詞向量和位置向量組成;第二部分是特征提取,包括Att-CNN詞匯級特征提取和Att-BiGRU句子級特征提取;第三部分是候選詞分類,將所提取的詞匯級特征和句子級特征拼接作為全連接層的輸入,通過softmax分類器識別候選詞所屬類別。
圖1 事件檢測模型框圖
文本向量化是將文本映射成計算機可以識別和處理的向量[10-13]。為避免One-hot編碼向量稀疏和維度災(zāi)難的問題,使用分布式表示。一個句子由多個詞語組成,表示為S={w1,w2,…,wn},其中,S表示句子,wi表示句子中第i個詞語,n表示句子長度。文中模型將句子中的詞語wi映射為實值向量xi,句子序列可以表示為X={x1,x2,…,xn},其中實值向量xi包括詞向量和位置向量兩部分。
1.1.1 詞向量
詞向量又稱詞嵌入,是將文本中的詞語轉(zhuǎn)化為可以表達(dá)語義信息的向量ei,考慮詞的含義和詞與詞之間的影響,計算了詞的語義相似性。筆者采用Google的開源詞向量模型工具包Word2vec[10-13]的Skip-gram模型來預(yù)訓(xùn)練詞向量,得到詞向量矩陣MW∈Rdw×|V|,其中,dw表示詞向量維度,|V|表示詞典大小。
1.1.2 位置向量
位置向量又稱位置嵌入,是將文本中詞語的位置特征轉(zhuǎn)化為向量pei,明確句子中哪個詞是觸發(fā)詞。位置特征定義為當(dāng)前詞到候選詞之間的相對距離,表示當(dāng)前詞在句子中的相對位置[10-13]。筆者通過隨機初始化并反向傳播進行優(yōu)化,得到位置向量矩陣MP∈RdP×[2×(n-1)+1],其中,dp表示位置向量維度。
綜上所述,句子中的第i個詞語對應(yīng)的向量xi∈Rd可表示為xi=[ei,pei],維度為d=dw+dp。
由于神經(jīng)網(wǎng)絡(luò)的輸入通常為固定長度,假設(shè)句子的最大長度為maxlen,如果句子長度n大于maxlen,則截取前maxlen個詞語;如果句子長度n小于maxlen,則采取在句子末尾補零的方式將句子補齊。
通過Att-CNN-BiGRU聯(lián)合提取文本特征,文本特征分為詞匯級特征和句子級特征。詞匯級特征指單詞的背景知識,包括單詞的詞性信息、語義信息等。句子級特征指整個句子的上下文依賴關(guān)系,如句法特征。Att-CNN通過卷積和自注意力操作提取詞匯級特征,Att-BiGRU通過門控循環(huán)單元和自注意力層提取句子級特征。
1.2.1 基于Att-CNN的詞匯級特征提取
卷積神經(jīng)網(wǎng)絡(luò)最初在計算機視覺領(lǐng)域用來提取局部特征,目前也逐漸應(yīng)用于自然語言處理任務(wù),如情感分析[17-18]、事件抽取[10]等。筆者使用卷積神經(jīng)網(wǎng)絡(luò)來提取句子中每個詞的局部上下文特征,包括卷積層和自注意力層,原理如圖2所示。
圖2 Att- CNN提取詞匯級特征原理圖
1) 卷積層
卷積層通過一維卷積操作在輸入文本向量上滑動來捕獲每個詞語的局部上下文語義,并將這些有價值的語義壓縮為特征映射。定義xi:i+j是指第i到i+j實值向量xi,xi+1,…,xi+j。一維卷積操作的卷積核W∈Rh×d,其中,h表示卷積核應(yīng)用的詞窗口大小。文中采用補零的卷積方式,如果詞語上下沒有其他詞語,那么在卷積時在前后補零將句子對齊,那么,某一詞語xi的特征映射ci由式(1)[10]所示從xi-h/2:i+h/2的詞窗口生成:
ci=f(W·xi-h/2:i+h/2+b) ,
(1)
其中,f是一個非線性函數(shù)如雙曲切線,b∈R是一個偏置項。這個卷積核作用于句子中每個可能的詞窗口x1-h/2:1+h/2,x2-h/2:2+h/2,…,xn-h/2:n+h/2來生成每個詞的特征映射ci,索引i的范圍從1到n。
為了捕獲不同粒度的特征,在不同通道中進行卷積操作。假設(shè)使用不同大小卷積核共m個,多通道卷積運算可以表示為[10]:
cij=f(Wj·xi-h/2:i+h/2+bj) ,
(2)
其中,索引i表示句子中的第i個詞,其范圍從1到n。j表示第j個卷積核,其范圍從1到m。cij表示句子中的第i個詞經(jīng)過第j個卷積核卷積得到的特征映射。由cij組成矩陣C∈Rn×m作為初級詞匯級特征。
2) 自注意力層
卷積神經(jīng)網(wǎng)絡(luò)只能獲取卷積窗口內(nèi)的局部特征信息,無法聯(lián)系上下文信息。為了充分考慮每個詞語之間的相互關(guān)聯(lián),更加全面地提取詞匯級特征,同時避免池化操作中詞語位置信息丟失,引入了自注意力層[6,15-17]。
自注意力機制的結(jié)構(gòu)如圖3所示。自注意力模型經(jīng)常采用查詢-鍵-值(Query Key Value,QKV)模型,自注意力機制中Q、K、V的來源是同一個輸入。給定輸入矩陣I,經(jīng)過不同的矩陣變換得到矩陣Q、K、V。首先通過查詢矩陣Q與鍵矩陣K的轉(zhuǎn)置相乘計算其相似度,得到相關(guān)性矩陣A。其次,通過softmax操作將相關(guān)性矩陣A歸一化,得到A′。最后將歸一化相關(guān)性矩陣A′乘以矩陣V,得到自注意力層的結(jié)果。自注意力機制的計算如下式[14]:
圖3 自注意力機制結(jié)構(gòu)圖
(3)
其中,Q∈Rn×dk,K∈Rn×dk,V∈Rn×dv,T表示矩陣的轉(zhuǎn)置運算,除以(dK)1/2以防止內(nèi)積結(jié)果過大。
自注意機制實質(zhì)上就是通過矩陣運算將一個n×dk的矩陣考慮全局信息后重新編碼成n×dv的矩陣。自注意力機制為不同的詞匯級特征分配不同的權(quán)重,同時考慮了詞語的全局信息和依賴關(guān)系,從而得到詞匯級特征C′∈Rn×m。
1.2.2 基于Att-BiGRU的句子級特征提取
為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)梯度消失和短期記憶的問題,其變體LSTM和GRU引入“門”的內(nèi)部機制以調(diào)節(jié)信息流。相比于LSTM,GRU結(jié)構(gòu)和計算過程更簡單,參數(shù)也少,因此收斂速度比LSTM更快,故筆者選取GRU模型來提取句子級特征。
GRU結(jié)構(gòu)中去除了單元狀態(tài),而使用隱藏狀態(tài)來傳輸信息。它的核心結(jié)構(gòu)可以分為兩個部分去解析,分別是更新門zt和重置門rt,其結(jié)構(gòu)如圖4所示。更新門zt決定保留信息和添加信息,控制前一時刻輸出隱藏狀態(tài)對當(dāng)前時刻輸出狀態(tài)的影響。重置門rt決定丟棄信息,控制前一時刻中信息的忽略程度。在t時刻,首先計算更新門和重置門;接著新的記憶內(nèi)容將使用重置門rt儲存過去相關(guān)的信息;最后網(wǎng)絡(luò)計算隱藏狀態(tài)ht,保留當(dāng)前單元的信息并傳遞到下一個單元中。GRU通過式(4)~式(7)更新參數(shù)[13]:
圖4 門控循環(huán)單元原理圖
zt=σ(Wz·xt+Uz·ht-1) ,
(4)
rt=σ(Wr·xt+Ur·ht-1) ,
(5)
(6)
(7)
圖5 Att-BiGRU提取句子級特征原理圖
假設(shè)在Bi-GRU訓(xùn)練過程中,設(shè)定隱藏單元數(shù)量為s,那么Bi-GRU的輸出結(jié)果為H=[h1,h2,…,hn]。其中H∈Rn×(2×s),作為Bi-GRU提取得到的初級句子級別特征。
為了更加全面地捕捉句子的特征信息,并將焦點集中在高價值具有代表性的特征上,無視沒有價值的特征,同理在BiGRU后引入了自注意力層,從而得到句子級特征H′∈Rn×(2×s)。
候選詞分類是聯(lián)合Att-CNN提取的詞匯級特征和Att-BiGRU提取的句子級特征通過softmax操作識別候選詞所屬類別,從而確定句子中的觸發(fā)詞。由上文可知,Att-CNN提取的詞匯級特征C′∈Rn×m,Att-BiGRU提取的句子級特征H′∈Rn×(2×s),將C′和H′拼接在一起作為聯(lián)合特征Y=[C′,H′],Y∈Rn×(m+2×s)。將聯(lián)合特征Y通過全連接層輸入到softmax層,完成候選詞的分類[10]為
O=softmax(WsY+bs) ,
(8)
其中,O∈Rk是模型輸出的觸發(fā)詞類別向量,Ws∈R(m+2×s)×k為表示全連接層的連接權(quán)重矩陣,bs∈Rk表示偏置,k表示觸發(fā)詞類型數(shù)目。
將觸發(fā)詞抽取看作一個多分類問題,將觸發(fā)詞抽取模型的所有參數(shù)定義為θ,將句子中的每個詞語作為候選詞,通過模型對每個候選詞進行分類。在訓(xùn)練過程中,將輸入的文本向量通過Att-CNN和Att-BiGRU分別提取詞匯級特征和句子級特征,通過softmax函數(shù)分類。模型使用交叉熵(cross-entropy)作為損失函數(shù),采用mini-batch的訓(xùn)練方式,每次隨機從訓(xùn)練集中選取一小批數(shù)據(jù)來進行訓(xùn)練,使用自適應(yīng)矩估計(Adam)優(yōu)化器,通過反向傳播調(diào)整模型參數(shù)θ,直至結(jié)果收斂。
文中數(shù)據(jù)集選用ACE2005英文語料,共包括599篇文檔。ACE2005語料將事件劃分為8種類型,每種事件類型中又包含一些子類型,共33種,標(biāo)注了事件提及、事件觸發(fā)詞、事件元素等信息,被廣泛應(yīng)用于事件抽取任務(wù)。與文獻(xiàn)[8-13,19]等實驗設(shè)置相同,文中隨機選取40個新聞作為測試集,選取30個文章作為驗證集,剩余529個文章作為訓(xùn)練集,同時選用準(zhǔn)確率(P)、召回率(R)和F值(F-score)作為評估事件檢測模型性能的指標(biāo),計算標(biāo)準(zhǔn)如下:
觸發(fā)詞識別:如果所抽取觸發(fā)詞的位置與比標(biāo)注文檔一致,則觸發(fā)詞被正確識別。
觸發(fā)詞分類:如果所抽取觸發(fā)詞的類型與位置與標(biāo)注文檔一致,則觸發(fā)詞被正確分類。
2.2.1 不同模型的結(jié)果對比
為了驗證文中模型的有效性,將筆者提出的模型與現(xiàn)有的5種事件檢測基準(zhǔn)模型進行對比,其中MaxENT[8]、Li’s structure[9]是基于傳統(tǒng)的事件檢測方法,DMCNN[10]、JRNN[11]、SCNN[19]是基于神經(jīng)網(wǎng)絡(luò)的事件檢測方法,表1和圖6和圖7中是不同的觸發(fā)詞抽取模型在ACE2005英文語料庫上的性能對比結(jié)果。
表1 不同模型在ACE2005英文語料上的性能對比 %
圖6 觸發(fā)詞識別不同模型性能對比
圖7 觸發(fā)詞分類不同模型性能對比
從表1和圖6和圖7可以看出,基于神經(jīng)網(wǎng)絡(luò)的事件檢測方法的性能普遍優(yōu)于傳統(tǒng)的事件檢測方法。這是因為神經(jīng)網(wǎng)絡(luò)能夠自動學(xué)習(xí)和提取文本特征,避免了傳統(tǒng)方法在使用復(fù)雜NLP工具人工提取詞性、命名實體等特征時帶來的誤差傳播。在觸發(fā)詞分類任務(wù)中,文中模型準(zhǔn)確率達(dá)到82.6%,召回率為76.0%,F(xiàn)值為78.9%,均高于基線模型方法。在觸發(fā)詞分類任務(wù)中,文中模型保持了較高的準(zhǔn)確率和召回率,同時取得了最高的F值76.0%。綜上對比結(jié)果顯示,文中模型性能較傳統(tǒng)的事件檢測方法和單一的CNN、RNN事件檢測方法,性能均得到了提升,這表明組合神經(jīng)網(wǎng)絡(luò)能充分提取詞匯級特征和句子級特征,從而具有較好的事件檢測性能。
2.2.2 有無自注意力機制的結(jié)果對比
為了驗證自注意力機制的有效性,將有無自注意力機制的實驗結(jié)果進行對比。表2是注意力機制的實驗結(jié)果對比,CNN-BiGRU是未使用自注意力機制的模型,Att-CNN-BiGRU是增加自注意力機制的模型。
表2 自注意力機制實驗對比 %
從表2可以看出,增加自注意力機制后,事件觸發(fā)詞識別和分類任務(wù)均有了一定的提升。其中觸發(fā)詞識別任務(wù)中準(zhǔn)確率、召回率和F值提升了2%左右,觸發(fā)詞分類任務(wù)中準(zhǔn)確率提升了4%,召回率提升了6.3%,F(xiàn)值提升了5.1%。這是因為自注意力機制可以賦予不同位置不同的注意力權(quán)重,捕獲序列中各位置之間的語義關(guān)系和依賴特征。在CNN提取詞匯級特征階段,自注意力機制可以捕捉詞匯的上下文聯(lián)系,得到整個句子的全局信息。在BiGRU提取句子級特征階段,自注意力機制可以捕捉句子中的前后依賴和每個詞語之間的語義特征信息,從而提高模型的特征抽取能力,提升事件檢測的性能。此外,筆者給出的模型表現(xiàn)出更好收斂性,如圖8所示。
圖8 CNN-BiGRU與Att-CNN-BiGRU收斂情況對比
從圖8中可以看出,CNN-BiGRU在訓(xùn)練到第30個輪次(Epoch)左右時收斂,而Att-CNN-BiGRU在訓(xùn)練到第10個輪次左右時就達(dá)到收斂。這是因為自注意力機制可以更加關(guān)注有價值的特征信息,為不同的特征分配不同的權(quán)重,從而使得模型收斂得更快。
筆者提出一種基于自注意力機制與卷積雙向門控循環(huán)單元模型進行事件檢測。該模型將詞向量和位置向量聯(lián)合作為輸入,通過Att-CNN提取不同粒度的詞匯級特征,通過Att-BiGRU提取句子級特征,使用自注意力機制捕捉詞匯級特征的全局信息和句子級特征的上下文依賴。該模型避免了傳統(tǒng)方法使用復(fù)雜的NLP工具帶來的錯誤傳播的問題,自動學(xué)習(xí)文本特征,比傳統(tǒng)事件檢測方法表現(xiàn)更好。同時,該模型能充分提取不同粒度的文本特征,性能比單一神經(jīng)網(wǎng)絡(luò)的事件檢測模型有了進一步提升,且模型收斂速度更快。本模型將前人提出的CNN-BiGRU模型與自注意力機制融合并應(yīng)用于事件檢測任務(wù)。然而該模型沒有使用傳統(tǒng)方法中的句法結(jié)構(gòu)特征等文本特征。因此未來的研究將致力于引入更多有效特征,提高模型抽取性能,并完成事件要素抽取,完善事件抽取工作。