Uni?ed Language Model Pre-training for Natural Language Understanding and Generation
模型框架如上圖所示,在預訓練階段,UniLM模型通過三種不同目標函數的語言模型(包括:雙向語言模型,單向語言模型和序列到序列語言模型),去***同學習壹個Transformer網絡; 為了控制對將要預測的token可見到的上下文,使用了不同的 self-attention mask 來實現。 即通過 不同的掩碼來控制預測單詞的可見上下文詞語數量 ,實現不同的模型表征,由下面四種任務進行預訓練:
將文本輸入到Transformer網絡,計算出對應的輸出向量,再通過softmax分類器預測Mask到底屬於字典中的哪壹個token。UniLM模型參數通過最小化預測token和標準token的交叉熵來優化。三種類型的完型填空任務可以完成不同的語言模型運用相同的程序程序訓練
模型輸入 文本序列,在起始處添加 [SOS] 標記,結尾處添加 [EOS] 標記。[EOS]壹方面可以作為NLU任務中的邊界標識,另壹方面還能在NLG任務中讓模型學到何時終止解碼過程。其輸入表征方式與Bert的壹樣,包括 token embedding , position embedding , segment embedding ,同時segment embedding還可以作為模型采取何種訓練方式(單向,雙向,序列到序列)的壹種標識
骨幹網絡由24層Transformer組成 ,輸入向量 首先會被轉換成 ,然後使用L層Transformer 抽象編碼成 的不同層次的上下文表示。在每個 塊中,使用多個 self-attention heads 來聚合前壹層的輸出向量。對於第 個 層, self-attention head 的輸出通過以下方式計算:
其中,前壹層的輸出 分別使用參數矩陣 線性地投影到三元組 Query , Key , Value 中,並且根據 掩碼矩陣 確定壹對tokens是否可以相互attend
生成壹個簡潔流暢的摘要,在輸入中傳達關鍵信息,這是壹個生成任務,其中摘要不限於重用輸入文本中的短語或句子。 使用非匿名版本的 CNN/DailyMail數據集 和 Gigaword 進行模型微調和評估。通過將文檔(第壹段)和摘要(第二段)連接起來作為輸入,並根據預定義的最大長度截斷,將UniLM微調為壹個序列到序列模型
回答壹個指定段落的問題,有兩種形式:第壹種被稱為 抽取式問答(extractive QA) ,假設答案是文章中的壹段文本;另壹種稱為 生成性問答(generative QA) ,答案需要動態生成
指定壹個輸入段落和壹個答案段,目標是生成壹個要求答案的問題,是壹個NLG任務 ,使用 SQuAD 1.1數據集 用於測試
給出壹個多輪對話歷史和壹個網絡文檔作為知識來源,系統需要生成壹個既是符合對話的又是網絡文檔內容的反映的自然語言回答,是壹個NLG任務 ,在 DSTC7數據集 上進行實驗
在通用語言理解評估(GLUE Benchmark)上評估UniLM, GLUE是九種語言理解任務的集合,包括問答、語言可接受性、情感分析、文本相似性、釋義檢測和自然語言推理(NLI)
論文提出了壹個統壹的預訓練模型UniLM,為多個***享參數的LM目標聯合優化的。雙向、單向和序列到序列LMs的統壹使UniLM能夠直接微調NLU和NLG任務的預訓練。實驗結果表明,UniLM在 GLUE benchmark 和兩個問答數據集上都優於BERT。此外,UniLM在五個NLG數據集上的表現優於以前的最新模型: CNN/DailyMail 和 Gigaword 文本摘要、 SQuAD 問題生成、 CoQA 生成問題回答和 DSTC7 基於對話生成,其優勢總結如下:
/c/b14d4cb58c3b 專欄名:《自然語言處理》歡迎投稿!!!