多項NLP任務新SOTA,Facebook提出預訓練模型BART​

論文選自arXiv

作者:Mike Lewis等機器之心編譯參與:魔王、一鳴

FaceBook 近日提出了一個名為BART的預訓練語言模型。該模型結合雙向和自迴歸 Transformer 進行模型預訓練,在一些自然語言處理任務上取得了SOTA性能表現。

近日,Facebook 發表論文,提出一種為預訓練序列到序列模型而設計的去噪自編碼器 BART。BART 通過以下步驟訓練得到:1)使用任意噪聲函數破壞文本;2)學習模型來重建原始文本。BART 使用基於 Transformer 的標準神經機器翻譯架構,可泛化 BERT(具備雙向編碼器)、GPT(具備從左至右的解碼器)等近期出現的預訓練模型,儘管它非常簡潔。Facebook 研究人員評估了多種噪聲方法,最終通過隨機打亂原始句子的順序,再使用新型文本填充方法(即用單個 mask token 替換文本段)找出最優性能。

BART 尤其擅長處理文本生成任務,不過它在理解任務中的性能也不錯。在提供同等的訓練資源時,BART 可在 GLUE 和 SQuAD 數據集上實現與 RoBERTa 相當的性能,並在抽象對話、問答和文本摘要等任務中獲得新的當前最優結果,在 XSum 數據集上的性能比之前研究提升了 6 ROUGE。在機器翻譯任務中,BART 在僅使用目標語言預訓練的情況下,獲得了比回譯系統高出 1.1 個 BLEU 值的結果。研究人員還使用控制變量實驗複製了 BART 框架內的其他預訓練機制,從而更好地評估影響終端任務性能的最大因素。

論文鏈接:https://arxiv.org/pdf/1910.13461.pdf

引言

自監督方法在大量 NLP 任務中取得了卓越的成績。近期研究通過改進 masked token 的分佈(即 masked token 被預測的順序)和替換 masked token 的可用語境,性能獲得提升。然而,這些方法通常聚焦於特定類型和任務(如 span prediction、生成等),應用較為有限。

Facebook 的這項研究提出了新架構 BART,它結合雙向和自迴歸 Transformer 對模型進行預訓練。BART 是一個適用於序列到序列模型的去噪自編碼器,可應用於大量終端任務。預訓練包括兩個階段:1)使用任意噪聲函數破壞文本;2)學得序列到序列模型來重建原始文本。BART 使用基於 Tranformer 的標準神經機器翻譯架構,可泛化 BERT、GPT 等近期提出的預訓練模型。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

圖 1a:BERT:用掩碼替換隨機 token,雙向編碼文檔。由於缺失 token 被單獨預測,因此 BERT 較難用於生成任務。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

圖 1b:GPT:使用自迴歸方式預測 token,這意味著 GPT 可用於生成任務。但是,該模型僅基於左側上下文預測單詞,無法學習雙向交互。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

圖 1c:BART:編碼器輸入與解碼器輸出無需對齊,即允許任意噪聲變換。使用掩碼符號替換文本段,從而破壞文本。使用雙向模型編碼被破壞的文本(左),然後使用自迴歸解碼器計算原始文檔的似然(右)。至於微調,未被破壞的文檔是編碼器和解碼器的輸入,研究者使用來自解碼器最終隱藏狀態的表徵。

模型

去噪自編碼器 BART 可將被破壞文檔映射至原始文檔。它是一個具備雙向編碼器(對被破壞文本使用)和從左至右自迴歸解碼器的序列到序列模型。至於預訓練,研究人員優化了原始文檔的負 log 似然。

架構

BART 使用 (Vaswani et al., 2017) 提出的標準序列到序列 Transformer 架構,不過做了少許改動:按照 GPT 模型,將 ReLU 激活函數更改為 GeLU,從 N (0, 0.02) 初始化參數。BART base 模型的編碼器和解碼器各有 6 層,large 模型中層數各增加到了 12。BART 架構與 BERT 所用架構類似,區別如下:1)解碼器的每個層對編碼器最終隱藏層額外執行 cross-attention(和 Transformer 序列到序列模型一樣);2)BERT 在詞預測之前使用了額外的前饋網絡,而 BART 沒有。總之,BART 相比同等規模的 BERT 模型大約多出 10% 的參數。

預訓練 BART

BART 是通過破壞文檔再優化重建損失(即解碼器輸出和原始文檔之間的交叉熵)訓練得到的。與目前僅適合特定噪聲機制的去噪自編碼器不同,BART 可應用於任意類型的文檔破壞。極端情況下,當源文本信息全部缺失時,BART 也等同於語言模型。

  • token 掩碼:按照 BERT 模型,BART 採樣隨機 token,並用掩碼替換它們。
  • token 刪除:從輸入中隨機刪除 token。與 token 掩碼不同,模型必須確定缺失輸入的位置。
多項NLP任務新SOTA,Facebook提出預訓練模型BART​

圖 2:向輸入添加不同的噪聲變換。這些變換是可組合的。

  • 文本填充:採樣多個文本段,文本段長度取決於泊松分佈 (λ = 3)。用單個掩碼 token 替換每個文本段。長度為 0 的文本段對應掩碼 token 的插入。
  • 句子排列變換:按句號將文檔分割成多個句子,然後以隨機順序打亂這些句子。
  • 文檔旋轉:隨機均勻地選擇 token,旋轉文檔使文檔從該 token 開始。該任務的目的是訓練模型識別文檔開頭。

BART 模型微調

序列分類任務

序列分類任務中,編碼器和解碼器的輸入相同,最終解碼器 token 的最終隱藏狀態被輸入到新的多類別線性分類器中。該方法與 BERT 中的 CLS token 類似,不過 BART 在解碼器最後額外添加了一個 token,這樣該 token 的表徵可以處理來自完整輸入的解碼器狀態(見圖 3a)。

token 分類任務

對於 token 分類任務,研究人員將完整文檔輸入到編碼器和解碼器中,使用解碼器最上方的隱藏狀態作為每個單詞的表徵。該表徵的用途是分類 token。

序列生成任務

由於 BART 具備自迴歸解碼器,因此它可以針對序列生成任務進行直接微調,如抽象問答和摘要。在這兩項任務中,信息複製自輸入但是經過了處理,這與去噪預訓練目標緊密相關。這裡,編碼器的輸入是輸入序列,解碼器以自迴歸的方式生成輸出。

機器翻譯

研究人員用新的隨機初始化編碼器替換 BART 的編碼器嵌入層。該模型以端到端的方式接受訓練,即訓練一個新的編碼器將外來詞映射到輸入(BART 可將其去噪為英文)。新的編碼器可以使用不同於原始 BART 模型的詞彙。

源編碼器的訓練分兩步,均需要將來自 BART 模型輸出的交叉熵損失進行反向傳播。第一步中,研究人員凍結 BART 的大部分參數,僅更新隨機初始化的源編碼器、BART 位置嵌入和 BART 編碼器第一層的自注意力輸入投影矩陣。第二步中,研究人員將所有模型參數進行少量迭代訓練。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

圖 3:a:要想使用 BART 解決分類問題,編碼器和解碼器的輸入要相同,使用最終輸出的表徵。b:對於機器翻譯任務,研究人員訓練一個額外的小型編碼器來替換 BART 中的詞嵌入。新編碼器可使用不同的詞彙。

結果

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

表 1:預訓練目標對比。所有模型的訓練數據都是書籍和維基百科數據。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

表 2:大模型在 SQuAD 和 GLUE 任務上的結果。BART 的性能堪比 RoBERTa 和 XLNet,這表明 BART 的單向解碼器層不會降低模型在判別任務上的性能。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

表 3:在兩個標準摘要數據集上的結果。在這兩個摘要任務上,BART 在所有度量指標上的性能均優於之前的研究,在更抽象的 XSum 數據集上的性能較之前模型提升了 6 個百分點。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

表 4:BART 在對話回答生成任務上的性能優於之前研究。困惑度基於 ConvAI2 官方 tokenizer 進行了重新歸一化。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

表 5:BART 在難度較高的 ELI5 抽象問答數據集上取得了當前最優結果。

多項NLP任務新SOTA,Facebook提出預訓練模型BART​

表 6:BART 和基線模型在機器翻譯任務上(使用數據集包括 WMT‘16 RO-EN 和回譯數據)的性能對比情況。BART 使用單語英文預訓練,性能優於強大的回譯基線模型。


分享到:


相關文章: