這篇簡要記錄一下今天粗讀的幾個雙線性模型:CP、ANALOGY、SimplE。最近看這類模型的感想就是,數學證明太多了,很多論文都有專門的一節進行理論分析,要完全弄明白真不是一天兩天的事情,所以只要粗讀這類的論文,還好剩下沒幾篇了,戰線不能拖太久了,拖越久越不想看。
2021.08.18
盡管說着戰線不能拖太久,但還是 piapia 打臉,高溫假也工作的打算完全就是屁話,我還是拖到了高溫假后的今天,打開之前沒寫完筆記的論文,仿佛失憶了一般,毫無印象orz……
ANALOGY
【paper】 Analogical Inference for Multi-relational Embeddings
【簡介】 本文是卡耐基梅隆大學的中國學者發表在 ICML 2017 上的工作,提出了 ANALOGY 模型,用於建模實體和關系的推理屬性。這個模型應當也算是雙線性模型中比較經典的一個了,很多模型的 baseline 中都有它。核心思想就是利用矩陣的交換性約束建模平行四邊形一樣的類比推理屬性。
背景知識
正規矩陣
ANALOGY 將關系矩陣約束為正規矩陣,由於它是 "well-behaved" linear maps。

關系作為線性映射
ANALOGY 的提出不是基於 “h+r≈t” 的距離模型,而是雙線性類模型的體系,且關系表示為矩陣。對於 valid 三元組 \((s,r,o)\) ,存在:頭實體經過線性映射(關系)近似於尾實體。

打分函數也是雙線性函數:

問題定義
本文解決的類比推理問題(analogical inference problem)並不是一個新問題,只是用類比推理的特性預測實體關系。
類比推理很好理解,上一個 word embedding 老生常談的例子: man is to king as woman is to queen.
文章用平行四邊形形式化描述類比推理的屬性:
有 subject-relation-object 三元組:

則 a、b、c、d 四個實體間存在的類比推理關系正如一個平行四邊形結構:

箭頭只是一個直觀的表示,實際上代表線性映射。
解決方案
為了建模平行四邊形般的類比推理關系,線性映射(關系)需滿足“交換定理(commutativity)”,即

○ 代表兩個關系的組合。這個很好理解,一個實體先經過關系 \(r\) 再經過 \(r'\),與它先經過 \(r'\),再經過 \(r\),最后推理出的實體,應當是一個,也就是說兩條路徑是等價的。
實際中,關系的組合通常表示為關系矩陣相乘:

因此,ANALOGY 通過添加

的約束建模關系的“交換等價”特性以用於類比推理。
優化目標: 對三元組作二分類,正樣本標簽為 +1,負樣本標簽為 -1
打分函數為:

訓練目標為有約束條件下的 loss 最小化:

loss 是 logistic loss:

這個paper中還有好幾頁是定理、理論證明以及和其他雙線性模型的 unified,沒看。
實驗
兩個數據集上的 Hits@10:

兩個數據集上的 Hits@{1,3}:

【code】 https://github.com/quark0/ANALOGY
CP
【paper】 Canonical Tensor Decomposition for Knowledge Base Completion
【簡介】 這篇是 Facebook 法國巴黎 AI 研究中心發表在 ICML 2018 上的文章,是對傳統的張量分解方法 CP(Canonical Tensor Decomposition)做的分析改進。對傳統的幾個雙線性方法進行了詳細的分析,探究了(1)最優參數與 loss 形式的影響,(2)正則化形式的影響,提出張量核 p 范數正則化方法,(3)並探究了反向關系推理的效果。
正則化那塊應該是本文提出的新方法(沒看懂),此外沒有提出太多新的東西,更多是對老方法的探究。三項工作得出的三方面結論為:
(1)CP 和 ComplEx 模型的表現依賴於最優參數的設置;
(2)建模反向屬性時效果有提升;
(3)提出的張量核正則化方法是有效的。
知識庫的張量分解模型(之前的)
CP(1927)
最初的 CP 將張量表示為 R 秩一張量的和:

DistMult
DistMult 將張量 X 表示為一秩張量的和:

ComplEx

訓練
給定訓練三元組 \((i,j,k)\) 和預測張量 X,多類別的 log-loss 為:

CP 的正則項:

核 p-范數正則化(Nuclear p-Norm Regularization)
section 4 介紹的應該是一種新的正則化方法,全是公式,沒看(懂),過吧orz
新的 CP 訓練目標(對於一個三元組樣本):

實驗
鏈接預測


超參設置的影響

【code】 https://github.com/facebookresearch/kbc
SimplE
【paper】 SimplE Embedding for Link Prediction in Knowledge Graphs
【簡介】 本文是加拿大英屬哥倫比亞大學的兩位學者發表在 NIPS 2018 上的工作,文章提出了 SimplE(Simple Embedding)。這篇和前面一篇差不多,也是對 1927 年的 CP 進行改進(簡化),傳統CP為實體分配的兩個向量是獨立訓練的,SimplE利用關系的逆在三元組打分函數中加上了一個對稱項,使得每個實體的兩個向量依賴學習,並且 SimplE 的復雜度隨 embedding 維度呈線性。
SimplE 可以被視為雙線性模型,並且是 fully expressive,可以通過參數共享(賦權)編碼背景知識;盡管(或者是因為)其簡單,在實驗中表現效果好。
模型
1927 年的 CP(Canonical Polyadic)在鏈接預測上表現效果通常很差,因為它為每個實體分配兩個向量(作為頭尾實體時的不同表示),但是兩個向量是分別學習的,如:

對此,SimplE 仍然保留每個實體分配兩個向量的設置,但也為每個關系分配兩個向量:

對於每個 triple,simplE 定義的相似度函數為:

同時,還考慮了另一種情況,稱為 SimplE-ignr:在訓練時候更新參數時兩部分都考慮,而在測試時不再考慮反向關系部分,只保留前半部分:

在訓練時使用 L2 正則化:

其中,

之所以沒有選擇 margin-based 的 loss 是因為它比 log-likelihood 更容易導致過擬合。
理論分析
沒看。
不過對雙線性模型家族的各模型的關系矩陣進行了一個直觀的展示和對比:

實驗
鏈接預測

整合背景知識

就是 8 種對稱關系定義的規則,也不知道它是咋整合的==|
【code】 https://github.com/Mehran-k/SimplE
【小結】 粗讀的論文,不想總結。