ConvE:Convolutional 2D Knowledge Graph Embeddings
論文:Convolutional 2D Knowledge Graph Embeddings
1 介紹
1.1 提出原因
之前提出的模型如disMult,Trans系列模型,成為淺層模型,雖然比較簡單,參數較少、訓練模型速度較快,但是這些模型相比于深的模型,更少能夠抓到復雜的信息。因此,提出模型ConvE模型,利用卷積的方式進行知識圖譜補全,能夠適用于更加復雜的圖。
在淺層模型中增加特征數量的唯一方法,就是增加embedding的維度,但是隨之而來存在一個問題,不能擴展到更大的知識圖譜,因為嵌入參數的總數與圖中實體和關系的數量成正比。此外,以往的多層知識圖嵌入體系結構都是全連接的,容易出現過擬合問題。
1.2ConvE優勢
ConvE采取卷積的形式,由于高度優化的GPU實現,它的參數效率和計算速度快。由于其的普遍使用,在訓練多層卷積網絡時,已經建立了魯棒方法來控制過擬合。在本文中,我們引入了ConvE模型,該模型使用二維卷積在嵌入上預測知識圖中的缺失環節。ConvE是用于鏈接預測的最簡單的多層卷積體系結構:它由單個卷積層、嵌入維數的投影層和內積層定義。相比于GCN框架僅限于無向圖,而知識圖自然是有向的,并且可能受到限制的內存需求的影響。
1.3 貢獻
- 介紹了一個簡單的,有競爭力的2D卷積鏈路預測模型,ConvE。
- 開發一個1-N的評分程序,加速三倍的訓練和300倍的評估。
- 系統地研究了在常用的鏈接預測數據集中報告的逆關系測試集泄漏,在必要時引入數據集的魯棒版本,使其無法用簡單的基于規則的模型來解決。
2 模型
2.1 1D vs 2D Convolutions
1D Convolutions
([a a a] ; [b b b]) = [a a a b b b]
若采用filter, 其 size k = 3, 結果為維度 1 × 4 1\times4 1×4
2D Convolutions
( [ a a a a a a ] ; [ b b b b b b ] ) = [ a a a a a a b b b b b b ] \begin{pmatrix} \begin{bmatrix} a & a & a \\ a& a & a\\ \end{bmatrix}; \begin{bmatrix} b&b&b\\ b&b&b\\ \end{bmatrix} \end{pmatrix}= \begin{bmatrix} a&a&a\\ a&a&a\\ b&b&b\\ b&b&b\\ \end{bmatrix} ([aa?aa?aa?];[bb?bb?bb?]?)=?????aabb?aabb?aabb??????
若采用filter, 其 size k = 3 × 3 \times3 ×3, 結果為維度 2 × 1 2\times1 2×1
二維卷積運算能夠模擬a和b之間更多的交互作用(與m, n, k成比例的動作)。因此,與一維卷積相比,二維卷積能夠提取兩個嵌入之間更多的特征交互作用
2.2 模型圖
模型講解:
- 頭實體和關系的one-hot編碼進行embedding,維度為k
- 將頭實體和關系的embeding 進行reshape,并拼接
- 進行卷積操作
- 全連接操作,映射維度為k
- 將全連接的結果乘以所有embedding結果,即實現1-N的評分方法,也就是說結果乘所有實體。
2.3 評分函數
其中 r r ∈ R k , e  ̄ s , r  ̄ r 分 別 代 表 e s , r r , 2 D 進 行 r e s h a p e 結 果 。 e s , r r ∈ R k , e  ̄ s , r  ̄ r ∈ R k w × k h , 其 中 k = k w × k h \mathbf r_{r}\in \mathbb R _{k}, \overline \mathit e_{s},\overline \mathit r_{r}分別代表e_{s}, r_{r},2D進行reshape結果。e_{s}, r_{r}\in\mathbb R_{k},\overline \mathit e_{s},\overline \mathit r_{r}\in \mathbb R^{k_{w}\times k_{h}},其中k=k_{w}\times k_{h} rr?∈Rk?,es?,rr?分別代表es?,rr?,2D進行reshape結果。es?,rr?∈Rk?,es?,rr?∈Rkw?×kh?,其中k=kw?×kh?
2.4 損失函數
2.5 正則化
我們通過在幾個階段使用drop out來規范我們的模型,防止過擬合。 特別地,我們在嵌入、卷積后的feature map以及全連通層后的hidden units上使用了dropout。此外,我們BatchNorm進行歸一化,在卷積輸入之前,卷積輸入之后,
feature map之后進行BatchNorm歸一化。
3 代碼
論文原作代碼使用一個框架難以理解,找到替代的一個代碼。
參考代碼:點我
模型代碼
總結
以上是生活随笔為你收集整理的ConvE:Convolutional 2D Knowledge Graph Embeddings的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux mysql 僵尸进程_Lin
- 下一篇: QT 中怎样实现延时 stop