一、GPT論文閱讀核心簡記

1、論文:Improving Language Understanding by Generative Pre-Training

2、官方介紹:openai.com/blog/languag

3、核心分析

GPT訓練任務使用的是單向語言模型,特徵提取器使用的是Transformer,GPT預訓練模型取自Transformer的decoder階段,使用了Masked Multi-Head Attention,GPT在預訓練階段是無監督學習,通過大量預料進行訓練,Fine-tuning階段是有監督學習,GPT無監督預訓練過程,單向語言模型通過上文預測當前詞:

模型主體使用的是Multi-layer Transformer decoder的語言模型,輸入是wordembedding和position embedding的拼接,然後經過多層transformer_block,最後softmax輸出

下圖左邊部分展示了GPT中使用的Transformer的結構,右邊部分展示了GPT在特定的任務中不同的輸入數據格式,輸入數據經過預訓練模型處理,最後接一層linear+softmax

二、GPT-2論文閱讀核心簡記

1、論文:Language Models are Unsupervised Multitask Learners

2、官方模型代碼:github.com/openai/gpt-2

3、非官方訓練代碼:github.com/ConnorJL/GPT

4、GPT2用無監督的預訓練模型在Fine-tuning階段去做有監督的的任務,GPT2在模型上和GPT模型差別不大,只做了細微的調整,微調部分如下:

(1) Layer normalization被移到了sub-block之前

(2) 縮放殘差層的權重

(3) 詞表被擴大到50257、context size從512擴大到1024、batchsize使用512

(4) transformer層數使用的是48層

5、GPT2數據:稱為WebText,45 Million Links,大約40G文本數據

6、GPT2輸入表示Input Representation:word-levels容易出現OOV問題,byte-levels沒有word-levels效果好,論文中採用一種折中方式Byte Pair Encoding,對頻繁詞和非頻繁詞做不同處理,將詞拆分成子詞

7、GPT2預訓練核心方法

首先預訓練階段是單向無監督的語言模型,語言模型相當於在給序列的條件概率建模,GPT2思想通過大量無監督的語料訓練語言模型,預訓練語料大涵蓋面廣,提供模型跨任務能力,論文中提到Multitask learners,這個如何理解,舉兩個簡單的的例子,如預料是Thetranslation of word Deep learning in Chinese is 深度學習,這樣無監督語言模型就相當於把翻譯模型的輸入和輸出學到了,又或者美國的總統是特朗普,這通過無監督語言模型又相當於問答系統

三、BERT論文閱讀核心簡記

Bert模型主要兩個特點

1、特徵提取器使用的是transformer

2、預訓練使用的是雙向語言模型

Bert還有突出的地方在於它的預訓練任務上,Bert採用了兩個預訓練任務:Masked語言模型(本質上是CBOW)、Next Sentence Prediction

(1) Masked語言模型:隨機選擇語料中15%的單詞,把它摳掉,也就是用[Mask]掩碼代替原始單詞,然後要求模型去正確預測被摳掉的單詞,但15%詞中只有80%會被替換成mask,10%被替換成另一個詞,10%的詞不發生改變

(2) Next Sentence Prediction:指語言模型訓練的時候,分兩種情況選擇句子,一種是正確拼接兩個順序句子,一種是從語料庫中隨機選擇一個句子拼接到句子後面,做mask任務時順帶做句子關係預測,因此BERT的預訓練是一個多任務過程,NextSentence Prediction可以讓bert在跨句子的任務中表現的更好如句子相似度計算,而Masked LM則是讓bert更好學到上下文信息

因為Bert預訓練預料豐富模型龐大,Bert的可適用的下游任務也很多,Bert可以對於上述四大任務改造下游任務,應用廣泛:

1、序列標註:分詞、POS Tag、NER、語義標註

2、分類任務:文本分類、情感計算

3、句子關係判斷:Entailment、QA、自然語言推斷

4、生成式任務:機器翻譯、文本摘要等

Bert在訓練和使用過程中注意的一些小細節:

1、Bert訓練的詞向量不是完整的,而是WordPiece Embedding,因此要通過Bert模型得到英文Word Embedding要將WrodPiece Embeddings轉化為Word Embedding

2、Bert預訓練模型的輸入向量是Token Embeddings + Segment Embeddings + Position Embeddings

3、在對Bert模型微調進行下游任務時,需要知道Bert模型輸出什麼傳入下游任務模型,即是開頭[CLS]出的向量Special Classification Embeddings

四、Transform-XL論文閱讀核心簡記

Transformer網路具有學習文本更長依賴的能力,但是存在缺陷,transformer模型是在固定長度的segment使用attention學習,因此無法捕獲任何超過segment長度的長期依賴性,沒有任何跨segment的信息流。且segment的劃分是不考慮上下文信息的,會導致上下文碎片化。為了解決上下文固定長度的限制,提出了transformer-xl,transformer-xl學習到的依賴比RNN學習到的長80%,比transformer學習到的長450%,transformer-xl兩個重要特性:

(1) 在segment之間引入循環機制,緩存之前segment計算的隱藏狀態,在模型處理後面segment時作為擴展上下文重複使用

(2) 相對位置編碼,segment-level循環機制的引入使得絕對位置編碼失效,於是提出相對位置編碼表征位置信息

上圖是transformer的訓練和測試階段,可以看到segment之間是沒有任何關聯的,僅在segment內部學習依賴關係

上圖是transformer-xl的訓練和測試階段,可以看到segment之間是相互傳遞信息的,會緩存上一個segment的隱層信息傳遞到下一個segment使用,這樣便可以學習到segment之間的依賴關係,並且在測試的使用可以使用之前的segment緩存,不用重複計算,因此transformer-xl評估速度比transformer快1800倍

下面從公式角度認識一下segment-level循環機制和相對位置編碼的實現

1、Segment-level recurrence with state reuse

2、Relative Positional Encoding

Transformer-xl的整個計算流程如下圖公式所示:

五、XLNet論文閱讀核心簡記

在介紹XLNet之前,首先介紹一下論文中提到的兩個重要的概念Autoregression LM自回歸語言模型、Autoencoder LM自編碼語言模型

(1) 自回歸語言模型AutoregressionLM:上文預測下文或下文預測上文,缺點是只能利用上文信息或下文信息,不能同時對深層的上下文信息同時建模,無法同時聯繫上下文信息

(2) 自編碼語言模型AutoencoderLM:經典例子即Bert,Mask掉部分單詞,預測Mask的單詞,類似於噪音自編碼Denosing Autoencoder,這樣便可以同時利用上下文信息預測masked的詞,缺點是引入mask標記使得預訓練階段和Fine-tuning階段不一致,因為預訓練階段模型學習到了mask掩碼之間的依賴關係,但是在Fine-tuning無mask因此會有影響

XLNet方案:仍採用的是第一階段語言模型預訓練,第二階段任務數據Fine-tuning階段,相對於上面介紹的AR模型和AE模型,XLNet有以下幾個優點:

(1) XLNet模型完全基於AutoRegression,但XLNet為了預測時能夠看到上下文信息,引入了Permutation Language Model即相當於對輸入序列做全排列,在不用masked詞破壞序列的情況下看到上下文,XLNet預訓練和微調一致,且消除了BERT詞獨立性假設

(2) 引入了Transformer-xl中的recurrence machanism和relative encoding,處理更長文本依賴關係

下面給出在做XLNet彙報時的ppt,上詳細展示了XLNet的細節,供學習

如需,可關注公眾號回復XLNet獲得完整ppt,原創不易,歡迎在看!


推薦閱讀:
相关文章