《Graph Representation Learning》【4】——Multi-relational Data and Knowledge Graphs
4 Multi-relational Data and Knowledge Graphs
文章目錄
這一部分,我們將介紹多關係圖(multi-relational graph)中的淺層嵌入方法。
Knowledge graph completion
這一章的大多數方法,最初都是為完成知識圖譜任務而設計的。
在多關係圖中,我們一般會定義這樣的三元組(tuple):
e
=
(
u
,
τ
,
v
)
e=(u,\tau,v)
e=(u,τ,v),來表示兩個節點之間存在某種關係。一般來說,知識圖譜任務的目標是預測圖中缺失的邊,即連結預測(link prediction)。
在本章中,我們將簡要概述多關係圖的嵌入方法。
4.1 Reconstructing multi-relational data
與簡單圖一樣,我們可以將多關係圖的嵌入視為重構(reconstruction)任務。給定兩個節點的嵌入,我們的目標是重構這些節點之間的關係,不同之處在於,我們必須處理多種不同型別的關係。
為了能夠適應多關係圖,我們對簡單圖中的解碼器進行了如下改進:
(1)輸入:一對節點的嵌入向量+關係型別。
(2)輸出:邊
(
u
,
τ
,
v
)
(u,\tau,v)
(u,τ,v)存在的概率。
最早的多關係嵌入方法是RESCAL,它的解碼器為:
D
E
C
(
z
u
,
τ
,
z
v
)
=
z
u
T
R
τ
z
v
DEC(z_u,\tau,z_v)=z_u^TR_{\tau} z_v
DEC(zu,τ,zv)=zuTRτzv
其中
R
τ
∈
R
d
×
d
R_{\tau}\in \mathbb R^{d\times d}
Rτ∈Rd×d是關係τ特有的可學習矩陣。
重構損失定義為:
L
=
∑
u
∈
V
∑
v
∈
V
∑
τ
∈
R
∣
∣
D
E
C
(
z
u
,
τ
,
z
v
)
−
A
[
u
,
τ
,
v
]
∣
∣
2
\mathcal L=\sum_{u\in V}\sum_{v\in V}\sum_{\tau \in \mathcal R}||\ DEC(z_u,\tau,z_v)-\mathcal A[u,\tau,v]\ ||^2
L=u∈V∑v∈V∑τ∈R∑∣∣ DEC(zu,τ,zv)−A[u,τ,v] ∣∣2
其中
A
∈
R
∣
V
∣
×
∣
R
∣
×
∣
V
∣
\mathcal A\in \mathbb R^{|V|\times|\mathcal R|\times|V|}
A∈R∣V∣×∣R∣×∣V∣為多關係圖的鄰接張量(adjacent tensor)。
Loss functions, decoders, and similarity functions
正如我們前面所提到的,編解碼器模型有3個非常重要的概念。
譯碼器在一對節點嵌入之間給出一個分數;相似性函式定義了我們要編碼的節點相似度的型別;損失函式告訴我們,如何評估解碼器輸出與真實近似值之間的差異。
有一點需要注意:在多關係圖解碼器中,相似性度量(similarity measure)一般直接定義為鄰接張量(adjacent tensor)。換言之,本章中的所有方法都假設我們只重構一階鄰居。這個因為,在多關係圖中定義高階鄰域關係是困難的,並且大多數多關係嵌入方法都是專門為關係預測而設計的。
因此,不同的解碼器和損失函式,衍生出了不同的嵌入方法。
4.2 Loss functions
上面提到的重構損失中的損失函式,主要有2個問題:
(1)計算代價昂貴。可以看到從裡到外有3層求和操作,時間複雜度很高。但實際情況是,我們的圖一般都是稀疏的,圖中存在的邊的數量遠小於求和操作的計算量,這就說明了很多運算都是沒必要的。
(2)鄰接張量是「0,1」二值化的,更接近於分類任務,均方誤差適用於迴歸任務,但卻不適合進行二值比較。
Cross-entropy with negative sampling
一種比較合適的損失函式是負取樣下的交叉熵損失,它和之前在node2vec中提到的損失函式十分相似,惟一的區別在於這裡使用的是多關係解碼器(考慮了關係的型別)。
L
=
∑
(
u
,
τ
,
v
)
∈
E
−
log
(
σ
(
D
E
C
(
z
u
,
τ
,
z
v
)
)
)
−
γ
E
v
n
∼
P
n
,
u
(
V
)
[
log
(
σ
(
−
D
E
C
(
z
u
,
τ
,
z
v
n
)
)
)
]
\mathcal L=\sum_{(u,\tau,v)\in E}-\log(\sigma(DEC(z_u,\tau,z_v)))-\gamma \mathbb E_{v_n\sim P_{n,u}(V)}[\log(\sigma(-DEC(z_u,\tau,z_{v_n})))]
L=(u,τ,v)∈E∑−log(σ(DEC(zu,τ,zv)))−γEvn∼Pn,u(V)[log(σ(−DEC(zu,τ,zvn)))]
通過觀察上述式子,為了使損失儘可能的小,我們希望正樣本的得分儘可能高,即
D
E
C
(
z
u
,
τ
,
z
v
)
DEC(z_u,\tau,z_v)
DEC(zu,τ,zv)的值儘可能的大;負樣本的得分儘可能的低,即
D
E
C
(
z
u
,
τ
,
z
v
n
)
DEC(z_u,\tau,z_{v_n})
DEC(zu,τ,zvn)的值儘可能的低。
其中
P
n
,
u
(
V
)
P_{n,u}(V)
Pn,u(V)代表負樣本節點在所有節點中的分佈。解碼器的輸出之所以送入
σ
(
⋅
)
\sigma(\cdot)
σ(⋅),是想得到一個[0,1]之間的標準化分數,作為節點之間存在邊的概率。
在實際操作中,後一項負取樣的期望值一般使用蒙特卡洛近似,改動如下:
L
=
∑
(
u
,
τ
,
v
)
∈
E
(
−
log
(
σ
(
D
E
C
(
z
u
,
τ
,
z
v
)
)
)
−
∑
v
n
∈
P
n
,
u
[
log
(
σ
(
−
D
E
C
(
z
u
,
τ
,
z
v
n
)
)
)
]
)
\mathcal L=\sum_{(u,\tau,v)\in E}\left(-\log(\sigma(DEC(z_u,\tau,z_v)))-\sum_{v_n\in P_{n,u}}[\log(\sigma(-DEC(z_u,\tau,z_{v_n})))]\right)
L=(u,τ,v)∈E∑⎝⎛−log(σ(DEC(zu,τ,zv)))−vn∈Pn,u∑[log(σ(−DEC(zu,τ,zvn)))]⎠⎞
其中
P
n
,
u
P_{n,u}
Pn,u負取樣得到的一組節點集。關於如何進行負取樣,有一種方法是,隨機替換正樣本中的頭節點或尾節點來生成負樣本,在此不過多贅述。
Max-margin loss
另一種損失函式就是margin loss(我也不知道中文應該怎麼翻譯?maybe最大邊緣損失?),也被稱為hinge loss,使用的是一種對正負樣本進行對比估計的方法。
L
=
∑
(
u
,
τ
,
v
)
∈
E
∑
v
n
∈
P
n
,
u
max
(
0
,
−
D
E
C
(
z
u
,
τ
,
z
v
)
+
D
E
C
(
z
u
,
τ
,
z
v
n
)
+
Δ
)
\mathcal L=\sum_{(u,\tau,v)\in E}\sum_{v_n\in P_{n,u}}\max(0,-DEC(z_u,\tau,z_v)+DEC(z_u,\tau,z_{v_n})+\Delta)
L=(u,τ,v)∈E∑vn∈Pn,u∑max(0,−DEC(zu,τ,zv)+DEC(zu,τ,zvn)+Δ)
其中
Δ
\Delta
Δ是margin,如果正樣本的分數比負樣本的分數大,那麼我們就得到了一個比較小的損失。
4.3 Multi-relational decoders
之前提到過的RESCAL模型,它的解碼器中可學習的引數數量級為 O ( d 2 ) O(d^2) O(d2)。由此可見,它的引數數量還是太多了,我們想進一步減少引數的數量到 O ( d ) O(d) O(d)。下面會介紹一些知識圖譜中經典模型。
Translational decoders
最最經典的翻譯模型啊啊!我還專門用pytorch復現過TransE模型。
TransE模型的解碼器定義為:
D
E
C
(
z
u
,
τ
,
z
v
)
=
−
∣
z
u
+
r
τ
−
z
v
∣
,
(
z
u
,
r
τ
,
z
v
∈
R
d
)
DEC(z_u,\tau,z_v)=\ -|z_u+r_{\tau}-z_v|,\ \ \ \ (z_u,r_{\tau},z_v\in \mathbb R^d)
DEC(zu,τ,zv)= −∣zu+rτ−zv∣, (zu,rτ,zv∈Rd)
翻譯,說白了就是利用了平移不變現象,希望
z
u
+
r
τ
≈
z
v
z_u+r_{\tau}\approx z_v
zu+rτ≈zv,也就是邊存在的概率和翻譯後的頭結點與尾節點之間的距離成正比,它是一個很強大的baseline。
但是TransE模型的侷限性在於它的簡單性,因此有一些模型對其進行了改進和擴充套件,統稱為TransX系列模型,多了一個對於節點嵌入向量的可訓練變換
g
i
,
τ
(
⋅
)
g_{i,\tau}(\cdot)
gi,τ(⋅)。
D
E
C
(
z
u
,
τ
,
z
v
)
=
−
∣
g
1
,
τ
(
z
u
)
+
r
τ
−
g
2
,
τ
(
z
v
)
∣
DEC(z_u,\tau,z_v)=\ -|g_{1,\tau}(z_u)+r_{\tau}-g_{2,\tau}(z_v)|
DEC(zu,τ,zv)= −∣g1,τ(zu)+rτ−g2,τ(zv)∣
Multi-linear dot products
使用了點積編碼器的模型是DistMult,它主要對簡單圖上的點積編碼器進行了推廣和泛化。
D
E
C
(
z
u
,
τ
,
z
v
)
=
<
z
u
,
r
τ
,
z
v
>
=
∑
i
=
1
d
z
u
[
i
]
×
r
τ
[
i
]
×
z
v
[
i
]
DEC(z_u,\tau,z_v)=<z_u,r_\tau,z_v>=\sum_{i=1}^dz_u[i]\times r_\tau[i]\times z_v[i]
DEC(zu,τ,zv)=<zu,rτ,zv>=i=1∑dzu[i]×rτ[i]×zv[i]
簡單粗暴的後果就是隻能表示對稱關係,無法表示有向或非對稱關係。
Complex decoders
針對DistMult模型的缺點,ComplEx模型引入了複數值嵌入。
D
E
C
(
z
u
,
τ
,
z
v
)
=
R
e
(
<
z
u
,
r
τ
,
z
‾
v
>
)
=
R
e
(
∑
i
=
1
d
z
u
[
i
]
×
r
τ
[
i
]
×
z
‾
v
[
j
]
)
DEC(z_u,\tau,z_v)=Re(<z_u,r_\tau,\overline z_v>)=Re\left(\sum_{i=1}^dz_u[i]\times r_\tau[i]\times \overline z_v[j]\right)
DEC(zu,τ,zv)=Re(<zu,rτ,zv>)=Re(i=1∑dzu[i]×rτ[i]×zv[j])
看起來貌似和DistMult沒什麼太大的區別,實際上裡面參與運算的向量都是複數向量,即
z
u
,
r
τ
,
z
‾
v
∈
C
d
z_u,r_{\tau},\overline z_v\in \mathbb C^d
zu,rτ,zv∈Cd。Re代表取實部,
z
‾
v
\overline z_v
zv是
z
v
z_v
zv的複共軛。
另一個複數模型是RotatE,它將解碼器定義為複平面上的旋轉(rotation)。
D
E
C
(
z
u
,
τ
,
z
v
)
=
−
∣
∣
z
u
∘
r
τ
−
z
v
∣
∣
DEC(z_u,\tau,z_v)=\ -||z_u\circ r_{\tau}-z_v||
DEC(zu,τ,zv)= −∣∣zu∘rτ−zv∣∣
其中
∘
\circ
∘為哈達瑪積,所有的向量均為複數向量,且
∣
r
τ
[
i
]
∣
=
1
|r_\tau[i]|=1
∣rτ[i]∣=1,對應於複平面上的旋轉。
4.3.1 Representational abilities
我們可以根據模型在不同的關係邏輯模式上的表達能力,來評價各種多關係解碼器。
Symmetry and anti-symmetry
一個重要的問題是,不同的解碼器是否能夠同時建模對稱和反對稱關係。
Inversion
與對稱相關的是逆(反轉)的概念,其中的一個關係指示了另一個關係的存在,它們的方向相反。
Compositonality
我們還可以考慮,解碼器是否可以編碼關係表示之間的組合性。
一般來說,考慮這些關係模式有助於比較不同的多關係解碼器的表達能力。在實踐中,我們可能不寄希望於這些模式一直成立,但可能有許多關係在某種程度上表現出這些模式。
相關文章
- QGRL: Quaternion Graph Representation Learning for Heterogeneous Feature Data Clustering翻譯
- 論文閱讀 Inductive Representation Learning on Temporal Graphs
- 論文解讀(BGRL)《Bootstrapped Representation Learning on Graphs》bootAPP
- 論文解讀(MVGRL)Contrastive Multi-View Representation Learning on GraphsASTView
- 論文解讀GALA《Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learning》
- 論文解讀(GRACE)《Deep Graph Contrastive Representation Learning》AST
- 論文解讀(SUGRL)《Simple Unsupervised Graph Representation Learning》
- 論文閱讀 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS
- (AAAI2020 Yao) Graph Few-shot Learning via knowledge transferAI
- 論文解讀(GRCCA)《 Graph Representation Learning via Contrasting Cluster Assignments》AST
- Transformers for Graph RepresentationORM
- 論文解讀(USIB)《Towards Explanation for Unsupervised Graph-Level Representation Learning》
- 論文解讀(GMI)《Graph Representation Learning via Graphical Mutual Information Maximization》ORM
- 論文解讀(SUBG-CON)《Sub-graph Contrast for Scalable Self-Supervised Graph Representation Learning》AST
- 論文解讀(GraphDA)《Data Augmentation for Deep Graph Learning: A Survey》
- 論文閱讀 dyngraph2vec: Capturing Network Dynamics using Dynamic Graph Representation LearningAPT
- 論文解讀(MERIT)《Multi-Scale Contrastive Siamese Networks for Self-Supervised Graph Representation Learning》AST
- Evolving Losses for Unsupervised Video Representation LearningIDE
- 論文解讀(SimGRACE)《SimGRACE: A Simple Framework for Graph Contrastive Learning without Data Augmentation》FrameworkAST
- 論文解讀( N2N)《Node Representation Learning in Graph via Node-to-Neighbourhood Mutual Information Maximization》ORM
- Momentum Contrast (MoCo) for Unsupervised Visual Representation LearningAST
- 實體對齊4.EMNLP2018:(GCN-Align)Cross-lingual Knowledge Graph Alignment via Graph Convolutional NetworksGCROS
- 【Bias 05】Representation Learning with Statistical Independence to Mitigate BiasMIT
- 第一屆Learning on Graphs Conference即將舉行
- [Paper Reading] VQ-VAE: Neural Discrete Representation Learning
- 知識圖譜Knowledge Graph構建與應用
- 論文解讀(AutoSSL)《Automated Self-Supervised Learning for Graphs》
- Multi-Patch Prediction Adapting LLMs for Time Series Representation LearningAPT
- 論文閱讀-Causality Inspired Representation Learning for Domain GeneralizationAI
- 論文解讀(GMT)《Accurate Learning of Graph Representations with Graph Multiset Pooling》
- 論文解讀(ValidUtil)《Rethinking the Setting of Semi-supervised Learning on Graphs》Thinking
- 在SAP Data Intelligence裡測試data Generator graphIntel
- 論文解讀(GraphSMOTE)《GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks》
- 論文解讀(Graphormer)《Do Transformers Really Perform Bad for Graph Representation?》ORM
- Machine Learning (5) - Training and Testing DataMacAI
- 論文解讀(ClusterSCL)《ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs》AST
- 論文解讀(MGAE)《MGAE: Masked Autoencoders for Self-Supervised Learning on Graphs》
- 論文解讀(LG2AR)《Learning Graph Augmentations to Learn Graph Representations》