GPT:通用預(yù)訓(xùn)練語言模型

論文標(biāo)題:Improving Language Understanding by Generative Pre-Training
論文鏈接:https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf
論文來源:OpenAI

一、概述

從無標(biāo)注文本中高效學(xué)習(xí)的能力對于緩解對監(jiān)督學(xué)習(xí)的依賴是很關(guān)鍵的。很多自然語言處理任務(wù)依賴于大量的標(biāo)注數(shù)據(jù),對于這些任務(wù)來說,能夠從無標(biāo)注數(shù)據(jù)中學(xué)習(xí)的無監(jiān)督方法就成了重要的替代方法。然而,從未標(biāo)注的文本中利用單詞級以上的信息具有挑戰(zhàn)性,主要有兩個原因:
①目前尚不清楚哪種類型的優(yōu)化目標(biāo)在學(xué)習(xí)對遷移有用的文本表示時最有效;
②對于將這些學(xué)習(xí)到的表征轉(zhuǎn)移到目標(biāo)任務(wù)的最有效方法,目前還沒有達(dá)成共識。

在本文中探索了一種用于語言理解的半監(jiān)督方法,也就是GPT,其采用無監(jiān)督預(yù)訓(xùn)練與有監(jiān)督微調(diào)相結(jié)合的方式。本文的目標(biāo)是學(xué)習(xí)一種普遍的表征,它可以不需要任何適應(yīng)就能轉(zhuǎn)移到廣泛的任務(wù)中,而且不要求這些目標(biāo)任務(wù)與未標(biāo)注語料庫處于同一域中。首先,我們在未標(biāo)注數(shù)據(jù)上使用語言建模目標(biāo)函數(shù)。隨后,我們使用相應(yīng)的監(jiān)督目標(biāo)函數(shù)將這些參數(shù)調(diào)整到目標(biāo)任務(wù)。

GPT采用Transformer作為模型架構(gòu)。Transformer在捕獲長程依賴方面能力優(yōu)越,相較于循環(huán)網(wǎng)絡(luò)是更合適的選擇。在進(jìn)行下游任務(wù)遷移時,GPT采用特定于任務(wù)的輸入適配方法,將結(jié)構(gòu)化文本輸入處理為單個連續(xù)的token序列。這些適配使我們能夠在對預(yù)訓(xùn)練模型的架構(gòu)進(jìn)行最小更改的情況下有效地進(jìn)行微調(diào)。

GPT在進(jìn)行實(shí)驗的12個數(shù)據(jù)集中的9個上取得了新的SOTA結(jié)果。舉例來說在常識推理任務(wù)(Stories Cloze Test)上取得了8.9%的提升,在問答任務(wù)(RACE)上取得了5.7%的提升,在文本蘊(yùn)含任務(wù)(MultiNLI)取得了1.5%的提升,另外在GLUE多任務(wù)benchmark數(shù)據(jù)集上取得了5.5%的提升。

二、方法

GPT的訓(xùn)練過程主要包括兩個階段。第一個階段是利用一個大的文本語料庫來學(xué)習(xí)一個高容量的語言模型,接著第二個階段進(jìn)行微調(diào),也就是利用標(biāo)注數(shù)據(jù)將模型適配到一個下游任務(wù)。

  1. 無監(jiān)督預(yù)訓(xùn)練

給定一個無監(jiān)督語料庫,其token集合用\mathcal{U}=\left \{u_{1},\cdots ,u_{n}\right \}來表示,我們使用一個標(biāo)準(zhǔn)語言建模目標(biāo)函數(shù)來最大化以下似然:

L_{1}(\mathcal{U})=\sum _{i}log\; P(u_{i}|u_{i-k},\cdots ,u_{i-1};\Theta )

這里的k是上下文窗口的大小。條件概率P使用參數(shù)為\Theta的神經(jīng)網(wǎng)絡(luò)來建模,這些參數(shù)使用隨機(jī)梯度下降來訓(xùn)練。在本文的實(shí)驗中,使用一個多層Transformer decoder(其實(shí)是Transformer decoder中的masked多頭自注意力層加上前饋層,沒有使用中間那一層)來作為語言模型,這是Transformer的變種。這個模型在輸入文本token上應(yīng)用多頭自注意力機(jī)制,然后使用前饋層來產(chǎn)生一個目標(biāo)token的輸出分布。以下是GPT預(yù)測當(dāng)前token的過程:

h_{0}=UW_{e}+W_{p}\\ h_{l}=transformer\_block(h_{l-1})\; \; \forall l\in [1,n]\\ P(u)=softmax(h_{n}W_{e}^{T})

這里的U相當(dāng)于當(dāng)前預(yù)測token的上下文指示向量,用于從word embedding矩陣W_{e}\in \mathbb{R}^{v\times d}v是詞典大小,d是word embedding的維度)中取出當(dāng)前預(yù)測token的上下文embedding向量。n在這里表示使用的Transformer 層的數(shù)量,W_{p}是位置矩陣,h_{l}\in \mathbb{R}^{k\times d}l層的輸出。

  1. 有監(jiān)督微調(diào)

在處理下游任務(wù)時需要將模型參數(shù)適配到相應(yīng)的任務(wù)。我們假設(shè)一個有標(biāo)注數(shù)據(jù)集\mathcal{C},其中每個實(shí)例包含一個輸入token的序列x^{1},\cdots ,x^{m}以及一個標(biāo)簽y。輸入token序列將通過GPT以獲取其最后一層的最后一個token的輸出h_{l}^{m},然后將其通過一個參數(shù)為W_{y}的線性輸出層來預(yù)測y

P(y|x^{1},\cdots ,x^{m})=softmax(h_{l}^{m}W_{y})

這相當(dāng)于最大化以下似然:

L_{2}(\mathcal{C})=\sum _{(x,y)}log\; P(y|x^{1},\cdots ,x^{m})

另外本文發(fā)現(xiàn)在微調(diào)時將預(yù)訓(xùn)練的目標(biāo)函數(shù)作為輔助目標(biāo)是有幫助的,這可以:
①提高有監(jiān)督模型的泛化性能;
②加速收斂。
因此在微調(diào)時可以優(yōu)化以下目標(biāo)函數(shù)(\lambda作為權(quán)重超參數(shù)):

L_{3}(\mathcal{C})=L_{2}(\mathcal{C})+\lambda \cdot L_{1}(\mathcal{C})

總而言之,在微調(diào)時需要的額外參數(shù)只有W_{y},以及分隔符token的embedding(后面會提到)。

  1. 特定于任務(wù)的輸入轉(zhuǎn)換

對于某些任務(wù),如文本分類,我們可以直接如上所述微調(diào)我們的模型。然而某些其他任務(wù),如問答或文本蘊(yùn)含,具有結(jié)構(gòu)化的輸入,如有序的句子對,或文檔、問題和答案的三元組。由于我們的預(yù)訓(xùn)練模型是在連續(xù)的文本序列上訓(xùn)練的,所以我們需要進(jìn)行一些修改才能將其應(yīng)用于這些任務(wù)。GPT的策略是將這些任務(wù)的結(jié)構(gòu)化輸入轉(zhuǎn)換為GPT可以處理的有序序列,這樣可以避免對模型進(jìn)行廣泛的更改。下圖展示了針對各種任務(wù)的適配。所有的輸入變換都需要添加隨機(jī)初始化的開始和結(jié)束token<s>和<e>。

輸入轉(zhuǎn)換
  • 文本蘊(yùn)含

對文本蘊(yùn)含數(shù)據(jù)集中實(shí)例的處理就是將前提p和假設(shè)h中間用分隔符$隔開。

  • 文本相似性

對于相似性任務(wù),兩個對比的句子沒有固有的順序,為了反映這一點(diǎn)我們將兩個句子按不同的順序排列,中間都用分隔符$隔開。然后單獨(dú)處理兩個順序的拼接獲得兩個h_{l}^{m},最后將這兩個h_{l}^{m}element-wise地加起來再輸入到線性輸出層。

  • 問答及常識推理

對于這一類的任務(wù),每個實(shí)例都包含一個文檔z、問題q以及一個可能的答案集合\left \{a_{k}\right \}。我們將文檔z與問題q直接拼接起來,然后與每個答案a_{k}拼接(需要添加分隔符$)。所有這些拼接的token序列被GPT單獨(dú)處理然后用一個softmax來預(yù)測可能的答案。

三、實(shí)驗

  1. 數(shù)據(jù)集

無標(biāo)注數(shù)據(jù)集使用BooksCorpus書籍?dāng)?shù)據(jù)集。下游任務(wù)數(shù)據(jù)集如下表所示:

數(shù)據(jù)集
  1. 實(shí)驗

各類下游任務(wù)的實(shí)驗結(jié)果如下圖所示:

實(shí)驗
實(shí)驗
實(shí)驗
  1. 分析

探究了模型層數(shù)的影響與zero-shot設(shè)置的模型性能:

分析
  1. 消融實(shí)驗

GPT的消融實(shí)驗:

消融實(shí)驗
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容