香儂讀 | 讓預訓練模型學習知識:使用多學習器增強知識建模能力

論文標題:

K-Adapter: Infusing Knowledge into Pre-Trained Models with Adapters

 

論文作者:

Ruize Wang, Duyu Tang, Nan Duan, Zhongyu Wei, Xuanjing Huang, Jianshu ji, Cuihong Cao, Daxin Jiang, Ming Zhou

 

論文鏈接:

https://arxiv.org/abs/2002.01808

 


 

近年來,預訓練模型取得了巨大成功,然而它們還是缺乏知識建模的能力。

 

爲了增強預訓練模型的語言知識建模能力,本文提出K-Adapter,用不同的學習器去學習不同的知識型任務,從而緩解知識遺忘的問題。

 

本文方法在實體分類、問答等任務上取得了顯著的效果提升。

 

預訓練模型的知識建模能力

 

近年來,大規模的預訓練模型在NLP各類任務上大放異彩,如大家喜聞樂見的BERT及其變體。

 

這些預訓練模型的基本思路是:將文本中的部分內容抹去,讓模型通過上下文預測被抹去的部分。

 

這樣的過程完全是無監督的,所以得以利用大規模的語料進行訓練,從而增強下游各任務的效果。

 

注意到這個過程可以看成是一種“完形填空”的過程:從上下文推定缺省處的詞。

 

就像我們做完形填空一樣,如果模型也能非常準確地填出空白處的詞,那麼我們說模型就具備一定的語言知識建模能力(無論是“記住”這些知識還是“推理”這些知識)。

 

然而,當前有很多文獻表明,單純的預訓練模型不具備這種能力。比如在我們之前的文章當下主流的預訓練語言模型推理能力對比中介紹的那樣,大多數模型不具備“否定推斷”能力,不具備“數字推導”能力,也不具備“比較”能力等等。

 

增強預訓練模型的語言知識建模能力,對於促進NLP模型在實際生活中的應用大有裨益。

 

爲此,本文提出K-Adapter,在預訓練模型的基礎上使其更好地學習各類語言知識。

 

不同於之前直接在預訓練模型上訓練的方法(這會導致過去學習的知識的遺忘),本文把預訓練模型固定,然後分別獨立學習不同的知識,從而緩解“知識遺忘”的問題,增強模型的語言知識建模能力

 

總的來說,本文貢獻如下:

 

  • 提出K-Adapter,可以持續地將語言知識融入到預訓練模型中;

  • 爲不同的任務使用不同的學習器,從而緩解“知識遺忘”問題;

  • 在分類、問答等任務上取得了顯著的效果,並且具備一定的知識建模能力。

 

K-Adapter模型

 

下圖是多任務學習模型(a)和K-Adapter模型(b)示意圖。可以看到,多任務學習是直接在預訓練的模型上訓練、學習,從而,學習的先後就會導致模型參數的更新,就造成了“知識遺忘”問題。

 

而K-Adapter爲每個任務單獨配置一個Adapter(學習器),在該任務的學習只更新相關的學習器,且整個過程中預訓練模型參數是固定的,這樣就有利於避免“知識遺忘”問題。下面來具體看K-Adapter的結構。

 

 

每個學習器由K個學習層組成,每個學習層由一個全連接層、N個Transformer層和最後一個全連接層組成(下圖所示)。注意,這裏的Transformer層是來自預訓練模型中的,目的是爲了融合二者。

 

最後,只需要把學習器的最後一層的特徵和預訓練模型最後一層的特徵拼接起來,送入下游任務訓練即可。有幾個任務,就用幾個獨立的學習器。

 

本文使用了兩種任務,事實性任務(Factual Adapter)和語言學任務(Linguistic Adapter)。

 

對事實性任務,本文從關係抽取數據集T-REx中抽取出一個子集,包含50個實體對和430個關係。

 

對於語言學任務,本文用Book Corpus中選取1M個實例,並用Standford Parser構造依存關係數據。

 

K-Adapter方法簡單,那麼它效果如何呢?本文將RoBERTa作爲預訓練模型來檢驗K-Adapter的實際效果。

 

實驗

 

實體分類

 

實體分類指給定實體及其上下文,要求判斷實體的類型。我們在數據集Open Entity和FIGER上實驗。

 

下表是實驗結果,RoBERTa+Multitask指在RoBERTa上用多任務學習的方法學習。

 

 

和之前的最好結果相比,K-Adapter的方法能取得顯著的效果提升,而和Multitask的方法比,也有較大的漲幅。

 

問答

 

下面再在問答任務上實驗。我們在常識推理問答數據集CosmosQA和開放領域問答數據集Quasar-T和SearchQA上實驗。下表是實驗結果:

 

 

從常識推理來看,K-Adapter的最好結果是顯著優於Multitask的;在開放領域問答上,K-Adapter更是好於Multitask,尤其是在數據集Quasar-T上。

 

知識建模能力

 

最後,我們來檢驗各模型的知識建模能力。這個任務類似完形填空,即要預測句子中空缺的詞,比如“Simon Bowman was born in [MASK]”。

 

我們在數據集LAMA-Google-RE和LAMA-T-REx上實驗。下表是實驗結果:

 

 

可以看到,K-Adapter比RoBERTa具有一些優勢,然而卻弱於BERT。

 

這是因爲,BERT使用的是字符級別的BPE編碼,而RoBERTa使用的是Byte級別的BPE編碼,這會導致一些詞彙會被切分爲若干bytes,不利於知識的學習。

 

最後來看看一些例子,如下圖所示。從這些例子可以看到,k-Adapter可以預測得更加準確。

 

 

小結

 

本文提出一種方便簡單的用於增強預訓練模型知識建模能力的方法——K-Adapter。

 

在訓練的時候,爲不同的任務設置不同的、獨立的學習器,並且固定預訓練模型的參數,這樣一來,不同任務的學習都可以同時融合到語言模型中。

 

本文在實體分類、問答等任務上取得了較爲顯著的效果提升,在知識建模能力任務上也有一定的進步。

 

正如我們在開篇講的那樣,目前預訓練模型的一大不足就是知識建模能力十分欠缺,如果增強其知識建模能力、使得文本和知識完全貫通,是未來NLP發展的一大研究點所在。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章