大規模預訓練語言模型在自然語言理解(NLU)和自然語言生成(NLG)中都取得了突破性成果。這些模型通常使用特殊的自監督學習目標先在大規模無標記語料中進行預訓練,然後在下游任務上微調。
傳統自迴歸語言模型通過估計文字語料概率分佈被廣泛用於文字建模,序列到序列的建模(seq2seq),以及預訓練語言模型中(如 GPT 等)。這類模型通常使用 teacher-forcing 的方法訓練,即每一時刻通過給定之前時刻的所有字元以預測下一個時刻的字元。然而,這種方式可能會讓模型偏向於依賴最近的字元,而非通過捕捉長依賴(long-term dependency)的資訊去預測下一個字元。有如以下原因:(1)區域性的關係,如兩元字元的組合,往往比長依賴更強烈;(2)Teacher-forcing 每一時刻只考慮對下一個字元的預測,並未顯式地讓模型學習對其他未來字元的建模和規劃。最終可能導致模型對區域性字元組合的學習過擬合,而對全域性的一致性和長依賴欠擬合。尤其是當模型通過貪心解碼(greedy decoding)的方式生成序列時,序列往往傾向於維持區域性的一致性而忽略有意義的全域性結構。
針對上述問題,我們提出了一個新的 seq2seq 預訓練模型, 我們稱之為 ProphetNet(先知網路)。該模型帶有一個新穎的自監督學習目標函式,即預測未來的N元組(Predicting Future N-gram)。與傳統 seq2seq 的 Teacher-forcing 每一時刻只預測下一個字元不同,ProphetNet 每一時刻將學習去同時預測未來的 N 個字元。如圖1所示:
ProphetNet 基於 Transformer 的 seq2seq 架構,其設計有兩個目標:1.模型能夠以高效的方式在訓練過程中完成每時刻同時預測未來的 N 個字元;2.模型可以靈活地轉換為傳統的 seq2seq 架構(每時刻只預測一下個字元),以在推理或微調階段相容現有的方法和任務。為此,我們受 XLNet 中 Two-stream self attention 的啟發,提出了用於模型 decoder 端的 N-stream self-attention 機制。圖2展示了 bigram 形式下的 N-stream self-attention 樣例。除了原始的 multi-head self-attention 之外(我們稱為 main stream self-attention,如圖2a),N-stream self-attention 包含了額外的 N 個 predicting stream self-attention(如圖2b和圖2c),用於分別預測第 n 個未來時刻的字元(如圖2d)所示。每一個 predicting stream 與 main stream 共享引數,我們可以隨時關閉 predicting stream 以讓模型轉換回傳統 seq2seq 的模式。
我們使用兩個規模的語料資料訓練 ProphetNet。ProphetNet 包含12層的 encoder 和12層的 decoder,隱層大小為1024。先在 BERT 所使用的 BookCorpus+Wikipedia(16GB)的資料上預訓練模型,將模型在 Text summarization 和 Question generation 兩個 NLG 任務上的三個資料集微調並評估模型效能。與使用同等規模資料(16GB)的預訓練模型相比,ProphetNet 在CNN/DailyMail、Gigaword 和 SQuAD 1.1 question generation 資料集上都取得了最高的效能,如表1-3所示。
除了使用 16GB 的語料訓練模型,我們也進行了更大規模的預訓練實驗。該實驗中,我們使用了 160GB 的語料(該語料被 BART、RoBETRa 等模型預訓練中所使用)預訓練 ProphetNet。我們展示了預訓練14個 epoch 後的 ProphetNet 在 CNN/DailyMail 和 Gigaword 兩個任務上微調和測試的結果。如表4所示。需要注意的是,在相同大小的訓練資料下,我們模型的預訓練 epoch 僅約為 BART 的三分之一。我們模型的訓練資料使用量僅約為 T5 和 PEGASUSLARGE(C4)的五分之一,約為 PEGASUSLARGE(HugeNews) 的二十分之一。儘管如此,我們的模型仍然在 CNN/DailyMail 上取得了最高的 ROUGE-1 和 ROUGE-L F1 scores。並在 Gigaword 上實現了新的 state-of-the-art 效能。
本文介紹了微軟亞洲研究院在序列到序列模型預訓練的一個工作:ProphetNet,該模型提出了一種新的自監督學習目標,在同一時刻同時預測多個未來字元。並通過提出的 N-stream self-attention 機制高效地實現了模型在該目標下的訓練。實驗表明,該模型在序列到序列的多個自然語言生成任務都取得了不錯的效能。我們將在之後嘗試使用更大規模的模型架構和語料進行預訓練,並進一步深入地探索該機制。
ProphetNet: Predicting Future N-gram for Sequence-to-Sequence Pre-training
論文連結:https://arxiv.org/pdf/2001.04063.pdf
程式碼連結:https://github.com/microsoft/ProphetNet(即將開放)
本文作者:劉大一恆、齊煒禎、晏宇、宮葉雲、段楠、周明