摘要
網際網路中存在著大量的命名實體,實體連結技術因而發揮了越來越大的作用。實體連結可以通過將名稱指稱與外部知識的特定實體對應起來,來幫助使用者理解名稱指稱的含義。然而,一個名稱指稱可能對應多個可能的實體。經常共現的多個名稱指稱彼此相關是一個顯而易見的事實,因此可以將這些名稱指稱一起考慮來獲得最佳的對應關係,這種方法也被稱作集體實體連結(collective entity linking),並且通常被應用在基於圖的實體連結任務上。但是,傳統的集體實體連結方法要麼會因為圖規模巨大導致耗費過長的時間,要麼會因為圖的簡化導致連結精度較低。為了同時提升準確率和效率,本文提出一種全新的集體實體連結方法。首先,將任意兩個相關實體連線起來以構建實體圖;之後在構建的圖上,利用一個基於概率的目標函式來保證連結結果的準確性。基於此目標函式,我們將實體連結任務轉化為一個尋找具有最高PageRank值的節點的搜尋過程,並利用貪心搜尋和調整過的蒙特卡洛隨機遊走方法來解決此任務。實驗結果表明,我們的方法比傳統的實體連結方法具有更好的效果。
注:此文章的內容節選自TOIS 2017的論文“DBpedia-Based Entity Linking via Greedy Search and Adjusted Monte Carlo Random Walk”和KAIS 2018的論文“Collective entity linking: a random walk-based perspective”。
簡介
由於網際網路技術的快速進步,網路上出現了大量的名稱指稱。大多數名稱指稱是人名、地名、產品名、機構名等等。在不考慮上下文的情況下,一個名稱指稱可能會有多個解釋。許多網際網路技術-比如資訊檢索和資料探勘[13,21]-效能提升的關鍵就是獲得一個名稱指稱的實際含義。獲取一個名稱指稱的含義的通常方法是將這個指稱連結到外部資源(如維基百科)的一個實體上。例如,有這樣一句話“史蒂夫·賈伯斯是蘋果有限公司的創始人。”,其中的名稱指稱“史蒂夫·賈伯斯”可以被連結到維基百科的頁面http://en.wikipedia.org/wiki/Steve_Jobs上。這種連結可以幫助使用者瞭解句子中的“史蒂夫·賈伯斯”是誰。不幸的是,就好比詞語具有歧義一樣,一個名稱指稱可以連結到多個實體上。例如不考慮上下文,“史蒂夫·賈伯斯”可能會與其他很多人有關聯,甚至可能是一部電影或一本書。正由於此,在尋找與名稱指稱匹配的最佳實體時,本文提出的方法會同時考慮出現在同一上下文中的所有名稱指稱。這種方法也被稱為集體實體連結,並且與其他實體連結方法相比,集體實體連結具有更好的精度[8,9,18]。以剛剛的例句為例,在這句話中“史蒂夫·賈伯斯”和“蘋果有限公司”是一對共現的名稱指稱。在維基百科中,“史蒂夫·賈伯斯”會被連結到3個實體中,其中一個是人,另一個是電影,最後一個是一本書。“蘋果有限公司”僅僅會連結到一個跟公司相關的實體。如果我們將兩個名稱指稱同時考慮,在“史蒂夫·賈伯斯”連結到的3個實體中,只有與人相關的那一個具有一個URL可以重定向到公司命名實體“蘋果有限公司”。因此可以很容易地確定,在剛剛那句話中,史蒂夫·賈伯斯是一個人。幾乎所有的集體實體連結方法都將共現指稱所對應實體間使用一條路徑連線起來。這樣可以形成一個反映不同指稱所對應的實體之間的關係的實體圖。通過實體圖,可以清晰刻畫指稱與實體之間的關係。但是由於實體圖的巨大尺寸,傳統的集體實體連結方法非常耗時,使得傳統集體實體連結方法無法被應用到現實應用中[14]。在這種背景下,本文提出了一個具有高準確度和低執行時間的集體實體連結演算法。具體貢獻如下:
(1)為了獲得高準確度,本演算法構建了一個可以全面覆蓋實體之間關係的實體圖。並且,本文設計了一個基於概率的損失函式來為名稱指稱尋找最佳實體。實驗結果表明,基於此實體圖的連結結果與精確結果十分接近。
(2)通過概率損失函式來尋找全域性最優解非常耗時。因此,我們將實體連結問題轉化為圖搜尋問題,通過貪心搜尋尋找區域性最優解來縮短執行時間。為了給每一個名稱指稱尋找一個命名實體,通過PageRank演算法為圖中的每一個節點賦權,並且將貪心搜尋的過程轉化為尋找具有最高PageRank值的節點的過程。
(3)由於我們的實體圖具有一些特殊的性質,比如沒有懸節點(dangle node)、沒有沉沒圓(sink circle)、沒有個性化向量(personalized vector),無法使用傳統的方法為實體圖中的節點計算PageRank值。基於此,我們提出了一個調整過的蒙特卡洛隨機遊走方法來計算圖中每個節點的PageRank值。實驗結果表明,通過貪心搜尋和調整過的蒙特卡洛隨機遊走方法,我們的演算法比傳統的集體實體連結方法執行更快。
模型描述
在介紹我們的連結演算法之前,需要弄清幾個在後面篇章中會經常出現的概念。
(1)候選實體:一個候選實體可能是一個名稱指稱在外部知識庫中可能連結到的實體。例如“史蒂夫·賈伯斯”可能會連結到維基百科中的三個候選實體。使用編輯距離來選擇一個名稱指稱的候選實體集。
(2)中間實體(或者實體圖中的中間節點):一條路徑中可以連線兩個相關候選實體的實體叫做中間實體(或中間節點)。
在我們的演算法中,需要用一條路徑來連線相關候選,從而形成一個實體圖。維基百科不具有明確的連結結構。基於此,我們選擇DBpedia作為連結的外部知識庫。選擇DBpedia的原因主要有以下兩點:其一是維基百科是一種與Freebase和YAGO類似的百科全書,其包含的實體項每天都在增加。其二是DBpedia和維基百科具有相同的實體,唯一的不同是維基百科中的一個實體使用一個網頁來表示,而DBpedia使用一個節點來表示。總而言之,DBpedia是維基百科的結構化表示。如果兩個實體在DBpedia中使用一條弧相連,那麼這兩個實體就是相關的。例如“史蒂夫·賈伯斯”和“蘋果商店”兩個候選實體(一個的連結是http://dbpedia.org/page/Steve_Jobs,另一個的連結是http://dbpedia.org/page/Apple_Store),顯然他們之間是相關的,但是在DBpedia中並沒有直接相連,他們只能使用一條通過“蘋果有限公司”或“蒂姆庫克”的路徑相連。一條路徑是(史蒂夫賈伯斯、蘋果有限公司、蘋果商店),另一條路徑是(史蒂夫賈伯斯、蒂姆庫克、蘋果商店)。像“蘋果有限公司”和“蒂姆庫克”這種能形成一條路徑來連線兩個候選實體的實體就是中間實體。本文關注於實體連結,因此假定我們的連結演算法是在文章中的實體都能被正確識別和標準化的假設下執行的。例如,將“史蒂夫.保羅.賈伯斯”,“史蒂夫.P.賈伯斯”,“賈伯斯”等等統一為“史蒂夫·賈伯斯”。事實上,對於一篇文章中毗鄰的兩個實體指稱,它們的連結實體也可能是相關的。這意味著,我們不需要同時處理一篇文字中的所有實體指稱,只需使用滑動的視窗來分割文字,並且將處於同一視窗中的名稱指稱放入一個標籤為“NM”的集合中。在NM中的名稱指稱會被同時處理。視窗的大小被設定為50,這個數值是文獻[12]提出的一個有意義的句子的平均長度。
圖1是一個實體圖的例子。它通過下面的句子構建而來:“人們總是談論蘋果釋出的成功產品,例如iPhone。事實上,以麥金託什機為例,賈伯斯也會發布不成功的產品。”(“People only talk about the successful products released by Apple, such as iPhone. In fact, taking Macintosh as example, Jobs also produced many unsuccessful products.”)這句話裡有四個名稱指稱(通過預處理過程提取出四個名稱指稱,在預處理過程中,一些常見的指稱不會被提取出來,比如“人們”和“產品”),已加粗標示。每一個名稱指稱都具有一個候選實體集,為了簡化圖的表示,我們使c_en**代表一個候選實體,並且使in_en**代表一箇中間實體(或者一箇中間節點),表1列出了名稱指稱的實際意義和對應的候選實體。在圖1中,一個橢圓包含了一個名稱指稱的全部候選實體。例如,c_en11, c_en12, c_en13都是m1的候選實體。兩個在DBpedia中直接相連的實體,在圖中用一條邊直接連線。每一條邊均有一個標記集。此集合包含通過這條邊的所有路徑能連線的所有候選實體。例如邊(in_en3,in_en4)的標記集為{c_en13,c_en21,c_en42}。這些候選實體所對應的結點可以被穿過(in_en3,in_en4)的路徑連線在一起。此標記集合可以用來計算圖中邊的權值。
表1. 圖1中所有結點的真實含義
既然四個名稱指稱(i.e. m1, m2, m3, m4)在上下文中共現,那麼可以假設這四個名稱指稱是相關的。本文使用一個聯合概率分佈來函式來計算將每一個候選實體分別分配給每個指稱的聯合概率。
(m1=c_en1i,m2=c_en2j,m3=c_en3k,m4=c_en4h)即代表一種分配,這種分配將c_en1i分配給m1,c_en2j分配給m2,c_en3k 分配給m3,c_en4h分配給m4。
在式(1)中,一個名稱指稱的分配會影響其他分配。尋找最優的分配等同於在所有的聯合概率中尋找一個具有最大值的分配。在圖1中利用這種暴力搜尋方法需要掃描3*3*2*4種組合。也就是說一旦名稱指稱集合十分巨大,暴力搜尋方法會非常耗時。正是由於此原因,我們使用貪心搜尋來獲得最佳分配的近似解。
通過貪心搜尋,式(1)可以被改寫成下式:
基於式(2)的搜尋過程如下:
步1:在NM={m1,m2,m3,m4}中尋找一個名稱指稱的具有最大概率的分配。這一步符合式(2)中的。
步2:假設c_ent1k1是步1找到的候選實體,把它當作名稱指稱mt1的最佳分配。
步3:當c_ent1k1被分配給mt1時,在NM-{mt1}中找到一個名稱指稱具有最大概率的分配,這一步對應式(2)中的。
步4:假設c_ent2k2是步3找到的一個候選實體,把它當成名稱指稱mt2的最佳分配。
步5:重複步1到步4直到找到NM-{mt1,mt2}中包含的名稱指稱的分配。
式(1)和式(2)可以很容易擴充套件到包含任意指稱數目的情況上。現在的問題是怎樣計算式(1)和式(2)中的概率。給定NM中的指稱mt1,讓c_ent1k1代表它的一個候選實體。既然NM中的指稱是共現的,如果c_ent1k1與其他的很多候選實體相關,分配給(mt1=c_ent1k1)的概率就應該很大。如果很多條路徑都通過某個候選實體,則可以說這個候選實體和許多其他的候選實體相關,在這種情況下,這個候選實體可以被認為是一個名稱指稱的最佳分配的可能性應該是很大的。如果一個節點被很多條路徑通過,那他的PageRank值就應該很高。因此,我們可以使用PageRank值來衡量把這個候選實體分配給一個名稱指稱的概率。使用PageRank來計算分配概率的另一個原因是,一個節點的PageRank值可以傳遞到其他節點。圖2展示了圖1中每個節點的PageRank值。
注:限於篇幅原因,具體的PageRank值計算方法可參見TOIS 2017的論文“DBpedia-Based Entity Linking via Greedy Search and Adjusted Monte Carlo Random Walk”,此處不做過多介紹。
當將某個候選實體被分配給某個名稱指稱後,該指稱對應的其他候選實體即可以從圖中予以移除。當然,移除候選實體後會影響整個實體圖的結構。一旦一個候選實體被移除,這個候選實體即需要從圖中每一條邊的標記集合中移除。例如,在圖2中,當c_en12被移除時,c_en12也會從所有的標記集合中移除。當一條邊的標記集合為空時,這條邊也從實體圖中移除。圖3是從圖2中移除了c_en12和c_en13後的實體圖。根據圖3中的PageRank值,c_en32是m2的最佳分配。
不斷重複以上過程n次(n代表NM中的名稱指稱數),可以找到NM中所有的名稱指稱的連結實體。圖3和圖4是在成功找到m2和m4的最佳分配過程中形成的圖。通過圖3,c_en42分配給m4。通過圖4,c_en22分配給m2。
實驗分析
以下實驗將我們的連結演算法和不同的基線演算法在準確度和執行時間上做比較。基線演算法包含實體對實體(entity to entity)的方法,例如Spotlight [3],BEL [23],LIMES [15],Swoosh [1]和AIDA-Light [16];基於機器學習的方法,例如SHINE [19],DNNEL [5],LISTSVM [10]和GEML [22];基於集體實體連結的方法,例如EMLC [6],AGDISTIS [20],LGD2W [17],AIDA [7],ELPH [4],GSEL [2],和FHCEL [11]。在表2和表3中,把本文提出的演算法稱為(ELGA)。所有的基線演算法都在都在一個具有2.4G Hz CPU和16G記憶體的電腦上執行。
表2. 不同演算法的連結結果F1值 (*代表顯著性檢測,其中***代表顯著性檢測達到0.01水平,**代表達到0.05水平,*代表達到0.1水平)
表3. 不同演算法對單個名稱指稱處理的平均時間
通過觀察表2和表3,可以很容易看出實體對實體的方法比其他方法執行速度要快很多。事實上,實體對實體方法就是為線上使用特別設計的。為了減少執行時間,這類方法引入了一些限制。例如,LIMES需要相似度滿足三角不等式,Swoosh需要相似度滿足偏序。由於這些限制,實體對實體方法可以大幅度縮減執行時間。以AIDA-Light為例,它只需要1秒鐘就可以處理1個名稱指稱。而另一方面,因為它們從不考慮實體之間的關係,而且一些限制在實際應用中過於嚴格,所以它們的準確度非常低。正是由於此原因,它們的F1值也很低。相反的,基於集體連結的方法在所有測試集上都具有較高準確度。這是由於基於集體連結的方法構建了一個可以捕獲實體之間關係的圖,並且在圖中不具有額外的限制。因此,具有很高的準確度。然而,基於集體連結的方法需要為圖中的節點賦權(EMLC和AGDISTIS),或分析圖的結構 (ELPH,GSEL和FHCEL),或將實體之間的關係整合到一個目標函式中(LGD2W和AIDA)。這些過程都是耗時的。EMLC和AIDA試圖通過減少圖的規模來減少執行時間,FHCEL使用爬山優化演算法來解決NP問題,然而這些方法都會降低準確度。基於機器學習的方法取得的效果介於實體對實體方法和基於集體連結的方法之間。原因是基於機器學習的方法收集名稱指稱的上下文作為訓練語料,訓練了一個分類器來區分候選實體。此方法可以最大程度地應用名稱指稱上下文中的有用資訊。例如名稱指稱的位置、名稱指稱的長度以及名稱指稱的詞性等。基於此,基於機器學習的方法比實體對實體的方法具有更高的準確度,但是同樣由於基於機器學習的方法沒有考慮實體之間的關係,它的準確度要比基於集體連結的方法低。至於訓練時間,既然基於機器學習的方法有一個訓練過程並且這個過程是很耗時的,它的執行時間比實體對實體的方法要長。和基於集體連結的方法比較,基於機器學習的方法的訓練過程只對一個實體進行。因此它們的執行時間比基於集體連結的方法的執行時間要短。在基於機器學習的方法中有一個例外,那就是DNNEL。這個方法將名稱指稱的稀疏上下文向量通過神經網路轉化為稠密的向量,此向量可以在一定程度上反映實體之間的關係。但是這種轉換是非常費時的,因此雖然DNNEL耗時很長,但它擁有和基於集體連結的方法類似的準確度。我們的演算法(ELGA)也是一種基於集體連結的演算法,並且它通過用路徑連線所有相關的候選實體來構建了一個相對完整的實體圖。基於實體圖我們提出了一個基於概率的目標函式,這個目標函式考慮了實體之間的關係以保證獲取精確的連結結果。除此之外,如表2所示,我們的連結演算法在三個測試集上的顯著性測試結果都達到了0.01水平。這意味著我們的連結演算法比其它基線演算法表現得更加出色。關於執行時間,由於我們的演算法採用貪心策略和調整過的蒙特卡洛隨機遊走來加快速度,使得演算法比其他的基於集體連結的演算法的執行時間更短,它甚至短於一些基於機器學習的方法的執行時間,與實體對實體的方法接近。
後期展望
雖然我們的演算法採用了貪心演算法和被調整過的蒙特卡洛隨機遊走來縮短執行時間,但是此演算法仍然無法線上上執行。為了使它具有更高的效率,我們打算將實體圖分割成幾個部分,而僅對某一部分更新PageRank值來進一步縮短執行時間。除此之外,我們的演算法需要重構實體圖並且多次執行PageRank演算法,這個重計算過程也是十分耗時的。為解決此問題,我們打算分析實體圖的結構並且找到很少變化的部分,然後保持很少變化部分節點的PageRank值,只重新計算其他部分的節點。
參考文獻
[1] Omar Benjelloun, Hector Garcia-Molina, David Menestrina, Qi Su, Steven Euijong Whang, and Jennifer Widom. 2009. Swoosh: A generic approach to entity resolution. Int. J.VLDB 18, 1(2009), 255–276.
[2] Diego Ceccarelli, Claudio Lucchese, Salvatore Orlando, Raffaele Perego, and Salvatore Trani. 2013. Learning relatedness measures for entity linking. In Proceedings of the 22nd ACM International Conference on Information and Knowledge Management. ACM, 139–148
[3] Joachim Daiber, Max Jakob, Chris Hokamp, and Pablo N. Mendes. 2009. Improving efficiency and accuracy in multilingual entity extraction. In Proceedings of the 9th International Conference on Semantic Systems. ACM, Graz, Austria, 121–124
[4] Ben Hachey, Will Radford, and James R. Curran. 2011. Graph-based named entity linking with Wikipedia. In Proceedings of the 12th International Conference on Web Information System Engineering. ACM, 213–226.
[5] Xianpei Han and Le Sun. 2011. A generative entity-mention model for linking entities with knowledge base. In Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics. ACL, 945–954.
[6] Xianpei Han, Le Sun, and Jun Zhao. 2011. Collective entity linking in web text: A graph-based method. In Proceedings of the 34th International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 765–774.
[7] Johannes Hoffart, Mohamed Amir Yosef, Ilaria Bordino, Hagen Furstenau, Manfred Pinkal, Marc Spaniol, Bilyana Taneva, Stefan Thater, and Gerhard Weikum. 2011. Robust disambiguation of named entities in text. In Proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing. ACL, 782–792.
[8] Ben Hachey, Will Radford, Joel Nothman, Matthew Honnibal, and James R. Curran. 2013. Evaluating entity linking with wikipedia. Artif. Intell. 194(2013), 130–150.
[9] Zhengyan He, Shujie Liu, Yang Song, Mu Li, Ming Zhou, and Houfeng Wang. 2013. Efficient collective entity linking with stacking. In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing. ACL, 426– 435.
[10] Zhengyan He, Shujie Liu, Mu Li, Ming Zhou, Longkai Zhang, and Houfeng Wang. 2013. Learning entity representation for entity disambiguation. In Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics. ACL, 30–34
[11] Sayali Kulkarni, Amit Singh, Ganesh Ramakrishnan, and Soumen Chakrabarti. 2009. Collective annotation of wikipedia entities in web text. In Proceedings of the 15th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 457–465.
[12] Yuhua Li, David McLean, Zuhair A. Bandar, James D. OShea, and Keeley Crockett. 2006. Sentence similarity based on semantic nets and corpus statistics. IEEE Trans. Knowl. Data Eng. 18, 8(2006), 1138–1150.
[13] Edgar Meij, Krisztian Balog, and Daan Odijk. 2013. Entity linking and retrieval. In Proceedings of the 37th International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 1127–1127.
[14] Galileo Mark Namata, Stanley Kok, and Lise Getoor. 2011. Collective graph identification. In Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 87–95.
[15] Axel-Cyrille Ngonga Ngomo and Sören Auer. 2011. LIMES: A time-efficient approach for large-scale link discovery on the web of data. In Proceedings of the 22nd International Joint Conference on Artificial Intelligence. AAAI, 2312–2317.
[16] Johannes Hoffart, Martin Theobald, and Gerhard Weikum. 2014. AIDA-light: High-throughput named-entity disambiguation. In Proceedings of the Workshop on Linked Data on the Web Co-Located with the 23rd International World Wide Web Conference. Vol. 1184.
[17] Lev Ratinov, Dan Roth, Doug Downey, and Mike Anderson. 2011. Local and global algorithms for disambiguation to wikipedia. In Proceedings of the 34th International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 1374–1384.
[18] Prithviraj Sen. 2012. Collective context-aware topic models for entity disambiguation. In Proceedings of the 21st International Conference on World Wide Web. ACM, 729–738.
[19] Wei Shen, Jiawei Han, and Jianyong Wang. 2014. A probabilistic model for linking named entities in web text with heterogeneous information networks. In Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data. ACM, 1199–1210.
[20] Ricardo Usbeck, Axel-Cyrille Ngonga Ngomo, Michael Röder, Daniel Gerber, Sandro Athaide Coelho, Sören Auer, and Andreas Both. 2014. AGDISTIS-agnostic disambiguation of named entities using linked open data. In Proceedings of the 21st European Conference on Artificial Intelligence. AAAI, 1113–1114.
[21] Wei Shen, Jianyong Wang, and Jiawei Han. 2015. Entity linking with a knowledge base: issues, techniques, and solutions. IEEE Trans. Knowl. Data Eng. 27, 2(2015), 443–460.
[22] Zhicheng Zheng, Fangtao Li, Minlie Huang, and Xiaoyan Zhu. 2010. Learning to link entities with knowledge base. In Proceedings of the 2010 Annual Conference of the North American Chapter of the ACL. ACL, Los Angeles, 483–491.
[23] Zhe Zuo, Gjergji Kasneci, Toni Grütze, and Felix Naumann. 2014. BEL: Bagging for entity linking. In Proceedings of 25th International Conference on Computational Linguistics. 2075–2086.