cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings
诸神缄默不语-个人CSDN博文目录
cs224w(图机器学习)2021冬季课程学习笔记集合
文章目录
- 1. Heterogeneous Graphs and Relational GCN (RGCN)
- 2. Knowledge Graphs: KG Completion with Embeddings
- 3. Knowledge Graph Completion: TransE, TransR, DistMult, ComplEx
YouTube 视频观看地址1 视频观看地址2 视频观看地址3
本章主要内容:
本章首先介绍了 异质图heterogeneous graph 和 relational GCN (RGCN)。
接下来介绍了 知识图谱补全knowledge graph completion 任务,以及通过图嵌入方式的四种实现方式及其对关系表示的限制:TransE,TransR,DistMult,ComplEx。
1. Heterogeneous Graphs and Relational GCN (RGCN)
- 本节课任务:
之前课程的内容都囿于一种边类型,本节课拓展到有向、多边类型的图(即异质图)上。
介绍RGCN,知识图谱,知识图谱补全任务的表示方法。
图的节点和边都可以是异质的 - 异质图:
节点集 VVV,节点 viv_ivi
边集 EEE,边 (vi,r,vj)∈E(v_i,r,v_j)\in E(vi,r,vj)∈E
节点类型 T(vi)T(v_i)T(vi)
边类型集合 RRR,边类型 rrr - 异质图举例:生物医学知识图谱或事件图
- Relational GCN1
将GCN2拓展到异质图上- 从只有一种边类型的有向图开始:通过GCN学习节点A的表示向量,即沿其入边形成的计算图进行信息传播(message + aggregation)。
- 对于有多种边类型的情况:在信息转换时,对不同的边类型使用不同的权重 WWW
- Relation GCN定义3
公式: hv(l+1)=σ(∑r∈R∑u∈Nvr1cv,rWr(l)hu(l)+Wr(0)hv(l))\mathbf{h}_v^{(l+1)}=\sigma\left(\sum\limits_{r\in R}\sum\limits_{u\in N_v^r}\dfrac{1}{c_{v,r}}\mathbf{W}_r^{(l)}\mathbf{h}_u^{(l)}+\mathbf{W}_r^{(0)}\mathbf{h}_v^{(l)}\right)hv(l+1)=σ(r∈R∑u∈Nvr∑cv,r1Wr(l)hu(l)+Wr(0)hv(l))
(cv,r=∣Nvr∣c_{v,r}=|N_v^r|cv,r=∣Nvr∣ 用节点in-degree进行归一化)message:
对特定关系的邻居:mu,r(l)=1cv,rWr(l)hu(l)\mathbf{m}_{u,r}^{(l)}=\dfrac{1}{c_{v,r}}\mathbf{W}_r^{(l)}\mathbf{h}_u^{(l)}mu,r(l)=cv,r1Wr(l)hu(l)
自环:mv(l)=Wr(0)hv(l)\mathbf{m}_v^{(l)}=\mathbf{W}_r^{(0)}\mathbf{h}_v^{(l)}mv(l)=Wr(0)hv(l)
aggregation:加总邻居和自环信息,应用激活函数:hv(l+1)=σ(Sum({mu,r(l),u∈{N(v)}∪{v}}))\mathbf{h}_v^{(l+1)}=\sigma\left(\text{Sum}(\{\mathbf{m}_{u,r}^{(l)},u\in\{N(v)\}\cup\{v\}\})\right)hv(l+1)=σ(Sum({mu,r(l),u∈{N(v)}∪{v}}))
- RGCN的scalability
每种关系都需要 LLL(层数)个权重矩阵:Wr(1)\mathbf{W}_r^{(1)}Wr(1),Wr(2)\mathbf{W}_r^{(2)}Wr(2) … Wr(L)\mathbf{W}_r^{(L)}Wr(L)
每个权重矩阵的尺寸为 d(l+1)×d(l)d^{(l+1)}\times d^{(l)}d(l+1)×d(l)(d(l)d^{(l)}d(l) 是第 lll 层的隐嵌入维度)参数量随关系类数迅速增长,易产生过拟合问题
2种规则化权重矩阵的方法:block diagonal matrices 和 basis/dictionary learning- block diagonal matrices
使权重矩阵变稀疏,减少非0元素数量。
做法就是如图所示,让权重矩阵成为这样对角块的形式。如果用B个低维矩阵,参数量就会从 d(l+1)×d(l)d^{(l+1)}\times d^{(l)}d(l+1)×d(l) 减少到 B×d(l+1)B×d(l)BB\times\dfrac{d^{(l+1)}}{B}\times\dfrac{d^{(l)}}{B}B×Bd(l+1)×Bd(l)。
这种做法的限制在于,这样就只有相邻神经元/嵌入维度可以通过权重矩阵交互了4。要解决这一限制,需要多加几层神经网络,或者用不同的block结构,才能让不在一个block内的维度互相交流。 - basis learning
在不同关系之间共享权重参数。
做法:将特定关系的权重矩阵表示为 基变换basis transformations 的 线性组合linear combination 的形式:Wr=∑b=1Barb⋅Vb\mathbf{W}_r=\sum^B_{b=1}a_{rb}\cdot\mathbf{V}_bWr=∑b=1Barb⋅Vb(Vb\mathbf{V}_bVb 在关系间共享)
Vb\mathbf{V}_bVb 是 basis matrices 或 dictionary
arba_{rb}arb 是 Vb\mathbf{V}_bVb 的 importance weight
这样我们对每个关系就只需要学习 {arb}b=1B\{a_{rb}\}^B_{b=1}{arb}b=1B 这 B 个标量了
- block diagonal matrices
- 示例
- 实体/节点分类
目标:预测节点标签。
RGCN使用最后一层产生的表示向量。
举例:k-way分类任务,使用节点 AAA 最后一层(prediction head)的输出 hA(L)∈Rk\mathbf{h}_A^{(L)}\in\mathbb{R}^khA(L)∈Rk(比如可能是经softmax输出),每个元素表示对应节点属于对应类的概率 - 链接预测
在异质图中,将每种关系对应的边都分成 training message edges, training supervision edges, validation edges, test edges 四类5(切分每种关系所组成的同质图)。
这么分是因为有些关系类型的边可能很少,如果全部混在一起四分的话可能有的就分不到(比如分不到验证集里……之类的)
RGCN在链接预测任务上的应用:
假定 (E,r3,A)(E,r_3,A)(E,r3,A) 是 training supervision edge,则其他边都是 training message edges。
用RGCN给 (E,r3,A)(E,r_3,A)(E,r3,A) 打分:
首先得到最后一层节点 EEE 和节点 AAA 的输出向量:hE(L)\mathbf{h}_E^{(L)}hE(L) and hA(L)∈Rd\mathbf{h}_A^{(L)}\in\mathbb{R}^dhA(L)∈Rd
然后应用 relation-specific 的打分函数 fr:Rd×Rd→Rf_r:\mathbb{R}^d\times\mathbb{R}^d\rightarrow\mathbb{R}fr:Rd×Rd→R
(举例:fr1(hE,hA)=hETWr1hA,Wr1∈Rd×df_{r_1}(\mathbf{h}_E,\mathbf{h}_A)=\mathbf{h}_E^T\mathbf{W}_{r_1}\mathbf{h}_A,\ \mathbf{W}_{r_1}\in\mathbb{R}^{d\times d}fr1(hE,hA)=hETWr1hA,Wr1∈Rd×d 6)- 训练阶段:用 training message edges 预测 training supervision edges
- 用RGCN给 training supervision edge (E,r3,A)(E,r_3,A)(E,r3,A) 打分。
- 通过 扰乱perturb supervision edge 得到 negative edge7:corrupt (E,r3,A)(E,r_3,A)(E,r3,A) 的尾节点,举例得到 (E,r3,B)(E,r_3,B)(E,r3,B)。
注意 negative edge 不能属于 training message edges 或 training supervision edges。 - 用GNN模型给 negative edge 打分
- 优化交叉熵8 损失函数,使 training supervision edge 上得分最大,negative edge 上得分最低:
ℓ=−logσ(fr3(hE,hA))−log(1−σ(fr3(hE,hB)))\ell=-\log\sigma\left(f_{r_3}(h_E,h_A))-\log(1-\sigma(f_{r_3}(h_E,h_B))\right)ℓ=−logσ(fr3(hE,hA))−log(1−σ(fr3(hE,hB)))
(σ\sigmaσ 是sigmoid函数)
- 验证阶段(测试阶段类似):
用 training message edges 和 training supervision edges 预测 validation edges:(E,r3,D)(E,r_3,D)(E,r3,D) 的得分应该比所有 negative edges 的得分更高
negative edges:尾节点不在 training message edges 和 training supervision edges 中的以 EEE 为头节点、r3r_3r3 为关系的边(举例:(E,r3,B)(E,r_3,B)(E,r3,B) )
具体步骤:- 计算 (E,r3,D)(E,r_3,D)(E,r3,D) 的得分
- 计算所有 negative edges:{(E,r3,v)∣v∈{B,F}}\{(E,r_3,v)|v\in\{B,F\}\}{(E,r3,v)∣v∈{B,F}} 的得分
- 获得 (E,r3,D)(E,r_3,D)(E,r3,D) 的 排名 ranking RK
- 计算指标:
- Hits@k: RK≤k\text{RK}\leq kRK≤k 的次数,越高越好
- Reciprocal Rank:1RK\dfrac{1}{\text{RK}}RK1,越高越好
- 训练阶段:用 training message edges 预测 training supervision edges
- 实体/节点分类
- 总结
- Relational GCN:用于异质图的图神经网络模型
- 可用于实体分类和链接预测任务
- 类似思想可以扩展到其他RGNN模型上(如RGraphSAGE,RGAT等)
2. Knowledge Graphs: KG Completion with Embeddings
- 知识图谱 Knowledge Graphs (KG)
以图形式呈现的知识
捕获实体entity(节点)、类型(节点标签)、关系relationship(边)
一种异质图实例 - 示例
- bibliographic networks
bibliographic书目的;书籍解题的;著书目录的
通过定义节点类型、关系类型及其之间的关系,得到如图所示的schema 9: - bio knowledge graphs
adverse event 不良反应
pathway 总之是个专业术语,过程、反应之类的10
- bibliographic networks
- 知识图谱应用实例(就我本来想把这些介绍网址啥的列出来的,但我最近不能上某些网站了,而且我又现在不用,就先直接截图了。以后有缘可以搞一下。如果真的有读者看到这里而且有这样需求的话也可以戳我催更)
- 公开可用的知识图谱有:FreeBase, Wikidata, Dbpedia, YAGO, NELL, etc.
这些知识图谱的共同特点是:大,不完整(缺少很多真实边)
对于一个大型KG,几乎不可能遍历所有可能存在的事实,因此需要预测可能存在却缺失的边 - 举例:Freebase11
大量信息缺失
有 complete 的子集供研究KG模型
3. Knowledge Graph Completion: TransE, TransR, DistMult, ComplEx
知识图谱补全 KG Completion Task
已知 (head, relation),预测 tails(注意,这跟链接预测任务有区别,链接预测任务是啥都不给,直接预测哪些链接最有可能出现)
举例:已知(JK罗琳,作品流派),预测 tail “科幻小说”在本节课中使用 shallow encoding12 的方式来进行图表示学习,也就是用固定向量表示图数据
(虽然这里不用GNN,但是如果愿意的话也可以用)知识图谱表示
边被表示为三元组的形式:(h,r,t)(h,r,t)(h,r,t) head, relation, tail
将实体和边表示到嵌入域/表示域(Rd\mathbb{R}^dRd)中(使用shallow embeddings)给出一个真实的三元组 (h,r,t)(h,r,t)(h,r,t),目标是对 (h,r)(h,r)(h,r) 的嵌入应靠近 ttt 的嵌入
以下介绍如何嵌入 (h,r)(h,r)(h,r) 、如何定义相似性TransE13
(translate embeddings)
给出三元组 (h,r,t)(h,r,t)(h,r,t),将实体和关系都映射到 Rd\mathbb{R}^dRd 上(用粗体表示嵌入向量,普通字母表示原KG中的实体或关系),使三元组为真时 h+r≈t\mathbf{h}+\mathbf{r}\approx\mathbf{t}h+r≈t,反之 h+r≠t\mathbf{h}+\mathbf{r}\neq\mathbf{t}h+r=t
scoring function:fr(h,t)=−∣∣h+r−t∣∣f_r(h,t)=-||\mathbf{h}+\mathbf{r}-\mathbf{t}||fr(h,t)=−∣∣h+r−t∣∣TransE的算法
简单来说,我没看懂。大致来讲过程是这样的:
初始化部分我没看懂,以后再研究。
更新参数时使用的是 contrastive loss,总之大意就是最小化真三元组的距离(也就是最大化真三元组的score或相似性)、最大化假三元组的距离KG中关系的模式 Connectivity Patterns in KG
在KG中,关系可能有多种属性,我们接下来就要探讨KG嵌入方法(如TransE等)能否建模、区分开这些关系模式:- symmetric relations(如室友关系)
r(h,t)⇒r(t,h)r(h,t)\Rightarrow r(t,h)r(h,t)⇒r(t,h) - antisymmetric relations(如上位词关系)
r(h,t)⇒¬r(t,h)r(h,t)\Rightarrow\neg r(t,h)r(h,t)⇒¬r(t,h) - inverse relations(如导师-学生关系)
r2(h,t)⇒r1(t,h)r_2(h,t)\Rightarrow r_1(t,h)r2(h,t)⇒r1(t,h) - composition (transitive) relations(如母亲-姐姐-姨母关系)
r1(x,y)∧r2(y,z)⇒r3(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) - 1-to-N relations(如 的学生 关系)
r(h,t1),r(h,t2),...,r(h,tn)r(h,t_1),r(h,t_2),...,r(h,t_n)r(h,t1),r(h,t2),...,r(h,tn) 同时为真
- symmetric relations(如室友关系)
TransE:Antisymmetric Relations ✓\checkmark✓
h+r=t\mathbf{h}+\mathbf{r}=\mathbf{t}h+r=t,但 t+r≠h\mathbf{t}+\mathbf{r}\neq\mathbf{h}t+r=hTransE:Inverse Relations ✓\checkmark✓
h+r2=t\mathbf{h}+\mathbf{r_2}=\mathbf{t}h+r2=t,设置 r2=−r1\mathbf{r_2}=-\mathbf{r_1}r2=−r1 即可实现 t+r1=h\mathbf{t}+\mathbf{r_1}=\mathbf{h}t+r1=hTransE:Composition ✓\checkmark✓
已知 x+r1=y\mathbf{x}+\mathbf{r_1}=\mathbf{y}x+r1=y ①,y+r2=z\mathbf{y}+\mathbf{r_2}=\mathbf{z}y+r2=z ②
则若 r3=r1+r2\mathbf{r_3}=\mathbf{r_1}+\mathbf{r_2}r3=r1+r2,将①②相加,消项后就能得到 x+r3=z\mathbf{x}+\mathbf{r_3}=\mathbf{z}x+r3=zTransE:Symmetric Relations ✖✖✖
欲使 ∣∣h+r−t∣∣=0||\mathbf{h}+\mathbf{r}-\mathbf{t}||=0∣∣h+r−t∣∣=0 和 ∣∣t+r−h∣∣=0||\mathbf{t}+\mathbf{r}-\mathbf{h}||=0∣∣t+r−h∣∣=0 同时成立,需 r=0\mathbf{r}=0r=0 且 h=t\mathbf{h}=\mathbf{t}h=t,但这样把两个实体嵌入到同一点上就没有意义了,所以是不行的TransE:1-to-N Relations ✖✖✖
欲使 ∣∣h+r−t1∣∣=0||\mathbf{h}+\mathbf{r}-\mathbf{t_1}||=0∣∣h+r−t1∣∣=0 和 ∣∣h+r−t2∣∣=0||\mathbf{h}+\mathbf{r}-\mathbf{t_2}||=0∣∣h+r−t2∣∣=0 同时成立,需 t1=t2\mathbf{t_1}=\mathbf{t_2}t1=t2,但这样把两个实体嵌入到同一点上就没有意义了,所以是不行的TransR14
将实体映射为实体空间 Rd\mathbb{R}^dRd 上的向量,关系映射为关系空间上的向量 r∈Rk\mathbf{r}\in\mathbb{R}^kr∈Rk,且有 relation-specific 的 projection matrix Mr∈Rk×d\mathbf{M}_r\in\mathbb{R}^{k\times d}Mr∈Rk×d
用 projection matrix 将实体从实体域投影到空间域上:h⊥=Mrh\mathbf{h_\bot}=\mathbf{M}_r\mathbf{h}h⊥=Mrh,t⊥=Mrt\mathbf{t_\bot}=\mathbf{M}_r\mathbf{t}t⊥=Mrt
scoring function:fr(h,t)=−∣∣h⊥+r−t⊥∣∣f_r(h,t)=-||\mathbf{h_\bot}+\mathbf{r}-\mathbf{t_\bot}||fr(h,t)=−∣∣h⊥+r−t⊥∣∣TransR:Symmetric Relations ✓\checkmark✓
使 r=0\mathbf{r}=0r=0,h⊥=Mrh=Mrt=t⊥\mathbf{h}_\bot=\mathbf{M}_r\mathbf{h}=\mathbf{M}_r\mathbf{t}=\mathbf{t}_\both⊥=Mrh=Mrt=t⊥,即可以使在实体域上不同的 hhh 和 ttt 可以在 rrr 的关系域上相同。TransR:Antisymmetric Relations ✓\checkmark✓
r≠0\mathbf{r}\neq 0r=0,Mrh+r=Mrt\mathbf{M}_r\mathbf{h}+\mathbf{r}=\mathbf{M}_r\mathbf{t}Mrh+r=Mrt,则 Mrt+r≠Mrh\mathbf{M}_r\mathbf{t}+\mathbf{r}\not=\mathbf{M}_r\mathbf{h}Mrt+r=Mrh,自然实现要求TransR:1-to-N Relations ✓\checkmark✓
可以通过学习合适的 Mr\mathbf{M}_rMr 使 t⊥=Mrt1=Mrt2\mathbf{t}_\bot=\mathbf{M}_r\mathbf{t}_1=\mathbf{M}_r\mathbf{t}_2t⊥=Mrt1=Mrt2,即在实体域中不同的 t1t_1t1 和 t2t_2t2 可以在 rrr 的关系域上相同
TransR:Inverse Relations ✓\checkmark✓
使 r2=−r1\mathbf{r}_2=-\mathbf{r}_1r2=−r1,Mr1=Mr2\mathbf{M}_{r_1}=\mathbf{M}_{r_2}Mr1=Mr2
就能使 Mr1t+r1=Mr1h\mathbf{M}_{r_1}\mathbf{t}+\mathbf{r}_1=\mathbf{M}_{r_1}\mathbf{h}Mr1t+r1=Mr1h 且 Mr2h+r2=Mr2t\mathbf{M}_{r_2}\mathbf{h}+\mathbf{r}_2=\mathbf{M}_{r_2}\mathbf{t}Mr2h+r2=Mr2t
TransR:Composition Relations ✖✖✖
每个关系都有独立的空间域,不能直接自然组合15New Idea: Bilinear Modeling16
在至今学习过的TransE和TransR中,scoring function fr(h,t)f_r(h,t)fr(h,t) 都是L1或L2距离的相反数。另一种做法是选用 bilinear modeling16。
DistMult17:实体和关系都表示为 Rk\mathbb{R}^kRk 的向量(在这一点上有点像TransE)
score function:fr(h,t)=<h,r,t>=∑ihi⋅ri⋅tif_r(h,t)=<\mathbf{h},\mathbf{r},\mathbf{t}>=\sum_i\mathbf{h}_i\cdot\mathbf{r}_i\cdot\mathbf{t}_ifr(h,t)=<h,r,t>=∑ihi⋅ri⋅ti(点积)DistMult
score function 可以直觉地被视作 h⋅r\mathbf{h}\cdot\mathbf{r}h⋅r 和 t\mathbf{t}t 之间的 cosine similarity18
即,使 h⋅r\mathbf{h}\cdot\mathbf{r}h⋅r 和 t\mathbf{t}t 同侧、靠近时,score 较高。
DistMult:1-to-N Relations ✓\checkmark✓
当知识图谱中存在 (h,r,t1)(h,r,t_1)(h,r,t1) 和 (h,r,t2)(h,r,t_2)(h,r,t2) 时,如图所示,DistMult可以建模使 t1\mathbf{t}_1t1 和 t2\mathbf{t}_2t2 在 h⋅r\mathbf{h}\cdot\mathbf{r}h⋅r 上的投影等长,即使二者与 h⋅r\mathbf{h}\cdot\mathbf{r}h⋅r 的点积相等,即 <h,r,t1>=<h,r,t2><\mathbf{h},\mathbf{r},\mathbf{t}_1>=<\mathbf{h},\mathbf{r},\mathbf{t}_2><h,r,t1>=<h,r,t2>,符合要求
DistMult:Symmetric Relations ✓\checkmark✓
DistMult天然建模symmetric relations:fr(h,t)=<h,r,t>=∑ihi⋅ri⋅ti=<t,r,h>=fr(t,h)f_r(h,t)=<\mathbf{h},\mathbf{r},\mathbf{t}>=\sum\limits_i\mathbf{h}_i\cdot\mathbf{r}_i\cdot\mathbf{t}_i=<\mathbf{t},\mathbf{r},\mathbf{h}>=f_r(t,h)fr(h,t)=<h,r,t>=i∑hi⋅ri⋅ti=<t,r,h>=fr(t,h)(乘法交换律)
DistMult:Antisymmetric Relations ✖✖✖
fr(h,t)=<h,r,t>=<t,r,h>=fr(t,h)f_r(h,t)=<\mathbf{h},\mathbf{r},\mathbf{t}>=<\mathbf{t},\mathbf{r},\mathbf{h}>=f_r(t,h)fr(h,t)=<h,r,t>=<t,r,h>=fr(t,h) 永远成立,不符要求
DistMult:Inverse Relations ✖✖✖
如果要建模inverse relations,即使:fr2(h,t)=<h,r2,t>=<t,r1,h>=fr2(t,h)f_{r_2}(h,t)=<\mathbf{h},\mathbf{r_2},\mathbf{t}>=<\mathbf{t},\mathbf{r_1},\mathbf{h}>=f_{r_2}(t,h)fr2(h,t)=<h,r2,t>=<t,r1,h>=fr2(t,h)
必须使 r2=r1\mathbf{r}_2=\mathbf{r_1}r2=r1,这显然是没有意义的
DistMult:Composition Relations ✖✖✖
DistMult对每个 (head,relation) 定义了一个超平面,对多跳关系产生的超平面的联合(如 (r1,r2)(r_1,r_2)(r1,r2))无法用单一超平面(r3r_3r3)来表示。19
ComplEx20
基于DistMult,ComplEx在 复数向量域complex vector space Ck\mathbb{C}^kCk 中表示实体和关系。
u=a+bi\mathbf{u}=\mathbf{a}+\mathbf{b}\ iu=a+bi(其中 u∈Ck\mathbf{u}\in\mathbb{C}^ku∈Ck,实部re a∈Rk\mathbf{a}\in\mathbb{R}^ka∈Rk,虚部im b∈Rk\mathbf{b}\in\mathbb{R}^kb∈Rk)
u‾=a−bi\overline\mathbf{u}=\mathbf{a}-\mathbf{b}\ iu=a−bi(共轭)
score function:fr(h,t)=Re(∑ihi⋅ri⋅t‾i)f_r(h,t)=\text{Re}(\sum_i\mathbf{h}_i\cdot\mathbf{r}_i\cdot\overline\mathbf{t}_i)fr(h,t)=Re(∑ihi⋅ri⋅ti)21
ComplEx:Antisymmetric Relations ✓\checkmark✓
ComplEx可以建模使 fr(h,t)=Re(∑ihi⋅ri⋅t‾i)f_r(h,t)=\text{Re}(\sum_i\mathbf{h}_i\cdot\mathbf{r}_i\cdot\overline\mathbf{t}_i)fr(h,t)=Re(∑ihi⋅ri⋅ti) 与 fr(t,h)=Re(∑iti⋅ri⋅h‾i)f_r(t,h)=\text{Re}(\sum_i\mathbf{t}_i\cdot\mathbf{r}_i\cdot\overline\mathbf{h}_i)fr(t,h)=Re(∑iti⋅ri⋅hi) 不同,因为这一不对称建模使用的是复数共轭。
ComplEx:Symmetric Relations ✓\checkmark✓
当 Im(r)=0\text{Im}(\mathbf{r})=0Im(r)=0 时,fr(h,t)=Re(∑ihi⋅ri⋅t‾i)=∑iRe(ri⋅hi⋅t‾i)=∑iri⋅Re(hi⋅t‾i)=∑iri⋅Re(h‾i⋅ti)=∑iRe(ri⋅h‾i⋅ti)=fr(t,h)f_r(h,t)=\text{Re}(\sum_i\mathbf{h}_i\cdot\mathbf{r}_i\cdot\overline\mathbf{t}_i)=\sum_i\text{Re}(\mathbf{r}_i\cdot\mathbf{h}_i\cdot\overline\mathbf{t}_i)=\sum_i\mathbf{r}_i\cdot\text{Re}(\mathbf{h}_i\cdot\overline\mathbf{t}_i)=\sum_i\mathbf{r}_i\cdot\text{Re}(\overline\mathbf{h}_i\cdot\mathbf{t}_i)=\sum_i\text{Re}(\mathbf{r}_i\cdot\overline\mathbf{h}_i\cdot\mathbf{t}_i)=f_r(t,h)fr(h,t)=Re(∑ihi⋅ri⋅ti)=∑iRe(ri⋅hi⋅ti)=∑iri⋅Re(hi⋅ti)=∑iri⋅Re(hi⋅ti)=∑iRe(ri⋅hi⋅ti)=fr(t,h)
符合要求
ComplEx:Inverse Relations ✓\checkmark✓
已知 r2=arg maxrRe(<h,r,t‾>)\mathbf{r}_2=\argmax\limits_\mathbf{r}\text{Re}(<\mathbf{h},\mathbf{r},\overline\mathbf{t}>)r2=rargmaxRe(<h,r,t>)
欲知 r1=arg maxrRe(<t,r,h‾>)\mathbf{r}_1=\argmax\limits_\mathbf{r}\text{Re}(<\mathbf{t},\mathbf{r},\overline\mathbf{h}>)r1=rargmaxRe(<t,r,h>)
当 r1=r‾2\mathbf{r}_1=\overline\mathbf{r}_2r1=r2 即 r2\mathbf{r}_2r2 的共轭正是 r1\mathbf{r}_1r1 时,满足要求。
ComplEx:Composition Relations ✖✖✖ 1-to-N Relations ✓\checkmark✓
和DistMult一样所有模型的表示能力对比:
知识图谱嵌入问题的实践应用22
- 不同知识图谱可能会有很不同的关系模式
- 因此没有适合所有KG的嵌入方法,可用上表来辅助选择
- 可以先试用TransE来迅速获得结果(如果目标KG没有过多symmetric relations的话)
- 然后再用更有表示能力的模型,如ComplEx或RotatE22(复数域的TransE)等
总结
- 链接预测或图补全任务是知识图谱领域的重要研究任务
- 介绍了不同嵌入域和不同表示能力的模型
- TransE
- TransR
- DistMult
- ComplEx
Schlichtkrull et al., Modeling Relational Data with Graph Convolutional Networks, ESWC 2018 ↩︎
可参考我写的前几节课的笔记博文 ↩︎
说起来这个RGCN是有自环的啊,但是前几节课我看GCN是没算自环的啊?所以到底要不要自环啊? ↩︎
其实我没太看懂这句话啥意思。
很容易理解的是,就是这样的话,每次使用权重矩阵时,只有相邻嵌入(对角块同一行上非0元素索引对应的嵌入维度)能与权重矩阵的元素进行运算、学习(交互)。所以这又能咋样……这有啥不好之处吗?
另外就是,说这个维度是神经元……虽然我想了一下好像按照神经网络的逻辑,就是神经元,但总感觉很奇怪……说起来GNN就是跟传统神经网络好不一样啊,真的可以套用吗? ↩︎可参考我之前写的博文:cs224w(图机器学习)2021冬季课程学习笔记10 Applications of Graph Neural Networks ↩︎
这个 fff 是 双线性型bilinear form16 ↩︎
这个获得negative edges的方法是必须要改supervision edge来吗,还是别的任意一条在training message edge和training supervision edge中不存在的该关系对应的边都可以?改supervision edge的唯一方法是改destination节点吗?这部分我还没搞懂。
我一开始还在考虑其他关系的边怎么处理,但是看到例子中存在其他关系的边也可以被认为是negative edges,大概就是不管其他关系了吧。
我一开始另外也考虑了是否需要避开validation edge和test edge吗,但是我看例子里面就没管它们,所以应该不影响。 ↩︎交叉熵相关讲解可参考我之前写的博文:cs224w(图机器学习)2021冬季课程学习笔记7 Graph Neural Networks 1: GNN Model
我看了一下这个公式,我能理解优化这个公式能达到所要求的效果,但是为什么就能这样搞?我就没搞懂。 ↩︎但其实就是我不太确定schema是不是就是这个东西 ↩︎
毕竟不是我的学科领域,所以我就简单百度了一下,知道这是个专业术语就完了。欲了解详情可以百度。我给出的参考资料是这篇帖子:题外话——生物学中的pathway - 分子生物 - 生物化学 - 小木虫论坛-学术科研互动平台 ↩︎
slides中给出的参考文献:
①Paulheim, Heiko. “Knowledge graph refinement: A survey of approaches and evaluation methods.” Semantic web 8.3 (2017): 489-508.
这一篇论文我没找到直接的PDF下载地址,就从道客巴巴上下了一个,放在了我自己的GitHub项目上:all-notes-in-one/Knowledge graph refinement.pdf at main · PolarisRisingWar/all-notes-in-one
②Min, Bonan, et al. “Distant supervision for relation extraction with an incomplete knowledge base.” Proceedings of the 2013 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2013. ↩︎可参考我之前写的博文:cs224w(图机器学习)2021冬季课程学习笔记3: Node Embeddings ↩︎
Bordes, et al., Translating embeddings for modeling multi-relational data, NeurIPS 2013 ↩︎
Lin, et al., Learning entity and relation embeddings for knowledge graph completion, AAAI 2015
呃……但是这个AAAI的网址,不知道为什么我上不了,是因为墙?但是这个网站有什么好墙的?等我能使用特殊手段再研究吧,反正现在也不需要看这篇论文 ↩︎这个我也没看懂……各个关系向量不在一个空间,这个我就不太理解,它们不都是同一维度(Rk\mathbb{R}^kRk)上的向量吗?只因为投射矩阵M不同吗?
就我能理解对于同一实体来说,不同的关系会将其映射到不同的位置上……但是,所以呢?
slides上说是因为这个在x-y,y-z关系中的y所组成的流形(这又是个什么东西?)集合是高维的,无法用单一关系和关系矩阵来建模……啥意思? ↩︎到底什么他妈的是双线性型?数学怎么就这么难啊? ↩︎ ↩︎ ↩︎
Yang et al, Embedding Entities and Relations for Learning and Inference in Knowledge Bases, ICLR 2015 ↩︎
就很明显是点积嘛。
但我还是没搞懂这为啥就是余弦相似度了?就同质图那边讲相似性问题的时候我就没搞懂,点积和余弦相似度之间不是差个模长吗?模长呢?有说这几个向量的模长都是1吗还是咋整了?
这种细节我寻思可能还是得看看相应的代码,看看相应的实践上的处理方式。假如我能看得懂的话,我再回来写解释。 ↩︎这他妈是什么东西啊,完全没看懂(〃>皿<)
就是,硬要讲这个超平面的话,我能理解,就是与 head⋅relation\mathbf{head}\cdot\mathbf{relation}head⋅relation 相正交的那个超平面吧?
然后两个超平面合起来不一定是一个超平面,就,这怎么合啊!
然后我就没搞懂别的在说啥了。 ↩︎Trouillon et al, Complex Embeddings for Simple Link Prediction, ICML 2016 ↩︎
就,大概是囿于我复数知识的严重匮乏吧,ComplEx的自此以下所有公式我都没搞懂。
就,复数的共轭和实部能干这么多事呢???这就是我的感觉。
我看不懂,但我大受震撼。 ↩︎Sun et al, RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space, ICLR 2019 ↩︎ ↩︎
cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings相关推荐
- cs224w(图机器学习)2021冬季课程学习笔记20 Advanced Topics on GNNs
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Advanced Topics on GNNs 2. Limitations of Grap ...
- cs224w(图机器学习)2021冬季课程学习笔记16 Community Detection in Networks
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Community Detection in Networks 2. Network Com ...
- cs224w(图机器学习)2021冬季课程学习笔记8 Colab 2
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 VX号"PolarisRisingWar"可直接搜索添加作者好友讨论. 更新日志: 20 ...
- cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. Graph as Matrix 2. PageRank / the Google Algor ...
- cs224w(图机器学习)2021冬季课程学习笔记2: Traditional Methods for ML on Graphs
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. 章节前言 2. Traditional Feature-based Methods: Nod ...
- cs224w(图机器学习)2021冬季课程学习笔记18 Colab 4:异质图
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 Question 1. DeepSNAP异质图简介 1.1 Question 1.1:分配Node ...
- cs224w(图机器学习)2021冬季课程学习笔记5 Colab 1:Node Embeddings
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 0. Python包导入 1. NetworkX数据获取.可视化 2. 探索NetworkX数据的 ...
- cs224w(图机器学习)2021冬季课程学习笔记21 Scaling Up GNNs to Large Graphs
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. 介绍scale up GNN问题 2. GraphSAGE Neighbor Samplin ...
- cs224w(图机器学习)2021冬季课程学习笔记9 Graph Neural Networks 2: Design Space
诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. A General Perspective on Graph Neural Networks ...
最新文章
- 计算机原理说课教案,《 计算机组成原理 》 说课
- 在Aptana下安装Zen coding
- 重温WCF之会话Session(九)
- linux命令查看几位,Linux每周几个命令(一)--查找篇
- 的日志在哪里_写给大忙人看的,MyBatis日志如何做到兼容所有常用的日志框架?...
- 函数学习-bool()
- java中如何检查字符串都是数字_如何在Java中检查字符串是否为数字?
- 【剑指offer】面试题23:链表中环的入口节点
- 在 Kubernetes 集群中使用 MetalLB 作为 LoadBalancer(下)
- [Python爬虫] 3-数据解析(lxml/bs4/正则)
- latch详解——转自itpub精华帖(引)
- 使用python+ffmpeg批量将ts文件转为mp4
- 一意孤行亚马逊----一个钓鱼疯子的巴西亚马逊之行( 3.九月19日 玛瑙斯城印象) 作者:咸水鱼...
- ICPR 2018|阿里巴巴读光OCR及MTWI数据集亮相引关注
- 阿里面试:分析为什么B+树更适合作为索引的结构以及索引原理
- 恒生电子实习记录-14
- 磁盘恢复工具OO DiskRecovery的使用
- 笑傲江湖中的政治斗争
- 微信 考勤 php,微信企业号开发之微信考勤Cookies的使用_javascript技巧
- 网上做什么赚钱现在,这4个赚钱小项目分享给你!