公眾號關注 「ML_NLP」
最近要開始使用Transformer去做一些事情了,特地把與此相關的知識點記錄下來,構建相關的、完整的知識結構體系,
以下是要寫的文章,本文是這個系列的第十六篇:
OverallTransformer最早出來是為了解決機器翻譯問題,因而Transformer模型分為兩部分,Encoder和Decoder。Bert模型使用了Encoder部分,而GPT模型使用了Decoder部分,分別得到了很好的預訓練模型。
而本文所解說的Bart,則返本溯源,重新拾起了Encoder-Decoder並用的結構,即seq2seq結構
Bart預訓練模式Bert,GPT和Bart的對比如下,可以看到,Bart是在Encoder中輸入被損壞的句子,然後在Decoder中去還原。這樣做的好處在於相對於Bert中單一的數據損壞方式,Bart更靈活。
Bart的數據處理方式在Bert中,數據是按照15%的概率採樣出來替換成特殊標記[MASK],當然,裡面還有一個8:1:1的分配,在這裡就不細說了,感興趣可以去Bert那一篇細看。
而在Bart中,數據的處理就多種多樣了。如下,可以是類似Bert的Mask方式,可以是刪除,可以是顛倒順序,可以是多個詞語替換為一個[MASK]。
其中,詞語刪除和多個詞語替換為一個[MASK]等方式會改變句子的長度,這點是Bert做不到的。
這樣的數據復原方式,使得Bart會在生成問題上很有優勢,實驗也表明了這點,另外,Bart可以在判別任務上也達到和Roberta相近的結果。
實驗在GLUE數據集上的結果如下,Bart可以達到和Roberta相近的結果。
在Summarization數據集上的結果如下:
在Abstractive QA上的結果如下:
可以看到,Bart這種方式在生成問題上效果很好。
參考文獻[1]. Lewis, Mike, et al. "Bart: Denoising sequence-to-sequence pre-training for natural language generation, translation, and comprehension." arXiv preprint arXiv:1910.13461 (2019).倉庫地址共享:
在機器學習算法與自然語言處理公眾號後臺回復「代碼」,
即可獲取195篇NAACL+295篇ACL2019有代碼開源的論文。開源地址如下:https://github.com/yizhen20133868/NLP-Conferences-Code
重磅!機器學習算法與自然語言處理交流群已正式成立!
群內有大量資源,歡迎大家進群學習!
額外贈送福利資源!邱錫鵬深度學習與神經網絡,pytorch官方中文教程,利用Python進行數據分析,機器學習學習筆記,pandas官方文檔中文版,effective java(中文版)等20項福利資源
獲取方式:進入群後點開群公告即可領取下載連結
注意:請大家添加時修改備註為 [學校/公司 + 姓名 + 方向]
例如 —— 哈工大+張三+對話系統。
號主,微商請自覺繞道。謝謝!
推薦閱讀:
開放域知識庫問答研究回顧
使用PyTorch Lightning自動訓練你的深度神經網絡
PyTorch常用代碼段合集