本篇綜述“A Survey of Pretrained Language Models Based Text Generation”的第一作者李軍毅來自中國人民大學和加拿大蒙特利爾大學,指導教師為趙鑫教授(通訊作者)和聶建云教授。作者從數據、模型和優化方法三個角度切入,主要介紹了近年來預訓練語言模型技術在文本生成領域的研究進展,以及相應的挑戰和解決方案;然后陸續介紹了預訓練語言模型在三個代表性的文本生成任務中的應用,包括機器翻譯、文本摘要和對話系統,以及廣泛采用的評測基準和評價指標;最后討論提出了若干個未來的研究方向。本文梳理了2018年至今總計200余篇預訓練語言模型研究工作,為后續研究者了解熟悉此領域提供巨大幫助。
預訓練語言模型技術解決文本生成任務主要考慮三個方面的挑戰:1)如何有效地編碼輸入表示并保留其語義?本文第三章對輸入數據的形態進行了劃分,包括非結構化文本、結構化數據和多媒體數據,梳理了預訓練語言模型針對不同類型輸入的表示學習方法;2)如何設計有效的預訓練語言模型作為生成函數?本文第四章介紹了四種預訓練語言模型模式,包括Masked LM,Causal LM, Prefix LM和Encoder-Decoder LM,并在此基礎上作出的拓展,例如增加額外的輸入Embedding和Attention機制的創新;3)如何有效地優化預訓練語言模型并保證輸出文本滿足某些語言屬性?本文第五章介紹了三種針對文本生成任務的優化策略,包括傳統的Fine-Tuning技術,新興的Prompt-Tuning技術,以及針對特殊屬性設計的Property-Tuning技術。
"妙筆"生花:一個易用、高效的文本生成開源庫
關于預訓練語言模型在文本生成任務上的應用,不得不提我們AI Box團隊開發的文本生成工具包——TextBox,中文名“妙筆”。到目前為止,妙筆總共支持四個大類總計21個文本生成模型,其中就包括相關的預訓練語言模型,比如GPT-2, BART, T5和ProphetNet等;同時我們也支持機器翻譯、文本摘要、對話系統、data-to-text等主流生成任務和相應的測試。研究者可以方便地使用TextBox進行一站式訓練,數據處理、數據加載、模型訓練和測試等環節均可以由TextBox自動完成。
參考文獻: [1] Li, J., Tang, T., Zhao, W.X., Nie, J. Y., & Wen, J. R. (2022). A Survey of Pretrained Language Models Based Text Generation. arXiv preprint arXiv:2201.05273.
[2] Li, J., Tang, T., He, G., Jiang, J., Hu, X.,Xie, P., ... & Wen, J. R. (2021). Textbox: A unified, modularized, and extensible framework for text generation. arXiv preprint arXiv:2101.02046.
大型的、預訓練的基于Transformer的語言模型,如BERT,已經極大地改變了自然語言處理(NLP)領域。我們對最近的研究進行了調研,這些研究使用了大型語言模型來解決NLP任務,通過預訓練、微調、提示或文本生成方法。我們還提出了使用預訓練語言模型生成數據的方法,用于訓練增強或其他目的。最后,我們討論了局限性,并提出了未來研究的方向。
引言
近年來,大型預訓練的基于Transformer的語言模型(PLMs),如BERT (Devlin et al., 2019)和GPT (Radford et al., 2018)系列模型席卷了自然語言處理(NLP),在許多任務中實現了最先進的性能。
這些大型PLM推動了NLP的范式轉變。以分類任務p(y|x)(將文本輸入x分類為標簽y)為例:傳統統計NLP方法通常設計手工特征來表示x,然后應用機器學習模型(如SVM (Cortes and Vapnik, 1995)、邏輯回歸)來學習分類函數。深度學習模型通過深度神經網絡(LeCun et al., 2015)。注意,每個新的NLP任務都需要重新學習潛在特征表示,而且在許多情況下,訓練數據的大小限制了潛在特征表示的質量。考慮到語言的細微差別對所有NLP任務來說都是共同的,我們可以假設我們可以從一些通用任務中學習一個通用的潛在特征表示,然后在所有NLP任務中共享它。語言建模需要學習如何在給定前一個單詞的情況下預測下一個單詞,這是一項具有大量自然出現的文本的通用任務,可以預訓練這樣一個模型(因此得名預訓練語言模型)。事實上,最新的、正在進行的范式轉換從引入PLMs開始: 對于大量的NLP任務,研究人員現在來利用現有的PLMs通過對感興趣的任務進行微調,提示PLMs執行期望的任務,或者將任務重新構造為文本生成問題,并應用PLMs來解決相應的問題。這三種基于PLM的范式的進步不斷地建立了新的最先進的性能。
本文調研了最近利用PLM進行NLP的工作。我們將這些工作組織成以下三種范式:
先進行預訓練,然后進行微調(§2): 先對大量未標記語料庫進行通用預訓練,然后對感興趣的任務進行少量的任務特定微調。
基于提示的學習(§3):提示一個PLM,這樣解決NLP任務就會減少到類似于PLM的訓練前任務(如預測一個遺漏的單詞),或一個更簡單的代理任務(如文本包含)。提示通常可以更有效地利用PLM中編碼的知識,從而產生“少樣本”的方法。
NLP作為文本生成(§4): 將NLP任務重新定義為文本生成,以充分利用生成語言模型(如GPT-2 (Radford et al., 2019)和T5 (Raffel et al., 2020)中編碼的知識。
生成式PLMs也可以用于文本生成任務。我們向讀者推薦關于文本生成的優秀調研,如Li et al. (2021b) 和Yu et al. (2021b)。除非另有說明,本文主要關注非生成性任務(如分類、序列標注和結構預測),這些任務仍然涵蓋廣泛的NLP任務,包括文本的語法或語義解析、信息抽取(IE)、問答(QA)、文本蘊涵(TE)、情感分析、等等。除了這三種范式之外,還有另一種互補的方法:間接使用上述任何一種PLM范式來改善目標NLP任務的結果:
數據生成(§5): 運行PLM自動生成NLP任務的數據。生成的數據可以是銀色標記的數據,通常生成的PLM是針對任務進行微調的,或者是一些輔助數據,如反例、澄清、上下文或其他。在第一種情況下,銀色標記數據可以添加到現有的標記數據中。在第二種情況下,輔助數據以某種方式支持目標任務。
論文組織如下: 第2節提供了PLM的背景,并描述了第一種范式,即預訓練然后微調。第三節討論第二種范式,即基于提示的學習。第4節總結了第三種范式,即作為文本生成的NLP。在第5節中,我們將描述通過PLM為廣泛的NLP任務生成數據的方法。我們將在第6節討論局限性并提供未來研究的方向,并在第7節進行總結。
范式1: 先訓練,然后微調
傳統統計NLP的工作重點是在標記數據集上訓練特定任務的模型,而這種模式轉變為在一個共享的、“基本”的預訓練任務上訓練一個大型模型,然后在第二步中將其調整(“微調”)到各種任務。預訓練任務幾乎總是一種語言建模任務,它可以利用大量的未標記數據來學習有利于一系列NLP任務的表示(Rogers et al., 2020)。在本節中,我們首先提供關于預訓練的大型語言模型(PLMs)的入門知識,然后描述使用凍結或微調PLM進行NLP任務的方法。
范式2: 基于提示的學習
我們使用提示指的是在輸入或輸出中添加自然語言文本(通常是短語)的做法,以鼓勵預訓練的模型執行特定任務(Yuan et al., 2021)。使用提示符有幾個優點。提示,特別是上下文學習(例如Brown et al., 2020),可能不需要更新PLM的參數,與微調方法相比,或在2.4.4中描述的基礎上,減少了計算需求。提示還能促使新任務的制定與預訓練的目標更好地結合,從而更好地利用預訓練獲得的知識。更緊密的匹配還支持少樣本方法(Liu et al., 2021b),特別是對于具有小訓練數據集的任務;一個好的提示可以值幾百個標簽數據點(Le Scao and Rush, 2021)。最后,提示允許以一種不受監督的方式探索PLM,以評估PLM對特定任務所獲得的知識(如Petroni et al., 2019)。
下面我們討論三種基于提示的學習方法:從指令和演示中學習、基于模板的學習和從代理任務中學習。圖3顯示了這三種方法的說明。
范式3 NLP即文本生成
基于生成式Transformer的PLMs10(如GPT、BART和T5)的成功,最近激發了人們對利用生成式PLM解決各種非生成式NLP任務的興趣。這些任務包括但不限于傳統的判別任務,如分類和結構預測。例如,圖4說明了Raffel等人(2020)所描述的這種“文本到文本”方法。與傳統的NLP任務判別模型不同,這些任務被重新表述為文本生成問題,從而可以直接用生成式PLM解決。生成的輸出序列通常包括給定任務所需的標簽或其他輔助信息,從而能夠準確地重構預期的類標簽(即避免映射中的歧義),并促進生成/解碼過程(即為預測提供足夠的上下文)。
總結
在這篇文章中,我們介紹了三種使用預訓練語言模型進行自然語言處理的趨勢。我們對每一種方法都進行了深入的描述,并對其應用前景進行了總結。此外,我們還描述了使用預先訓練過的語言模型來自動生成用于提高NLP任務性能的數據。我們希望這一調研將為讀者提供關鍵的基本概念和對范式轉變的全面看法。
導讀:本文將參考上述綜述論文,從預訓練語言模型應用于文本生成任務的三個挑戰出發:
如何對輸入數據進行編碼并保持語義,使其與預訓練語言模型進行融合; 如何設計通用且合適的預訓練語言模型架構,使其作為生成函數; 如何優化生成函數,并保證生成文本滿足特殊屬性。 并詳細列舉目前每個挑戰下的研究進展。
文本生成是目前自然語言處理領域一項非常重要但具有挑戰性的任務,它的目的是希望生成可讀的自然語言文本,比較有代表性的應用,例如對話系統、文本摘要和機器翻譯等。
目前,深度神經模型在文本生成研究中已取得重大進展,其優勢在于深度神經網絡可以端到端地學習輸入數據到輸出文本的語義映射,而不需要人工參與進行特征工程。但是,深度神經模型往往具有大量的參數,而大部分文本生成任務數據集都非常小,因此深度神經網絡非常容易在這些數據集上過擬合,導致其無法在實際應用中進行泛化。
隨著預訓練語言模型(Pretrained Language Models, PLMs)范式的蓬勃發展,越來越多的研究將其運用到各種自然語言處理任務中以取得SOTA效果,例如BERT解決語言理解和GPT解決語言生成。通過在大規模語料集上進行預訓練,預訓練語言模型可以準確地理解自然語言并以自然語言的形式流暢表達,這兩項都是完成文本生成任務的重要能力。
論文題目:Few-shot Knowledge Graph-to-Text Generation with Pretrained Language Models
論文概述:本文研究如何自動生成描述知識圖譜(KG)中事實的自然語言文本。借助預訓練語言模型(PLMs)在語言理解和生成方面的能力,我們主要考慮少樣本場景。我們提出了三個主要的技術貢獻,即用于彌合KG編碼和PLM之間語義差距的表示對齊,用于生成更好的輸入表示的基于關系的KG線性化策略,以及用于學習KG和文本之間對應關系的多任務學習。在三個基準數據集上進行的大量實驗證明了我們的模型在KG到文本生成任務上的有效性。特別是,我們的模型可以實現在只有幾百個標記樣本的情況下取得非常好的效果。