《One-Shot Relational Learning 》閱讀筆記
《One-Shot Relational Learning for Knowledge Graphs》
來源:EMNLP 2018
原文連結: https:// arxiv.org/abs/1808.0904 0v1
在知識圖譜補全(Knowledge Graph Completion)任務中,對實體間的關係分類是非常重要的一環。目前的方法假設每種關係都存在大量訓練樣本進行有監督訓練,但是現實中的知識圖譜訓練集中普遍存在大量長尾的關係類別,使訓練效果無法達到預期; 而且對於任意新增關係,在沒有充足訓練資料的前提下無法進行預測。針對這些問題,本文提出了一種one-shot知識譜圖關係學習框架,利用embedding-based的方法學習匹配度量函式,在新增關係或者長尾關係只有非常少量的訓練資料的前提下也可以進行很好的預測,同時取得了不錯的效果。
- Introduction
知識圖譜當前被廣泛應用於自然語言處理的任務中,例如問答系統,搜尋引擎以及推薦系統等。知識圖譜中的實體關係資訊通常以結構化三元組(head entity, relation, tail entity)表示。為了滿足當代智慧系統的需求,知識圖譜的內容需要不斷的擴充。
如Figure 1,知識圖譜資料集往往呈長尾形態,很多關係只有幾個三元組樣本支撐。目前的知識圖譜構建模型主要有兩個問題:1.模型對於樣本充足的關係和稀疏的長尾關係都同等對待,對樣本量少的關係分類效果不好2.在關係表示層面,目前的模型對於新增關係無法進行預測。

本文主要貢獻:
- 針對長尾關係的預測任務,轉化為few-shot任務進行預測;
- 提出了一種應用於關係預測的one-shot learning框架,模型只依賴於實體embedding和圖譜結構,學習匹配度量函式,利用預測三元組與參考三元組的相似度對新增關係進行預測,相比其他基於embedding的模型取得了更好地效果;
- 針對one-shot知識圖譜補全任務,提出了2個不同量級的資料集。
- Related Work
1. Embedding Models for Relational Learning: 目前針對圖譜中關係補充(推理)任務的主要方法有DistMult、ComplEx、ConvE,這些模型基於embedding,通常假設所有關係都有足夠數量的樣本用於訓練,沒有特別關注樣本稀疏的關係類別。同時還有一些模型利用文字描述來解決新增實體的問題。而本文針對長尾或者新增的關係應用one-shot learning 方法進行解決,同時不需要依賴任何外部資訊。
2. Few-Shot Learning: 目前的Few-Shot Learning方法可分為兩類:基於度量的方法和基於元學習的方法。具體在之前的閱讀筆記《FewRel》有所介紹,大家可以跳轉自取。上述的方法多用於影象領域,目前在文字領域,Yu et al. (2018) 提到了一種基於多度量的few-shot文字分類方法。根據作者的統計,本文是第一篇解決知識圖譜one-shot learning的文章。
- Background
1. 問題定義: 知識圖譜補全。
知識圖譜三元組形式:{(h,r,t)},其中h: head entity, t: tail entity, r: relation。
知識圖譜補全主要涉及兩方面任務:1.(h,?,t):預測已知實體對間的未知新增關係;2. (h,r,?):已知head entity和query relation,預測tail entity。本文是基於第二種問題定義。為了實驗的可行性,在測試集中本文只考慮新增關係,而不考慮新增實體。即在測試集中的實體在訓練集中均出現過。
2. 對於上述知識圖譜補全任務,正確的tail entity是從候選集中通過排序選擇出來的。對於每一組query:(h,r),存在ground-truth tail entity和一個候選集合C。通過給模型計算出他們的score並排序,ground-truth tail entity的排序越高越好。One-shot KG learning的任務定義為對於測試集中的關係,其沒有出現在訓練集中,並且在測試的時候只見過一個標註樣本,本文中稱參考三元組。本文介紹了一個background KG,train/dev/test集中的所有實體均出現在background KG中,下文提到的Neighbor Encoder中所結合的neighbor三元組也是均出現在background KG中的。
- Model
如Figure 2, 本文提出的模型主要由兩部分組成:
· Neighbor Encoder:通過知識圖譜的one-hop structure學習目標實體的表示。
· Matching Processor:學習一個匹配度量函式,可以準確計算出測試三元組與參考三元組的相似度得分。

1. Neighbor Encoder
Neighbor Encoder的目標是學習三元組的實體向量表示。對於一個目標三元組中的實體Leonardo da Vinci,它的one-hop neighbors如Figure 2(a) 所示,每個neighbor都是以tuple的形式出現, 以第k個neighbor為例(r_k, e_k),由於他們出現在background KG中,所以已知他們的KG embedding為:

對於neighbor的向量表示,本文采用了一個簡單的feed-forward layer:

由此我們可以得到每個neighbor的向量表示,作者借鑑Graph Neural Network的思想,通過這些neighbor向量的平均向量來表示目標實體,即圖中的Leonardo da Vinci:

2. Matching Processor
根據上述的Neighbor Encoder,我們得到了實體的向量表示。由於在測試關係的向量表示無法得到,所以對於每個三元組,以參考三元組為例(h_0, r, t_0),作者採用head entity和tail entitiy的向量表示進行concatenation operation得到,即

。由影象領域的相關工作可知,只是採用簡單的度量函式,如cosine similarity,很難得到很好的效果。所以作者借鑑了影象領域的LSTM-based Matching Processor進行multi-step matching。其中每個process step可以表示為:

其中

q即代表測試三元組。
3. 損失函式
本文采用了hinge loss損失函式來學習模型引數。每次計算損失函式時都需要一個negative triple來計算 ,作者採用了KG領域常用的方法:隨機替換tail entity

。由此,目標函式可以表示為:

- Experimental Result
1. 資料集
本文在原有的知識圖譜資料集的基礎上構建了兩個不同量級的one-shot learning資料集,詳細情況如下圖:

其中NELL-One和Wiki-One的train/validation/test的分隔分別為51/5/11和133/16/34。
2. Link Prediction
作者在本節對比了本文所提出的one-shot框架與KG embedding方法進行了對比實驗。其中Baselines採用了監督學習方法,在訓練過程中給測試關係一個標註樣本,這樣就可以學習到測試關係的表達並對其在測試階段進行預測。對於作者提出的方法,分別採用了不同的KG embedding方法訓練background KG中的實體和關係的向量表達,作為Neighbor Encoder的輸入。從結果可以看出,本文提出的方法有著非常明顯的優勢。而且作者在Table 2的最後一行給出了僅提供Neighbor Encoder隨機初始化的輸入的情況下的表現,可見依舊取得了相對於Baselines的明顯的提升。

3. Neighbor Encoder分析
作者分析了在Neighbor Encoder中,採用的neighbors的數量閾值對實驗結果的影響。由圖可見,neighbors的數量越大,效果也有所提升,但效果的提升也逐漸趨於緩和。所以最終作者採用50作為neighbor的數量閾值。

4. Ablation Studies
在本節,作者做了ablation分析,分別給出了Matching Processor,Neighbor Encoder和Scaling Factor對於實驗結果的影響。其中Scaling Factor為公式

中的

由Table 4可見,每個環節對最終的link prediction表現都起著關鍵作用。