---
# System prepended metadata

title: '[KGE] PairRE & TripleRE'
tags: [Knowledge Graph Embedding]

---

---
title: '[KGE] PairRE & TripleRE'
---

[TOC]

# PairRE

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

<br>

## Introduction

<br>

[PairRE](https://arxiv.org/abs/2011.03798) 是基於[RotatE](https://arxiv.org/abs/1902.10197) 在做改進的模型，RotatE 雖然有漂亮的數學式，可以表示複雜的關係，但卻無法在 Testing MRR 上取得好的成績。此模型引出了我們可以將 Relation 成對進行編碼，分別是「由 $h$ 出發的 relation : $r^h$」、「由 $t$ 出發的 relation : $r^t$」。其中，$|h_i| = 1 , |t_i| = 1$。

$h_i$ : head entity embedding
$r^H$ : relation embedding from head
$t_i$ : tail entity embedding
$r^T$ : relation embedding from tail
$\gamma$ : affordable margin

<br>

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

<br>

RoataE 與 TransE 在訓練時常常加上一個 margin $\gamma$ 以增加模型的泛化能力，因為模型的目的在於讓 positive triple 的 loss 大於 negative triple loss $\gamma$，然而並不是每一種複雜關係的 margin 都需要一樣。TransE 和 RotatE 在$\gamma$上無法做到針對複雜關係組合做到客製化，PairRE 正是為了解決這個問題而提出的。

<br>

## How to vary $\gamma$ for different complex relation

<br>

將上面的公式稍微「移向」，能得到下面 $t_i$的表達式，這邊可以發現「$r^T$」是 trainable 且不同於「$r^H$」的，意思即表示 $\gamma$ 展開後將會不是一個定值，是會在訓練過程中變動的常數，增加了模型的彈性與泛化性。

<br>

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

<br>

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

<br>
<br>
<br>


# TripleRE ( PairRE copy cat )

<br>

TripleRE 想法簡單粗暴，基於 PairRE 的結果，加越多的 relation, entity, parameters 在 scoreing function 裏面就能越準。

<br>

## TripleRE V1
由於 $r^H,r^T$ 不是選轉向量，再加上 PairRE 似乎指名了，多增加幾種參數就可以提高準確度，因此直接加了一個 $r^M$ 做為 $h, t$ 乘積完後的橋樑。準度有些微上升。
![imgur](https://imgur.com/SdvsbWi.png)


<br>
<br>

## TripleRE V2
增加可訓練參數強化模型泛化能力，這邊的 $u$ 就是一般的 trainable constant，$e$ 則是單位向量。
![imgur](https://imgur.com/vtp5hLz.png)

<br>
<br>

# Result

可以發現在 Dimension 較小的時候 PairRE、TripleRE 就有很好的表現了，表示他們運用 Dimension 更有效率，且最後能達到更好的效果。

PairRE -> TripleRE v1 -> TripleRE v2 -> TripleRE v3
都有 3~4% 的 MRR 成長

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

<br>


# How about entity decomposition?

這篇的兩種方法似乎都在對 relation 進行拆解表示，那是否存在更改模型的 scoring function 來拆解 entity 表示的方法呢？答案是有的。 InterHT, TripleRE V3, TranS 就是以此為基礎，加上了 entity 的拆解。


<br>
<br>

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