既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

機器之心發表於2019-12-09
在 10 月 20 號的世界網際網路大會中,微軟之前提出來的「統一預訓練語言模型與機器閱讀理解技術」榮獲「世界網際網路領先科技成果」獎,沈向洋博士在會上介紹了這一模型。

在機器之心的 SOTA 專案中,我們同樣發現 UniLM 模型在很多自然語言理解、自然語言生成任務中有非常好的效果,並且在機器閱讀理解等方面能獲得當前最優的水平。為此,本文將介紹 UniLM 這項研究工作,該研究已經被接收為 NeurIPS 2019 論文。

  • 論文地址:https://arxiv.org/abs/1905.03197

  • 實現地址:https://github.com/microsoft/unilm 

這篇論文提出了一種新型的統一的預訓練語言模型(UniLM),它既可以針對自然語言理解任務進行微調,也能用於自然語言生成任務。這個模型使用了三種型別的語言建模任務進行預訓練:單向模型、雙向模型、序列到序列預測模型。其統一建模的實現使用了共享的 Transformer 網路,並且還使用了特定的自注意掩碼來控制預測條件所處的上下文。在 GLUE 基準以及 SQuAD 2.0 和 CoQA 問答任務上,UniLM 優於 BERT。

此外,UniLM 在五個自然語言生成資料集上成為了新的當前最佳,包括將 CNN/DailyMail 抽象式摘要 ROUGE-L 結果提升至 40.51(2.04 的絕對改善)、將 Gigaword 抽象式摘要 ROUGE-L 結果提升至 35.75(0.86 的絕對改善)、將 CoQA 生成式問答 F1 分數提升至 82.5(37.1 的絕對改善)、將 SQuAD 問題生成 BLEU-4 結果提升至 22.12(3.75 的絕對改善)、將 DSTC7 基於文件的對話響應生成 NIST-4 結果提升至 2.67(人類表現為 2.65)。

UniLM:統一的預訓練語言模型

UniLM 是一種統一的預訓練語言模型,既可應用於自然語言理解(NLU)任務,也能用於自然語言生成(NLG)任務。UniLM 是一種多層 Transformer 網路,在大量文字上進行過聯合的預訓練,並針對表 2 中所示的三種型別的無監督語言建模目標進行過優化。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 2:UniLM 通過多個語言建模目標進行了聯合預訓練,並在訓練中共享了同樣的引數

類似於 BERT,預訓練的 UniLM 可以進行微調(如有必要需新增額外的特定於任務的層),以適應不同型別的下游任務。但不同於主要用於 NLU 任務的 BERT,UniLM 可使用不同的自注意掩碼進行配置,從而聚合用於不同型別的語言模型的上下文,因此 UniLM 可用於 NLU 和 NLG 任務。

新提出的 UniLM 主要有三大優勢。第一,統一的預訓練流程讓單個 Transformer 語言模型能為不同型別的語言模型使用共享的引數和架構,從而減輕對分開訓練和管理多個語言模型的需求。第二,這種引數共享能使得學習到的文字表徵更通用,因為它們針對不同的語言建模目標(其中利用上下文的方式各不相同)進行了聯合優化,這能緩解在任意單個語言模型任務上的過擬合。第三,除了在 NLU 任務上的應用,作為序列到序列語言模型使用的 UniLM 也使其能自然地用於 NLG 任務,比如抽象式摘要和問答。

技術詳解

給定一個輸入序列 x,UniLM 會獲取每個 token 的基於上下文的向量表徵。如圖 1 所示,預訓練會根據多種無監督語言建模目標優化共享的 Transformer 網路,這些目標為單向語言模型、雙向語言模型、序列到序列語言模型。為了控制對所要預測的詞 token 的上下文的讀取,作者使用了不同的自注意掩碼。換句話說,作者使用了掩碼來控制在計算基於上下文的表徵時 token 應該關注的上下文的量。UniLM 訓練完成後,當用於下游任務時,我們可以使用特定於任務的資料來對其進行微調。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

圖 1:一的語言模型預訓練的概況

輸入表徵

輸入 x 是一個詞序列,該序列要麼是用於單向語言模型的一段文字,要麼是用於雙向和序列到序列語言模型的打包在一起的一對文字段。作者的做法是:總是在輸入的起始處新增一個特殊的序列起點([SOS])token,在每一段的結尾處新增一個特殊的序列結束([EOS])token。[EOS] 不僅能在 NLU 任務中標記句子邊界,還能在 NLG 任務中讓模型學習中止解碼過程的時間。這種輸入表徵方式與 BERT 的一樣。

骨幹網路:多層 Transformer 

輸入向量 {x_i} 首先會被打包進 既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM,然後使用一個 L 層的 Transformer 既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM將其編碼成在不同抽象層面既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM上的上下文表徵。在每個 Transformer 模組中,使用了多個自注意頭來聚合前一層的輸出向量。對於第 l 個 Transformer 層,自注意頭 AI 的輸出的計算方式為:

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

預訓練目標 

作者使用了四個為不同語言建模目標設計的完形填空任務來預訓練 UniLM。在完形填空任務中,作者會用特殊 token [MASK] 來替代輸入中隨機選擇的某些 WordPiece token。然後,將通過 Transformer 網路計算得到的對應的輸出向量輸入一個 softmax 分類器,預測被掩蓋的 token。UniLM 的引數的學習目標是最小化用預測 token 和原始 token 計算得到的交叉熵損失。需要說明,由於使用的是完形填空任務,所以可以為所有語言模型(無論是單向還是雙向)都使用同樣的訓練流程。

預訓練設定 

整體的訓練目標是不同型別的語言模型目標的和。具體來說,作者為一個訓練批次所設定的時間如下:1/3 的時間使用雙向 LM 目標,1/3 的時間使用序列到序列 LM 目標,從左到右和從右到左的語言模型目標的取樣比例都是 1/6。為了公平地比較,UniLM 的模型架構遵照了 BERT_LARGE 的架構。

針對下游 NLU 和 NLG 任務進行微調 

對於 NLU 任務,作者將 UniLM 微調為類似於 BERT 的雙向 Transformer 編碼器。以文字分類為例,作者使用 [SOS] 的編碼向量作為輸入的編碼,表示為既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM,然後將其輸入一個隨機初始化的 softmax 分類器(即特定於任務的輸出層),其中類別概率的計算方式為 既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM,其中 既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM是引數矩陣,C 是類別數量。 

對於 NLG 任務,以序列到序列任務為例。微調過程類似於使用自注意掩碼進行預訓練。令 S1 和 S2 分別表示源序列和目標序列。作者將它們與特殊 token 打包在一起,構建出輸入「[SOS] S1 [EOS] S2 [EOS]」。該模型的微調是通過隨機掩蓋目標序列中一定比例的 token,並學習恢復被掩蓋的詞。其訓練目標是基於上下文最大化被掩蓋 token 的似然度。

實驗 

作者在 NLU(即 GLUE 基準和抽取式問答)和 NLG(即抽象式摘要、問題生成、生成式問答和對話響應生成)任務上執行了實驗。

抽象式摘要 

作者重點關注了抽象式摘要,這是一種生成任務,其中的摘要並不限於複用輸入文字中的短語或句子。作者使用了 CNN/DailyMail 資料集和 Gigaword 的非匿名化版本來進行模型微調和評估。

 表 3 在 CNN/DailyMail 上比較了 UniLM 與基準和幾種當前最佳的模型。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 3:在 CNN/DailyMail 摘要任務上的評估結果。上半部分的模型是抽取式系統,這裡列出以供參考;下半部分的模型是抽象式模型。 

表 4 給出了在不同規模(10K 和 3.8M)的 Gigaword 上的模型評估結果。Transformer 和 OpenNMT 都實現了標準的注意式序列到序列模型。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 4:在 Gigaword 抽象式摘要任務上的結果

 問答(QA) 

這個任務是回答給定文字篇章的問題。問答任務有兩種設定。一種是抽取式問答,其假定答案是該篇章中的一段文字。另一種是生成式問答,其需要即時生成答案。抽取式問答可以構建成一個 NLU 任務,目標是預測篇章中答案範圍的起止位置。作者針對該任務將預訓練的 UniLM 模型微調成了一個雙向編碼器。生成式問答可為輸入的問題和篇章生成形式自由的答案,這是一種 NLG 任務。 

作者在 Stanford Question Answering Dataset(SQuAD)2.0 以及 Conversational Question Answering(CoQA)資料集上進行了實驗。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 5:在 SQuAD 開發集上的抽取式問答結果

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 6:在 CoQA 開發集上的抽取式問答結果

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 7:在 CoQA 開發集上的生成式問答結果 

問題生成 

作者還在答案感知型問題生成任務上執行了實驗。給定一個輸入段落和一個答案範圍,該任務的目標是生成一個詢問該答案的問題。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 8:在 SQuAD 上的問題生成結果。MTR 表示 METEOR,RG 表示 ROUGE。不同分組的結果使用了不同的資料分割方式。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 9:基於 UniLM 的問題生成能提升在 SQuAD 開發集上的問答結果

響應生成 

作者還在基於文件的對話響應生成任務上對 UniLM 進行了評估。給定一段多輪對話歷史,並將網路文件作為知識源,系統需要生成適合對話並且能反映網路文件內容的自然語言響應。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 10:響應生成結果。Div-1 和 Div-2 分別表示 unigram 和 bigram 的多樣性。

GLUE 基準

作者還在 GLUE 基準上對 UniLM 進行了評估。 

表 11 給出了從 GLUE 基準的評估伺服器得到的測試結果。結果表明,UniLM 在 GLUE 任務上的表現與 BERT_LARGE 相當。

既能理解又能生成自然語言,微軟提出統一預訓練新模型UniLM

表 11:使用 GLUE 評估伺服器得到的 GLUE 測試集結果

總結 

實驗結果表明,UniLM 在 GLUE 基準以及兩個問答資料集上與 BERT 表現相當。此外,UniLM 在五個 NLG 資料集上優於之前最佳模型,即:CNN/DailyMail 和 Gigaword 抽象式摘要、SQuAD 問題生成、CoQA 生成式問答、DSTC7 對話響應生成。

相關文章