近日,OpenAI 在其官方博客發文介紹了他們最新的自然語言處理(NLP)系統。這個系統是可擴展的、與任務無關的,并且在一系列不同的 NLP 任務中都取得了亮眼的成績。但該方法在計算需求等方面仍存在改進的空間。下面我們來看他們的博文:
我們即將發布一個可擴展的,與任務無關的自然語言處理系統,該系統在一系列不同的語言任務上都取得了目前最先進的成績。我們的方法結合了兩種現有的 NLP 網絡架構:Transformer 和無監督預訓練。大量任務數據集上的測試結果表明,這種方法將監督學習方法與無監督預訓練結合得非常好;當然,這也是之前許多人在探索的想法。我們希望我們的工作能夠激發該方向進一步的研究,并鼓勵大家將這一想法應用到更大更多的不同數據集上。
先看結果:
我們的系統的工作流程分為兩個階段:首先,以無監督的方式在大量數據上訓練一個 Transformer 模型——使用語言建模作為訓練信號——然后,在小得多的監督數據集上對這個模型進行 fine-tuning,以幫助它解決特定的任務。這項研究是建立在我們之前一項關于情緒神經元(Sentiment Neuron)的工作基礎之上的,在那項工作中我們注意到,當訓練數據足夠多時,無監督學習技術可以產生驚人的判別性特征。
在本項研究工作中,我們這個想法進行了進一步的探索:我們可以開發一個模型,以無監督的方式對大量數據進行訓練,然后對模型進行 fine-tuning,以在許多不同任務上獲得良好的性能。我們的研究結果表明,這種方法的效果非常好。針對不同的任務,只需要對同一個的核心模型進行最少的調整就可以進行應用。
這項工作建立在半監督序列學習(Semi-supervised Sequence Learning)的基礎之上,其中半監督序列學習方法展示了如何通過使用 LSTM 的無監督預訓練,然后進行有監督的 fine-tuning 來提高文檔分類性能。
我們的工作還對ULMFiT進行了拓展,說明了為了在各個文檔分類數據集上獲得最先進的性能,應該如何對單個與數據集無關的 LSTM 語言模型進行 fine-tuning;我們的工作展示了如何使用基于 Transformer 的模型來實現文檔分類之外的更廣泛的任務,如常識推理,語義相似性和閱讀理解。
它和 ELMo 也有一些類似,但比 ELMo 更加通用。(編輯注:ELMo 是目前最先進的上下文詞嵌入技術,同樣使用了預訓練技術,但為了在各種任務中獲得最先進的結果針對不同任務使用了定制架構。)
我們的實驗結果只需要進行非常少的調整就可以實現。其中所有數據集都使用單一的正向語言模型,沒有任何集成,并且大多數報告結果都使用了完全相同的超參數設置。
值得一提的是該方法在三種關于測試常識推理和閱讀理解的數據集(COPA,RACE和ROCStories)上的表現。我們的模型以遠超第二名的成績在這些數據集上獲得了最先進的結果。這些數據集普遍被認為需要借助多語句推理和有意義的世界知識進行解決,而我們的模型主要通過無監督學習來提高這些技能。這也表明了通過無監督技術來開發復雜的語言理解功能的可能。這讓我們特別興奮。
▌為什么是無監督學習?
監督學習是機器學習最近成功的關鍵。但是,它可能需要大量的、經過仔細清理的、昂貴的數據集才能發揮非常好的作用。而無監督學習則有可能解決這些不足,這是非常有吸引力的。由于無監督學習沒有了顯式人工標簽的限制,在當前計算量和原始數據不斷增加的趨勢下,這項技術表現出了非常好的擴展性。 不過雖然無監督學習是一個非常活躍的研究領域,但其實際用途仍然有限。
最近有人試圖通過無監督學習用大量無標記數據進行增強以進一步提高系統的自然語言處理能力。通過無監督技術訓練的詞向量表示可以使用由 TB 級信息組成的大型數據集,并且當它與監督學習相結合時,可以提高各種 NLP 任務的性能。之前,這些 NLP 的無監督技術(例如GLoVe和word2vec)使用的都還是簡單模型(詞向量)和訓練信號(詞局部共現,the local co-occurence of words)。
Skip-Thought Vectors是早期的一個值得注意的方法,展示了通過更復雜的方法實現的改進的可能性。而現在正在使用的新技術則進一步提高了性能,這包括使用預訓練的語句表示模型,上下文詞向量(主要是ELMo和CoVE),以及使用定制架構來融合無監督預訓練和監督 fine-tuning 的方法(也就是我們的方法)。
在大量文本上對我們的模型進行預訓練,可顯著提高其在諸如 Winograd Schema Resolution 等具有挑戰性的自然語言處理任務上的表現。
我們還注意到,該方法可以直接使用底層語言模型開始執行任務,而無需對其進行任何訓練。例如,隨著基礎語言模型的改進,像在選擇題中選擇正確答案這種任務的性能會穩步增加。
雖然這些方法的絕對性能相對于最新的監督技術而言仍然很低(對于問答式任務,它僅比簡單的滑動窗口基線結果好),但令人鼓舞的是,這種行為在大量任務中表現的非常魯棒。這種不使用任務和世界信息的隨機初始化網絡表現的和使用這些信息的隨機網絡一樣好。這為我們了解為什么生成式預訓練可以提高下游任務的性能提供了一些有意義的參考。
我們還使用模型中現有的語言功能進行了情感分析。對于斯坦福 Sentiment Treebank 數據集(該數據集包含了電影評論中的正面和負面語句),我們可以使用語言模型來猜測評論是正面還是負面(在語句后面輸入單詞“very”即可進行預測),并且觀察模型是傾向于將詞性預測為“積極”還是傾向于將詞性預測為“消極”。 這種方法根本不需要根據任務對模型進行調整,并且其性能與經典基線準確率相當,可達 80% 。
我們的工作也驗證了 Transformer 架構的魯棒性和實用性,表明它具有足夠的靈活性,可在廣泛的任務中實現最先進的結果,而無需復雜的任務定制或超參數調整。
▌不足之處
這個項目也有一些突出問題非常值得注意:
計算需求:以前的許多自然語言處理方法都是從頭開始在單個 GPU 上訓練相對較小的模型。但我們的方法預訓練步驟計算需求則相當昂貴——在 8 個 GPU 上訓練 1 個月。幸運的是,這只需要做一次,我們正在將我們的模型發布出來,以方便其他人不用重復這一步驟。
它也是一個大型模型(與之前的工作相比),因此使用了更多的計算和內存——我們使用了37層(12塊)Transformer 架構,并且在最多可達 512 個 tokens 的序列上訓練。并且大多數實驗都是在 4 個和 8 個 GPU 的系統上進行的。該模型針對新任務進行 fine-tuning 的速度非常快,有助于減輕額外的資源需求。
通過文本學習世界的局限性和偏見:互聯網上隨時可用的書籍和文本所包含的關于世界的信息并不完整,甚至并不準確。最近的研究(https://arxiv.org/abs/1705.11168)表明,某些類型的信息很難通過文本進行學習。而另外一些研究(https://arxiv.org/abs/1803.02324)則表明了數據分布中存在的模型學習和開發偏見。
依舊脆弱的泛化性能:盡管我們的方法提升了自然語言處理系統在大量任務上的性能,但目前的深度學習 NLP 模型仍然表現出了令人驚訝的反直覺的行為——尤其是在以系統性、對抗性或分布性的方式進行評估時。盡管我們已經觀察到一些研究進展,但我們的方法對這些問題并不是免疫的。
這種方法表現出比先前的面向文字蘊含(Textual entailment)的神經網絡方法更好的詞法魯棒性。在 Glockner 等人介紹的數據集(https://arxiv.org/abs/1805.02266)上,我們模型的準確率達到了 83.75%,其性能類似于通過 WordNet 整合外部知識的KIM。
▌工作展望
方法規模化拓展:我們已經觀察到,語言模型的性能改進與下游任務的改進密切相關。目前我們正在使用商用硬件(一臺 8 GPU 計算機)以及僅包含幾千本書(約 5 GB 文本)的訓練數據集。這表明經過充分驗證該方法在處理越來越大的計算量和數據時還有很大提升空間。
改進的 fine-tuning:我們在 fine-tuning 上的策略目前非常簡單。通過使用更復雜的自適應和轉換技術(例如ULMFiT中的技術)可能為我們的系統帶來實質性的改進。
更好地理解生成式預訓練帶來提升的原因:盡管我們已經討論了一些關于這個問題的想法,但更有針對性的實驗和研究將有助于我們對那些相互矛盾的解釋進行判斷。例如,我們觀察到的提升有多少是由于對處理更廣泛上下文能力的改進,以及多少是由于對世界知識的改進?
▌附錄:數據集示例
-
自然語言處理
+關注
關注
1文章
628瀏覽量
14011
原文標題:OpenAI NLP最新進展:通過無監督學習提升語言理解
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論