1. 程式人生 > 其它 >知識圖譜融入預訓練模型論文解讀

知識圖譜融入預訓練模型論文解讀

©NLP論文解讀原創•作者 |瘋狂的Max

背景及動機

以BERT為基礎的預訓練模型在各項NLP任務獲得巨大的成功,與此同時,如何在泛化的預訓練模型基礎上融入某些特定領域的知識圖譜以獲得在特定領域內讓模型有更優秀的表現,這一課題也一直備受關注。

然而大部分之前的將知識圖譜融入預訓練模型的工作都是將知識圖譜的知識轉化為知識導向的訓練任務,通過更新整個模型的引數來進行訓練,來實現知識圖譜的融入。

這種方法雖然可以提升下游任務的效果,但是新型別的知識圖譜注入時,之前已經注入的希望得以儲存的知識會被沖刷,並且不同知識之間混合在一起,所以難以進一步研究和分析每種知識圖譜各自的效果。

針對這樣的問題,K-ADAPTER過一種靈活且簡單的框架將多種知識圖譜融入預訓練模型中。K-ADAPTER保留原本的預訓練模型引數不變,通過在預訓練模型的中間層之外加入額外的模型結構,這也就是文中提到的adapter。

具體而言,作者用RoBERTa作為基礎預訓練模型,融入了兩種型別的知識圖譜:一種是維基百科三元組構成的知識圖譜,另一種是基於句法依存的語法類知識圖譜。

兩種知識圖譜對應的adapter是分別訓練的,同時因為adapter需要更新的引數遠小於RoBERTa,因此訓練過程高效。訓練好的模型在relation classification,entity typing和question answering這3個知識導向的下游任務上效果都優於RoBERTa。

將知識圖譜融入預訓練模型的幾種模型

1.ERNIE:抽取WikiData的fact triples,並去除了少於3個實體的句子來進行預訓練,其中實體的embedding是通過TransE基於WikiData的fact triples進行訓練獲得。

2.LIBERT:注入同義詞和下義詞關係的知識,將一對詞語並用特殊字元分隔作為模型輸入,預測兩個詞是否為某種特定關係。

3.SenseBERT:注入word-supersense的知識,通過預測輸入的掩碼詞語的supersense的方式來注入知識。

4.KnowBERT:通過在BERT的原始模型兩層之間加入KAR層結構,這種結構用來注入知識圖譜資訊。同時利用了輸入文字抽取的span之間,span和entity之間,entity之間的attention來實現互動計算,進一步將知識圖譜的資訊融入到模型中去。

5.WKLM:通過將輸入中出現的實體替換為同類型的另一實體,讓模型任務變成判斷實體是否為隨機替換的,以此構造訓練任務,達到知識的融入效果。

6.BERT-MK:從知識圖譜中抽取fact triples,構造成訓練任務,替換三元組中的頭或尾,模型訓練任務為判定是否為替換的負樣本。

文中也對以上5種模型和k-adpater一起從融入知識的型別、訓練目標、是否固定BERT引數以及是否又持續的知識融入幾個方面進行了歸納總結。

K-adapter模型結構

圖(a)是之前大部分通過注入知識圖譜相關的多工學習來更新整個模型引數的框架,圖(b) 是本文通過知識介面卡引入知識的框架。

具體來說,K-ADAPTER保留了預訓練模型原本的引數,使其引數固定,在融入某一種知識的時候,只更新對應的adapter,從而產出不同知識對應的不相互混淆的模型輸出。

這些不同的adapter結構是在預訓練模型的之外的,可以插入和抽取。其輸入是預訓練模型中間層的隱層輸出結構。

這就是的每一個adapter在不同的任務上可以對應融入不同的外部知識,並保證原本的預訓練模型的引數是被凍結,不被更新的。

本文采用RoBERTa作為預訓練模型,融入了兩種adapter:factual adapter和linguistic adapter,前者通過關係抽取任務融入預訓練模型,後者通過依存關係預測任務融入預訓練模型,兩者獨立訓練。

1.K-ADAPTER的模型結構和訓練方法

(1)每層adapter的內部結構:

結構說明:

每個Adapter模型包含K個adapter層,每個adapter層包含N 個transformer層,2 個對映層和1 個殘差連線。每個adapter層連線到預訓練模型中不同的transformer層上。

輸入輸出說明:

每個adapter層的輸入:當前adapter層的輸入為連線的 transformer層隱藏層的輸出和前一個adapter層的輸出,這兩個表示進行拼接之後進入adapter層。

整個K-ADAPTER模型的輸出:將預訓練模型最後一層的隱藏層輸出和最後一個adapter層的輸出,進行拼接作為最終的輸出。

(2)訓練方法:

使用RoBERTa-Large模型作為本文實驗中的預訓練模型,共計335M引數。

在其第0層、11層、23層的transformer層之後加入adapter層,每個adapter層中的transformer層數、隱層維度和自注意力頭為2,768,12,兩個對映層維度分別是 1024 和 768。

並且,不同的adapter層之間不共享引數,最終一種adapter包含的引數量為42M。

2.2種adapter:factual adapter和linguistic adapter

Factual adapter對應Factual Knowledge ,主要來源於文字中實體之間的關係,資料量為5.5M,430種關係,對應的預訓練任務是關係分類,給定context和一對實體,對其間關係標籤進行分類。

Linguistic adapter對應Linguistic Knowledge,主要來源於文字中詞之間的依存關係,資料量為1M,其預訓練任務是依存關係分類,預測給定句子中每個token在依存分析結果中的head index。

知識導向相關的3個下游任務實驗結果分析

本文作者將K-ADAPTER模型在以下三種知識導向的下游任務中進行實驗,分別是: relation classification,entity typing和question answer。

融入factual knowledge為K-ADAPTER(F),融入linguistic knowledge的為K-ADAPTER(L),融入兩種的為K-ADAPTER(F+L)。

同時也將這3個模型和BERT-Base,ERNIE,KnowBERT,RoBERTa,以及僅僅新增K-ADAPTER結構並沒有進行知識融入的K-ADAPTER等模型效果進行了對比和羅列。

從下圖的三個下游任務實驗結果可以看到,K-ADAPTER(F+L)在3種任務上表現都由於其他模型。

模型的個例分析

本文的個例分析將K-ADAPTER和RoBERTa在關係分類的資料集TACRED給出了案例結果對比。

大部分實驗結果表明RoBERTa在錯誤分類結果和正確結果之間的邏輯輸出值是很接近的。比如,給定的句子“New Fabris closed down June 16”, RoBERTa預測New Fabris和June 16為“no relation”, 但是正確標籤是 “city of birth”,預測結果被排列到第二位。

但如果模型知道 “New Fabris” 是一家公司,那麼就能正確預測 “New Fabris” and “June 16”之間的關係。K-ADAPTER通過factual knowledge學習到了這個關係,就可以做出正確的預測。

這也可以證明K-ADAPTER可以獲得比RoBERTa更豐富的factual knowledge,而這個knowledge是有助於幫助模型正確預測與之相關的下游任務的。

結論與研究思考

K-ADAPTER保留預訓練模型的原有引數,支援持續的多種知識的融入,並且新融入的知識不會對舊知識學習到的引數產生影響。

Factual knowledge和Linguistic knowledge的分別融合到RoBERTa中,多種下游任務實驗結果都證明了兩種知識的注入分別都可以提升模型效果,兩者加成在一起效果更好。

在接下來的研究和應用中,可以將某些特定垂直領域或者特定任務相關的外部知識通過K-ADAPTER的模式加入訓練,以提升與之相關下游任務的效果。

△新增AI小助手

微信ID:tanxin6934

備註:姓名-學校/公司-研究方向-城市(如:小欣-斯坦福-目標檢測-深圳)

即可領取目標檢測與R-CNN/資料分析的應用/電商資料分析/資料分析在醫療領域的應用/NLP學員專案展示/中文NLP的介紹與實際應用/NLP系列直播課/NLP前沿模型訓練營等乾貨學習資源。

每月大咖直播分享、真實專案需求對接、求職內推、演算法競賽、乾貨資訊彙總等等。