RotatE 学习笔记

RotatE

paper:RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space

What is RotatE ?

本文是北大和加拿大的研究团队发表在 ICLR 2019 上的文章,提出了 RotatE(Rotation Embedding)模型,主要思想是将实体表示为复向量,关系视为从头实体指向尾实体的旋转(Rotation)。

Motivation

RotatE 模型的提出主要为了建模三种关系:对称/非对称(symmetry)、反向关系(inverse)、关系组合(composition)。

image

注意,这里的对称关系指的就是自反关系,是针对一个关系而言的。比如:我是人,人是我。

inverse 关系是针对两个关系而言的。比如:父子关系。

文章中给出了其他模型对于这几种关系的实现情况,如下图所示。

image

可以看到,TransE 是不能够建模对称关系的。

Model

RotatE 是复空间模型,希望 truth triplet 满足:

image

image

其中 o 的运算为 Harmad product ,具体的运算法则为:

将给定向量/矩阵的同行同列对应的元素乘在一起,形成一个新的向量/矩阵。

RotatE 利用了欧拉公式,将关系视为从头实体向尾实体的旋转。

image

并且文章中给出了一维嵌入的示图。

image

实体和关系的表示完成后,距离函数的定义如下:

image

Negative sampling

文章中还提出了 self-adversarial 的负采样方法,根据特定的概率分布和当前已嵌入的模型来采样负样本。

image

Loss function

最终的 loss 函数为

image

注意到 Loss 函数中有负采样的分布概率。

Experiments

实验做了 链接预测 、关系分类

link prediction:
image

image

relation category :

image

另外,文章还将之前的模型用 self-adversarial 采样方法重新做了一遍实验,得到新的结果。

image

Others

附录中还给出了为什么 RotatE 可以建模这三种关系的证明:

image

Summary

RotatE 的主要思想是将实体表示为复向量,关系视为从头实体指向尾实体的旋转,主要为了建模 对称/反对称、相反、组合 这三种关系,并提出了 self-adversarial 负采样方法,在指标上都超过了以往的模型。

code

posted @ 2023-08-08 11:50  Blackwater3  阅读(163)  评论(0编辑  收藏  举报