--- 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`