王章輝 呂亞茹 張涵婷
(遼寧大學信息學院 沈陽 110036)
網(wǎng)絡(luò)中的數(shù)據(jù)通常都是以自然語言的形式存在的,而自然語言存在較多的一詞多義或多詞一義的現(xiàn)象。因此,計算機是不能直接理解和處理這些非結(jié)構(gòu)化文本信息的。我們利用實體鏈接技術(shù)將自然語言中的提及和知識圖譜中存儲的實體相關(guān)聯(lián),在進行自然語言處理的時候就可以利用知識圖譜中的結(jié)構(gòu)化信息,使計算機更好地理解文本中的信息。
實體消歧任務(wù)是實體鏈接中最為重要的一個階段。因為實體識別后的結(jié)果很難直接加入到知識圖譜當中。必須要對實體識別的結(jié)果進行消歧,才能找到文檔中實體指稱在知識圖譜中所對應(yīng)的實體。本文對實體消歧技術(shù)進行研究,提出一種文檔級的實體消歧技術(shù)。
本文的主要貢獻如下:
1)提出一種文檔級實體消歧技術(shù),在局部消歧的基礎(chǔ)上,增加了文檔中實體之間的關(guān)聯(lián)信息。
2)局部消歧采用BiLSTM+Attention模型提取文本中實體指稱的上下文特征向量,利用TransE[1]模型來表示知識圖譜中候選實體的特征向量,然后利用相似性函數(shù)計算實體指稱和候選實體的之間的相似性得分作為候選實體的局部消歧得分。
3)提出一種關(guān)聯(lián)圖的構(gòu)造方法,將候選實體作為節(jié)點,利用知識圖譜中實體之間的路徑信息計算節(jié)點之間的關(guān)聯(lián)度。
4)利用文檔中的所有實體指稱之間的關(guān)聯(lián)信息和候選實體的局部消歧得分,采用基于關(guān)聯(lián)圖和PageRank算法[2]的全局消歧模型進行對文檔中的所有實體指稱協(xié)同消歧。
5)使用不同的數(shù)據(jù)集,通過局部消歧和全局消歧兩種方法進行對比試驗和消融實驗,實驗結(jié)果表明本文的方法具有較好的消歧效果。
實體消歧技術(shù)一般分為局部消歧和全局消歧兩種,局部消歧算法是對文檔中的每個實體單獨進行消歧,而全局消歧算法是對文檔中所有的實體指稱進行協(xié)同消歧。
局部消歧技術(shù)通過對文本中實體指稱的特征進行提取來進行實體消歧,關(guān)鍵是選取合適的模型對實體指稱的信息進行表示。從不同粒度來表示實體比較復(fù)雜,可以采用基于深度學習的方法自動學習實體以及實體指稱項的分布式表示。Francis-Landau等[3]分別利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)學習文本的表示,根據(jù)余弦相似度對實體指稱的每一個候選實體進行局部評分。Sun等[4]利用卷積神經(jīng)網(wǎng)絡(luò)來表示上下文,使用神經(jīng)張量網(wǎng)絡(luò)對實體指稱上下文的語義進行建模。通常實體指稱的上下文信息比較多,有些詞和實體指稱的關(guān)聯(lián)性不大,這樣在訓練上下文的表示時會產(chǎn)生噪音,影響消歧效果。有學者提出將注意力機制與深度神經(jīng)網(wǎng)絡(luò)結(jié)合來訓練上下文的語義特征表示。Wei等[5]提出一種基于注意力的深度神經(jīng)網(wǎng)絡(luò)(DNN)的中文實體鏈接系統(tǒng)。局部消歧技術(shù)每次只處理文檔中單個實體指稱,忽略了文檔中所有的實體指稱所對應(yīng)的目標實體之間所存在的聯(lián)系。而這些信息對于實體消歧任務(wù)非常重要。
全局實體消歧認為一篇文檔中的實體指稱所對應(yīng)的實體是有關(guān)聯(lián)的,利用實體之間的關(guān)聯(lián)信息來對所有實體進行全局協(xié)同實體消歧。Yamada等[6]提出了一種基于單詞和實體的上下文嵌入的全局實體消歧模型。該模型基于BERT,為輸入文本中的單詞和實體生成上下文嵌入。通常全局消歧方法使用基于圖的方法,利用候選實體之間的關(guān)系構(gòu)建圖,對構(gòu)建的圖進行一些運算,從中選出最佳匹配實體。深度學習方法發(fā)展迅速,有學者利用深度神經(jīng)網(wǎng)絡(luò)來學習圖中的信息,來實現(xiàn)實體消歧。Hu等[7]提出一種充分利用全局語義信息的端到端圖神經(jīng)實體消歧模型GNED。
基于圖的全局實體消歧方法進行具有較高的準確率,與局部消歧技術(shù)相結(jié)合進行實體消歧將會取得更好的消歧效果。本文提出一種文檔級的實體消歧技術(shù),首先對單個實體指稱進行局部消歧,然后利用文檔中的所有實體指稱之間的關(guān)聯(lián)信息和候選實體的局部消歧得分進行全局消歧。
深度神經(jīng)網(wǎng)絡(luò)可以自動地學習潛在的句子語義特征,因此本文選擇基于深度學習的方法進行特征提取信息。BiLSTM由正向LSTM和反向LSTM兩個模塊組成,可以學習到句子的雙向信息,能夠更好地捕捉句子的雙向語義依賴。Attention模型在處理序列問題時,可以規(guī)定注意力范圍,防止處理長序列文本時丟失掉一些重要的信息。
BiLSTM+Attention模型如圖1所示。
圖1 BiLSTM+Attention模型圖
模型由五部分組成:
輸入層:輸入實體指稱上下文信息{w1,w2,…,wn};實體指稱的局部上下文為一個以實體指稱為中心的上下文窗口[8]。根據(jù)經(jīng)驗[9],本文將待消歧指稱上下文窗口的設(shè)置為對稱窗口,left=right=8。
嵌入層:將實體指稱上下文中的每一個單詞w用一個低維向量x表示;單詞嵌入向量包括詞嵌入向量和位置嵌入[10]向量。
BiLSTM層:利用BiLSTM[11]網(wǎng)絡(luò)獲取實體指稱上下文特征H=[h1,h2,…,hn];
Attention層:本文在BiLSTM層之后使用Attention[12]機制,為實體指稱上下文中每個單詞的特征賦予不同的權(quán)重,產(chǎn)生一個權(quán)值向量α,將實體指稱上下文中每個單詞的特征與對應(yīng)的權(quán)值相乘,合并為實體指稱的句子級特征向量;
輸出層:輸出實體指稱的句子級特征向量Om。
本文提出的基于BiLSTM+Attention的局部消歧模型如圖2所示。首先在實體指稱上下文特征表示部分,首先將實體上下文信息輸入到BiLSTM+Attention模型,采用BiLSTM+Attention模型得到待消歧實體指稱上下文的特征向量;其次在候選實體特征表示部分,利用知識圖譜中實體之間的結(jié)構(gòu)約束來得到實體的特征向量。采用TransE模型訓練得到實體嵌入和關(guān)系嵌入,將實體嵌入作為候選實體的特征向量;最后使用Cosine函數(shù)對實體指稱上下文的特征向量和候選實體的特征向量進行相似性計算得到候選實體的局部消歧分數(shù)。
圖2 基于BiLSTM+Attention的局部消歧模型
只考慮局部上下文,會存在信息較少或者出現(xiàn)噪音等問題,可能導致實體消歧的效果較差。因此在局部消歧的基礎(chǔ)上,利用同一篇文檔中所有實體指稱所對應(yīng)的實體之間的關(guān)聯(lián)信息,對文檔中所有實體指稱進行全局協(xié)同消歧。
文檔中的實體指稱具有以下兩種特性:如果一個候選實體和其他多個實體指稱的候選實體關(guān)聯(lián)程度越緊密,則說明這個實體和文檔中的實體指稱匹配的概率越大;局部消歧得分越高的實體,和實體指稱匹配的概率就越大,因此,在知識圖譜中,與這個實體相關(guān)聯(lián)的其他實體指稱的候選實體為正確匹配實體的概率也越大。這與PageRank算法的思想一致[13]。本文使用PageRank算法對構(gòu)建的關(guān)聯(lián)圖進行迭代運算,對文檔中所有實體指稱進行協(xié)同消歧。
在構(gòu)造關(guān)聯(lián)圖之前,首先構(gòu)造包含實體之間所有路徑的實體連通圖,其次根據(jù)實體連通圖去構(gòu)建實體關(guān)聯(lián)圖。
實體連通圖是指知識圖譜中包含不同實體指稱的候選實體之間所有路徑的子圖。構(gòu)建實體連通圖的目的就是找到不同待消歧實體指稱的所有候選實體之間的路徑。
當查詢兩個實體之間路徑的時候,可能會出現(xiàn)連接兩個不相連的實體的中間實體,它被稱為橋接實體。當一條路徑中存在較多橋接實體時,在知識圖譜中搜索時,工作量將會非常大,降低計算的效率。由于找到兩個實體之間路徑的目的是為了計算兩個實體之間的關(guān)聯(lián)度,當兩個實體之間的路徑過長時對實體之間關(guān)聯(lián)度影響不大,所以忽略掉實體之間長距離的路徑對于計算結(jié)果沒有太大影響。因此本文設(shè)置一個路徑長度閾值Q,本文通過實驗分析將Q大小的設(shè)置為6。
由于在進行消歧時只考慮不同待消歧實體指稱所匹配在知識圖譜中的實體之間的關(guān)聯(lián),故同一待消歧實體指稱的候選實體之間的路徑不需要被搜索。
對于一個實體連通圖G(N,E,paths),有以下定義:
N表示圖中所有節(jié)點的集合,E表示圖中所有邊的集合,EM∪B。其中EM是所有候選實體的集合,即EM={EM1∪EM2∪…∪EMn}。
EMi為文檔中一個實體指稱的候選實體集合,n為一篇文檔中實體指稱的個數(shù)。B表示屬于不同實體指稱集合的任意候選實體對(eij,epq)路徑之間的 橋 接 實 體 集 合,B={bk,…,bz|{
paths為任意實體指稱的候選實體之間的路徑。具 體 形 式 為paths={paths(eij,epq)|?eij,epq∈EM}。其中,paths(eij,epq)表示在實體連通圖中頂點eij和頂點epq之間所有路徑的集合,具體形式為paths(eij,epq)={{
實體連通圖構(gòu)建的方法就是遍歷知識圖譜得到一個子圖,從一個候選實體eij開始,沿著路徑在知識圖譜中找到另一個候選實體epq為止。其思想和圖的深度優(yōu)先遍歷算法類似,因此本文在實體連通圖的構(gòu)造過程中,利用基于圖的深度優(yōu)先搜索算法。實體連通圖的構(gòu)造過程為見算法1和算法2。
算法1實體連通圖的構(gòu)造算法
輸入:EM={EM1∪EM2∪…∪EMn}
輸出:G(N,E,paths)
1)初始化N=E=paths=NULL
2)for EMiin EM do
3)C=EMi+1∪EMi+2∪…∪EMn
4)for eijin EMido
5)path=NULL
6)CNode=ConnectNode(eij)/*將和eij相鄰的節(jié)點放到集合CNode中*/
7)While CNode is not NULL do
8) Get path via CNode.top w.r.t Algorithm2
9) if len(path)≤Q then
10) for step=1,len(path)do
11) Store path[step].Node in N
12) Store{path[step].Node,path[step+1].Node}in E
13) end for
14) Store path in paths(eij,CNode.top)
15) end if
16) Delete CNode.top from CNode
17)end while
18)end for
19)end for
20)return G(N,E,paths)
算法2圖的深度優(yōu)先搜索算法
輸入:TNode,path,C,Q
輸出:path
1)if TNode in C then
2)return path
3)else if len(path)>Q then
4)return path=NULL
5)else
6)Store
7)CNode=ConnectNode(TNode)
8)while CNode is not NULL do
9)TNode=CNode.top
10)Delete TNode from CNode
11)Depth-First Search of Connected Graph(TNode)
12)end while
13)end if
本節(jié)在實體連通圖的基礎(chǔ)上,利用各個實體之間的關(guān)聯(lián)關(guān)系來構(gòu)造實體關(guān)聯(lián)圖。實體關(guān)聯(lián)圖中的節(jié)點為一篇文檔中所有實體指稱的候選實體,邊代表兩個實體之間有關(guān)聯(lián)。
對于一個實體關(guān)聯(lián)圖R(Nr,Er,Tr),有以下定義:
Nr表示所有實體指稱的候選實體的集合,即Nr=EM={EM1∪EM2∪…∪EMn},n為文檔中實體指稱的個數(shù),m為實體指稱的候選實體的個數(shù)。
Er表示兩個候選實體之間的邊,Er={
Tr表示一個圖的鄰接矩陣,Tr(eij,epq)是實體eij和實體epq之間邊的權(quán)值,表示兩個實體的關(guān)聯(lián)度。
實體關(guān)聯(lián)圖中兩個候選實體的關(guān)聯(lián)度利用卡茨相關(guān)性[14]計算。計算如式(1)所示:
實體關(guān)聯(lián)圖的構(gòu)造過程見算法3。
算法3實體關(guān)聯(lián)圖構(gòu)造算法
輸入:G(N,E,paths),EM,β
輸出:R(Nr,Er,Tr)
1)初始化N=EM,Er=NULL,Tr=0
2)for EMiin M do
3)C=EMi+1∪EMi+2∪…∪EMn
4)for eijin EMido
5)for epqin C do
6) Get paths(eij,epq)from paths
7) Store
8) SCS(eij,epq)=0
9) for p in paths(eij,epq)do
10) SCS(eij,epq)=SCS(eij,epq)+βlen(p)
11) end for
12) Tr(eij,epq)=SCS(eij,epq)
13)end for
14)end for
15)end for
16)return R(Nr,Er,Tr)
每個實體頂點PageRank初始值利用每個候選實體的局部消歧得分,為了平衡局部消歧得分對所有實體指稱的候選實體節(jié)點的影響,對同一個實體指稱的候選實體的局部得分進行歸一化處理,歸一化之后的得分為實體頂點的初始得分。
首先將實體關(guān)聯(lián)圖中每個實體頂點的值作為初始的PageRank得分P0。然后基于所構(gòu)造的鄰接矩陣來構(gòu)造轉(zhuǎn)移矩陣M,將鄰接矩陣Tr每一行的值進行歸一化,表示每個頂點跳轉(zhuǎn)到其他頂點的概率,也表示這個實體與和它有關(guān)聯(lián)的實體之間同為最佳匹配實體的概率。得到轉(zhuǎn)移矩陣和頂點的初始PageRank得分,就可以對圖采用PageRank算法進行運算。PageRank迭代公式如公式(3)所示。
當一次迭代完畢,從得到的結(jié)果中選出得分最高的實體作為所屬待消歧實體指稱的消歧結(jié)果。然后更新實體關(guān)聯(lián)圖和實體關(guān)聯(lián)圖的轉(zhuǎn)移矩陣M。將上次迭代計算出的每個實體的PageRank得分作為下一次PageRank迭代計算的初始得分;把關(guān)聯(lián)圖中和上一次迭代所得到的得分最高的實體屬于同一實體指稱候選列表的實體頂點刪除,并刪除和它們有關(guān)聯(lián)的邊。繼續(xù)進行迭代,直到消歧結(jié)束。
本文使用FreeBase(FB5M)的子集作為實體鏈接的參考知識圖譜。FB5M在SimpleQuestions數(shù)據(jù)集中發(fā)布,它包含4,904,397個實體,752,3個關(guān)系和22,441,880個事實。本文實驗所采用的數(shù)據(jù)集為ACE2004和MSNBC,兩個數(shù)據(jù)集均為英文新聞數(shù)據(jù)集。
本文從準確率P,召回率R,F(xiàn)1值和耗時TC四個指標對實驗結(jié)果進行評估。
在構(gòu)建實體連通圖時,為了減小搜索和計算的復(fù)雜度而對路徑長度設(shè)置了閾值Q,設(shè)置Q的值為從1~10,在兩個數(shù)據(jù)集上進行實驗,通過F1值和耗時TC兩個評價指標對實驗結(jié)果進行分析。實驗結(jié)果如圖3所示。由圖可以看出,閾值Q=6是最佳選擇。
圖3 參數(shù)Q的實驗結(jié)果圖
對于PageRank公式(3)中的參數(shù)c,本文對其在[0,1]進行實驗,間隔為0.1,實驗結(jié)果如圖4所示。通過F1值對實驗結(jié)果進行分析,可以看出,當c=0.5時,F(xiàn)1值達到最大,消歧效果最好。即對于本文中的PageRank算法,在當前節(jié)點停留的概率和轉(zhuǎn)移到其他節(jié)點的概率相同時,得到的實驗效果最好。
圖4 參數(shù)c的F1值實驗結(jié)果圖
為了更好地對比出加入全局特征對實體消歧的影響,本小節(jié)首先使用局部消歧模型進行實驗,選取局部消歧分數(shù)最高的實體作為最佳匹配實體,然后再與使用了全局特征的整體消歧框架的消歧效果進行對比。在兩個數(shù)據(jù)集上的實驗結(jié)果分別如表1和表2所示。
表1 數(shù)據(jù)集ACE2004上的消融實驗結(jié)果
表2 數(shù)據(jù)集MSNBC上的消融實驗結(jié)果
通過結(jié)果可以看出,只有局部消歧時的實驗效果比較差,局部消歧利用實體指稱的上下文信息進行消歧,但當利用的信息較少,或者利用的信息有太多噪音時,提取文本特征時會出現(xiàn)偏差,影響消歧效果。加入全局特征以后,實驗效果明顯上升,因為全局消歧中加入了實體的全局性特征,對局部消歧中存在的偏差進行糾正,提升整體實驗效果。
為了對本文的消歧效果進行更好的分析,選取DSMM[15]消歧方法和Graph Ranking[16]方法與本文方法進行對比。兩種方法中,DSMM方法屬于基于上下文的局部消歧算法,與本文局部消歧所使用的方法類似,通過和其對比,可以看出本文在局部消歧的基礎(chǔ)上加入全局消歧之后的效果。Graph Ranking方法是基于圖的全局消歧算法,和本文的全局消歧部分處理類似,但節(jié)點初始得分的處理是不一樣的,通過和其對比,可以看出初始得分的處理對實驗結(jié)果的影響。通過和這兩種方法的對比,可以充分對比出本實驗所使用的局部消歧和全局消歧相結(jié)合的方法的效果。DSMM方法、Graph Ranking方法和本文方法在數(shù)據(jù)集ACE2004和數(shù)據(jù)集MSNBC的實驗結(jié)果如表3和表4所示。
表3 數(shù)據(jù)集ACE2004上的對比實驗結(jié)果
表4 數(shù)據(jù)集MSNBC上的對比實驗結(jié)果
通過實驗結(jié)果可以看出,在數(shù)據(jù)集ACE2004和數(shù)據(jù)集MSNBC上本文的方法在準確率、召回率、F1值等方面取得了較好的效果。DSMM方法只考慮了實體的上下文信息而忽略了同一篇文檔中實體之間的關(guān)系,F(xiàn)1值最小,消歧效果不如后面兩種全局消歧的算法。而Graph Ranking方法在構(gòu)建關(guān)聯(lián)圖中使用的實體流行度作為節(jié)點初始得分,沒有考慮到實體的下文信息,算法耗時時間最短,但F1值低于本文的消歧算法。并且可以看出,Graph Ranking方法和本文方法兩種全局消歧算法在數(shù)據(jù)集MSNBC的實驗效果比在數(shù)據(jù)集ACE2004上的實驗效果要好,這是因為數(shù)據(jù)集MSNBC中平均每篇文檔的實體數(shù)較多,可以提取到實體之間較多的關(guān)聯(lián)信息,能更好地反映局部消歧和全局消歧性能的對比效果。根據(jù)實驗結(jié)果可以看出,本文方法是一種對文檔中實體進行協(xié)同消歧的有效的方法。
本文提出一種文檔級的實體消歧技術(shù),將局部消歧技術(shù)與基于圖的全局消歧方法結(jié)合起來進行實體消歧。局部消歧采用基于BiLSTM+Attention模型的消歧算法,全局消歧采用基于關(guān)聯(lián)圖和PageRank算法的全局消歧算法,利用每個候選實體局部消歧中得到的局部消歧得分,對文檔中所有實體指稱進行全局消歧。實驗結(jié)果表明本文的方法具有較好的消歧效果。