Bert之路(三)OpenAI GPT||Improving Language Understanding by Generative Pre-Training
原文鏈接:https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf
參考博客(仔細解釋了transformer):劉岩:詳解Transformer (Attention Is All You Need)
簡楓:[整理] 聊聊 Transformer
兩篇一篇把transformer拆開講,一篇有代碼,都是翻譯國外的文章,雙管齊下應該足夠理解transformer了。paper中的分析研究部分,我始終沒有理解,就不翻譯了。翻譯可能有些粗糙,我最後會把專欄中的所有論文寫成一篇總結的。
Improving Language Understanding by Generative Pre-Training
摘要:
自然語言理解包括多種多樣的任務,如文本蘊涵、問答、語義相似性評估和文檔分類。儘管大型的未標註文本語料庫非常豐富,但是用於學習這些特定任務的標註數據卻很少。我們證明,在這些任務上有巨大的受益可以實現。我們通過在不同的未標註文本語料庫上生成語言模型的預訓練,然後對每個特定任務進行有區別的微調來實現。與以前的方法不同,我們在微調期間利用task-aware輸入轉換來實現有效的傳輸,同時只需要對模型架構進行最小的更改。我們展示了我們的方法在一系列自然語言理解基準上的有效性。我們的task-agnostic模型比那些專門為了任務訓練的模型效果更好,在研究的12項任務中,有9項任務的技術水平有了顯著提高。例如,我們在常識推理(故事完形填空測試)上取得了8.9 %的絕對進步,在問答( RACE )上取得了5.7 %的進步,在文本蘊涵( MultiNLI )上取得了1.5 %的進步。
1、Introduction
從原始文本中有效學習的能力對於減輕自然語言處理( NLP )中對監督學習的依賴至關重要。大多數深度學習方法需要大量人工標註的數據,這限制了它們在許多標註資源匱乏的領域的適用性[ 61 ]。在這些情況下,可以利用來自未標記數據的語言信息的模型為收集更多注釋提供了一個有價值的替代方案,這可能會非常耗時和昂貴。此外,即使在有大量監督的情況下,以無監督的方式學習好的表達也能顯著提高性能。迄今為止,這方面最引人注目的證據是廣泛使用了預先訓練好的單詞嵌入[ 10、39、42 ]來提高[ 8、11、26、45 ]一系列NLP任務的性能。
然而,由於兩個主要原因,利用來自未標記文本的超過單詞級的信息是具有挑戰性的。首先,不清楚哪種類型的優化目標在學習對遷移有用的文本表示時最有效。最近的研究考察了各種目標,如語言建模、機器翻譯、和語篇連貫,每種方法在不同的任務上都優於其他方法。第二,對於將這些學習到的表達轉移到目標任務的最有效方式,沒有達成共識。現有技術包括對模型架構進行特定於任務的改變,使用複雜的學習方案和增加輔助學習目標的組合。這些不確定性使得開發有效的語言處理半監督學習方法變得困難。
在這篇論文中,我們探索了一種半監督的語言理解方法,它結合了無監督的預訓練和監督微調。我們的目標是學習一種通用的表達,這種表達只要輕微的改變就能遷移至其他任務。1我們假設可以訪問大量未標記的文本和幾個帶有人工標註訓練示例的數據集(目標任務)。我們的設置不要求這些目標任務與未標記的語料庫位於同一領域。訓練過程分兩步。首先,我們在未標記的數據上使用語言建模目標來學習神經網路模型的初始參數。隨後,我們使用相應的監督目標使這些參數適應目標任務。
對於我們的模型體系結構,我們使用Transformer [ 62 ],它已經被證明在各種任務上表現出色。這種模型選擇為我們提供了一個更結構化的memory來處理文本中的長期依賴關係,而不是像循環網路這樣的方案,從而在不同的任務之間產生強大的傳輸性能。在傳輸過程中,我們利用從遍歷式方法[ 52 ]中獲得的特定於任務的輸入自適應,該方法將結構化文本輸入處理為單個連續的標記序列。正如我們在實驗中所展示的,這些調整使我們能夠有效地微調,對預先訓練的模型的架構進行最小的改變。
我們評估了四種類型的語言理解任務——自然語言推理、問答、語義相似性和文本分類。我們的task--agnostic模型優於採用為每個任務特別設計的體系結構有區別的訓練模型,在研究的12項任務中,有9項任務的技術水平有了顯著提高。我們還分析了預訓練模型在四種不同設置環境下的zero-shot行為,並證明它為下游任務獲得了有用的語言知識。
2 Related Work
Semi-supervised learning for NLP 我們的工作大體上屬於自然語言的半監督學習範疇。這種模式引起了極大的興趣,它被應用於序列標籤[ 24,33,57 ]或文本分類[ 41,70 ]等任務。最早的方法使用未標記的數據來計算單詞級或短語級統計數據,然後這些數據被用作監督模型中的特徵。在過去的幾年裡,研究人員已經證明了使用單詞嵌入的好處,這些單詞嵌入是在未標註的語料庫上訓練的,可以提高各種任務的表現。然而,這些方法主要傳遞單詞級信息,而我們的目標是獲取更高級別的語義。
最近的方法研究了從未標記的數據中學習和利用超過單詞級的語義。短語級或句子級嵌入,可以使用未標記的語料庫來訓練,已經被用於將文本編碼成各種目標任務的合適矢量表示,[ 28、32、1、36、22、12、56、31 ]。
Unsupervised pre-training 無監督預訓練是半監督學習的一種特殊情況,其目標是找到一個好的初始化點,而不是修改監督學習目標。早期的工作探索了該技術在[ 20,49,63 ]圖像分類和[ 3 ]回歸任務中的應用。隨後的研究表明,預訓練作為一種正則化方案,能夠在深度神經網路中更好地泛化。在最近的工作中,該方法已經被用來幫助訓練深度神經網路完成各種任務。
最接近我們的工作包括使用語言建模目標對神經網路進行預訓練,然後在監督下根據目標任務對其進行微調。[13]遵循這種方法來改進文本分類。然而,儘管預訓練階段有助於捕捉一些語言信息,但是他們對LSTM模型的使用將他們的預測能力限制在一個很短的範圍內。相比之下,我們對transformer網路的選擇允許我們捕捉更遠距離的語言結構,正如我們的實驗中所展示的。此外,我們還展示了我們的模型在更廣泛的任務中的有效性。
當訓練目標任務上的監督模型時,預訓練的語言或機器翻譯模型作為輔助特徵。這涉及到每個單獨目標任務的大量新參數,而在轉移過程中,我們只需要對模型架構進行最小的更改。Auxiliary training objectives添加輔助無監督訓練目標是半監督學習的一種替代形式。Collobert和Weston使用了多種輔助NLP任務,如POS標註、組塊、命名實體識別和語言建模,以改進語義角色標註。最近,Rei [ 50 ]在其目標任務目標中增加了一個輔助語言建模目標,並展示了序列標註任務的性能提升。我們的實驗也使用輔助目標,但是正如我們顯示的,無監督的預訓練已經學習了與目標任務相關的幾個語言方面。
3 Framework
我們訓練過程包括兩步。第一步是去在大語料庫上學習一個高容量的語言模型。第二步是微調過程,我們將模型應用到一個標記任務上。
3.1 Unsupervised pre-training
給定一個無監督語料庫詞u={u1,...,un},我們使用一個標準的語言模型對象來最大化下式: