多元關系數據及其表示形式
多元關系數據是經常會用到的關系型數據,由結點和聯結結點的邊組成,知識圖譜就是一種多元關系數據庫,如圖所示。
結點表示了實體,聯結結點的邊表示實體與實體之間存在的關系。這樣形成的網絡通常可以拆解為多個三元組形式(head,relation,tail),稱為一個事實(fact)。
其中,head和tail表示實體,relation表示二者關系,當head與tail之間的關系並非向量(有向關系,如同學,即等價關系時)時,(head,relation,tail)=(tail,relation,head)。
模型思想及簡介
本篇文章的目的就是構建一個嵌入模型,將這樣的數據關系網絡簡潔高效地嵌入到數學模型中,並提供自動添加事實的功能,而不需要人工提供額外的知識。主要思想是通過提取已有數據關系中的模式,利用該模式對已存在的實體與關系(兩者沒有對應關系)進行預測。最簡單的推導過程如:(張,同學,李)+(張,同學,王)=>(李,同學,王)。
TransE模型以關系relation為核心,選用關系模型中的關系的一個低維向量來表示關鍵關系(key),是一種嵌入到低維模型的平移轉換,頭尾實體的嵌入依賴於該關系所產生的低維向量,因此關系可以看做嵌入轉換過程中的翻譯,也稱為翻譯模型。一開始這個模型是為具有層次結構的知識圖譜服務的,實際應用后對大部分結構都適用,且能應用於大規模的實體-關系圖上。
若有三元組(h, l, t)成立,h, l, t 均為向量形式。定義一個距離函數 d (h + l, t) 度量 h + l 與 t 之間的距離,那么訓練出來的模型需要滿足兩個條件:
(1)對於已存在的(h, l, t)有 h + l ≈ t ;
(2)對於不存在的(h, l, t),則要使得 h + l 與 t 間隔相當遠。
該距離函數d通常使用L1范數或L2范數。
對於條件1,樣本是容易找到的,但是條件2呢?作者提供了一種構造不存在的三元組的辦法,在模型訓練的損失函數中有所體現。
損失函數
在訓練該模型的過程中,為了同時滿足以上兩個條件,定義一個損失函數L:
其中,S 表示事實數據集,(h, l, t)表示一個數據集中已存在的事實。S‘ 集合如下所示:
其中 E 表示實體數據集。由 S‘ 的定義可知,S’ 表示的是未知的存疑的事實(不存在於 S 中),它的每一項是由 S 中的某項通過替換頭或尾的實體得來的,且頭尾實體不可同時替換。因此,S' 稱為 S 的對照三元組集,或損壞三元組集。
再來看損失函數,最小化 L 的途徑就是使得已存在的事實 d(h, l, t) 盡可能小,而存疑的偽事實 d( h'+ l, t') 盡可能大。
[x]+為合頁損失函數,表示取 x 的非負部分,若 x ≤ 0,則[x]+ = 0。
超參數 γ 是一個正數,提供了實現上述思想中對“盡可能”程度的調節范圍。已知損失函數最終都會取得非負數,當γ+d(h,l,t)-d(h'+l,t')為正數時,超參數作用無法凸顯,任意兩個正數同時加上超參數后的差是相同的;但當γ+d(h,l,t)-d(h'+l,t')為負數時,合頁損失函數都將把該負數變為0,而不管這個負數多大。負數越大,表示兩個 d 之間差距越大,當差距超過了超參數時,則認為超參數為距離上界。因此,超參數可以看做一個標准尺度,只要距離差達到該標准尺度,那損失函數就達到了最小值0。超參數取值越大,訓練越嚴格,可能過擬合;取值越小,訓練條件越易滿足,可能欠擬合。
模型訓練
訓練模型是通過最小化損失函數完成的,采用隨機梯度下降法。額外的約束條件是,實體嵌入的L2范數會正則化為1,而關系嵌入的范數則沒有任何正則化或范數的約束(但也可以正則化)。因為要考察的是實體之間的距離,需要減小實體本身的范數對計算距離函數所產生的影響(即避免實體間相同有r卻得到不同d的情況)。
具體訓練算法如圖所示:
所有實體和關系都經過隨機化得到,並且都經過歸一化處理。每一次都選取一批三元組放入訓練,同時對應每一個三元組又選一個損壞三元組放入。該算法將根據其在驗證集上達到的效果選擇是否停止。
距離函數定義
相關的模型還有 SE 和 Neural Tensor Modal。
SE將實體映射到 k 維實數空間,將關系的表達映射成兩個 k×k 維矩陣L1和L2。距離函數用 d(L1h, L2h) 表示。基本思想仍然是使得損壞三元組的距離度量盡可能大,否則盡可能小。用兩個不同矩陣的原因是,考慮到頭部和尾部實體之間的關系或許存在不對稱的情況。TransE在實現上比 SE 更簡潔,但取得的效果卻更好,SE 容易產生欠擬合情況。
Neural Tensor Modal的一個特殊例子是:
其中L,l1,l2均與l有關。這個函數中,若三元組為破壞三元組,則函數值較小。
對於TransE,若以歐氏距離的平方作為度量函數,有如下定義:
已知 h 和 t 的范數均為1。由於l的范數對破壞三元組沒有意義,因此添上了括號中的項。括號內取的是Neural Tensor Modal中 s(h, l, t)的特殊例子,L取單位矩陣,l1=-l2=l。因此,對於同樣一個關系 l 的原始三元組 (h, l, t) 與破壞三元組 (h, l', t),前三項都是一樣的,最后一項卻能夠保證使得破壞三元組的距離度量更大。
相比Neural Tensor Modal,TransE所使用的的參數更少,這不僅簡化了訓練,也能防止欠擬合,補償了表達能力過於簡單的問題。
嵌入的低維空間維數 k、超參數 γ、梯度下降優化方法中的梯度均為可調整參數。
評價指標
對於一個三元組(h,l,t),通過更換頭部或尾部得到損壞三元組,每次只能替換頭部或只能替換尾部。例如,頭部和尾部的集合是固定個數的(若待替換項有n-1項),對生成的三元組集合(n-1個)計算距離,按照距離從小到大排列。
第一個評價指標——hit@10
第二個評價指標——mean rank
表示在這n-1個排序中,平均排到多少位才能得到真實三元組。
