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