Heterogeneous Graph
有不止一种edge、node的graph就是Heterogeneous Graph
Heterogeneous Graph可以用4元组来表示: G = ( V , E , R , T ) G=(V,E,R,T) G=(V,E,R,T)
其中 v i ∈ V v_i \in V vi∈V表示node,node 的type可以通过 T ( v i ) T(v_i) T(vi)得到
edge用3元组表示 ( v i , r , v j ) ∈ E (v_i, r, v_j) \in E (vi,r,vj)∈E,关系 r ∈ R r \in R r∈R
例子
Relational GCN (RGCN)
用来处理Heterogeneous Graph的GCN扩展形式,Ideas can easily be extended into other RGNN (RGraphSAGE, RGAT, etc.)
graph is directed
Use different neural network weights for different relation types
如下图所示,不同的relation 的weight matrix对应了不同的颜色
公式
参数过多
对每一种关系,在每一层都有不同的weight matrix,size= ( d ( l + 1 ) , d ( l ) ) (d^{(l+1)}, d^{(l)}) (d(l+1),d(l))
而在现实的很多类型的graph里有非常多的relation type,则会有非常多的relation weight matrix,参数会非常多
参数越多,相对数据越少,就越可能过拟合
以下为解决办法:
(1) Use block diagonal matrices
matrices为matrix的复数
Key insight: make the weights sparse!
block diagonal matrices是形如下图的matrix
sparse matrix 起的作用是 减少了需要估计的参数,matrix中为0的参数不需要估计
假设使用B个小matrix,则每个小matrix的size为 ( d ( l + 1 ) B , d ( l ) B ) (\frac{d^{(l+1)}}{B}, \frac{d^{(l)}}{B}) (Bd(l+1),Bd(l)),参数数量由原来的 d ( l + 1 ) × d ( l ) d^{(l+1)}\times d^{(l)} d(l+1)×d(l)减少为 B × d ( l + 1 ) B × d ( l ) B = d ( l + 1 ) × d ( l ) B B \times \frac{d^{(l+1)}}{B} \times \frac{d^{(l)}}{B}=\frac{d^{(l+1)}\times d^{(l)}}{B} B×Bd(l+1)×Bd(l)=Bd(l+1)×d(l),即变成原来的 1 B \frac{1}{B} B1
作用
减少参数会使得加速训练、避免过拟合、模型更robust等
缺点
使用这样的矩阵使得只有临近维度的参数可以interact
问题:
怎么决定是什么样的block diagonal matrices?B是多少?每一层应该怎么变化?
(2) Basis/Dictionary learning
Key insight: Share weights across different relations
使用B个基础matrix,各个关系的matrix由基础matrix 线性组合得到。
W
r
=
∑
b
=
1
B
a
r
b
⋅
V
b
W_r=\sum\limits_{b=1}^B a_{rb} \cdot V_b
Wr=b=1∑Barb⋅Vb
其中 V b V_b Vb为基础矩阵, a r b a_{rb} arb为关系 r r r针对基础矩阵 b b b的权重。
需要train的参数只有基础matrix和和线性组合时的权重,而基础matrix可以远小于关系数量,所以参数减少了很多。
问题:怎么确定B有多少个?
Task
node classification只需将node representation作为输出层的输入即可
Link prediction
除dataset split方法外和以前的Link prediction一样
dataset split
- 将各个关系(link)都分成4部分:
(1) Training message edges
(2) Training supervision edges
(3) Validation edges
(4) Test edges - 将各个关系的4部分分别合起来,形成完整的4个部分
这样做的目的是为了让每个关系的样本能在数据集的4部分均匀分布,可以防止有些数量较少的关系集中于某些数据集。
Knowledge graph completion
现实中的KG中node、link都非常多,node type、link type也非常多;
为什么要 KG completion?
且KG中有大量缺失的信息,例如FreeBase中93.8%的person have no place of birth and 78.5% have no nationality!
Knowledge graph completion就是要自动的补齐这些缺失的信息。
task
given (head, relation), predict missing tails
例如给定(J.K. Rowling, genre(类型))预测具体的genre是什么,相当于问了一个问题 “J.K. Rowling 的genre 是什么?”
Given a true triple ( h e a d , r e l a t i o n , t a i l ) (head, relation,tail) (head,relation,tail), the goal is that the embedding of ( h , r ) (h, r) (h,r) should be close to the embedding of t t t.
Knowledge graph embedding
Relation Patterns
不同的关系有可能有不同的性质,例如Symmetry、Inverse relation、传递性等
以下为4种关系的性质。这里讲这个的目的是要判断各种模型的是否能识别这些关系的特性。
Symmetric (Antisymmetric) Relations
Symmetric: r ( h , t ) ⇒ r ( t , h ) r(h,t) \Rightarrow r(t,h) r(h,t)⇒r(t,h)
例如 Family, Roommate
Antisymmetric: r ( h , t ) ⇒ ¬ r ( t , h ) r(h,t) \Rightarrow \neg r(t,h) r(h,t)⇒¬r(t,h)
Antisymmetric: h和t有关系r,则t和h不可能有关系r
例如:Hypernym(上位词)
Inverse Relations
r 1 ( h , t ) ⇒ r 2 ( t , h ) r_1(h,t) \Rightarrow r_2(t,h) r1(h,t)⇒r2(t,h)
h和t有关系 r 1 r_1 r1,则t和h一定有另一个关系 r 2 r_2 r2
例如 (Advisor, Advisee)
Composition (Transitive) Relations
Transitive relations: r ( x , y ) ∧ r ( y , z ) ⇒ r ( x , z ) r(x,y) \wedge r(y,z) \Rightarrow r(x,z) r(x,y)∧r(y,z)⇒r(x,z)
传递性,例如friends,x是y的friend,y是z的friend,则x和z也是friend
composition (合成) relations: r 1 ( x , y ) ∧ r 2 ( y , z ) ⇒ r 3 ( x , z ) r_1(x,y) \wedge r_2(y,z) \Rightarrow r_3(x,z) r1(x,y)∧r2(y,z)⇒r3(x,z)
例如:My mother’s husband is my father
1-to-N relations
例如 “StudentsOf”,即一个老师对应多个学生
Model
课程内容只用到了shallow node embedding,也可以使用GNN,但是没讲
下图是各个模型能encode的relation类型,实际情况下各种KG差别很大,没有绝对最好的模型,按需选择
TransE
For a triple
(
h
,
r
,
t
)
(h, r, t)
(h,r,t),
h
,
r
,
t
∈
R
d
h,r,t \in R^d
h,r,t∈Rd(都是d维向量):
h
+
r
≈
t
h+r\approx t
h+r≈t if the given fact is true
else
h
+
r
≠
t
h+r \neq t
h+r=t
例如: 奥巴马 + 国籍 ≈ \approx ≈ 美国,奥巴马 + 国籍 ≠ \neq = 英国
Scoring function: f r ( h , t ) = − ∣ ∣ h + r − t ∣ ∣ f_r(h,t)=-||h+r-t|| fr(h,t)=−∣∣h+r−t∣∣
具体方法没有详细介绍,可以大概参考下图
作用
得到encode了三元组的 node、relation 的embedding
对各种关系的表达能力
-
Symmetric Relations
不能,如图所示h+r到达了t,t+r不会返回到h
-
Antisymmetric Relations
能,如上图所示,解释同上 -
Inverse Relations
能
-
Composition (Transitive) Relations
能,预先设定了关系 r 3 = r 1 + r 2 r_3=r_1+r_2 r3=r1+r2, x + r 1 x+r_1 x+r1到达了y, y + r 2 y+r_2 y+r2到达了z,则 x + r 3 x+r_3 x+r3可以到达z
-
1-to-N relations
不能,因为从一个点出发加一个关系,只能到达1个点,不能是多个点
TransR
TransE models translation of any relation in the same embedding space
TransR design a new space for each relation and do translation in relation-specific space
model entities as vectors in the entity space R d R^d Rd,对每个relation构建一个embedding space, r ∈ R k r \in R^k r∈Rk,用 M r ∈ R k × d M_r \in R^{k\times d} Mr∈Rk×d, 将entity从entity space 映射到对应的relation space
M r M_r Mr是relation specific的,每个relation都有一个对应的 M r M_r Mr
问题:关系多时也需要很多关系矩阵,需要想办法减少参数吗?
对各种关系的表达能力
-
Symmetric Relations
能,如下图所以,可以将h和t映射到 r space的同一个点,然后让 r = 0 r=0 r=0
-
Antisymmetric Relations
能,这个只要r space和entity space 类似即可
-
Inverse Relations
能
-
Composition (Transitive) Relations
不能,TransR中不同的relation处于不同的空间,而Composition Relation需要不同的relation处于同一个空间,所以不可以 -
1-to-N relations
能,如下图所示,只需要同类的entity都映射到r space的同一个点即可
DistMult
entity和relation处于同一个k维空间
scoring function: f r ( h , t ) = < h , r , t > = ∑ k = 1 K h k ⋅ r k ⋅ t k f_r(h,t)=<h,r,t>=\sum\limits_{k=1}^K h_k \cdot r_k \cdot t_k fr(h,t)=<h,r,t>=k=1∑Khk⋅rk⋅tk
即将h、r、t 3个向量各个维度分别相乘然后再求和
当(h,r,t)是真实三元组时, f r ( h , t ) f_r(h,t) fr(h,t)应该大于0,否则小于0
和 h ⋅ r h\cdot r h⋅r 、 t t t 之间的cosine similarity ( cos θ = a ⃗ ⋅ b ⃗ ∣ ∣ a ⃗ ∣ ∣ × ∣ ∣ b ⃗ ∣ ∣ \cos{\theta}=\frac{\vec{a} \cdot \vec{b}}{||\vec{a}|| \times ||\vec{b}||} cosθ=∣∣a∣∣×∣∣b∣∣a⋅b) 类似 ,如下图所示,如果 h ⋅ r h\cdot r h⋅r 、 t t t接近,score 应该大于0,否则小于0
相当于给 h ⋅ r h\cdot r h⋅r定义了一个超平面,把对应的正例和负例区分开
问题:
训练时的优化目标是什么?让正例的score > 0,负例score<0吗?
考虑的只是大于0小于0吗?具体有多大或者多小不考虑吗?
课程里没讲清楚,需要时再去查
对各种关系的表达能力
-
Symmetric Relations
能,因为h和t交换顺序后计算时是完全一样的, f r ( h , t ) = < h , r , t > = ∑ k = 1 K h k ⋅ r k ⋅ t k = < t , r , h > = f r ( t , h ) f_r(h,t)=<h,r,t>=\sum\limits_{k=1}^K h_k \cdot r_k \cdot t_k=<t,r,h>=f_r(t, h) fr(h,t)=<h,r,t>=k=1∑Khk⋅rk⋅tk=<t,r,h>=fr(t,h) -
Antisymmetric Relations
不能,因为h和t交换顺序后计算时是完全一样的,只能表达对称的(一样的关系) -
Inverse Relations
不能,Inverse Relation的意思是有 < h , r 1 , t > <h,r_1,t> <h,r1,t>则必然有 < t , r 2 , h > <t,r_2,h> <t,r2,h>,即 f r 1 ( h , t ) > 0 f_{r_1}(h,t)>0 fr1(h,t)>0且 f r 2 ( t , h ) > 0 f_{r_2}(t, h)>0 fr2(t,h)>0,如果满足则 r 1 r_1 r1和 r 2 r_2 r2会非常相似。而inverse relation需要两个关系是相反的。 -
Composition (Transitive) Relations
不能,两个三元组中的(head, relation) pair分别定义了一个超平面,而两个超平面不能被一个超平面表示。
课程里就是这么讲的,很不清楚,有需要再深究 -
1-to-N relations
能,如下图所示 t 1 t_1 t1、 t 2 t_2 t2和 h ⋅ r h \cdot r h⋅r的夹角都小于90度, t 1 t_1 t1、 t 2 t_2 t2都在 h ⋅ r h \cdot r h⋅r的范围内
ComplEx
定义在复数空间上,没搞懂,先不做笔记,需要再回来看