PaperReading-KG2E 《Learning to Represent Knowledge Graphs with Gaussian Embedding》

本文時 KG2E,《Learning to represent knowledge graphs with gaussian embedding》的論文閱讀筆記,如果有做相關工作的同學可以與我聯繫 [email protected]

背景

之前的TransX系列的論文都是在歐式空間中對實體和關係進行表徵,然後利用基於空間中點相似度的計算方法來計算勢能(通過關係翻譯的頭實體和真實尾實體之間的差距)

在論文中提出了之前的Trans系列論文沒有關注到的點,在本文中稱之爲實體/關係的準確性(按照論文中的說法,實際上和TranSparse 提出了異構性、平衡性是一個意思,KG2E發表在CKIM2015,TranSparse發表在AAAI2016)

1
論文中有關於影響到準確性的點和TranSparse中的異構性和平衡性的定義是一樣的。

對於實體的準確性高低的影響定義成了,一個實體/關係的準確性會影響到在三元組中確定性的置信度,論文中的舉例就是在三元組 希拉里-配偶-克林頓,希拉里-國家是-美國,這兩個三元組裏,配偶這個關係在確定這個三元組中的置信度更好,因爲通過配偶可以直接從克林頓到希拉里,但是通過國家是不能直接從美國到希拉里。這麼說在這個三元組中配偶關係的確定性更高。

1

所以KG2E將這個問題考慮了進來,在高斯空間中對實體和關係進行表徵,高斯空間裏面的均值(也就是高斯空間中的概率最高點的位置)作爲表徵的結果。

用這個高斯空間的協方差矩陣(在實際計算中使用的協方差矩陣的對角向量)來表示準確性,使用協方差矩陣的意義在於通過計算不同特徵之間的協方差來表示特徵之間的關係,協方差矩陣(對角向量)之間相似度越大,那麼在三元組中的相關性也就越大,置信度也就越高,準確度也就越高。

這個是我的個人理解,沒有在論文上找到關於協方差和準確度的證明
如果您知道更好更準確的解釋,麻煩您通過郵件和我溝通聯繫 
[email protected]

思路

基於以上的背景知識,KG2E沒有在歐式空間中而是在高緯高斯空間中進行了計算,高緯高斯的均值作爲position(也就是最終的結果)

和之前的Trans系列魯文一樣,也是計算的勢能差值,最小化了全局的合葉損失函數。因爲實體/關係是在高緯空間中進行表徵的,無法利用歐式空間中的點之間的計算方法,所以在本文中計算從頭實體通過關係映射得到向量和標準尾實體之間的勢能差值採用的概率之間的計算方法。

論文中的基礎定義符號如下圖

1

對於每個頭實體、尾實體、關係都是個高斯分佈。

那麼利用翻譯的功能,即將頭實體通過關係翻譯得到的備選實體也是個高斯分佈,那麼就需要計算的這個備選的實體高斯分佈和真實的尾實體高斯分佈之間的距離。

論文中提出了兩種計算方法,對稱的勢能差損失,非對稱的勢能差

  • 非對稱的勢能差損失函數

    非對稱的方法利用的是KL散度的計算方法

    先得到備選實體的分佈PeP_e
    1
    然後利用KL算法計算備選實體和標準尾實體之間的距離

    1
    由於KL散度是非對稱的,那麼這種勢能差的計算方法也是非對稱的,也就是ε(h,r,t)ε(t,r,h)\varepsilon(h,r,t)\neq\varepsilon(t,r,h)

    然後利用該損失函數,通過SGD來進行參數更新,具體的參數計算結果如下圖

    1

  • 對稱的勢能差損失函數

    在論文中提到還嘗試了另外一個對稱的損失函數,也就是
    ε(h,r,t)+ε(t,r,h)\varepsilon(h,r,t)+\varepsilon(t,r,h),把正反兩個方向的KL散度相加,但是實驗結果並沒有提升,所以沒有使用

    對稱的方法實際上就是將兩個概率(一個將頭實體通過關係進行翻譯的備選實體和標準尾實體)的分佈想乘做積分

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EVONvdql-1592649983983)(https://note.youdao.com/yws/public/resource/f97529f58c24ed5763a838a3bf7976d1/xmlnote/A34D41FAE504478F9004CC372A637D5E/3928)]

    具體的求梯度方法如下圖所示

    1

僞代碼

KG2E 的僞代碼如下圖所示

1

和之前的算法類似,通過隨機初始化的方法對於每個實體和關係初始化一個高斯分佈,其中高斯分佈的均值是隨機初始化的,高斯分佈的協方差矩陣是通過兩個超參數來控制的上下限。

然後進行對正樣本採樣,催正樣本採樣後生成負樣本,負樣本的生成方式有兩種一種是隨機改變頭尾實體,一種是改變關係。

然後將正樣本+兩個負樣本進行計算。

計算方法需要提前確定是對稱的還是非對稱的。

然後在進行梯度計算修改參數。

在每一輪的計算中都需要對均值和協方差矩陣進行規範化,

代碼

在原始論文中沒有給出初始代碼,我在網絡上也沒有找到KG2E的代碼(python語言,TF、pytorch框架),如果您曾經對這篇論文采用進行了復現或者您手裏有合適的代碼,如果可以分享的話,麻煩您郵件和我溝通聯繫 [email protected] ,在此提前對您表示感謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章