【NLP】XLnet:GPT和BERT的合体,博采众长,所以更强
前面介紹過BERT,作為一種非常成功的預訓練模型,取得了非常不錯的成績,那么,他還有改進的空間嗎?
本文介紹BERT的改進版,XLnet。看看它用了什么方法,改進了BERT的哪些弱點。
作者&編輯 | 小Dream哥
1 為什么要有XLnet?
要理解XLnet,我們先回顧一下先于XLnet的兩種表現最好的預訓練模型BERT和GPT:
1) Generative Pre-Training(GPT),采用Transfomer作為特征抽取器,預訓練階段采用單向語言模型的模式。
2) Pre-training of Deep Bidirectional Transformers for Language Understanding(BERT),同樣采用Transfomer作為特征抽取器,與GPT的主要差異在于,在訓練階段,其采用基于MLM的雙向語言模型。
XLnet的提出者們,仔細研究了一下這兩個模型,發現他們都有自己的缺點。
對GPT,它主要的缺點在于,采用的是單向語言模型。模型在預測當前詞的時候,只能看到該詞前面詞的信息。而對于很多語言理解任務而言,例如閱讀理解等,常常需要參考該詞前后的語境,因此,單向語言模型往往是不夠的。XLnet的研究者稱GPT這一類結構為AR(AutoRegressive)語言模型。
對BERT,采用MLM,即在訓練時遮住訓練語料中15%的詞(實際的MASK機制還有一些調整),用符號[MASK]代替,然后試圖讓網絡重建該詞。這個過程,在訓練語料中引入了符號[MASK]。而在實際的Finetune及預測過程中,是沒有這個符號的,這就在預訓練和預測階段之間產生了GAP。BERT在MLM中還隱含了一個獨立性假設,即重建各個符號[MASK]的過程,是相互獨立的。這個假設其實是未必成立的,會造成模型訓練時部分信息的損失。XLnet的研究者稱BERT這一類結構為AE(AutoEncoding)語言模型。
由此可見,BERT和GPT都有待改進的地方,XLnet的研究者們的想法是將兩個模型結合起來,并改進一些點。下面我們來看看XLnet是如何基于GPT和BERT來做改進的。
2 XLnet的改進
1) 預訓練模式的優化:Permutation Language Modeling(PLM)
XLnet想要實現BERT的雙向語言模型,但是又不想引入BERT MLM中的獨立性假設和符號[MASK],進而提出了PLM。
XLnet中,沿用GPT的語言模型的辦法,即基于序列中前面部分的內容,預測該詞。但是,為了在預測該詞的時候,為了能夠看到該詞后面部分的內容,對序列進行排列組合。這樣的話,該詞的前面也包含該詞后面詞的信息,用另外一種方式,實現了雙向語言模型。
如上圖所示,假定輸入序列的長度為4,則除了原語序,這4個詞總共有24種排列方式,上圖中用各詞在原序列中的位置來表示各詞,列出了其中4種,[3,2,4,1],[2,4,3,1],[1,4,2,3],[4,3,1,2]。
有同學會疑問,對于Transformer這種特征抽取器來說,在不加掩碼的情況下,不管輸入序列按照哪種順序輸入,效果應該都是一樣的才對。
沒錯,因此XLnet還引入了Two-Stream Self-Attention,雙流自注意力模型。
所謂雙流就是輸入包括了兩種,訓練句子和相應的位置信息,下面看看具體是怎么組織起來的。
如上圖所示,輸入包括兩種類型,query stream和content stream。
1.query stream僅僅包含輸入序列中預測位置前面的詞x_(z<t),以及該詞在原序列(未重新組合前)中的位置z_t信息,但是不包括x_(z_t)。
2.content stream跟普通的transformer輸入一致,包括x_(z_t)及x_(z<t)。
通過雙流注意力機制,可以有效的學習到雙向模型的表征。
2)特征抽取器的優化
在結構上,XLnet采用改進后的transofmerXL作為特征抽取器。前面講過TransformerXL,他主要有兩個優化,一個引入了序列循環機制;一個是引入了相對位置編碼。
對于相對位置編碼,在XLnet中的應用與之前在transformer的應用別無二致;對于序列循環機制,這里介紹一下在XLnet中是如何應用的。
如上面的公式所示,其實在XLnet中,attention計算與TransformerXL中類似,也是將前一個序列中上一層的隱藏狀態,與本序列中上一層隱藏層狀態拼接起來。
3 總結
XLnet是一個集合了目前兩大預訓練模型的優點,其效果自然不會差,目前其在各個任務中的表現都要優于BERT。
XLnet接過BERT的棒,把預訓練模型再往前提升了一步。可以遇見,后續NLP預訓練還會不斷有新的模型出來。
總結
XLnet是BERT一種非常重要的改進,思想值得我們好好學習和研究,希望對你有所幫助。
讀者們可以留言,或者加入我們的NLP群進行討論。感興趣的同學可以微信搜索jen104,備注"加入有三AI NLP群"。
知識星球推薦
掃描上面的二維碼,就可以加入我們的星球,助你成長為一名合格的自然語言處理算法工程師。
知識星球主要有以下內容:
(1) 聊天機器人。考慮到聊天機器人是一個非常復雜的NLP應用場景,幾乎涵蓋了所有的NLP任務及應用。所以小Dream哥計劃以聊天機器人作為切入點,通過介紹聊天機器人的原理和實踐,逐步系統的更新到大部分NLP的知識,會包括語義匹配,文本分類,意圖識別,語義匹配命名實體識別、對話管理以及分詞等。
(2) 知識圖譜。知識圖譜對于NLP各項任務效果好壞的重要性,就好比基礎知識對于一個學生成績好壞的重要性。他是NLP最重要的基礎設施,目前各大公司都在著力打造知識圖譜,作為一個NLP工程師,必須要熟悉和了解他。
(3) NLP預訓練模型?;诤A繑祿?#xff0c;進行超大規模網絡的無監督預訓練。具體的任務再通過少量的樣本進行Fine-Tune。這樣模式是目前NLP領域最火熱的模式,很有可能引領NLP進入一個全新發展高度。你怎么不深入的了解?
轉載文章請后臺聯系
侵權必究
往期精選
【NLP】自然語言處理專欄上線,帶你一步一步走進“人工智能技術皇冠上的明珠”。
【NLP】用于語音識別、分詞的隱馬爾科夫模型HMM
【NLP】用于序列標注問題的條件隨機場(Conditional Random Field, CRF)
【NLP】經典分類模型樸素貝葉斯解讀
【NLP】 NLP專欄欄主自述,說不出口的話就交給AI說吧
【NLP】 深度學習NLP開篇-循環神經網絡(RNN)
【NLP】 NLP中應用最廣泛的特征抽取模型-LSTM
【NLP】 聊聊NLP中的attention機制
【NLP】 理解NLP中網紅特征抽取器Tranformer
【NLP】TransformerXL:因為XL,所以更牛
【NLP】 深入淺出解析BERT原理及其表征的內容
【每周NLP論文推薦】從預訓練模型掌握NLP的基本發展脈絡
【每周NLP論文推薦】 NLP中命名實體識別從機器學習到深度學習的代表性研究
【每周NLP論文推薦】 介紹語義匹配中的經典文章
【技術綜述】深度學習在自然語言處理中的應用
總結
以上是生活随笔為你收集整理的【NLP】XLnet:GPT和BERT的合体,博采众长,所以更强的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 365篇原创后,有三AI喊你正式加入来不
- 下一篇: 【图像分类】 关于图像分类中类别不平衡那