天天看點

論文淺嘗 | Complex Embeddings for Simple Link Prediction

讀完Knowledge Graph Embedding with Iterative Guidance from Soft Rules的大緻思想後,好奇為什麼要用複數來表示一個向量,就想看另一篇論文:

Complex Embeddings for Simple Link Prediction

然後發現,有個部落格很好的說了這個事,我就轉過來以後學習

部落格:論文淺嘗 | Complex Embeddings for Simple Link Prediction

論文淺嘗 | Complex Embeddings for Simple Link Prediction

論文連結:[Complex Embeddings for Simple Link Pred](http://proceedings.mlr.press/v48/trouillon16.pdf)

在統計關系學習裡,連結預測問題是自動了解大規模知識庫結構的核心。為了更好得把握知識庫二進制關系中的對稱和非對稱關系,本文提出了基于複數的表示方法 ComplEx。

一些研究工作将連結預測看作是三維二進制張量補全的問題,張量的每一個slice表示知識庫中關于一種關系的臨接矩陣。典型的做法是對表示知識庫的張量進行低秩分解,用分解得到的矩陣的每一行表示知識庫中的一個實體或者一種關系。最後對于一個給定的三元組 r(s,o)(注:即主語 s 和賓語 o 具有關系 r),這個三元組的 score 可以通過對于 s,r,o 的表示向量之間的多線性(multi-linear)乘積計算得到。以往工作的問題在于不能很好地處理非對稱關系,因為實數向量之間的點積計算是具有交換性的,即如果實數表示下的 r(s,o) 成立,那麼 r(o,s) 也必然成立,但在知識庫中非對稱關系的比例遠多于對稱關系的比例。是以本文提出了一個基于複數表示的方法,因為複數之間的埃爾米特乘積(Hermitian dot product)是不具有交換性的,具體做法如下:

每個實體和關系都用一個複數向量表示,每個三元組的 score function 定義如下:

論文淺嘗 | Complex Embeddings for Simple Link Prediction

Re(x) 表示取 x 的實部,Im(x) 表示取 x 的虛部,三元組 (s,r,o) 的 score 計算過程為關系 r 的表示向量和主語 s 的表示向量以及賓語 o 的表示向量的共轭向量的乘積,并保留最後結果的實部。最終 (s,r,o) 為真的機率通過下式得到:

論文淺嘗 | Complex Embeddings for Simple Link Prediction

以下是 ComplEx 在對稱關系和非對稱關系的實驗結果:

論文淺嘗 | Complex Embeddings for Simple Link Prediction

從左上的圖中可以看出,Complex 和 DistMult 都可以較好地捕捉對稱關系的語義資訊并做出正确的預測,從右上的圖中可以看出 Complex 對于非對稱關系語義的捕捉以及預測效果明顯優于其他模型。也驗證了模型用複數表示的設計思想。

下圖是在 WN18 和 FB15 上的連結預測的實驗結果:

論文淺嘗 | Complex Embeddings for Simple Link Prediction

模型簡潔的 ComplEx 在兩個資料集上都取得了不錯的效果,明顯好于當時表現優異的 HolE。

本文模型設計背後的數學思想是比較值得借鑒的地方。