OpenAI 最近通過一個與任務無關的可擴充套件系統在一系列語言任務中獲得了當前最優的效能,目前他們已經發布了該系統。OpenAI 表示他們的方法主要結合了兩個已存的研究,即 Transformer 和無監督預訓練。實驗結果提供了非常令人信服的證據,其表明聯合監督學習方法和無監督預訓練能夠得到非常好的效能。這其實是很多研究者過去探索過的領域,OpenAI 也希望他們這次的實驗結果能激發更加深入的研究,並在更大和更多的資料集上測試聯合監督學習與無監督預訓練的效能。
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 的方法。
任務(如 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 中所探索的方法,可以讓該模型獲得顯著的提升。
更好地理解生成式預訓練的有效性:雖然本文中片面地討論了一些思想,更多的目標指向的實驗和研究將幫助分辨不同的解釋。例如,實驗中觀察到的效能增益有多少是由於處理更廣泛上下文的能力的提高,有多少是由於世界知識的提高。
附錄:資料集示例
論文:Improving Language Understanding by Generative Pre-Training
摘要:自然語言理解包括很廣泛的任務型別,例如文字蘊涵、問答、語義相似性評估以及