江旭,錢雪忠,宋威
(江南大學(xué)人工智能與計(jì)算機(jī)學(xué)院,江蘇無錫 214112)
實(shí)體關(guān)系抽取作為信息抽取、自然語言理解、信息檢索等領(lǐng)域的核心任務(wù)和重要環(huán)節(jié),可從非結(jié)構(gòu)化和程序化的文本中提取實(shí)體之間的語義關(guān)系,為用戶提供更加精準(zhǔn)全面的信息。實(shí)體關(guān)系抽取通常是在非結(jié)構(gòu)化和程序化的文本中提取二元關(guān)系并組成關(guān)系三元組的形式,例如
在現(xiàn)有關(guān)系抽取方法中,監(jiān)督關(guān)系抽取的準(zhǔn)確率較高,但耗費(fèi)大量人力資源。遠(yuǎn)程監(jiān)督關(guān)系抽取方法通過數(shù)據(jù)自動(dòng)對(duì)齊方式解決了大量無標(biāo)簽數(shù)據(jù)的自動(dòng)標(biāo)注問題,并且能夠大幅減少標(biāo)注成本,但存在知識(shí)庫標(biāo)注的句子有噪聲、實(shí)體與關(guān)系之間表示不明確、無法準(zhǔn)確表達(dá)句子與實(shí)體之間關(guān)系等問題。針對(duì)這些問題,研究人員提出了一系列解決方案。文獻(xiàn)[1]提出圖卷積網(wǎng)絡(luò),能夠處理具有廣義拓?fù)鋱D結(jié)構(gòu)的數(shù)據(jù),并深入挖掘其實(shí)體和關(guān)系特征。文獻(xiàn)[2]結(jié)合多實(shí)例與分段卷積神經(jīng)網(wǎng)絡(luò)(Piecewise Convolutional Neural Network,PCNN)進(jìn)行遠(yuǎn)程監(jiān)督關(guān)系抽取。文獻(xiàn)[3]引入注意力機(jī)制,利用句子與關(guān)系來分配權(quán)重,通過對(duì)正確的句子與關(guān)系分配較高的權(quán)重,提升了關(guān)系抽取性能。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)[4-5]被廣泛應(yīng)用于遠(yuǎn)程監(jiān)督關(guān)系提取。文獻(xiàn)[6]提出分段卷積神經(jīng)網(wǎng)絡(luò)來建模句子表示,并選擇準(zhǔn)確的句子作為句袋表示。文獻(xiàn)[7]使用多種神經(jīng)網(wǎng)絡(luò)作為句子編碼器,并提出一種句袋內(nèi)注意力機(jī)制,通過句袋中所有句子表示的加權(quán)和來計(jì)算句袋。文獻(xiàn)[8]采用類似的注意力機(jī)制,并結(jié)合實(shí)體描述來計(jì)算權(quán)重。文獻(xiàn)[9]提出一種軟標(biāo)簽方法來降低噪聲實(shí)例的影響。文獻(xiàn)[10]采用雙向長(zhǎng)短時(shí)記憶(Bi-directional Long Short-Term Memory,BiLSTM)網(wǎng)絡(luò)來提取句子特征,使用注意力機(jī)制來識(shí)別噪聲句子以及句袋。
上述遠(yuǎn)程監(jiān)督關(guān)系抽取方法利用句子嵌入的加權(quán)和來表示句袋[11],以關(guān)系感知的方式計(jì)算句袋內(nèi)的注意力權(quán)重,并在訓(xùn)練階段使用相同的句袋表示來計(jì)算該句袋被分類到每個(gè)關(guān)系中的概率,然而這種采取先識(shí)別實(shí)體再預(yù)測(cè)關(guān)系的端到端抽取方式會(huì)導(dǎo)致前一個(gè)任務(wù)的錯(cuò)誤傳遞到下一個(gè)任務(wù),并且忽略了實(shí)體與各個(gè)關(guān)系之間的聯(lián)系。為解決上述問題,本文提出基于殘差BiLSTM(ResNet_BiLSTM)與句袋內(nèi)和句袋間注意力機(jī)制的實(shí)體關(guān)系抽取模型。通過句子嵌入的加權(quán)和計(jì)算關(guān)系感知句袋,并結(jié)合句袋注意力模塊,在模型訓(xùn)練過程中動(dòng)態(tài)計(jì)算句袋注意力權(quán)重,以解決句袋噪聲問題。
本文提出一種基于ResNet_BiLSTM 與句袋注意力的關(guān)系抽取模型,用于遠(yuǎn)程監(jiān)督關(guān)系抽取。g={b1,b2,…,bn}表示一組遠(yuǎn)程監(jiān)督給出的具有相同關(guān)系標(biāo)簽的句袋,n是句袋數(shù)量表示句子數(shù)為m的句袋,表示在第i個(gè)句袋中的第j個(gè)句子,jm表示第j個(gè)句子長(zhǎng)度,模型框架如圖1 所示,主要包括以下模塊:
圖1 基于ResNet_BiLSTM 與句袋注意力機(jī)制的關(guān)系抽取模型框架Fig.1 Framework of relationship extraction model based on ResNet_ BiLSTM and sentence bag attention mechanism
1)句子編碼器。給定一個(gè)句子和句子中兩個(gè)實(shí)體的位置[12],得到句子的輸入表示。
2)ResNet_BiLSTM 特征提取器。由句子編碼器得到的輸入句子表示,通過輸入ResNet_BiLSTM 得到句子特征[13]表示。
3)句袋內(nèi)注意力機(jī)制。給定句袋bi中所有句子的句子表示和關(guān)系嵌入矩陣R、注意力機(jī)制權(quán)重向量和句袋表示來計(jì)算所有關(guān)系,其中k為關(guān)系索引。
4)句袋間注意力機(jī)制。給定一組句袋g,通過基于相似性的注意力機(jī)制來進(jìn)一步計(jì)算權(quán)重矩陣β,得到句袋組的表示。
句子的特征編碼由詞和詞的位置特征表示,在句子中每個(gè)詞被映射成一個(gè)dw維度的詞嵌入,句子的特征向量表示為,位置特征[14]是每個(gè)詞到實(shí)體之間的距離,表示為,將位置特征映射成dp維的詞嵌入,這3個(gè)向量的連接向量為dw+2dp維的向量,表示為
其中:F(x)為BiLSTM 輸出門通過線性變換得到。F(x)計(jì)算如式(8)所示:
其中:Whf為隨機(jī)初始化權(quán)重矩陣。
Si∈表示句袋bi中所有句子表示,表示關(guān)系嵌入矩陣,其中h是關(guān)系數(shù)量。與傳統(tǒng)方法不同,傳統(tǒng)方法推導(dǎo)了關(guān)系分類的統(tǒng)一句袋表示,本文方法在所有可能的關(guān)系條件下計(jì)算句袋bi的表示:
其中:rk是關(guān)系嵌入矩陣R2的第k行;T是訓(xùn)練樣本集合。
最終句袋bi表示為矩陣,每行對(duì)應(yīng)于此句袋中可能的關(guān)系類型。
為解決句袋帶噪問題,設(shè)計(jì)一種基于相似性的句袋間注意力模塊[16]來動(dòng)態(tài)地降低帶噪句袋的權(quán)重。如果兩個(gè)句袋bi1和bi2都被標(biāo)記為關(guān)系k,則和應(yīng)該關(guān)系更接近,給定一組具有相同關(guān)系標(biāo)簽的句袋,將更高的權(quán)重分配給該組中與其他句袋接近的句袋,句袋組g可表述如下:
其中:g∈;βik組成注意力權(quán)重矩陣β∈Rn×k。βik計(jì)算如式(13)所示:
其中:γik表示用第k個(gè)關(guān)系標(biāo)記句袋bi的置信度[17]。受到自注意力機(jī)制的啟發(fā)[18],γik使用向量本身計(jì)算一組向量的注意力權(quán)重,根據(jù)它們自身表示計(jì)算句袋的權(quán)重。γik計(jì)算如式(14)所示:
函數(shù)相似性計(jì)算如式(15)所示:
然后第k個(gè)關(guān)系得分ok通過句袋組g和關(guān)系嵌入rk計(jì)算得到,如式(17)所示:
其中:dk是偏置項(xiàng)。
最后使用Softmax 函數(shù)獲得句袋組g被分類為第k個(gè)關(guān)系的概率,如式(18)所示:
需要注意的是,相同的關(guān)系嵌入矩陣R用于計(jì)算式(11)和式(16),類似的dropout損失率用于句袋表示Bi以防止過擬合。
基于ResNet_BiLSTM 與句袋內(nèi)和句袋間注意力機(jī)制的關(guān)系抽取模型實(shí)現(xiàn)過程具體如下:
1)數(shù)據(jù)處理。首先訓(xùn)練集中的所有句子包含相同的兩個(gè)實(shí)體,將其累加到一個(gè)句袋,然后對(duì)于每n個(gè)共用的句袋,將相同的關(guān)系標(biāo)簽放入一個(gè)句袋中,需要注意的是,一個(gè)句袋組是一個(gè)訓(xùn)練樣本。因此,該模型也可以在小批量模式下通過打包多個(gè)句袋組成一批句袋。
2)目標(biāo)函數(shù)優(yōu)化。優(yōu)化公式如式(19)所示:
其中:θ是模型參數(shù)集,包括單詞嵌入矩陣、位置特征嵌入矩陣、權(quán)重矩陣和關(guān)系嵌入矩陣;J(θ)通過mini-batch隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD)來優(yōu)化模型[20]。
3)訓(xùn)練和測(cè)試。在訓(xùn)練階段,將具有相同關(guān)系標(biāo)簽的n個(gè)句袋累積到1 個(gè)句袋組中,并計(jì)算句袋表示的加權(quán)和,以獲得句袋組g的表示。由于每個(gè)句袋的標(biāo)簽在測(cè)試階段是未知的,因此在處理測(cè)試組時(shí),每個(gè)句袋被視為一個(gè)句袋組(即n=1)。此外,與文獻(xiàn)[15]類似,僅對(duì)正樣本應(yīng)用句袋間注意力機(jī)制,其原因是表示無關(guān)系的句袋表示形式是多樣的,難以計(jì)算權(quán)重。
4)預(yù)訓(xùn)練。在實(shí)驗(yàn)中采用預(yù)訓(xùn)練策略,首先對(duì)模型進(jìn)行句袋內(nèi)訓(xùn)練,直到收斂,然后添加句袋間注意力機(jī)制模塊,進(jìn)一步更新模型參數(shù),直至再一次收斂。初步的實(shí)驗(yàn)結(jié)果表明,預(yù)訓(xùn)練策略相比于句袋間注意力機(jī)制能夠獲得更好的模型性能。
實(shí)驗(yàn)采用NYT(New York Times)數(shù)據(jù)集。該數(shù)據(jù)集由文獻(xiàn)[21]發(fā)布并得到廣泛使用,基于遠(yuǎn)程監(jiān)督關(guān)系提取研究,將Freebase 知識(shí)庫中的三元組和NYT 數(shù)據(jù)集中的文本對(duì)齊生成,包含52 個(gè)實(shí)際關(guān)系和1 個(gè)特殊關(guān)系NA,其中NA 表明2 個(gè)實(shí)體之間沒有關(guān)聯(lián)性。
在計(jì)算機(jī)上使用NVIDIA GTX 1080 Ti 顯卡運(yùn)行程序,采用精確率-召回率(Precision-Recall,PR)、曲線下面積(Area Under the Curve,AUC)和精確率(Precision,P)@N(P@N)[22]來評(píng)估模型性能。P@N采用One、Two 和All 測(cè)試集,其中,One 表示對(duì)測(cè)試集中每個(gè)實(shí)體對(duì)隨機(jī)選擇一個(gè)句子,通過這一個(gè)句子對(duì)關(guān)系進(jìn)行預(yù)測(cè),Two 表示對(duì)測(cè)試集中每個(gè)實(shí)體對(duì)隨機(jī)選擇兩個(gè)句子,通過這兩個(gè)句子對(duì)關(guān)系進(jìn)行預(yù)測(cè),All 表示對(duì)測(cè)試集中每個(gè)實(shí)體對(duì)選擇所有句子對(duì)關(guān)系進(jìn)行預(yù)測(cè),mean 表示對(duì)求得的結(jié)果取平均值。P@N使用了前N個(gè)實(shí)例的準(zhǔn)確率,其中N取100、200、300。
在實(shí)驗(yàn)中,使用的多數(shù)超參數(shù)遵循文獻(xiàn)[23]中的設(shè)置,如表1 所示。在初始化時(shí)采用文獻(xiàn)[19]發(fā)布的50 維單詞嵌入。2 個(gè)不同批量大小Np和Nt分別用于預(yù)訓(xùn)練和訓(xùn)練,使用訓(xùn)練集進(jìn)行網(wǎng)格搜索來確定n的最佳值,n∈{3,4,…,10},Nt∈{3,4,…,200},Np∈{10,20,50,100,200}。需要注意的是,增加句袋組數(shù)量n可能會(huì)增強(qiáng)句袋間注意力,導(dǎo)致訓(xùn)練樣本減少,當(dāng)n=1 時(shí),句袋間注意力的影響將消失。使用mini-batch SGD 的初始學(xué)習(xí)率為0.1,學(xué)習(xí)率在每100 000 步后下降至之前的1/10,在實(shí)驗(yàn)中僅包含句袋內(nèi)注意力的預(yù)訓(xùn)練模型,在300 000 步內(nèi)收斂,包含句袋間注意力的訓(xùn)練模型的初始學(xué)習(xí)率設(shè)置為0.001。
表1 實(shí)驗(yàn)超參數(shù)設(shè)置Table 1 Setting of experimental superparameters
選取文獻(xiàn)[24]中的11 種模型與本文ResNet_BiLSTM+ATT_RA+BAG_ATT 模型進(jìn)行性能對(duì)比,其中,CNN、PCNN 和ResNet_BiLSTM 分別表示不同句子編碼方式,ATT_BL 表示基于句袋內(nèi)注意力,ATT_RA 表示基于關(guān)系感知的句袋內(nèi)注意力機(jī)制,BAG_ATT 表示基于句袋間注意力。在訓(xùn)練階段,用于計(jì)算注意力權(quán)重的關(guān)系查詢向量被固定為與每個(gè)句袋的遠(yuǎn)程監(jiān)督標(biāo)簽相關(guān)聯(lián)的嵌入向量[25-26]。在測(cè)試階段,所有關(guān)系查詢向量都被應(yīng)用于分別計(jì)算關(guān)系的后驗(yàn)概率,選擇概率高的結(jié)果作為分類結(jié)果,給出所有模型的AUC 值的平均值和標(biāo)準(zhǔn)差如表2所示。
表2 不同模型的AUC 值比較Table 2 Comparison of AUC values of different models
為進(jìn)行定量比較,還繪制了所有模型的PR 曲線圖如圖2~圖4 所示。由圖2~圖4 可以看出:
圖2 CNN 句子編碼的PR 曲線Fig.2 PR curves of CNN sentence coding
圖3 PCNN 句子編碼的PR 曲線Fig.3 PR curves of PCNN sentence coding
圖4 ResNet_BiLSTM 句子編碼的PR 曲線Fig.4 PR curves of ResNet_BiLSTM sentence coding
1)ResNet_BiLSTM 作為句子編碼器相比于CNN、PCNN 表現(xiàn)更好。
2)使 用ResNet_BiLSTM、CNN 或PCNN作為句子編碼器時(shí),ATT_RA 優(yōu)于ATT_BL,主要原因?yàn)锳TT_BL 在訓(xùn)練時(shí)推導(dǎo)出句袋表示時(shí)僅考慮目標(biāo)關(guān)系,而ATT_RA 以所有關(guān)系嵌入作為查詢,計(jì)算出句袋內(nèi)的注意力權(quán)重,提高了句袋表示的靈活性。
3)對(duì)于3 種句子編碼器和2 種句袋內(nèi)注意力機(jī)制,帶有句袋注意力機(jī)制的模型相比于其他模型具有更好的性能,這一結(jié)果驗(yàn)證了句袋間注意力機(jī)制用于遠(yuǎn)程監(jiān)督關(guān)系提取的有效性。
可見,將ResNet_BiLSTM 作為句子編碼器并與句袋內(nèi)和句袋間注意力機(jī)制相結(jié)合可獲得最佳AUC性能。
通過實(shí)驗(yàn)驗(yàn)證句袋內(nèi)注意力機(jī)制對(duì)模型性能的影響,隨機(jī)選擇實(shí)體對(duì)的1 句、2 句和所有句子進(jìn)行測(cè)試并構(gòu)造One、Two、All 這3 個(gè)測(cè)試集,實(shí)驗(yàn)結(jié)果如表3 所示。
表3 在3 種測(cè)試集上的模型P@N 比較Table 3 Comparison of P@N of models on three test sets %
由表3 可以看出,ResNet_BiLSTM+ATT_AL+BAG_ATT 具有較高的P@N值,無論采用ResNet_BiLSTM 還是BAG_ATT,ATT_RA 在所有實(shí)體對(duì)測(cè)試集上均優(yōu)于ATT_BL。由于當(dāng)一個(gè)句袋中只有一個(gè)句子時(shí),ATT_BL 和ATT_RA 的解碼程序是相同的,因此從ATT_BL 到ATT_RA 的改進(jìn)可歸因于ATT_RA 在訓(xùn)練階段以關(guān)系感知的方式計(jì)算句袋內(nèi)注意力權(quán)重。
將句袋中的句子數(shù)設(shè)置為5 進(jìn)行句袋間注意力計(jì)算,每個(gè)句袋首先使用BAG_ATT 模型來計(jì)算句袋間注意力機(jī)制的權(quán)重,然后計(jì)算訓(xùn)練集各部分句袋間注意力權(quán)重的平均值和標(biāo)準(zhǔn)差,如表4 所示。由表4 可以看出,訓(xùn)練句子數(shù)量較少的句袋通常被分配較低的句袋間注意力權(quán)重,且訓(xùn)練句子數(shù)量較少的實(shí)體對(duì)更可能有不正確的關(guān)系標(biāo)簽。
表4 不同句子數(shù)的句袋間注意力權(quán)重分布Table 4 Distribution of attention weight between inter-sentence bags with different number of sentences
本文提出基于ResNet_BiLSTM 與句袋內(nèi)和句袋間注意力機(jī)制的實(shí)體關(guān)系抽取模型。引入殘差連接采集句子特征信息,保留句子在前后傳遞過程中的特征信息。通過BiLSTM 進(jìn)行句子特征信息識(shí)別與訓(xùn)練,解決了反向特征依賴問題。使用句袋內(nèi)注意力機(jī)制,對(duì)正向?qū)嶓w與關(guān)系賦予更高權(quán)重,提高識(shí)別準(zhǔn)確性。采用句袋間注意力機(jī)制,緩解了在提取句子中的關(guān)系時(shí)的噪聲句袋問題。在NYT 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該模型能夠充分利用實(shí)體與關(guān)系特征,具有更好的關(guān)系抽取性能。下一步將使用實(shí)體關(guān)系與句子的分區(qū)過濾策略,并結(jié)合BERT 提取語義特征,進(jìn)一步提高關(guān)系抽取的準(zhǔn)確性和靈活性。