---
# System prepended metadata

title: '[KGE] RotatE'
tags: [Knowledge Graph Embedding]

---

---
title: '[KGE] RotatE'
---

[TOC]

# RotatE

![imgur](https://imgur.com/upyQOJJ.png)

## Introduction

<br>

[RotatE](https://arxiv.org/abs/1902.10197) 是 [TransE](https://proceedings.neurips.cc/paper/2013/file/1cecc7a77928ca8133fa24680a88d2f9-Paper.pdf) 下一代的標誌性模型，就像許多 Trans 系列模型一樣，RotatE 旨在解決 TransE 只能應對「一對一」的問題。此模型引出了將Entity embedding 與 Relation Embedding 投射到[複數空間](https://zh.wikipedia.org/wiki/复平面)，從[歐拉分解](https://zh.wikipedia.org/wiki/旋转)中得到得靈感，將 Entity 與 Relation 用實數(real number)與虛數(Image number)表達，並利用以下公式完成「複數空間中乘一長度為1的向量後，將可以表示為旋轉」。因此這裡將使 $|r_i| = 1$

<br>

$h$ : head entity embedding
$r$ : relation embedding
$t$ : tail entity embedding

<br>

![imgur](https://imgur.com/Tw89whk.png)


<br>
<br>


## Complex relation can be solved by complex plane

### 知識圖譜中常存在複雜的關係( Complex Relation )

<br>

1. Symmetric/Anti-symmetric ( 是否對稱, ex. 「婚姻」即是對稱關係)
3. inversion ( 相反關係, ex. 「喜歡」與「被喜歡」即為相反 )
4. composition ( 有別的Entity參與建構, ex. 「我」的「爸爸」的「媽媽」是「我」的「祖母」)

<br>

TransE 等基於距離的模型，因為有方向性，所以可以很好的表達2.和3.的關係。 Dismult 等基於相似度的模型，缺少了方向性，但更能把1.的關係表達清楚。RotatE 這篇論文認為，使用複數空間( Complex Plane )來內嵌 Entity 和 Relation 可以將以上三種關係表達清楚。

<br>

## Why?

### Inverse & Composition ( 相反與建構關係 )
![image](https://imgur.com/wBvfjgF.png)
就像 TransE 一樣，可以讓 $h$ 使用旋轉來逼近 $t$ 點，不過仍然有小缺點，因為 $|r_i| = 1$. $h, t$ 的表達仍有限制。


### Symmetric ( 對稱關係 )
![image](https://imgur.com/CMPm6bs.png)
投射到 Complex Plane 成功讓距離模型也能漂亮的表達對稱和非對稱關係，只要選轉角度差不多，及為對稱關係。非對稱關係則是旋轉角度不一樣。

<br>

## Self-adversial Negative Sampling

<br>

$h, r, t$: positive sample
$h', r', t'$: negative sample

<br>

Normal nagative sampling loss -> 平均所有負樣本的loss
![image](https://imgur.com/udEYYbt.png)

<br>

Self-adversial Negative Sampling loss -> 加權平均所有負樣本loss
![image](https://imgur.com/4hHhFX2.png)
![image](https://imgur.com/XHp8JIe.png)



## Result

### MRR, Hit@1, Hit@3 ,Hit@10
![image](https://imgur.com/3y2gB7m.png)

<br>

### 1-1, 1-N, N-1, N-N
![image](https://imgur.com/ucyzWjQ.png)

<br>
<br>

###### tags: `Knowledge Graph Embedding`
