使用Transformer與無監督學習,OpenAI提出可遷移至多種NLP任務的通用模型

機器之心發表於2018-06-13

OpenAI 最近通過一個與任務無關的可擴充套件系統在一系列語言任務中獲得了當前最優的效能,目前他們已經發布了該系統。OpenAI 表示他們的方法主要結合了兩個已存的研究,即 Transformer 和無監督預訓練。實驗結果提供了非常令人信服的證據,其表明聯合監督學習方法和無監督預訓練能夠得到非常好的效能。這其實是很多研究者過去探索過的領域,OpenAI 也希望他們這次的實驗結果能激發更加深入的研究,並在更大和更多的資料集上測試聯合監督學習與無監督預訓練的效能。


使用Transformer與無監督學習,OpenAI提出可遷移至多種NLP任務的通用模型

OpenAI 的系統分為兩階段,首先研究者以無監督的方式在大型資料集上訓練一個 Transformer,即使用語言建模作為訓練訊號,然後研究者在小得多的有監督資料集上精調模型以解決具體任務。研究者開發的這種方式借鑑了他們關於 Sentiment Neuron(blog.openai.com/unsupervise…)方面的研究成果,他們發現無監督學習技術在足夠多的資料集上訓練能產生令人驚訝的可區分特徵。因此研究者希望更進一步探索這一概念:我們能開發一個在大量資料進行無監督學習,並精調後就能在很多不同任務上實現很好效能的模型嗎?研究結果表明這種方法可能有非常好的效能,相同的核心模型可以針對不同的任務進行少量適應和精調就能實現非常不錯的效能。

這一項研究任務建立在《Semi-supervised Sequence Learning》論文中所提出的方法,該方法展示瞭如何通過無監督預訓練的 LSTM 與有監督的精調提升文字分類效能。這一項研究還擴充套件了論文《Universal Language Model Fine-tuning for TextClassification》所提出的 ULMFiT 方法,它展示了單個與資料集無關的 LSTM語言模型如何進行精調以在各種文字分類資料集上獲得當前最優的效能。OpenAI 的研究工作展示瞭如何使用基於 Transformer 的模型,並在精調後能適應於除文字分類外其它更多的任務,例如常識推理、語義相似性和閱讀理解。該方法與 ELMo 相似但更加通用,ELMo 同樣也結合了預訓練,但使用為任務定製的架構以在各種任務中取得當前頂尖的效能。

OpenAI 只需要很少的調整就能實現最後的結果。所有資料集都使用單一的前向語言模型,且不使用任何整合方法,超參配置也與大多數研究成果相同。

OpenAI 特別興奮這一方法在三個資料集上得到的效能,即 COPA、RACE 和 ROCStories,它們都是旨在為常識推理和閱讀理解設計的測試集。OpenAI 的模型在這些資料集上都獲得了新的最佳效能,且有較大的提升。這些資料集通常被認為需要多句子推理和顯著的世界知識來幫助解決問題,這表明研究者的模型通過無監督學習主要提升了這些技能。這同樣表明我們可以通過無監督學習技術開發複雜的語言理解能力。

為什麼使用無監督學習

監督學習是近期大部分機器學習成功方法的關鍵,但是,它需要大型、經過仔細清洗的資料集才能表現良好,這需要很高的成本。無監督學習因其解決這些缺陷的潛力而具備極大吸引力。由於無監督學習解決了人工標註資料的瓶頸,它在計算能力不斷增強、可獲取原始資料增多的當前趨勢下,仍然能夠實現很好的擴充套件。無監督學習是非常活躍的研究領域,但是它在實際應用中仍然受到限制。

近期出現了利用無監督學習方法通過大量無標註資料來增強系統的熱潮;使用無監督技術訓練的詞表徵可以使用包含 TB 級資訊的大型資料集,而且無監督方法與監督學習技術相結合能夠在大量 NLP 任務上提高效能。直到最近,這些用於 NLP 任務的無監督技術(如 GLoVe 和word2vec)使用簡單的模型(詞向量)和訓練過的訊號(區域性詞共現)。Skip-Thought 向量是對複雜方法才能實現的改進的較早呈現。但是現在新技術用於進一步提升效能,包括預訓練句子表徵模型、語境化詞向量(ELMo 和 CoVE)的使用,以及使用自定義架構來結合無監督預訓練和監督式精調的方法,比如本文中 OpenAI 的方法。

使用Transformer與無監督學習,OpenAI提出可遷移至多種NLP任務的通用模型

在大型文字語料庫上對模型進行預訓練可以極大地改善其在較難的自然語言處理
任務(如 Winograd Schema Resolution)上的效能。OpenAI 還注意到他們能夠使用底層
語言模型開始執行任務,無需訓練。例如,在選擇正確答案等任務中的效能隨著底層
語言模型
的改進而得到改善。儘管這些方法的絕對效能與當前最優的監督方法相比仍然較低(在問答任務中,非監督方法的效能仍然不如簡單的滑動視窗監督式基線模型),但是這些方法在大量任務上具備魯棒性,這令人鼓舞。不包含任何任務和世界相關資訊的隨機初始化網路,其效能不比使用這些啟發式方法的隨機初始化網路好。這為生成性預訓練為什麼能夠提高下游任務上的效能提供了一些洞見。

OpenAI 還使用模型中的現有語言功能來執行情感分析。研究人員使用了 Stanford Sentiment Treebank 資料集,該資料集包含積極和消極的電影評論句子,研究人員可以使用語言模型通過在一個評論句子後輸入單詞「very」,並檢視該模型預測該單詞是「積極」或「消極」的概率,來猜測這條評論是積極還是消極的。這種方法無需將模型針對特定任務進行調整,它與經典基線模型的效能持平——大約 80% 的準確率。

該研究也是對 Transformer 架構的魯棒性和實用性的驗證,表明無需針對特定任務進行復雜的定製化或調參,也可以在大量任務上達到當前最優的結果。

缺點

該專案也有幾個突出的問題值得注意:

  • 計算需求:很多之前的解決 NLP 任務的方法可以在單塊 GPU 上從零開始訓練相對較小的模型。OpenAI 的方法在預訓練步驟中需要很高的成本——在 8 塊 GPU 上訓練 1 個月。幸運的是,這僅需要做一次,OpenAI 會發布他們的模型,從而其他人可以避免這一步。它也是一個很大的模型(相比於之前的工作),因而需要更多的計算和記憶體。OpenAI 使用了一個 37 層(12 個模組)的 Tranformer 架構,並且在達到 512 個 token 的序列上訓練。多數實驗都是在 4 和 8 塊 GPU 的系統上構建的。該模型確實能很快速地精調到新的任務上,這緩解了額外的資源需求。

  • 通過文字學習而導致的對世界理解的侷限和偏差:在網際網路上可用的書籍和文字並沒有囊括關於世界的完整甚至是準確的資訊。近期的研究表明特定型別的資訊很難僅通過文字學習到,其它研究表明模型會從資料分佈中學習和利用偏差。

  • 泛化能力仍然很脆弱:雖然 OpenAI 的方法在多種任務中提高了效能,目前的

    深度學習
    NLP 模型仍然展現出令人吃驚的和反直覺的行為,特別是當在系統化、對抗性或超出資料分佈的方式進行評估的時候。OpenAI 的方法相比於之前的純
    神經網路
    的方法在文字蘊涵任務上展示了提升的詞法魯棒性。在 Glockner 等人的論文《Breaking NLI Systems with Sentences that Require Simple Lexical Inferences》引入的資料集中,他們的模型達到了 83.75% 的
    準確率
    ,和 KIM(Knowledge-based Inference Model,來自《NATURAL LANGUAGE INFERENCE WITH EXTERNAL KNOWLEDGE》)的效能相近(通過 WordNet 整合了外部知識)。

未來方向

  • 擴充套件該方法:研究者觀察到

    語言模型
    效能的提高和下游任務的提高有很大關聯。他們目前使用的是商用 GPU(單個 8GPU 機器)以及僅包含數千本書籍的訓練資料集(約 5GB 的文字)。這意味著如果使用驗證效果好的方法以及更多的計算資源和資料,該模型還有很大的提升空間。

  • 改善精調過程:研究者的方法目前還很簡單。有可能使用更復雜的適應和遷移技術例如在 ULMFiT 中所探索的方法,可以讓該模型獲得顯著的提升。

  • 更好地理解生成式預訓練的有效性:雖然本文中片面地討論了一些思想,更多的目標指向的實驗和研究將幫助分辨不同的解釋。例如,實驗中觀察到的效能增益有多少是由於處理更廣泛上下文的能力的提高,有多少是由於世界知識的提高。

附錄:資料集示例

使用Transformer與無監督學習,OpenAI提出可遷移至多種NLP任務的通用模型

論文:Improving Language Understanding by Generative Pre-Training

使用Transformer與無監督學習,OpenAI提出可遷移至多種NLP任務的通用模型

摘要:自然語言理解包括很廣泛的任務型別,例如文字蘊涵、問答、語義相似性評估以及

文字分類
。雖然存在大量的未標記文字語料庫,但是為學習這些特定任務而標註的資料是較匱乏的,從而令有區別地訓練表現足夠好的模型變得很有挑戰性。我們在本研究中表明通過在多個未標記文字語料庫上對語言模型進行生成式預訓練,然後有區別地對每個特定任務進行精調,可以在這些任務上取得很大的增益。相比於之前的方法,我們在精調以獲得有效遷移的過程中利用了任務相關的輸入轉換,同時僅需要對模型架構做極小的改變。結果表明我們的方法在自然語言理解的很廣泛的基準上具備有效性。我們不基於任務的模型超越了那些為每個任務特別設計架構而分別進行訓練的模型,在研究的 12 項任務的 9 項中顯著提高了當前最佳結果。例如,我們在常識推理(Stories Cloze Test)、問答(RACE)、文字蘊涵(MultiNLI)中分別達到了 8.9%、5.7%、1.5% 的絕對提高。


原文連結:
https://blog.openai.com/language-unsupervised/


相關文章