圖表徵學習
TransX系列算法
空間傳遞不變性
Queen-women+man = king
TransE
對於所有的實體和關係隨機初始化一個向量,使得實體和關係在同一空間內表徵,使得每個正確的三元組可以從頭實體通過關係翻譯到尾實體上,定義從頭實體翻譯到尾實體之後與標註尾實體之間的距離爲“勢能差”,找到整體最小的勢能差的實體和關係向量。
存在的問題
TransE模型很簡單也帶來一個很大的問題就是他只適合處理一對一的關係,舉例來說(華科、地點、武漢)和(黃鶴樓、地點、武漢)出現在KG中時,TransE的表示會將“華科”和“黃鶴樓”的向量表示計算的很接近,但是實際上這兩者之間的關係並不大。
TransH怎麼操作
它解決了一對多和多對一的關係問題,基本思想是針對每個關係r,都把實體投影到有關於這個r的一個空間上去,在這個r的空間上,做TransE。實體、關係在同一個空間內,但是需要做一次投影
TransE和TransH存在什麼問題
TransE和TransH模型都假設實體和關係是在同一個語義空間的向量,這樣相似的實體會在空間中相近的位置,然而每一個實體都可以有很多方面,而不同的關係關注的是實體不同的方面,所以TransR對每個三元組,首先應將實體投影到對應的關係空間中,然後再建立從頭實體到尾實體的翻譯關係。
實體和關係在不同的空間中
TransR怎麼操作
通過一個轉換矩陣,將實體轉換到關係所在的空間中,做TransE
TransE、TransH、TransR存在什麼問題
1.在同一個關係r下,投、尾實體共享相同的變換矩陣,然而,一個關係的頭、尾實體的類型或屬性可能差異巨大。例如,對於三元組(美國、總統、奧巴馬),美國和奧巴馬的類型完全不同,一個是國家,一個是人物
2.從實體空間到關係空間的投影是實體和關係之間的交互過程,因此TransR讓變換矩陣僅與關係有關是不合理的
3.與TeansE和TransH相比,TransR由於引入了空間投影,使得TransR模型參數急劇增加,計算複雜度大大提高
TransD怎麼操作
一個實體用兩個向量來表示,一個用來構建轉移空間,一個用來表示語義內容
RandomWalk系列算法
在不同的空間內對實體的關係進行表徵,利用傳遞不變性,實現從頭實體到尾實體的翻譯
DeepWalk
DeepWalk系列算法思路
如何在圖譜中構建上下文。藉助語言建模word2vec中的一個模型skip-gram來學習結點的向量表示。
做法
通過不同的遊走方法構建不同方式的上下文,實現詞向量。
將網絡中的節點模擬爲語言模型中的單詞,而節點的序列(可由隨機遊走得到)模擬爲語言中的句子,作爲skip-gram的輸入
RandomWalk如何實現
隨機遊走:深度遊走,廣度遊走
詞向量編碼:skip-gram
Node2vector如何實現
隨機遊走:深度遊走和廣度遊走基於概率控制
詞向量編碼:skip-gram
struc2vec如何實現
隨機遊走:(1)根據不同距離的鄰居信息,分別計算計算節點對的結構
(2)構造多層帶權有向圖M,其中每層都是帶權無向圖,層與層之間是有向的
(3)在M中隨機遊走,構造上下文序列
詞向量編碼:skip-gram