PaperReading-TransR,《Learning Entity and Relation Embeddings for Knowledge Graph Completion

本文記錄了閱讀TransR論文時的相關內容,如果有做相關工作的同學,歡迎與我溝通聯繫 [email protected]

背景

TransR論文的提出還是爲了來解決在TransE中無法解決的自反、一對多、多對一的關係問題。
有一個很顯然的想法就是,在知識圖譜中的實體和關係是不一樣,那麼他們存在的語義空間也就應該不一樣,實體空間就是專門的來表示實體上的屬性,關係空間就是來表示實體之間的關係內容的。
TransR就是利用這樣的想法,對於實體和關係分別構建了一個空間(空間維度可以一樣,也就是說當兩個空間維度一樣的時候實際上和TransE是一樣的)。在計算三元組的勢能差時,由於實體和關係不在同一個空間中,無法直接的計算,需要用一種映射方法將實體映射到對應的關係空間裏面,然後利用在關係空間裏面的實體的映射向量進行計算。

思路

在論文中的圖像也清楚的顯示TransR 和TransE的區別
1
對於每一個關係,都有一個映射矩陣,這個矩陣負責將實體(包括頭實體和尾實體)從實體空間映射到關係空間,然後在關係空間中進行計算(論文中寫的是在關係空間中進行TransE)
論文上的圖片在原始的實體空間中的對於每一類實體(頭實體、尾實體)中都是聚集在一起的(三角形和圓形);但是通過映射之後,和這個關係有關的實體被聚集其它的被遠離(三角形都遠離了圓形,而圓形是具有這個關係的)。從圖上可以看出來,通過對某個特定關係翻譯矩陣的翻譯功能,可以將在本來在實體空間中無法區分的實體,有了很好的區分,有了很好的區分的結果就是最終的編碼效果會更好。

方法

1
具體的操作方法在原始的論文中可以看到,就是對於每個關係創建了一個映射矩陣,將實體映射到了關係空間之後就和普通的TransE一樣了。

改進

在論文中又提出了一種對於TRansR的改進方法,稱爲CTransR,其中C是cluster聚類的意思。
具體而言,就是在進行CTransR 之前,先要進行一次初始化(論文中採用的TransE),已經得到了最初版本的向量編碼結果,利用這個最初的向量編碼結果來進行聚類,將同一個關係下的實體聚類到了不同的團,那麼一個關係向量就被聚類成了好幾個向量,不同的聚類團分別使用自己聚類團的關係向量。
那麼損失函數也發生了變化,原來只是需要計算下通過特定關係的映射矩陣翻譯過來的實體在關係空間中的TransE的勢能差,變成了還需要計算聚類團的關係向量和標準關係向量的距離。標準關係向量也是通過初始化方法獲得的
1
論文中的rcr_c就是不同的聚類團的關係向量,rr就是這個關係的標準向量,MrM_r就是這個關係的映射矩陣。
在CTransR中,雖然每個先將實體進行聚類之後有了不同的聚類團關係向量,但是每個關係的映射矩陣還是隻有一個,這也就能說明,雖然通過聚類的方法將關係用不同的向量來表示,但是在大體上還是一樣的,因爲用的是一個映射矩陣,當映射矩陣都不一樣了,那麼就是徹底不一樣了。

求助

我查看了很多網上的鏈接,但是都沒有找到論文的原生代碼,如果您恰好手中又TransR/CTransR的代碼,如果可以分享的話,麻煩您通過郵件([email protected])和我聯繫,在此提前向您表示感謝!

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