羅 欣,陳艷陽,耿昊天,許文波,張 民*
(1. 電子科技大學資源與環境學院 成都 611731;2. 電子科技大學長三角研究院 浙江 湖州 313001)
隨著認知智能技術的不斷發展,富含實體、概念、屬性、關系等復雜信息的知識圖譜已成為機器認識和理解文本大數據所依賴的核心體系。如何從地理文本大數據中快速準確地抽取地理文本的實體關系信息是構建地理領域知識圖譜的重點。有監督的方法需要大量且高質量的標注語料,但中文數據集較少,人工標注成本較高,而半監督和無監督的實體關系抽取方法效果較差,因此遠程監督(distant supervision, DS)已逐漸成為實體關系抽取的主要方法。文獻[1]首次將遠程監督理論用于實體關系抽取領域,但存在數據集標簽的噪聲問題。文獻[2]將實體間的關系表示為“實體—實體=關系”,利用分段卷積神經網絡(piecewise convolutional neural networks, PCNN)采集實體描述頁面特征來豐富實體表示,再在模型中加入注意力機制,通過計算句子與關系的相似度賦予句子權重。文獻[3]將生成預訓練變換器(generative pre-trained transformer,GPT)擴展到遠程監督領域,并結合自注意力機制對多實例進行處理,有效降低了顯式特征的提取和錯誤累積的風險,明顯改善了長尾關系的抽取效果。文獻[4]提出的交叉關系注意(cross-relation attention)機制,能夠注意到關系類型之間的相互作用且考慮了一個訓練實例包含多個實體對的特殊情況,并能減少知識庫中過時或未表示的信息帶來的噪聲。文獻[5]對實體類型標注錯誤的噪聲數據進行了優化,并提出使用聯合學習(joint learning)方法緩解了噪聲數據的影響。文獻[6]設計了同時具有詞級別和關系級別記憶網絡的神經網絡模型,詞級記憶網絡能夠捕捉上下文詞對目標詞的重要程度,并自動對句子的語義表示進行建模,關系級記憶網絡能夠捕捉關系之間的相關性,并結合多實例多標簽學習(multi-instance multi-label learning, MIML)最終有效抑制了標簽噪聲。文獻[7]將課程學習(curriculum learning)引入遠程監督關系抽取任務中,提出的模型通過協同訓練關系抽取器和導師網絡來提高模型的泛化能力。文獻[8]利用生成式對抗網絡學習句子級的生成器,將生成的正樣本視為負樣本來訓練判別器,直到判別器的判斷能力下降最大,再使用生成器將數據集中的負例分配到負樣本集中,從而得到噪聲更小的數據集。
實際中,標注的數據通常會存在大量噪聲,文獻[1]的方法沒有考慮噪聲問題,導致抽取效果不理想。而目前基于深度學習的方法大多從包(bag)級別進行關系分類,相當依賴包中句子的質量,并且不能處理句子級別的關系分類。本文提出了一個基于深度強化學習的框架來進行文本數據實體關系的抽取,能夠在提高分類效果的同時降低標簽噪聲。
針對存在噪聲的數據集,本文提出了基于深度強化學習的框架進行實體關系抽取,此框架包含關系抽取器與標簽學習器兩部分,如圖1 所示。

圖1 基于深度強化學習的關系抽取框架
在實體關系抽取方面,首先,構造了基于實體周圍詞文本實體注意力機制和依存句法分析的雙向長短期記憶網絡關系抽取器,該抽取器能夠對輸入句子的關系進行分類預測,通過實體注意力機制考慮了實體周圍詞語在關系抽取中的重要性,能改善編碼效果;其次,由于實體對的關系受實體類型的約束,因此該框架利用了實體類型嵌入模塊,以實體類型豐富句子編碼信息,從而幫助關系抽取器過濾錯誤關系;此外,該框架還利用了依存句法分析模塊句子結構,通過句子中各詞與其他詞語之間的語法相關性進行實體和關系的匹配度比較,幫助關系抽取器從句子中得到更多信息,進一步提高了關系抽取器的預測效果。
針對訓練樣本中錯誤標簽的影響,該框架還利用強化學習方法實現了標簽級別的降噪。首先,使用標簽學習器對關系抽取器預測的關系進行打分,將分數與DS 關系標簽結合作為強化學習的狀態,再根據一個策略網絡的結果采取下一步行動,即選擇DS 的標簽還是關系抽取器抽取的結果作為軟標簽;然后,關系抽取器根據軟標簽進行學習訓練,并提供一個獎勵給標簽學習器,為下一輪(episode)強化學習提供輸入狀態;最后,對關系抽取器與標簽學習器進行聯合訓練,使關系抽取器對軟標簽的預測更加可靠,從而提高關系抽取的性能。
本文方法的詞向量表示由詞嵌入和位置嵌入組合而成,使用Word2Vec 模型生成包含詞語語義信息的詞嵌入[9],而位置嵌入是用輸入詞語與實體的相對距離作為特征編碼而成的向量,用來表示輸入詞語相對于實體的位置信息。
關系抽取器的任務是獲取關系概率,為強化學習提供表示狀態的信息。關系抽取器的輸出與關系模式的語義相關。為了降低數據集噪聲,初步提高關系抽取的效果,本文設計的關系抽取器將句子粒度級別的數據劃分為訓練數據信息、實體類型信息和依存句法信息,通過引入實體注意力機制來進行實體關系判定,并通過依存句法分析模塊來增強實體與關系的交互性,從而能夠有效提高實體關系抽取的效果,具體結構如圖2 所示。

圖2 本文設計的實體關系抽取器
1.1.1 句子編碼器
利用結合實體周圍詞注意力機制的雙向長短期記憶網絡(bi-directional long short-term memory,BiLSTM)來學習句子表示[10],簡稱BiLSTM+attention,結構如圖3 所示。相較于傳統循環神經網絡(recurrent neural network, RNN),長短時記憶(long short-term memory, LSTM)可以處理較長句子中距離較遠的詞語之間的依賴信息,其通過3 個門結構來丟棄無用的前文信息,再加入當前輸入的部分信息,并最終整合到當前狀態中以產生輸出狀態。但是LSTM 只能從前到后對句子進行編碼,無法考慮下文信息,而BiLSTM 由前向網絡和后向網絡結合而成。

圖3 改進的BiLSTM 實體注意結構
對于包含n個詞語的句子,通過BiLSTM 得到的隱向量可以表示為:

對于句子中第i個詞的隱向量hi,可以通過前向隱向量和后向隱向量拼接得到。
圖3 中hi表示了句子中第i個詞語的高維語義信息,但是在實際應用中句子中的不同詞語對句子的語義而言具有不同程度的重要性。因此本模型通過計算詞語與實體之間的重要性程度構建詞注意力機制來充實詞語的語義信息,經過詞注意力層的句子可以表示為:

式中,αi表示詞注意力機制的權重,且詞語與實體的語義相關性通過一個簡單的神經網絡來計算,激活函數的計算公式為:

式中,Wa表示詞語重要性權重矩陣;和分別表示頭實體和尾實體;ba為偏置量,然后通過Softmax 函數計算得到權重αi:

最后,使用最大池化層捕獲句子中最關鍵的特征信息,句子的向量表示為:

1.1.2 實體類型信息
文本中不同類型的實體對所對應的關系一般也不同。文獻[11-12]也證明了實體類型信息對于關系抽取任務有著積極影響。為了得到實體類型信息的嵌入表示,將實體類型信息映射到一個k維向量空間中,若實體有多個類型,那么取對應類型的平均向量作為實體類型的嵌入表示。對于實體對(e1,e2),將兩者的類型嵌入連接起來,作為實體類型對關系的約束,計算方法如下:

1.1.3 依存句法樹
本文的關系抽取器還引入了基于依存樹的特征表示[13],但并不使用整個句子的依存樹結構,而是獲得句子中包含實體對的依存子樹,并將包含實體對的依存子樹編碼為局部特征向量,這樣可以減少噪聲并強化實體對之間的關系特征。包含實體對的依存子樹可以表示為如下形式:

式中,ti表示依存子樹上第i個節點的詞向量表示,這些詞向量連接起來組成最終的依存子樹表示。
結合上述三者,便得到最終的句子表示為:

由于基于遠程監督的實體關系抽取方法通常都將含有共同實體對的句子打包成一個包,利用多條正實例包進行訓練得到正確的實體關系。因此,為了克服同一實體對的句子信息不足和噪聲影響的問題,在包中獲得高質量的句子,本文采用了一個句子注意力機制來計算包中句子的注意力權重,再根據權重來判斷句子質量的高低。對于第i個句子,它的權重βi為:

式中,s表示句子向量;u和v表示兩個加權向量;⊙表示對逐個元素進行乘積,那么經過加權之后的包表示形式為:

基于式(10),便可通過Softmax 函數計算得到實體關系的概率分布:

式中,pj表示模型對j種關系的預測結果;W是由參數組成的矩陣;b表示偏置值。包的預測標簽計算方法為:

式中,n表示標簽的總體數量。而目標函數則表示為:

式中,表示潛在標簽的向量,本文采用最小化式(13)優化來關系抽取器,并使用小批量Adam 優化器來更新關系抽取器中的所有參數[14]。
本文采用的標簽學習器是基于強化學習中智能體思想構建的,它能夠通過一個策略網絡更正噪聲標簽,并產生軟標簽,其主要組成部分為:
1) 狀態
為了符合馬爾可夫決策過程[15],本文將包的當前信息和被糾正的標簽信息結合起來作為當前的狀態。將狀態表示為連續實值向量st,它編碼以下信息:① 從序列標注模型中獲得的當前句子的向量表示;② 已選句子集的表示,它是所有已選句子的向量的平均值;③ 當前集合包都包含的實體向量。
2) 動作
為了對噪聲標簽進行糾正,本文將動作設計成一個選擇標簽的二分類:根據當前時刻的狀態表示向量,選擇關系抽取器預測的標簽或語料庫DS 標簽中的一個,記為包的軟標簽。通過這種手段,就能得到經過標簽降噪的數據,用于關系抽取器的訓練,進而提高其關系預測的性能。
3) 策略
標簽學習器的動作at只有兩種選擇,因此定義at∈{0, 1},0 表示標簽學習器選擇DS 標簽,1 代表標簽學習器選擇預測標簽。本文依據概率分布函數 π(at|st;Θ)=σ(Wst+b)在狀態st時獲取at的值,其中Θ={W,b}是需要學習的參數集,W為訓練矩陣,b為偏置,σ(·)表示Sigmoid 函數。在訓練中,通過策略函數,標簽學習器能采取高概率的動作,且采取的動作具有隨機性,實現了對軟標簽的學習。
4) 獎勵
設計的獎勵是一個經典的延遲獎勵。在所有動作都完成之后,確定了軟標簽并將軟標簽作為正確標簽來更新關系抽取器,然后使用驗證集對更新后的關系抽取器進行驗證,并將結果反饋給標簽學習器以得到獎勵,獎勵的計算函數為:

式中,Val 表示驗證集;gi表示第i個包;yi表示gi的DS 關系;p(yi|gi)表示關系抽取器經過含有軟標簽的數據訓練之后預測的關系概率。根據在驗證集上的測試結果,這里使用平均對數似然量來估計關系抽取器的性能。由于關系抽取器會被軟標簽更新,標簽學習器選擇的動作能夠影響關系抽取器的性能,所以獎勵能夠反映標簽學習器的動作是否合理。
5) 目標函數
本文選擇基于目標函數的方法對標簽學習器的策略進行更迭,目標函數為:

式中,T表示含有噪聲標記的包的個數;R表示標簽學習器的獎勵;Θ 是標簽學習器的參數,本文使用式(16)迭代地更新參數:

在模型訓練時,獎勵的大小與其選擇的動作相關,當動作選擇的是正確的關系標簽時會獲得一個較大的獎勵,從而通過該方法提升抽取模型識別關系的性能。
本文提出的關系抽取方法需要對模型的兩個模塊進行預訓練。首先使用公開數據集或自建語料庫預訓練關系抽取器;其次使用上一步得到的模型參數,通過選擇遠程監督標簽或預測標簽的方法預訓練標簽學習器;最后將關系抽取器和標簽學習器進行聯合訓練。具體過程可用偽碼表示如下:
輸入:訓練集Tra,驗證集Val,關系抽取器的預訓練參數集Φ0,標簽學習器的預訓練參數集Θ0;
輸出:關系抽取器參數集Φ,標簽學習器參數集Θ;

算法首先用關系抽取器的預測標簽或遠程監督標簽來表示強化學習的狀態,并獲取錯誤標記的訓練集,其次標簽學習器通過策略來捕獲動作,獲取軟標簽集合,再次使用軟標簽來更新關系抽取器的參數集,通過驗證集上的驗證結果,使用式(18)獲得期望獎勵,最后更新標簽學習器的參數。參數集Φ 和Θ 的更新公式由加權因子λ 和上一輪的參數表示,計算方法為:

本文實驗所采用的服務器配置為:Intel Xeon E51620 v4 處理器(3.5 GHz 主頻)、8 GB 內存,GPU為NVIDIA Quadro P4000,Windows10 64 位操作系統,編程環境為PyCharm,代碼基于Python3.6編寫。文本研究側重于解決地理領域文本的關系抽取問題,所以實驗的數據集分為兩部分:1) 通過非結構化文本與某百科的知識庫自動標注、對齊獲得的地理領域文本數據集,共有21 萬條標注預料和10 種關系,其中訓練集有13 萬個句子,驗證集有4 萬個句子,測試集有4 萬個句子。2) 來自多語種公開數據集ACE2005 和中文公開數據集Chinese-Literature-NER-RE-Dataset,這兩個數據集通過對齊百度百科知識庫生成,原始訓練集按照3:1 的比例劃分為一個訓練集和測試集。其中從ACE2005數據集中選取了關系類型數據量最大的10 種標簽組成的一個子集ACE2005-small,Chinese-Literature-NER-RE-Dataset 則選取了它所有9 種關系類型和其他組成10 種關系類型。
使用深度強化學習進行文本實體關系抽取之前,需要對模型的參數進行設置,主要包括句子編碼器、標簽學習器的預訓練參數以及聯合訓練的參數等,主要參數設置如表1 所示。

表1 模型參數設置
關系抽取算法主要采用精度(precision)、召回率(recall)和前N個樣本的精度(P@N)進行評估,其中精度為:

召回率為:

式中,Tr表示抽取結果中正確的關系數量;Ta表示抽取的結果總數;Tt表示測試集中的關系總數。
3.3.1 改進策略的性能驗證
本文驗證了幾種改進策略對提高模型實體關系抽取的效果,使用的實驗數據集為公開的ACE2005-small 數據集。實驗結果使用P-R 曲線圖來展示加入實體關系類型模塊和依存句法樹模塊對模型性能產生的影響,如圖4 所示,其中ATT 表示注意力機制(attention),Etype表示實體關系類型模塊,DSP(dependency syntactic parsing)表示依存句法樹模塊。從圖4a 中可以看出,各改進模塊在關系抽取性能提高方面都發揮了一定的作用。在加入實體對類型約束模塊后,改進模型的精度在召回率為0.025 左右時幾乎達到了所有算法中的最大值,但之后隨著召回率的提升精度下降較快,在加入實體對類型模塊后改進模型的精度與原始模型相比提升較大。進一步加入依存句法樹模塊之后,隨著召回率的提升,模型精度的下降速度得到了有效緩解,且在召回率大于0.1 之后,模型精度均高于僅加入實體對類型的模型。最后加入強化學習模塊之后,改進模型在召回率大于0.05 之后其精度在所有算法中仍為最優,并且與不加入強化學習的模型相比提升較大,這就表明加入強化學習進行標簽降噪之后能夠進一步提升模型關系抽取的效果。
3.3.2 不同關系抽取方法的比較
本文還在自建測試集和公開數據集上比較了所提算法與其他基準模型在處理專業領域文本方面的性能。傳統方法的基準模型選擇了遠程監督的基礎Mintz 模型[1]和基于特征的多實例學習方法(MIML)。其中Mintz 模型是出的遠程監督經典模型,MIML 模型是傳統方法中解決Mintz 問題的最佳模型[6]。在深度學習的方法中,將BiLSTM 和PCNN 方法與注意力機制(ATT)[16-17]以及PCNN 與強化學習(reinforcement learning, RL)結合使用[18],并與本文提出方法進行對比。
從圖4b 的自建數據集測試結果可以看出,傳統方法Mintz 和MIML 的效果遠低于基于深度學習的方法,并且在召回率為0.20 左右時精度就下降到0。而BiLSTM+ATT 模型在召回率為0.025 左右時精度優于其他3 種方法,但隨著召回率的增大精度下降速度較快。在自建數據集上PCNN+ATT算法達到了較高的精度,但隨著召回率的增加,其精度優勢不太明顯。PCNN+RL 模型在召回率大于0.10 之后,性能優于其他幾種算法,這也表明強化學習能有效提升深度學習關系抽取模型的性能。本文在其基礎上進行優化,提出的方法在召回率為0.01 時精度明顯超過了PCNN+RL模型和其他幾種方法,并且在召回率大于0.07 之后,其精度基本都高于其他方法。因此,本文所提算法的P-R 曲線面積也大于其他幾種方法,從而驗證了本文所提關系抽取模型的優越性。
從圖4c 的Chinese-Literature-NER-RE-Dataset中未公開數據集的P-R 曲線來看,Mintz 和MIML與深度學習的幾種方法相比效果仍較差。BiLSTM+ATT 的整體效果較差,它在召回率低于0.05 時精度下降速度過快,但是在召回率為0.2 之后與其他深度學習模型的性能相差不大。PCNN+ATT 雖然在召回率大于0.2 之后的性能比BiLSTM+ATT 優秀,精度優勢并不明顯。PCNN+RL 在召回率為0.05時精度達到最大值,但是當召回率大于0.20,它的精度相比其他深度學習模型就顯得較低。本文提出的方法在低召回率時精度小于PCNN+RL,這可能是由于本文采用的是專業領域的文本數據對實體關系抽取模型進行訓練,因此通用數據集的其他領域的標注數據都會被模型視作噪聲標簽,從而導致錯誤發生,但是當召回率大于0.15 之后本文所提方法的精度一直高于其他4 個模型,而且本文所提方法的P-R 曲線面積也大于其他幾個模型,這就證明了本文算法的專業領域的泛化性也較好。

圖4 模型對比實驗結果
為了進一步檢驗本文提出方法的性能,本文分別采用自建數據集和中文公開數據集里超過一個句子的包中前N個結果的精度(P@N)來判斷抽取性能。表2 和表3 分別給出了幾種關系抽取方法采用自建數據集和公共數據集的P@100,P@200、P@300 值和平均值。從表2 和表3 的結果中都可以看出,傳統方法Mintz 和基于特征工程的MIML方法的P@N值與后4 種基于深度神經網絡的方法差距仍較大,且精度也普遍較低。比較4 種基于深度神經網絡的方法,在自建數據集上,本文模型比PCNN+ATT 等深度學習方法的平均精度提高了5%左右,而與深度強化學習的PCNN+RL 模型相比,本文方法的P@N也均提高了2%左右;在公共數據集上,本文模型比深度學習方法中的BiLSTM+ATT 模型的平均精度提高了7%左右,而與PCNN+RL 模型和深度強化學習的PCNN+RL 模型相比,本文方法的P@N也均提高了3%左右。此外,表2的結果普遍要略高于表3 的結果,主要可能是因為自建數據集中存在一對實體間具有多種關系的情況,而公共數據集中基本不存在此類情況。

表2 不同方法在自建數據集上的P@N 結果

表3 不同方法在中文公開數據集的P@N 結果
結合P-R 曲線與P@N結果分析,本文模型在不同程度上都有最優結果,證明了本文的改進策略對關系抽取都有促進作用,表明了本文模型的優越性。
本文提出了一個深度強化學習框架來進行文本實體關系抽取。首先,本文對BiLSTM 模型進行了改進,主要通過添加實體類型模塊與依存句法分析樹對該模型的深度學習部分進行改進,構建了關系抽取器;在標簽學習器中,本文又結合了強化學習來糾正遠程監督中的錯誤標簽,從而形成了一種基于深度強化學習的關系抽取模型。在公開數據集以及自建數據集上進行的實驗結果表明了本文提出的改進方法在通用領域與某些專業領域較現有主流方法均能表現出更好的性能。
后續的研究工作可以在加入本文改進模塊的基礎上從網絡層面對抽取模型進行改進,并且嘗試在進行詞向量編碼的時候引入字向量來觀察是否能夠提升關系抽取的性能。此外,本文還引入了依存句法分析模塊,雖然這一改進促進了抽取模型性能的提升,但是它在句子非常復雜的情況下的分析效果會大大下降,可以參考多層強化學習來解決該問題。