後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)

資料派THU發表於2019-08-26

前言

在之前寫過的《NLP的遊戲規則從此改寫?從word2vec, ELMo到BERT》一文中,介紹了從word2vecELMo再到BERT的發展路徑。而在BERT出現之後的這大半年的時間裡,模型預訓練的方法又被Google、Facebook、微軟百度、OpenAI等極少數幾個玩得起遊戲的核心玩家反覆迭代了若干版,一次次的重新整理我們這些吃瓜群眾的案板上的瓜。

有沒有感覺出瓜速度太快以至於吃速跟不上?不用擔心,小編幫你們找來了這篇總結的恰到好處的文章,對ELMo以來的15個代表性的預訓練語言模型進行了多維度的對比和分析。尤其是近期找工作的小夥伴們注意啦,這篇文章裡面提出來的一些問題很適合作為面試考點(劃掉,交流點)噢~

首先上一張鎮樓專用圖,看一下ELMo以來的預訓練語言模型發展的概況
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
然後上本文正餐,一個高能的question list,這也是本文寫作的主線。

Question List

  • Q1:從不同維度對比各【預訓練語言模型】?
  • Q2:基於深度學習的NLP特徵抽取機制有哪些?各有哪些優缺點?
  • Q3:自迴歸和自編碼語言模型各有什麼優缺點?
  • Q4:單向模型的核心機制是怎樣的?有哪些缺點?
  • Q5:Transformer內部機制的深入理解:
    • 為什麼是縮放點積,而不是點積模型?
    • 相較於加性模型,點積模型具備哪些優點?
    • 多頭機制為什麼有效?
  • Q6-Q10:BERT核心機制探究
    • BERT為什麼如此有效?
    • BERT存在哪些優缺點?
    • BERT擅長處理哪些下游NLP任務?
    • BERT基於“字輸入”還是“詞輸入”好?(對於中文任務)
    • BERT為什麼不適用於自然語言生成任務(NLG)?
  • Q11-Q15:針對BERT原生模型的缺點,後續的BERT系列模型是:
    • 如何改進【生成任務】的?
    • 如何引入【知識】的?
    • 如何引入【多工學習機制】的?
    • 如何改進【mask策略】的?
    • 如何進行【精細調參】的?
  • Q16:XLNet提出的背景是怎樣的?
  • Q17:XLNet為何如此有效:
    • 為什麼PLM可以實現雙向上下文的建模?
    • 怎麼解決沒有目標(target)位置資訊的問題?
  • Q18:Transformer-XL怎麼實現對長文字建模?

下面本文將從以下幾個方面來對上述問題一一探討

一. 不同視角下的預訓練語言模型對比

二.預訓練語言模型的基礎:特徵抽取機制+語言模型的分類
三.單向模型回顧+核心機制探究
四.BERT的核心機制探究
五.BERT系列模型進展介紹
六.XLNET的核心機制探究
七.預訓練語言模型的未來

一、不同視角下的預訓練語言模型對比

Q1:從不同維度對比【預訓練語言模型

特徵抽取、預訓練語言模型目標、BERT系列模型的改進方向、特徵表示4個視角,對比預訓練語言模型
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 不同的特徵抽取機制
    • RNNs:ELMO/ULMFiT/SiATL;
    • Transformer:GPT1.0/GPT2.0/BERT系列模型;
    • Transformer-XL:XLNet;
  • 不同的預訓練語言目標
    • 自編碼(AutoEncode):BERT系列模型;
    • 自迴歸(AutoRegression):單向模型(ELMO / ULMFiT / SiATL / GPT1.0 / GPT2.0)和XLNet;
  • BERT系列模型的改進
    • 引入常識:ERNIE1.0 / ERNIE(THU) / ERNIE2.0(簡稱為“ERNIE系列”);
    • 引入多工學習:MTDNN/ERNIE2.0;
    • 基於生成任務的改進:MASS/UNILM;
    • 不同的mask策略:WWM/ERNIE系列/SpanBERT;
    • 精細調參:RoBERTa;
  • 特徵表示(是否能表示上下文)
    • 單向特徵表示:單向模型(ELMO/ULMFiT/SiATL/GPT1.0/GPT2.0);
    • 雙向特徵表示:BERT系列模型+XLNet;

二、預訓練語言模型的基礎:特徵抽取機制+語言模型的分類

Q2:基於深度學習的NLP特徵抽取機制有哪些?各有哪些優缺點?

1)能否處理長距離依賴問題

長距離依賴建模能力:Transformer-XL > Transformer > RNNs > CNNs

  • MLP:不考慮序列(位置)資訊,不能處理變長序列,如NNLM和word2vec
  • CNNs:考慮序列(位置)資訊,不能處理長距離依賴,聚焦於n-gram提取,pooling操作會導致序列(位置)資訊丟失;
  • RNNs:天然適合處理序列(位置)資訊,但仍不能處理長距離依賴(由於BPTT導致的梯度消失等問題),故又稱之為“較長的短期記憶單元(LSTM)”;
  • Transformer/Transformer-XL:self-attention解決長距離依賴,無位置偏差;

2)前饋/迴圈網路 or 序列/平行計算

  • MLP/CNNs/Transformer:前饋/並行
  • RNNs/ Transformer-XL:迴圈/序列:

3)計算時間複雜度(序列長度n,embedding size為d,filter大小k)

  • CNNs:後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • RNNs:後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • Self Attention:後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
Q3:自迴歸和自編碼語言模型各有什麼優缺點?

1)自迴歸語言模型
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 優點:
    • 文字序列聯合機率的密度估計,即為傳統的語言模型,天然適合處理自然生成任務;
  • 缺點:
    • 聯合機率按照文字序列從左至右分解(順序拆解),無法透過上下文資訊進行雙向特徵表徵;
  • 代表模型:ELMO/GPT1.0/GPT2.0;
  • 改進:XLNet將傳統的自迴歸語言模型進行推廣,將順序拆解變為隨機拆解(排列語言模型),產生上下文相關的雙向特徵表示;

2)自編碼語言模型

後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 優點:本質為降噪自編碼特徵表示,透過引入噪聲[MASK]構建MLM,獲取上下文相關的雙向特徵表示;
  • 缺點:引入獨立性假設,為聯合機率的有偏估計,沒有考慮預測[MASK]之間的相關性
    • 不適合直接處理生成任務,MLM預訓練目標的設定造成預訓練過程和生成過程不一致;
    • 預訓練時的[MASK]噪聲在finetune階段不會出現,造成兩階段不匹配問題;
  • 代表模型:BERT系列模型;

三、單向模型回顧+核心機制探究

後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
Q4:單向模型的核心機制是怎樣的?有哪些缺點?

1)ELMo (Allen Institute)[6]
  • 要點:
    • 引入雙向語言模型,其實是2個單向語言模型(前向和後向)的整合;
    • 透過儲存預訓練好的2層biLSTM,透過特徵整合或finetune應用於下游任務;
  • 缺點:
    • 本質上為自迴歸語言模型,只能獲取單向的特徵表示,不能同時獲取上下文表示;
    • LSTM不能解決長距離依賴
  • 為什麼不能用biLSTM構建雙向語言模型
    • 不能採取2層biLSTM同時進行特徵抽取構建雙向語言模型,否則會出現標籤洩漏的問題;因此ELMO前向和後向的LSTM引數獨立,共享詞向量,獨立構建語言模型
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
2)ULMFiT (fast.ai) / SiATL

  2.1)ULMFiT[7]要點:
  • 三階段訓練:LM預訓練+精調特定任務LM+精調特定分類任務;
  • 特徵抽取:3層AWD-LSTM;
  • 精調特定分類任務:逐層解凍;
  2.2) SiATL[8]要點:
  • 二階段訓練:LM預訓練+特定任務精調分類任務(引入LM作為輔助目標,輔助目標對於小資料有用,與GPT相反);
     - 特徵抽取:LSTM+self-attention;
  • 精調特定分類任務:逐層解凍;
    • 都透過一些技巧解決finetune過程中的災難性遺忘問題:如果預訓練用的無監督資料和任務資料所在領域不同,逐層解凍帶來的效果更明顯[9];
3)GPT1.0 / GPT2.0 (OpenAI)
  • GPT1.0[10]要點:
    • 採用Transformer進行特徵抽取,首次將Transformer應用於預訓練語言模型
    • finetune階段引入語言模型輔助目標(輔助目標對於大資料集有用,小資料反而有所下降,與SiATL相反),解決finetune過程中的災難性遺忘;
    • 預訓練和finetune一致,統一二階段框架;
  • GPT2.0[11]要點:
    • 沒有針對特定模型的精調流程:GPT2.0認為預訓練中已包含很多特定任務所需的資訊。
    • 生成任務取得很好效果,使用覆蓋更廣、質量更高的資料;
  • 缺點:
    • 依然為單向自迴歸語言模型,無法獲取上下文相關的特徵表示;

四、BERT核心機制探究

這一部分對BERT的核心機制進行介紹,在回答“BERT為什麼如此有效?”之前,首先介紹Transformer的核心機制。

Q5:Transformer[12]內部機制的深入理解(回顧)
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
1)Multi-Head Attention和Scaled Dot-Product Attention

本質是self attention透過attention mask動態編碼變長序列,解決長距離依賴、無位置偏差、可平行計算

  • 為什麼是縮放點積,而不是點積模型?
    • 當輸入資訊的維度 d 比較高,點積模型的值通常有比較大方差,從而導致 softmax 函式的梯度會比較小。因此,縮放點積模型可以較好地解決這一問題。
  • 為什麼是雙線性點積模型(經過線性變換Q 後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結) K)?
    • 雙線性點積模型,引入非對稱性,更具健壯性(Attention mask對角元素值不一定是最大的,也就是說當前位置對自身的注意力得分不一定最高)。
  • 相較於加性模型,點積模型具備哪些優點?
    • 常用的Attention機制為加性模型和點積模型,理論上加性模型和點積模型的複雜度差不多,但是點積模型在實現上可以更好地利用矩陣乘積,從而計算效率更高(實際上,隨著維度d的增大,加性模型會明顯好於點積模型)。
  • 多頭機制為什麼有效?
    • 類似於CNN中透過多通道機制進行特徵選擇
    • Transformer中先透過切頭(spilt)再分別進行Scaled Dot-Product Attention,可以使進行點積計算的維度d不大(防止梯度消失),同時縮小attention mask矩陣。
2)Position-wise Feed-Forward Networks
  • FFN 將每個位置的Multi-Head Attention結果對映到一個更大維度的特徵空間,然後使用ReLU引入非線性進行篩選,最後恢復回原始維度。
  • Transformer在拋棄了 LSTM 結構後,FFN 中的 ReLU成為了一個主要的提供非線性變換的單元。
3)Positional Encoding

將Positional Embedding改為Positional Encoding,主要的區別在於Positional Encoding是用公式表達的、不可學習的,而Positional Embedding是可學習的(如BERT),兩種方案的訓練速度和模型精度差異不大;但是Positional Embedding位置編碼範圍是固定的,而Positional Encoding編碼範圍是不受限制的。

  • 為什麼引入後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結) 建模Positional Encoding?
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 引入後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結) 是為了使模型實現對相對位置的學習,兩個位置 pos 和 pos+k 的位置編碼是固定間距k的線性變化:
    後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 可以證明:間隔為k的任意兩個位置編碼的歐式空間距離是恆等的,只與k有關。
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
Q6:BERT[13]為什麼如此有效?
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 引入Masked Language Model(MLM)預訓練目標,能夠獲取上下文相關的雙向特徵表示;
  • 引入Next Sentence Prediction(NSP)預訓練目標,擅長處理句子或段落的匹配任務;
  • 引入強大的特徵抽取機制Transformer(多種機制並存):
    • Multi-Head self attention:多頭機制類似於“多通道”特徵抽取,self attention透過attention mask動態編碼變長序列,解決長距離依賴(無位置偏差)、可平行計算;
    • Feed-forward :在位置維度計算非線性層級特徵;
    • Layer Norm & Residuals:加速訓練,使“深度”網路更加健壯;
  • 引入大規模、高質量的文字資料;

Q7:BERT存在哪些優缺點?

  • 優點:能夠獲取上下文相關的雙向特徵表示;
  • 缺點:
    • 生成任務表現不佳:預訓練過程和生成過程的不一致,導致在生成任務上效果不佳;
    • 採取獨立性假設:沒有考慮預測[MASK]之間的相關性,是對語言模型聯合機率的有偏估計(不是密度估計);
    • 輸入噪聲[MASK],造成預訓練-精調兩階段之間的差異;
    • 無法文件級別的NLP任務,只適合於句子和段落級別的任務;
Q8:BERT擅長處理哪些下游NLP任務[14]?

    1. 適合句子和段落級別的任務,不適用於文件級別的任務;

    2. 適合處理高層語義資訊提取的任務,對淺層語義資訊提取的任務的提升效果不大(如一些簡單的文字分類任務);
    3. 適合處理句子/段落的匹配任務;因此,在一些任務中可以構造輔助句(類似匹配任務)實現效果提升(如關係抽取/情感挖掘等任務);
    4. 不適合處理NLG任務;

Q9:BERT基於“字輸入”還是“詞輸入”好?(對於中文任務)

    1. 如果基於“詞輸入”,會加劇OOV問題,會增大輸入空間,需要利用大得多的語料去學習輸入空間到標籤空間的函式對映
    2. 隨著Transfomer特徵抽取能力,分詞不再成為必要,詞級別的特徵學習可以納入為內部特徵進行表示學習。
Q10:BERT為什麼不適用於自然語言生成任務(NLG)?

    1. 由於BERT本身在預訓練過程和生成過程的不一致,並沒有做生成任務的相應機制,導致在生成任務上效果不佳,不能直接應用於生成任務。
    2. 如果將BERT或者GPT用於Seq2Seq的自然語言生成任務,可以分別進行預訓練編碼器和解碼器,但是編碼器-注意力-解碼器結構沒有被聯合訓練,BERT和GPT在條件生成任務中只是次優效果。

五、BERT系列模型進展介紹

這一部分介紹一些模型,它們均是對BERT原生模型在一些方向的改進。

Q11:針對BERT原生模型,後續的BERT系列模型是如何改進【生成任務】的?

1)MASS(微軟)[15]後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 統一預訓練框架:透過類似的Seq2Seq框架,在預訓練階段統一了BERT和LM模型;
  • Encoder中理解unmasked tokens;Decoder中需要預測連續的[mask]tokens,獲取更多的語言資訊;Decoder從Encoder中抽取更多資訊;
  • 當k=1或者n時,MASS的機率形式分別和BERT中的MLM以及GPT中標準的LM一致(k為mask的連續片段長度))
2)UNILM (微軟)[16]
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 統一預訓練框架:和直接從mask矩陣的角度統一BERT和LM;
  • 3個Attention Mask矩陣:LM、MLM、Seq2Seq LM;
  • 注意:UNILM中的LM並不是傳統的LM模型,仍然是透過引入[MASK]實現的;

Q12:針對BERT原生模型,後續的BERT系列模型是如何引入【知識】的?

1)ERNIE 1.0 (百度)[17]
  • 在預訓練階段引入知識(實際是預先識別出的實體),引入3種[MASK]策略預測:
    • Basic-Level Masking:跟BERT一樣,對subword進行mask,無法獲取高層次語義;
    • Phrase-Level Masking:mask連續短語;
    • Entity-Level Masking:mask實體;
2)ERNIE (THU)[18]
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • 基於BERT預訓練原生模型,將文字中的實體對齊到外部的知識圖譜,並透過知識嵌入得到實體向量作為ERNIE的輸入;
  • 由於語言表徵的預訓練過程和知識表徵過程有很大的不同,會產生兩個獨立的向量空間。為解決上述問題,在有實體輸入的位置,將實體向量和文字表示透過非線性變換進行融合,以融合詞彙、句法和知識資訊;
  • 引入改進的預訓練目標 Denoising entity auto-encoder (DEA):要求模型能夠根據給定的實體序列和文字序列來預測對應的實體;

Q13:針對BERT原生模型,後續的BERT系列模型是如何引入【多工學習機制】的?

多工學習(Multi-task Learning)[19]是指同時學習多個相關任務,讓這些任務在學習過程中共享知識,利用多個任務之間的相關性來改進模型在每個任務的效能和泛化能力。多工學習可以看作是一種歸納遷移學習,即透過利用包含在相關任務中的資訊作為歸納偏置(Inductive Bias)來提高泛化能力。多工學習的訓練機制分為同時訓練和交替訓練。

1)MTDNN(微軟)[20]:在下游任務中引入多工學習機制

後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
2)ERNIE 2.0 (百度)[21]:在預訓練階段引入多工學習
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • MTDNN是在下游任務引入多工機制的,而ERNIE 2.0 是在預訓練引入多工學習(與先驗知識庫進行互動),使模型能夠從不同的任務中學到更多的語言知識。
  • 主要包含3個方面的任務:
    • word-aware 任務:捕捉詞彙層面的資訊;
    • structure-aware 任務:捕捉句法層面的資訊;
    • semantic-aware 任務:捕捉語義方面的資訊;
  • 主要的方式是構建增量學習(後續可以不斷引入更多的任務)模型,透過多工學習持續更新預訓練模型,這種連續交替的學習正規化不會使模型忘記之前學到的語言知識。
    • 將3大類任務的若干個子任務一起用於訓練,引入新的任務時會將繼續引入之前的任務,防止忘記之前已經學到的知識,具體是一個逐漸增加任務數量的過程[22]:
       (task1)->(task1,task2)->(task1,task2,task3)->…->(task1,task2,…,taskN),

Q14:針對BERT原生模型,後續的BERT系列模型是如何改進【mask策略】的?

  • 原生BERT模型:按照subword維度進行mask,然後進行預測;
  • BERT WWM(Google):按照whole word維度進行mask,然後進行預測;
  • ERNIE等系列:引入外部知識,按照entity維度進行mask,然後進行預測;
  • SpanBert:不需要按照先驗的詞/實體/短語等邊界資訊進行mask,而是採取隨機mask:
    • 採用Span Masking:根據幾何分佈,隨機選擇一段空間長度,之後再根據均勻分佈隨機選擇起始位置,最後按照長度mask;透過取樣,平均被遮蓋長度是3.8 個詞的長度;
    • 引入Span Boundary Objective:新的預訓練目標旨在使被mask的Span 邊界的詞向量能學習到 Span中被mask的部分;新的預訓練目標和MLM一起使用;
  • 注意:BERT WWM、ERNIE等系列、SpanBERT旨在隱式地學習預測詞(mask部分本身的強相關性)之間的關係[23],而在 XLNet 中,是透過 PLM 加上自迴歸方式來顯式地學習預測詞之間關係;

Q15:針對BERT原生模型,後續的BERT系列模型是如何進行【精細調參】的?

RoBERTa(FaceBook)[24]

  • 丟棄NSP,效果更好;
  • 動態改變mask策略,把資料複製10份,然後統一進行隨機mask;
  • 學習率的峰值和warm-up更新步數作出調整;
  • 在更長的序列上訓練:不對序列進行截短,使用全長度序列;

六、XLNet的核心機制探究

在BERT系列模型後,Google釋出的XLNet在問答、文字分類自然語言理解等任務上都大幅超越BERT;XLNet的提出是對標準語言模型(自迴歸)的一個復興[25],提出一個框架來連線語言建模方法和預訓練方法。

Q16:XLNet[26]提出的背景是怎樣的?

  • 對於ELMO、GPT等預訓練模型都是基於傳統的語言模型(自迴歸語言模型AR),自迴歸語言模型天然適合處理生成任務,但是無法對雙向上下文進行表徵,因此人們反而轉向自編碼思想的研究(如BERT系列模型);
  • 自編碼語言模型(AE)雖然可以實現雙向上下文進行表徵,但是:
    • BERT系列模型引入獨立性假設,沒有考慮預測[MASK]之間的相關性;
    • MLM預訓練目標的設定造成預訓練過程和生成過程不一致;
    • 預訓練時的[MASK]噪聲在finetune階段不會出現,造成兩階段不匹配問題;
  • 有什麼辦法能構建一個模型使得同時具有AR和AE的優點並且沒有它們缺點呢?

Q17:XLNet為何如此有效:核心機制分析

後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)

1)排列語言模型(Permutation LM,PLM)

如果衡量序列中被建模的依賴關係的數量,標準的LM可以達到上界,不像MLM一樣,LM不依賴於任何獨立假設。借鑑 NADE[27]的思想,XLNet將標準的LM推廣到PLM。
  • 為什麼PLM可以實現雙向上下文的建模?
    • PLM的本質就是LM聯合機率的多種分解機制的體現;
    • 將LM的順序拆解推廣到隨機拆解,但是需要保留每個詞的原始位置資訊(PLM只是語言模型建模方式的因式分解/排列,並不是詞的位置資訊的重新排列!)
    • 如果遍歷 ?! 種分解方法,並且模型引數是共享的,PLM就一定可以學習到各種雙向上下文;換句話說,當我們把所有可能的?! 排列都考慮到的時候,對於預測詞的所有上下文就都可以學習到了!
    • 由於遍歷 ?! 種路徑計算量非常大(對於10個詞的句子,10!=3628800)。因此實際只能隨機的取樣?!裡的部分排列,並求期望;
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)

2)Two-Stream Self-Attention

如果採取標準的Transformer來建模PLM,會出現沒有目標(target)位置資訊的問題。問題的關鍵是模型並不知道要預測的到底是哪個位置的詞,從而導致具有部分排列下的PLM在預測不同目標詞時的機率是相同的。
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)

怎麼解決沒有目標(target)位置資訊的問題?

  • 對於沒有目標位置資訊的問題,XLNet 引入了Two-Stream Self-Attention:
後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
  • Query 流就為了預測當前詞,只包含位置資訊,不包含詞的內容資訊;
  • Content 流主要為 Query 流提供其它詞的內容向量,包含位置資訊和內容資訊;

3) 融入Transformer-XL的優點(具體見Q18)

Q18:Transformer-XL[28]怎麼實現對長文字建模?

  • BERT(Transformer)的最大輸入長度為512,那麼怎麼對文件級別的文字建模?
    • vanilla model進行Segment,但是會存在上下文碎片化的問題(無法對連續文件的語義資訊進行建模),同時推斷時需要重複計算,因此推斷速度會很慢;
  • Transformer-XL改進
    • 對於每一個segment都應該具有不同的位置編碼,因此Transformer-XL採取了相對位置編碼;
      後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)後BERT時代:15個預訓練模型對比分析與關鍵點探索(附連結)
    • 前一個segment計算的representation被修復並快取,以便在模型處理下一個新的segment時作為擴充套件上下文resume;
    • 最大可能依賴關係長度增加了N倍,其中N表示網路的深度;
    • 解決了上下文碎片問題,為新段前面的token提供了必要的上下文;
    • 由於不需要重複計算,Transformer-XL在語言建模任務的評估期間比vanilla Transformer快1800+倍;
    • 引入recurrence mechanism(不採用BPTT方式求導):
    • 引入相對位置編碼方案:

七、預訓練語言模型的未來

上述的【預訓練語言模型】主要從2大方面進行介紹:一是總的對比;二是分別介紹單向語言模型、BERT系列模型、XLNet模型。

可以看出,未來【預訓練語言模型】更多的探索方向主要為[25]:
  • 復興語言模型:進一步改進語言模型目標,不斷突破模型的上界;
  • 大資料、大算力:將大資料、大算力推到極致;
  • 更快的推斷:輕量級模型是否有可能達到SOTA效果?
  • 引入更豐富的知識資訊,更精細的調參,更有價值的MASK策略;
  • 統一條件生成任務框架,如基於XLNet統一編碼和解碼任務,同時可考慮更快的解碼方式;

參考文獻

[1] NLP將迎來黃金十年 https://www.msra.cn/zh-cn/news/executivebylines/tech-bylines-nlp

[2] a review of the recent history of nlp

[3] AIS:ACL2019進展報告

[4] ACL 主席周明:一起擁抱 ACL 和 NLP 的光明未來

[5] 自然語言處理中的語言模型預訓練方法 https://www.jiqizhixin.com/articles/2018-10-22-3

[6] ELMO:Deep contextualized word representations

[7] ULMFiT:Universal Language Model Fine-tuning)

[8] SiATL:An Embarrassingly Simple Approach for Transfer Learning from Pretrained Language Models

[9] BERT時代與後時代的NLP https://zhuanlan.zhihu.com/p/66676144

[10] GPT:Improving Language Understanding by Generative Pre-Training

[11] GPT2.0:Language Models are Unsupervised Multitask Learners

[12] Transformer:Attention is all you need

[13] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

[14] Bert時代的創新(應用篇):Bert在NLP各領域的應用進展 https://zhuanlan.zhihu.com/p/68446772

[15] MASS: Masked Sequence to Sequence Pre-training for Language Generation

[16] UNILM:Unified Language Model Pre-training for Natural Language Understanding and Generation

[17] ERNIE: Enhanced Representation through Knowledge Integration

[18] ERNIE: Enhanced Language Representation with Information Entities

[19] nndl:神經網路深度學習

[20] MT-DNN:Multi-Task Deep Neural Net for NLU

[21] ERNIE 2.0: A CONTINUAL PRE-TRAINING FRAMEWORK FOR LANGUAGE UNDERSTANDING

[22] 陳凱:https://www.zhihu.com/question/337827682/answer/768908184

[23] SpanBert:對 Bert 預訓練的一次深度探索

[24] RoBERTa: A Robustly Optimized BERT Pretraining Approach

[25] ab他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

[26] XLnet: Generalized Autoregressive Pretraining for Language Understanding

[27] Neural autoregressive distribution estimation

[28] Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

原文連結
https://zhuanlan.zhihu.com/p/76912493

相關文章