ACL20 best paper荣誉提名 | DO NOT STOP Pre-training!
星標/置頂小屋,帶你解鎖
最萌最前沿的NLP、搜索與推薦技術
文 |?JayLou婁杰(NLP算法工程師,信息抽取方向)
編 |? 可鹽可甜兔子醬
在昨晚23點的best paper典禮上我驚了,這篇論文竟然獲得了今年ACL2020 best paper榮譽提名...(我沒有其他意思
乘風破浪、披荊斬棘的各種 預訓練語言模型[1],都備受NLPer們的關注。而你是否思考過:直接拿BERT對目標任務進行finetune就夠了嗎?是否仍有提升空間?
ACL2020錄用的一篇來自Allen AI 的論文《Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks》[2] 告訴我們:不要停止預訓練!在目標領域和任務上要繼續進行預訓練,效果還會有明顯提升(意外驚喜~)。
廢話不說,我們快速播報一下這篇paper的重要結論:
在目標領域的數據集上繼續預訓練(DAPT)可以提升效果;目標領域與語言模型的原始預訓練語料越不相關,DAPT效果則提升更明顯。
在具體任務的數據集上繼續預訓練(TAPT)可以十分“廉價”地提升效果。
結合二者(先進行DAPT,再進行TAPT)可以進一步提升效果。
如果能獲取更多的、任務相關的無標注數據繼續預訓練(Curated-TAPT),效果則最佳。
如果無法獲取更多的、任務相關的無標注數據,采取一種十分輕量化的簡單數據選擇策略,效果也會提升。
筆者這里給出一個重要的實驗結果:RoBERTa直接對生物醫學領域的某個分類任務(低資源設置)進行finetune時,f1只有79.3,而采取DAPT+Curated-TAPT后,指標提升至83.8!提升居然有4.5個percent! 效果也是杠杠的~
也就是說:當我們所執行任務的標注數據較少,所屬的領域與初始預訓練語料越不相關,而又能獲取到充分的、任務相關的無標注數據時,那就不要停止領域預訓練和任務預訓練!
下面對這篇paper做詳細的介紹,本文的組織結構為:
Arxiv訪問慢的小伙伴也可以在訂閱號后臺回復關鍵詞【0709】下載論文PDF~
背景介紹
大多數語言模型都在諸如Wikipedia的通用語料中預訓練,而在領域化的特定場景會受到限制。因此很多研究致力于發掘:對目標領域的數據繼續進行預訓練是否可行?如基于生物醫學文本的BioBERT[3],基于科學文本的SciBERT[4],基于臨床文本的Clinical-BERT[5]。我們通常稱這種范式為domain-pretrain或者post-pretrain。此外,一些工作對具體任務,將語言模型做為輔助目標進行訓練,如GPT1.0 [8]。
上述各種領域BERT雖然表明繼續進行領域預訓練的優勢,但這些研究一次僅考慮單個領域,而且BERT原始預訓練的語料庫相比于后來居上的語言模型仍然較小、多樣性也不足。更重要的是,我們尚不清楚一些問題,例如:
持續預訓練的優勢是否和下游任務的標注數量有關?
持續預訓練的優勢是否和目標領域與原始預訓練語料庫的接近程度有關?(如圖1所示)
▲圖1 分別展示了原始預訓練LM領域分布、目標領域分布、任務數據集分布;任務數據集通常從目標領域的一個較寬分布內(淺灰色部分)進行采樣;目標領域和原始LM領域可交叉重疊。
1 領域自適應預訓練
領域自適應預訓練 (Domain-Adaptive Pretraining,DAPT),即在領域相關的大規模無標注語料繼續進行預訓練,然后再對特定任務進行finetune。
論文選取了4個領域語料庫,分別為生物醫學(BioMed)領域、計算機科學(CS)領域、新聞(NEWs)領域、評論(Reviews)領域,如圖2所示。我們采取RoBERTa作為基準的預訓練語言模型,其預訓練語料庫相比于BERT數量更大、更具多樣性。
▲圖2 不同領域預訓練的無標注語料▲圖3 不同領域間的詞匯重疊度,PT代表RoBERTa的預訓練語料
圖3展示了不同領域間的詞匯重疊度(選取每個領域TOP 10K個高頻詞,計算詞匯重復度),可以發現RoBERTa語料與NEWs和Reviews領域相似度高,而與BioMed和CS領域相似度較低。我們可以預測:與RoBERTa的領域越不相似,領域自適應預訓練的受益程度越高。
論文對每個領域選取2個特定分類任務進行實驗,并進行了高資源和低資源(訓練集標注量小于等于5000)配置,如圖4所示:其中CHEMPROT、ACL-ARC、SCIREC、HYP為低資源設置。
▲圖4 各個領域特定任務數據設置▲圖5 DAPT與領域無關的?DAPT對比由圖5可以看出無論高資源還是低資源條件,采用領域自適應預訓練在4個領域對應的8個Task上性能均有增加(相較于RoBERTa直接對特定Task進行finetune),而低資源條件下增幅更具明顯:尤其是BM、CS這兩個領域,它們與RoBERTa的原領域相差較大,提升會更明顯。
到這里,我們是否會存在這樣一個疑問:是否只要在額外的語料庫上持續進行LM預訓練,性能就會提升呢?也就是說只要暴露更多的數據,就可以改進RoBERTa性能嗎?
為檢驗上述猜想,論文繼續進行了實驗:將LM預訓練繼續應用于領域外(out domain)的語料庫,記這一過程為?DAPT。一個具體做法是:我們可以根據圖3展示的領域間的重疊程度,選取與NEWs最不相關的CS領域的語料庫繼續進行預訓練,然后在驗證其在NEWs領域下的兩個特定Task上finetune的效果。其余領域做法類似。
圖5可以看出除了SCIERC和ACL-ARG任務外,域外?DAPT下的性能相較于RoBERTa下降。因此,在大多數情況下,不考慮領域相關性而直接暴露于更多數據的持續預訓練對最終任務性能是有害的;而在某些特例下(極少數情況),直接在額外數據下持續預訓練也是有用的,文獻[6] 中也有類似的觀點。
2 任務自適應預訓練
任務數據集可以看作相關領域中的一個子集,我們相信:對任務數據集本身或者與任務相關的數據繼續預訓練,對下游特定任務可能會有幫助。
任務自適應預訓練 (Task-Adaptive Pretraining ,TAPT),即在任務相關的無標注語料繼續進行預訓練,然后再對特定任務進行finetune。需要說明的是,與領域適應的預訓練DAPT相比TAPT實質上進行了一種權衡:使用的預訓練語料要少得多,但與特定任務相關的語料要多得多(假設訓練集很好地代表了任務的各個方面),這是一種“廉價”的做法。
▲圖6 DAPT、TAPT、DAPT+TAPT對比如圖6所示,在8個特定任務上繼續預訓練(直接使用相應任務的標注數據當作無標注語料),TAPT都提高了相應的RoBERTa基準;特別是在NEWs領域的2個任務上(新聞領域也是RoBERT預訓練語料庫的一部分),TAPT也比RoBERTa有所提升。
從上述介紹可以得知,TAPT和DAPT之間有著明顯的差異,DAPT具有更多的資源優勢,但TAPT可以在某些任務(特別是在HYPERPARTISAN和HELPFULNESS)中超過了DAPT??梢钥闯?#xff0c;TAPT在某些任務上既“便宜”又有效!
圖6也給出結合DAPT和TAPT的性能表現(在DAPT后,緊接著進行TAPT),除HYPERPARTISAN任務外,DAPT+TAPT都超過了單獨使用DAPT或TAPT。我們猜測,如果是在TAPT后再進行DAPT,可能會對任務相關的語料存在災難性遺忘問題;當然,也許對DAPT和TAPT進行更復雜的組合方式,效果會更佳。
▲圖7 跨任務遷移的TAPT對比圖7給出了跨任務遷移的Transfer-TAPT實驗:即在同一領域內,對某一任務進行TAPT預訓練,然后在另一個任務上進行finetune。例如,在BioMed領域,進一步使用RCT未標注數據進行LM預訓練,然后使用CHEMPROT標記的數據對其進行finetune并觀察效果。我們可以看出Transfer-TAPT的性能均有下降,這表明:由于同一領域內、不同任務數據的分布不同,TAPT并不適合跨任務遷移,這也說明僅僅進行領域自適應的預訓練DAPT是不夠的,以及在DAPT之后再進行TAPT為什么是有效的。
3 任務自適應預訓練的增強方法
上述分析表明,任務自適應預訓練(TAPT)是一種廉價但有效的提升方法。但上述TAPT直接將標注數據當作無標注數據進行預訓練,畢竟數據量還是較小的。如果我們能夠擁有更多的、任務相關的無標注數據,繼續進行TAPT,效果又會如何呢?
下面分別介紹兩種構造更多的、任務相關的無標注數據的增強方式:1)人工構造;2)自動數據選擇。
3.1 Human Curated-TAPT
任務數據集的創建通常會通過人工方式從已知來源收集,其中通過下采樣選取部分數據進行人工標注構建標注數據集,而剩下的未標注數據有時也是可用的。對人工構造的、可用的、任務相關的未標注數據進行任務自適應預訓練,這一過程就是Curated-TAPT。
▲圖8 Curated-TAPT實驗結果圖8給出了Curated-TAPT的實驗結果。其中RCT-500是保留原始標注集的500條標注數據,基于剩余的標注數據作為無標注數據進行Curated-TAPT;HYP和IMDB就是圖4中直接給出的任務相關的無標注數據。
我們可以發現:除了HYP任務外,Curated-TAPT相較于TAPT均有提升,而Curated-TAPT也超過了DAPT+TAPT,可見如果我們能獲取更多的、任務相關的無標注數據進行TAPT,效果不但提升明顯,而且更為“廉價”、消耗資源低(后續圖10會詳細介紹這一點);而結合DAPT+Curated-TAPT在上述3個任務上效果均提升,特別是HYP任務更為明顯,從90提升至92.1.
可想而知,如果我們在設計相關任務時,能夠釋放大量的、任務相關的無標注數據集,并繼續進行預訓練(TAPT),對于最終任務是極其有利的。
3.2 Automated Data Selection for TAPT
本小節考慮一個資源短缺的情況,當任務設計者沒有釋放更多的、任務相關的無標注數據時,我們怎么能夠通過TAPT受益?
▲圖9 任務相關的數據自動選取方法論文采取的方法也很簡單,即設計一種簡單的、輕量化的自動數據選擇方法。具體地,如圖9所示,例如對于BioMed領域的ChemProt任務,采取VAMPIRE [7](一種輕量化的詞袋語言模型)對1百萬的領域數據進行預訓練,然后將ChemProt任務中無標注的句子嵌入到VAMPIRE向量空間。通過kNN最近鄰方法,選取k個最相似的、BioMed領域內的句子作為任務相關的無標注數據,然后進行TAPT(這里表述為kNN-TAPT)。
▲圖10 不同TAPT方式的實驗結果圖10給出了不同TAPT方式的實驗結果。通過自動選擇方法進行的kNN-TAPT相比于TAPT效果提升明顯;各種TAPT會比DAPT更為廉價:TAPT訓練會比DAPT快60倍。Curated-TAPT表現最佳,但需要考慮在大型領域內人工構造任務相關的無標注數據的成本,不過這樣的成本相比較于標注成本也是微不足道了。所以,我們最好在設計任務時能夠釋放更多的、任務相關的無標注數據,以便于進一步進行TAPT預訓練。
總結
▲圖11 多階段預訓練策略總結圖11很清晰地給出了不同階段的預訓練策略,例如,kNN-TAPT要在領域內選取與任務相關的數據,這是領域數據集的一個子集,然后進行TAPT和finetune;Curated-TAPT要額外構造任務相關的無標注數據集,然后進行finetune。
本篇論文的相關實驗表明:即使是具有數億個參數的語言模型也難以編碼單個文本域的復雜性,更不用說所有語言了。繼續在目標領域和任務上進行預訓練可以帶來明顯的受益。
論文也給出了未來的研究方向:如何采取一個更有效的數據選擇方法,來構建更多的、任務相關的無標注數據,有效地將大型預訓練語言模型重構到更遠的domain,并且獲得一個可重用的語言模型。
最后,筆者還是要重申一個不成熟的小建議:當我們所執行任務的標注數據較少,所屬的領域與初始預訓練語料越不相關,而又能獲取到充分的、任務相關的無標注數據時,那就不要停止領域預訓練和任務預訓練!
Arxiv訪問慢的小伙伴也可以在訂閱號后臺回復關鍵詞【0709】下載論文PDF~
賣萌屋成立了自然語言處理、搜索技術、推薦系統、算法崗求職等方向大群和知識圖譜與信息抽取、智能問答、對話系統等垂類討論群。不僅可以認識眾多志同道合的優秀小伙伴,而且還有若干賣萌屋美麗小姐姐(劃掉)、頂會審稿人、大廠研究員、知乎大V等你來撩哦。后臺回復關鍵詞【入群】即可獲取入口。
記得掃描下方二維碼關注并星標置頂,我才能來到你面前哦。
參考文獻
[1] PTMs:NLP預訓練模型的全面總結( https://zhuanlan.zhihu.com/p/115014536 )?
[2] Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks
[3] BioBERT: a pre-trained biomedical language representation model for biomedical text mining.?
[4] SciBERT: A pre-trained language model for scientific text?
[5] ClinicalBERT: Modeling clinical notes and predicting hospital readmission.?
[6] Cloze-driven pretraining of self-attention networks.?
[7] Variational pretraining for semi-supervised text classification.?
[8] GPT:Improving Language Understanding by Generative Pre-Training
總結
以上是生活随笔為你收集整理的ACL20 best paper荣誉提名 | DO NOT STOP Pre-training!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个励志PM小哥哥的Java转型之路
- 下一篇: 恕我直言,很多调参侠搞不清数据和模型谁更