让预训练模型学习知识:使用多学习器增强知识建模能力
論文標題:
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發展的一大研究點所在。
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的让预训练模型学习知识:使用多学习器增强知识建模能力的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马斯克盯上了盲人,Neuralink 下
- 下一篇: 迁移学习领域自适应:具有类间差异的联合概