Relational Learning with Gated and Attentive Neighbor Aggregator for Few-Shot Knowledge Graph Comple

2022-12-09 18:03:53

  小樣本知識圖補全——關係學習。論文利用三元組的鄰域資訊,提升模型的關係表示學習,來實現小樣本的連結預測。主要應用的思想和模型包括:GAT(圖注意力神經網路)、TransH、SLTM、Model-Agnostic Meta-Learning (MAML)。

  論文地址:https://arxiv.org/pdf/2104.13095.pdf

引出

  在WIkidata資料集中,有超大約10%的關係只被不超過10個的三元組所包含,所以要用小樣本學習來為這些關係擴充實體。儘管我們可以直接學習整個知識圖譜的關係,然後對整個知識圖譜進行推理和擴充,但是這樣計算量太大。論文用關係的鄰域作為額外資訊來提升關係表示的小樣本學習。

方法

  在這篇論文中,實體和關係的嵌入在訓練和測試階段都是使用TransE預訓練好已知的,論文通過引入鄰域資訊來進一步發掘關係的表示。另外,論文方法使用了模型不可知元學習(Model-Agnostic Meta Learning, MAML),為了表述清晰,我們先對測試的pipeline進行介紹,然後介紹訓練過程。

測試pipeline

  對於知識圖譜$\mathcal{G}$中的小樣本關係$r$,其包含少量的$K$個三元組$\{(h_1,r,t_1),...,(h_K,r,t_K)\}$,我們稱這個集合為支撐集(Support set)$S$。模型就是用支撐集作為推理資訊,對查詢集(Query set)$Q=\{(h_1,r,t_1^?),...,(h_m,r,t^?_m)\}$進行推理(已知關係和一個實體,預測另一個實體)。查詢集中三元組頭實體$h$或尾實體$t$未知都可。

  如論文中Figure 2所示,對於支撐集的每個三元組$(h_i,r,t_i)$,都在$\mathcal{G}$中找出它們鄰域的三元組$\{\mathcal{N}_{h_i},\mathcal{N}_{t_i}\}$。然後,通過一個所謂門控注意力鄰域聚合器,將$h_i$和$t_i$分別和它們各自的鄰域$\mathcal{N}_{h_i}$和$\mathcal{N}_{t_i}$融合,分別得到$h'_i$和$t'_i$。然後拼接得到$s_i$。$s_i$可以看做是$r$在實體$h_i$和$t_i$下,同時融合了它們的鄰域的表示。具體操作請看論文中式(1)-式(6)。

  然後為了對$r$進行完整的表示,也就是將$r$的所有三元組資訊都融合起來,文中用Bi-LSTM和注意力機制將所有的$s_i$進行融合,最後得到$r$的表示$r'$。具體操作請看文中式(7)-式(13)。其實不太瞭解為什麼要用Bi-LSTM,畢竟它們之間沒有時序關係。

  然後文中使用知識圖嵌入方法(KGE)TransH來使表示$r'$和支撐集$S$中實體的嵌入相契合,從而能進行後面的推理步驟。與TransH一樣,文中定義一個$P_r$作為$r'$所在超平面的法向量,並使用TransH相關的損失對之前計算出來的$r'$和$P_r$進行優化。也就是說,優化$r'$和$P_r$,使得對於支撐集$S$中所有的$h_i$和$t_i$,有

$(h_i-P_r^Th_iP_r)+r'=(t_i-P_r^Tt_iP_r),\,\,i=1,...,K$

  優化方式就是用梯度下降,如文中式(14)-式(19)所示。需要注意的是,論文中TransH對映到超平面的式子寫錯了,式(14)和式(20)。

  最後就是用優化後的$P_r$和$r'$進行在查詢集$Q$上的推理。也就是對知識圖譜所有實體$e$進行排序,與對映後的嵌入差異$Dif$越小排名越靠前。$Dif$計算方式如下:

$Dif=\|(h_i-P_r^Th_iP_r)+r'-(e-P_r^TeP_r)\|$

  其中優化後的$P_r$和$r'$在論文中表示為$P'_r$和$r_m$。另外,文中還出現了一個$P^*_r$。它是模型經過MAML預訓練後得到的引數,在下面的訓練過程中介紹。

訓練過程

  訓練過程是對計算$r'$所用的模型引數(圖2The Global Stage的引數)進行訓練,以及對超平面法向量$P_r$進行預訓練(MAML)。之所以稱之為預訓練,是因為$P_r$在測試階段依然需要使用支撐集進行微調,而聚合器引數如Bi-LSTM在測試階段則是固定不變的。

  訓練與測試階段一樣,同樣包含支撐集與查詢集。訓練過程描述如下(論文Algorithm 1):

  初始化The Global Stage的模型引數,以及$P_r$。

  對於某個關係$r$,設其支撐集和查詢集分別為$S_r=\{(h_1,r,t_1),...,(h_K,r,t_K)\}$和$Q_r=\{(h_1,r,t_1^?),...,(h_m,r,t^?_m)\}$。$S_r$經過鄰域聚合器得到表示$r'$。然後與測試階段一樣用支撐集實體優化$r'$和$P_r$。最後計算$r'$和$P_r$在查詢集$Q_r$上的損失,並用該損失對The Global Stage的模型引數$\theta$(經由$r'$)以及$P_r$進行優化:

$\displaystyle L=\frac{1}{m}\sum\limits_{i=1}^m\|(h_i-P_r^Th_iP_r)+r'-(t_i^?-P_r^Tt_i^?P_r)\|$

$\theta=\theta-\beta\nabla_\theta L$

$P_r=P_r-\beta\nabla_{P_r} L$

  值得注意的是,由於執行了二重反向傳播,因此在實現時第一次對$r'$和$P_r$的優化需要儲存其反向傳播的計算圖。

  使用多個關係的支撐集和查詢集對模型進行訓練。最終訓練完成得到$\theta^*$和$P_r^*$。

實驗

實驗設定

  論文實驗使用NELL-One和Wiki-One資料集進行實驗,選擇包含三元組數量在50到500之間的關係進行訓練(支撐集和查詢集的size沒說),之後使用支撐集大小為1/3/5的關係進行測試。使用平均倒數秩(Mean reciprocal rank,MRR)和Hit@n作為評價指標,都是越高越好。指標計算流程是這樣的:

  對於某個關係$r$,測試集的查詢集是$Q=\{(h_1,r,t^?_1),...,(h_m,r,t^?_m)\}$。對每個待查詢三元組$(h_i,r,?)$進行推理,按照相似度得到可能的尾實體排序$\{t^1_i,...,t^w_i\}$。

  MRR:獲取$t^?_i$在其中的排序$rank_i$,然後將所有$rank_i$的倒數進行平均,得到這個關係$r$的MRR:

$\displaystyle MRR_r=\frac{1}{m}\sum\limits_{i=1}^m\frac{1}{rank_i}$

  Hit@n:檢視尾實體排序的前$n$個,如果$t^?_i$在其中,則記$Hit_i=1$,否則為$0$,將所有$Hit_i$進行平均,得到這個關係$r$的Hit@n:

$\displaystyle Hit@n_r=\frac{1}{m}\sum\limits_{i=1}^mHit_i$

  然後測試集可能包含對多種關係的測試,最終MRR和Hit@n的結果應該是所有$MRR_r$和$Hit@n_r$的平均。

實驗結果

  做了1/3/5-shot實驗、1-N/N-1/N-N實驗、消融實驗,證明了模型和各個模組的有效性,如表2/3/4所示。

  因為論文使用關係的鄰域促進模型對關係表示的學習,論文還對鄰域給關係表示的貢獻作了視覺化,如圖3所示。權重越大,表示這個鄰居對關係的表示貢獻越大。