詹 飛,朱艷輝,梁文桐,冀相冰
(1.湖南工業大學 計算機學院,湖南 株洲 412007;2.湖南工業大學 智能信息感知及處理技術湖南省重點實驗室,湖南 株洲 412007)
近年來,大規模中文通用知識圖譜的發展給國內人工智能領域的發展帶來了新的機遇。實體鏈接作為命名實體識別任務的后續任務,是知識圖譜構建和補全過程中的關鍵一環。實體鏈接任務的目標是將文本中識別的實體指稱和該實體指稱在給定知識庫中對應的實體相關聯,通常可以將實體鏈接分解為兩個串行的子任務:候選實體生成和候選實體排序。候選實體生成階段為當前實體指稱過濾掉知識庫中的大部分不相關實體,得到候選實體集。候選實體集中通常包含多于一個候選實體,在候選實體排序階段對候選實體集中的實體和當前實體指稱進行相似度打分并排序,得分最高的實體即為當前實體指稱的目標鏈接實體。實體鏈接任務的關鍵挑戰即為如何有效利用實體指稱和候選實體的相關信息來對二者進行相似度打分。
現有實體鏈接工作的重點集中在候選實體排序階段。隨著深度學習的發展,深度學習技術被廣泛地應用到自然語言處理領域的多項任務中,并取得了很好的效果。針對實體鏈接任務,He Z.Y.等[1]提出一種基于深度神經網絡(deep neural networks,DNN)的方法來進行實體鏈接,通過深度神經網絡自主學習實體和上下文的特征表示,端到端地進行實體鏈接,避免了人工設計特征,當時在兩個公開實體鏈接數據集上取得了最先進的性能。M.Francis-Landau 等[2]使用卷積神經網絡(convolutional neural networks,CNN)來捕獲實體指稱上下文和目標實體上下文的語義信息,并利用多個粒度的卷積來比較兩者之間的語義相似度。T.H.Nguyen 等[3]提出結合循環神經網絡和卷積神經網絡的聯合模型來同時獲取實體指稱上下文局部特征和全局主題特征,用卷積神經網絡獲取局部相似性,用循環神經網絡獲取全局一致性,該模型在多個數據集上被證明是有效的。Liu C.等[4]提出一種新型的注意力機制來獲取給定實體指稱周圍重要的文本,并且結合一種前向-后向算法獲取文本主題信息來提高實體鏈接的準確率。Hu S.Z.等[5]提出具有雙重注意力機制的對稱Bi-LSTM(bidirectional long short-term memory)模型,該模型能有效利用結構信息和注意力機制更全面地提取實體特征,并結合上下文特征和結構特征作為實體的特征表示。
預訓練語言模型出現之前,使用深度學習方法解決自然語言處理問題的研究思路,大多是針對特定的目標任務來設計對應的模型。BERT(bidirectional encoder representations from transformers)出現之前,已經有了一些專家學者對預訓練語言模型進行了相關研究工作,如ULMFiT(universal language model fine-tuning)[6]和OpenAI GPT[7]模型,但由于單向語言模型的限制,它們不能對上下文語義信息進行充分利用。J.Devlin 等[8]對現有預訓練語言模型[7]進行改進,提出新的預訓練語言模型BERT,目前,該模型在許多下游任務上取得了較優效果。本研究將BERT 引入實體鏈接任務中,將預訓練的BERT 語言模型作為實體鏈接模型的一部分。
關鍵詞能夠反映出文本主題信息,強化文本相似度比較的效果。將關鍵詞提取技術加入到實體鏈接過程中,輔助進行實體指稱和候選實體相關信息的相似度比較,能夠增強文本相似度度量的準確性,從而優化模型效果。TextRank關鍵詞提取算法將關鍵詞提取問題轉化到圖模型中進行處理,能夠考慮到相鄰詞的語義關系,提取出的關鍵詞能夠更好地反映文本的主題信息。因此,本文將TextRank關鍵詞提取算法融合到實體鏈接過程中。
基于BERT模型的實體鏈接方法在NLP(natural language processing)任務上的優秀表現和關鍵詞提取對文本相似度比較的強化效果,本文提出一種基于BERT和TextRank關鍵詞提取的實體鏈接模型。該模型的特點是將BERT預訓練語言模型引入實體鏈接任務,通過BERT 來獲取句子的向量表示,從而進行實體指稱和候選實體相關信息的關聯度分析。同時,使用TextRank關鍵詞提取技術來獲得目標實體描述文本的關鍵詞,作為目標實體綜合描述的一部分,輸入到BERT中,這能夠增強目標實體綜合描述的主題信息,從而優化模型的效果。
本研究提出基于BERT和TextRank關鍵詞提取的深度神經網絡模型進行實體鏈接,模型整體結構如圖1所示,主要包括TextRank關鍵詞提取部分、BERT層和輸出層。

圖1 基于BERT和TextRank關鍵詞提取的實體鏈接網絡模型Fig.1 Entity linking model based on BERT and TextRank keyword extraction
將實體指稱上下文和候選目標實體的綜合描述用[SEP]分隔符隔開作為BERT的輸入,實體指稱上下文為當前實體指稱所在的句子,候選目標實體的綜合描述由關鍵詞、實體類型和實體描述信息組成。關鍵詞由實體描述信息通過TextRank關鍵詞提取得到,實體類型和實體描述信息從目標知識庫中獲取。然后取BERT輸出中CLS位置對應的向量作為下一個全連接層的輸入,使用sigmoid函數進行激活,把文本語義相似性問題抽象為二分類問題。
BERT模型結構如圖2所示。

圖2 BERT模型結構圖Fig.2 BERT model structure illustration
圖2所示模型借鑒了A.Vaswani 等[9]提出的“多層雙向Transformer 編碼器”思想,以雙向Transformer的Encoder 作為模型的基本組成單元。
BERT模型雖然和之前的預訓練語言模型OpenAI GPT 一樣都使用了Transformer,但不同的是OpenAI GPT模型使用的是單向的注意力機制,BERT模型則針對這一不足進行了改進,使用雙向Transformer的Encoder 作為基本組成單元,BERT的這種結構能夠聯合所有層中的左右兩個方向的上下文信息進行訓練。
BERT模型使用的Transformer 基于多頭注意力機制(multi-head attention)。多頭注意力機制的結構如圖3所示。
由圖3的結構形式可知,多頭注意力機制可以幫助模型捕獲更多層面的語義特征,將各個注意力頭單獨進行計算,然后將其結果進行拼接,得到最終結果。

式(1)~(2)中:Q,K,V為輸入量;
W為變換參數。
對多頭注意力的輸入量Q,K,V分別進行線性變換,每次線性變換的參數W取值不同,分別為WiQ,WiK和WiV,線性變換得到的結果輸入Scaled Dot-Product Attention中得到headi,重復做h次;然后將h次Scaled Dot-Product Attention 得到的結果head1,head2,…,headh進行拼接,并對拼接的結果進行線性變換,得到多頭注意力的最終結果,線性變換的參數為WO。
受Y.Bengio 等[10]研究結論的啟發,BERT的訓練方式不同于之前的預訓練語言模型,而是通過大量未標注的百科文本語料進行訓練,得到預訓練語言模型,然后根據具體需要,針對特定目標任務對BERT模型進行微調。新的預訓練方法也是BERT表現優于之前的預訓練語言模型的重要因素,它不再采用傳統的單向語言模型來進行預訓練,而是提出兩個新任務來進行預訓練,即通過MLM(masked language model)和“下一句預測”(next sentence prediction)兩個新的任務分別捕捉詞語和句子級別的特征。
MLM 用來克服之前的預訓練語言模型的單向性所具有的局限,對于輸入序列中15%的數據,隨機地將這些輸入序列中的一部分單詞用[mask]標記進行遮蓋,然后以預測這些被遮蓋的單詞為目標來對模型進行訓練,這樣能夠同時在左右兩個方向上融合上下文信息。通過MLM 任務的訓練,模型能夠同時對左右兩側的語義特征進行提取,通過聯合所有層中的左右兩個方向的上下文信息進行訓練,得到深度雙向Transformer 轉換。但是用于遮蔽單詞的特殊標記[mask]在實際的NLP 任務中并不存在,用從語料中隨機獲取的詞和預測位置的原詞按照一定比例對需要[mask]遮蔽的詞進行替換,從而可以保證訓練過程和實際任務保持一致。用特殊標記“[mask]”來替換80%的目標單詞,用從語料中隨機獲取的一個詞來替換10%的目標單詞,剩余10%的目標單詞不進行任何操作。
對于“下一句預測”任務捕捉詞語和句子級別的特征,是為了讓模型能夠更好地捕捉句子級別的語義特征。每條訓練數據為連續的兩個句子M和N,概率為50%的句子N是原文中的正確句子,概率為50%的句子N會被替換為語料中的一條隨機語句來作為負樣本進行訓練,然后再做二分類來判斷輸入的句子N是正確的還是隨機產生的。
使用TextRank 算法進行關鍵詞提取的思路是將關鍵詞提取問題轉化到圖模型中進行處理,這樣能夠考慮到相鄰詞的語義關系。使用TextRank 算法提取得到的關鍵詞能夠增強句子的主題信息,從而優化文本相似度度量的效果。
TextRank 算法是以PageRank 算法為藍本,針對自然語言處理的特點進行修改而形成的。使用TextRank 算法進行關鍵詞提取的思路是將關鍵詞提取問題轉化到圖模型中進行處理,這樣能夠考慮到相鄰詞語的語義關系。并根據各個詞之間的相互聯系判斷其對于文本整體重要性的高低,得到各個詞的重要性得分,然后根據其得分從高到低進行排序,設定閾值H,重要性得分較高的H個詞即可視為提取出來的文本關鍵詞。將文本看成是句子集合T={S1,S2,…,Sn},其中的每個句子Si∈T,又可以看作詞的集合Si={N1,N2,…,Nm},構建圖模型G=(V,E),其中V=S1∪S2∪…∪Sn,當兩個詞共同出現在一個句子中時,對應的節點有邊,否則無邊。詞的重要性得分計算方法如下:

式中:In(Ni)是指向節點i的節點集合;
Out(Nj)是節點j指向的節點組成的集合;
d為阻尼系數;根據實際情況對阻尼系數進行賦值,通常取0.85。
在使用TextRank 進行關鍵詞提取時,以詞為節點,以共現關系建立節點之間的鏈接來進行圖模型的構建。這里的圖模型與PageRank模型不同的是,PageRank 構建的是有向圖,而TextRank 構建的圖是無向圖。首先對圖中的每個節點指定任意初始值,然后進行迭代訓練直至收斂,這樣就能夠計算出各節點的最終權重。
本研究采用CCKS2019(2019 全國知識圖譜與語義計算大會)任務二提供的訓練語料和知識庫[11-12]。訓練語料中每條數據包含一條文本和該文本中包含的實體指稱,以及各個實體指稱在給定知識庫中對應的目標實體。知識庫中包含每個實體的別名、實體類別和實體描述信息。本研究僅評價數據集中的非“NIL”型實體指稱,即在目標知識庫中存在鏈接實體的實體指稱。
訓練語料由訓練集和驗證集組成,其中訓練集包括9萬條短文本標注數據,驗證集包括1萬條短文本標注數據,數據通過百度眾包標注生成。標注數據集主要來自于真實的互聯網網頁標題數據,這些標題數據來源于用戶檢索Query 對應的有展現及點擊的網頁,短文本平均長度為21.73個中文字符,覆蓋了不同領域的實體,如人物、電影、電視、小說、軟件、組織機構、事件等。
實體鏈接評價指標選用精確率P、召回率R、F值(F-score),具體說明如下:
給定輸入文本集Q,對于Q中每條輸入文本q,此輸入q中有N個實體指稱即,Mq={m1,m2,m3,…},每個實體指稱鏈接到知識庫的實體編號為Eq={e1,e2,e3,…},實體鏈接系統輸出的鏈接結果為Eq′={e1′,e2′,e3′,…},則實體鏈接的準確率P,召回率R和F值定義如下:

本研究中的軟硬件實驗環境如下:操作系統為Ubuntu16.04,GPU 顯 卡為NVIDIA RTX 2080Ti(11 GB),python版本為3.6,tensorflow版本為1.12.0,內存為16 GB,硬盤容量為1 TB。
本研究所使用的BERT為包含12層的Transformer的BERTBASE,學習率為1e-5,最大序列長度為512,訓練batch_size為4。
為了驗證本研究中所提出的基于BERT和TextRank關鍵詞提取的實體鏈接方法的有效性,本研究復現了經典的句子語義建模方法,如TextRNN和TextRNN 方法,用TextRNN[13]和TextRCNN[14]進行實體鏈接,與本文中的BERT-TextRank模型類似,在這兩個模型中都將實體鏈接中的文本語義相似性問題抽象為二分類問題進行處理。分別將TextRNN和TextRCNN模型與TextRank關鍵詞提取算法相結合,然后進行對比實驗。
3.5.1 關鍵詞個數K的取值實驗
分 別 使 用TextRNN-TextRank、TextRCNNTextRank和BERT-TextRank 3 組模型進行實體鏈接實驗,TextRNN-TextRank表示將TextRNN模型和TextRank關鍵詞提取算法進行結合,其他兩個模型名稱含義與其類似。K值表示TextRank 算法提取的關鍵詞個數,以步長為1,在區間[0,6]內對參數K做取值實驗,K值為0時表示不進行關鍵詞提取。隨著K值的取值變化,上述3個模型的實體鏈接效果如表1所示。
各模型的TextRank關鍵詞個數K調節實驗結果如圖4所示。
分析對比圖4a、b、c的實驗結果表明,結合TextRank關鍵詞提取算法后,3個模型的實體鏈接效果都有所提高,且本文提出的BERT-TextRank 方法的實驗效果優于其他兩個模型實驗結果。TextRNNTextRank和BERT-TextRank模型在關鍵詞個數K=3時F值達到最大,而TextRCNN-TextRank模型在關鍵詞個數K=5時F值達到最大值。

圖4 關鍵詞個數K 取值實驗結果Fig.4 Experimental results corresponding with values of keyword K
當在F值達到峰值后繼續增加關鍵詞個數會導致主題信息比較分散,從而導致F值有所降低。這說明利用TextRank模型提取關鍵詞,從而增強知識庫中實體描述文本的主題信息,對于實體鏈接是有效的,但是不同模型對于關鍵詞個數的敏感性不同,模型F值取得峰值時對應關鍵詞個數K也并不完全相同。因此,接下來關鍵詞個數K分別選取各個模型的最佳值進行對比實驗,即K值分別選取3,5,3。
3.5.2 相似度閾值Y取值實驗
分析實驗結果發現,存在一部分實體指稱在目標知識庫中對應的候選實體集合不為空,但是候選實體集合中不存在正確的目標實體,即知識庫中沒有該實體指稱對應的實體,導致錯誤鏈接。
模型的輸出層為全連接層,使用sigmoid函數進行激活,把文本語義相似性問題抽象為二分類問題進行處理。將模型輸出值記為y,y即為實體指稱鏈接到當前目標實體的概率,也是實體指稱上下文和當前目標實體綜合描述信息的相似度得分。設定相似度閾值Y,對其定義如下:

當候選實體上下文與目標實體特征描述的相似度得分y大于閾值Y時,將實體指稱鏈接到當前實體;當y小于閾值Y時,即認為知識庫中不存在此實體指稱的目標鏈接實體,將其鏈接目標標記為“NIL”。
由上述實驗確定TextRNN-TextRank模型的參數K=3,TextRCNN-TextRank模型的參數K=5,BERTTextRank模型的參數K=3后,對閾值Y進行取值實驗,實驗區間設置為[0,0.5],以步長為0.1 進行Y取值實驗,其實驗結果如表2所示。

表2 閾值Y 取值實驗結果Table2 Threshold Y experiments results
各模型的閾值Y調節實驗結果如圖5所示。
分析對比圖5a、b、c的實驗結果表明,3 組模型中的P值均隨著Y值的增大呈上升的變化趨勢,而R值均隨著Y值的增大呈下降的變化趨勢,但是TextRNN-TextRank模型和TextRCNN-TextRank模型的P值增加幅度不夠大,導致其F值呈單調下降趨勢,BERT-TextRank模型的F值隨著閾值Y的增大先呈現出上升的變化趨勢,在Y取0.2時其F值達到最大值,然后呈下降趨勢。證明隨著閾值Y的增大,正確鏈接應為“NIL”的實體指稱被更多的識別出來,實體鏈接準確率提高。但是一部分正確鏈接為非“NIL”的實體指稱因為相似度得分相對較低,在閾值Y增大的過程中被鏈接為“NIL”,從而導致實體鏈接召回率逐漸降低。在TextRNN-TextRank模型和TextRCNN-TextRank模型中,P值增大幅度相對較小,而其R值也逐漸減小,從而導致其F值呈單調下降的變化趨勢。因此TextRNN-TextRank模型和TextRCNN-TextRank模型的閾值Y應選擇0,即不設定閾值,但是對于本研究提出的BERT-TextRank方法,根據實驗結果選定閾值Y為0.2,能夠提升模型的實體鏈接效果。


圖5 閾值Y 取值實驗結果Fig.5 Experimental results of threshold Y
3.5.3 不同模型對比實驗
TextRNN、TextRCNN和BERT 三種模型結合關鍵詞提取方法和設定相似度閾值前后對比實驗如表3所示。

表3 3個模型結合關鍵詞提取和閾值控制前后的實驗結果Table3 Experimental results before and after keyword extraction with three models under threshold control
對比分析表3的實驗數據表明,3種模型結合TextRank關鍵詞提取算法和選定相似度閾值Y后的F值均比結合之前有所提升,BERT-TextRank模型相比TextRNN-TextRank模型和TextRCNN-TextRank模型的P、R、F值也有較大提升,有效證明了本研究構建的基于BERT預訓練語言表征模型和TextRank關鍵詞提取的實體鏈接模型相比較于其他模型的有效性。
本研究提出了一種基于BERT和TextRank關鍵詞提取的實體鏈接方法。該方法可以分為TextRank關鍵詞提取和BERT 句子相似度比較兩部分。TextRank關鍵詞提取部分用來提取知識庫中實體描述文本的關鍵詞來增強文本主題信息,強化文本相似度比較的效果。BERT 句子相似度比較部分將實體指稱的上下文和候選實體的特征描述進行相似度比較,候選實體的特征描述由關鍵詞、實體類型和實體描述文本組成,關鍵詞即為TextRank 提取得到的結果。實驗結果證明了本文所提方法的有效性,說明加入主題信息對于文本相似性的度量是有效果的。未來計劃借鑒Liu Y.等[15]提出的結合詞嵌入和主題模型的思想,結合主題模型和BERT模型,將文本主題信息融合到句子向量表示中來進行文本相似性度量和實體鏈接。