論文選自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 框架內的其他預訓練機制,從而更好地評估影響終端任務效能的最大因素。
論文連結:
引言
自監督方法在大量 NLP 任務中取得了卓越的成績。近期研究透過改進 masked token 的分佈(即 masked token 被預測的順序)和替換 masked token 的可用語境,效能獲得提升。然而,這些方法通常聚焦於特定型別和任務(如 span prediction、生成等),應用較為有限。
Facebook 的這項研究提出了新架構 BART,它結合雙向和自迴歸 Transformer 對模型進行預訓練。BART 是一個適用於序列到序列模型的去噪自編碼器,可應用於大量終端任務。預訓練包括兩個階段:1)使用任意噪聲函式破壞文字;2)學得序列到序列模型來重建原始文字。BART 使用基於 Tranformer 的標準神經機器翻譯架構,可泛化 BERT、GPT 等近期提出的預訓練模型。
圖 1a:BERT:用掩碼替換隨機 token,雙向編碼文件。由於缺失 token 被單獨預測,因此 BERT 較難用於生成任務。
圖 1b:GPT:使用自迴歸方式預測 token,這意味著 GPT 可用於生成任務。但是,該模型僅基於左側上下文預測單詞,無法學習雙向互動。
圖 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 掩碼不同,模型必須確定缺失輸入的位置。
圖 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 編碼器第一層的自注意力輸入投影矩陣。第二步中,研究人員將所有模型引數進行少量迭代訓練。
圖 3:a:要想使用 BART 解決分類問題,編碼器和解碼器的輸入要相同,使用最終輸出的表徵。b:對於機器翻譯任務,研究人員訓練一個額外的小型編碼器來替換 BART 中的詞嵌入。新編碼器可使用不同的詞彙。
結果
表 1:預訓練目標對比。所有模型的訓練資料都是書籍和維基百科資料。
表 2:大模型在 SQuAD 和 GLUE 任務上的結果。BART 的效能堪比 RoBERTa 和 XLNet,這表明 BART 的單向解碼器層不會降低模型在判別任務上的效能。
表 3:在兩個標準摘要資料集上的結果。在這兩個摘要任務上,BART 在所有度量指標上的效能均優於之前的研究,在更抽象的 XSum 資料集上的效能較之前模型提升了 6 個百分點。
表 4:BART 在對話回答生成任務上的效能優於之前研究。困惑度基於 ConvAI2 官方 tokenizer 進行了重新歸一化。
表 5:BART 在難度較高的 ELI5 抽象問答資料集上取得了當前最優結果。
表 6:BART 和基線模型在機器翻譯任務上(使用資料集包括 WMT‘16 RO-EN 和回譯資料)的效能對比情況。BART 使用單語英文預訓練,效能優於強大的回譯基線模型。