轉載自http://www.cbdio.com/BigData/2016-08/30/content_5224578.htm
[前言]什么是知識圖譜?補全知識圖譜的推理方法有哪幾種?Embedding-based和Path ranking algorithms是什么?將二者結合的效果如何?中科院信息所王泉老師將在本文中深入淺出的帶你了解這些知識。



知識圖譜是實體和關系構成的有向圖,圖中的節點代表實體,邊代表實體之間的語義關系。知識圖譜中最基本的表現形式是三元組。目前的知識圖譜一般規模較大,但是其中絕大多數的知識圖譜都是不完備的,因為有大量的知識無法在其中有效地表達。

補全知識圖譜,本質上講是一個知識圖譜的鏈接預測問題,即根據一定的預測機制,由已知的邊來預測未知的邊,也可以說是給定兩個實體及其之間的特性關系,來判斷兩個實體是否具有這種關系。

目前的推理方法有三類:Embedding-based技術,它是基於低維向量的表示方法;Path ranking algorithms,它是傳統的路徑排序算法;Probabilistic graphical models概率模型,如馬爾科夫鏈等。本文主要介紹前兩種方法。
Embedding-based技術是以隱式因子模型為基本思想的方法。它假設存在隱式的向量空間,將知識圖譜中的實體和關系在低維的向量空間里進行表達,得到連續的向量、矩陣或者張量,然后在隱式向量空間里計算推理。


Embedding學習過程主要分為三個步驟:
1.Entity/Relation representation
定義一種表示形式,在知識圖譜中把實體和關系在低維向量空間進行表達,這種低維的向量表示稱之為embedding,形式包括向量、矩陣或張量。
2.Scoring function definition:
定義一個基於三元組的打分函數,其定義在每個知識條目上。由上一步的embedding作為參數,判斷三元組或者事實成立的可能性。
3.Parameter estimation:
解決參數估計、構建優化的問題,以此學習實體和關系的低維向量表示。推理階段較為簡單,根據打分函數等上述內容進行推理。

TransE模型:
TransE模型的思想較為直觀,將每個詞表示成詞向量,詞向量之間保持一種類比關系,如上圖所示。Embedding中較有代表性的方法是TransE模型,TransE模型的關系表達為:頭實體embedding+關系embedding=尾實體embedding。

TransE模型的步驟:
1.模型假設
主要涉及向量操作,將實體和關系之間進行向量表示。
2.定義打分函數來衡量關系成立的可能性
使用距離函數表征“頭實體+關系”和“尾實體”接近的程度,越接近表示距離約小,那么接近程度越高,關系成立的可能性越高;相反,關系成立的可能性越低。
3.參數估計
參數是指實體和關系的對應向量表示,需要構建Pairwise的向量損失,每一個三元組當作一個正例,每一個正例對應構造一個負例,保證兩者之間的分差足夠大,如果分差大於預期就認為沒有損失,如果分叉小於預期就認為有損失。

TransE模型的三步走:
絕大部分的embedding都可以歸納到統一的框架中,這種統一體現在它們的第三步都是一樣的:優化pairwise的損失來進行模型求解。他們的不同體現在需要定義不同的實體與關系之間的表示方式,進而根據不同的表示方式定義不同的打分函數。如TransE模型是最簡單的向量表示,相應的升級版本如TransH則為實體對應一個向量,但是關系可能對應於兩個向量,更高級的是TransR,除了向量的表示,它還引入了矩陣的表示。更復雜的比如基於機器學習的NTN模型。

在15年以前,embedding用到的信息源非常單一,僅僅用到知識圖譜中的三元組的信息,在近兩年(2015年、2016年),人們希望將更多的信息融入到embedding中,使得我們學習到更准確的表示方法,從而提升推理等任務的准確度。具體來說,可以引入所包含的實體的類別、關系路徑、實體的描述文本,以及簡單的邏輯規則等等。

Embedding的優點和缺點:
優點:
具備隱式因子模型的優點;
自由度高——對關系和實體沒有太多的限制;
對於某些方法來說效率非常高,操作性強。
缺點:
單純的數據驅動的方法,准確率有一定的限制;
具有隱式的缺點。


以上為目前比較流行的embedding方法。下面是比較傳統的基於路徑排序的方法。

我們的任務是,對於給定的某種關系,判斷兩個實體之間是否有這種關系。路徑排序的基本想法是用連接兩個實體的路徑作為特征,來預測兩個實體之間的關系。學習階段分為特征抽取、特征計算和構造分類器三個部分。預測階段是使用分類器對任務進行預測。下面詳細講解Path-Ranking算法。

路徑排序算法的想法是將路徑作為特征來進行預測。首先,什么是路徑?在知識圖譜中路徑是指鏈接兩個實體的序列。如上圖所示,左圖中Tom與Paris之間可以走classMates、Bob、bornInCity這條路徑。下面通過一個簡單的例子說明PRA算法的操作過程。首先需要確定目標關系是bornInCity,需要判斷兩個實體之間是否有這個關系。左圖是已經給定的知識圖譜,第二步是找出實體之間有bornInCity關系的正例:(Tom、Paris)和(Bob、Paris)。第三步是構造負例。知識圖譜中只有正例沒有負例,我們采用隨機替換實體的方式來人工構造負例,將正例中的Paris替換為Lyon,生成(Tom、Paris)和(Bob、Paris)兩個負例。第四步是構造特征向量的集合,將兩個實體之間的一條路徑作為一個特征向量,枚舉任意兩個實體之間所有可能的路徑,設定一個閾值,將長度不超過該閾值的全部路徑放入特征集合。第五步,通過特征集合獲得特征值。下一步是使用特征數據訓練分類器。

PRA算法中特征提取的常用方法有Random walks,breadth-first search和depth-first search;特征值計算的常用方法有Random walk probability,路徑出現/不出現的二值特征以及路徑的出現頻次等;分類器的訓練方法主要有單任務學習法和多任務學習法。

除了以路徑為特征的PRA研究,近些年有學者針對特殊情況提出了更多特征。例如針對低連通圖無法抽取實體間的有效路徑等問題,大家提出了Path bigram features、One-sided path features、Vector space similarity features和Any-relation features等特征。此處列舉了一些參考文獻,感興趣的可以進一步了解一下。

下面介紹PRA算法的優缺點。PRA算法的可解釋性強,而且可以從數據中自動發現關聯規則,並且准確率往往高於embedding方法。PRA算法有三個缺點,首先很難處理關系稀疏的數據,其次很難處理低連通度的圖,最后是路徑特征提取的效率低且耗時。

下面我們舉個例子來說明PRA算法如何自動發現關聯規則。我們的Target Relation是某個機構在哪個地方成立,通過分類器對全部特征的權重進行排序,這里列出了權重最高的五個特征,這是某些規則的展現。從第一個特征能夠看出,某個地方如果包含這個機構,那么極有可能說明該機構是在這個地方成立的;第二條特征表明,如果某個機構在某個城市有總部,那么極有可能說明該機構是在這個城市成立的。

上圖是PRA和TransE的比較結果,從結果能夠看出,PRA比TransE的結果要好一些。

第三個內容是簡單介紹一下embedding和path ranking結合的算法。

第一個結合的方法是特征融合,思想非常簡單,我們把embedding的分數和PRA的分數作為分類器的輸入重新訓練分類器,從效果來看Embedding和PRA的效果很接近,特征融合后的效果有明顯改善。

第二個結合的方法是Path-based TransE,其核心思想是從TransE出發,將實體、關系以及路徑都在低維的向量空間中表示,其打分函數包含兩個部分,一部分是原始三元組的得分,另一部分是路徑總貢獻的得分。從Performance中能夠看出pTransE結果有較大的提升。這說明了將Embedding類型的隱性特征和Path Ranking類型的顯性特征進行有效結合能夠給模型帶來很大的提升。

最后總結一下本文的內容。

本文介紹了知識圖譜填充任務中鏈接預測的相關內容,包括以TransE模型為代表的基於Embedding的算法和路徑排序算法,以及算法融合的方法。

Embedding算法的主要想法是在隱式因子空間中來完成學習、預測、推理等工作,其基本框架包括實體/關系表示、打分函數定義和參數估計三部分。

該方法的優點有:一、能夠捕捉到數據中本質存在的特征;二、自由度高,可以處理任意類型的實體和關系;三率高,可操作性強。該方法的缺點有:一、作為單純的數據驅動的方法,有些時候預測和推理的准確度不高;二、解釋性很差,沒有辦法為預測結果提供合理的解釋。

PRA算法的主要想法是將鏈接兩個實體之間的路徑作為特征來預測實體之間潛在的關系,其基本框架包括特征抽取、特征計算和訓練分類器三部分,其中分類器訓練的方法主要有單任務學習和多任務學習兩類。

PRA算法的優點有:一是可解釋性強;二是自動發現推理規則;三是在某些情況下能夠獲得比embedding方法更准確的效果。PRA算法的缺點包括:一是處理低頻關系效果不好;二是處理低連通圖的效果不好;三是當圖足夠大時,路徑抽取工作比較費時。

目前一個新的研究方向是將Embedding和PRA相結合,這種結合的好處是能夠充分利用顯式特征和隱式特征的互補性從而提高預測效果。