雷鋒網(公衆号:雷鋒網) AI 科技評論按:去年 11 月份,谷歌研究團隊在 GitHub 上釋出了萬衆期待的 BERT,它不僅在 11 項 NLP 測試中重新整理了最高成績,甚至還表現出全面超越人類的驚人結果。但 BERT 帶來的震撼還未平息,今日又一個令衆多 NLPer 興奮的消息釋出: CMU 與谷歌大腦提出的全新 XLNet 在 20 個任務上超過了 BERT 的表現,并在 18 個任務上取得了目前最佳效果!而更令人激動的是,目前 XLNet 已經開放了訓練代碼和大型預訓練模型。雷鋒網 AI 科技評論将其具體内容整理如下。

XLNet 資訊釋出
BERT 與 XLNet 的關系
與基于自回歸語言模組化的預訓練處理方法相比,基于自編碼的預訓練處理方法(比如 BERT)具有良好的雙向上下文模組化能力。然而,由于依賴于使用掩碼破壞輸入,BERT 忽略了掩碼位置之間的依賴關系,并出現了預訓練-微調( pretrain-finetune) 差異。
XLNet 則是基于 BERT 的優缺點,提出的一種泛化自回歸預訓練方法。它通過最大化因子分解順序所有排列的期望似然來實作雙向上下文的學習;通過自回歸公式克服了 BERT 的局限性,并将來自 Transformer-XL(最先進的自回歸模型) 的思想內建到預訓練中,在長文本表示的語言任務中表現出了優異的性能。
XLNet 誕生背景
首先,我們要了解兩個概念:自回歸 (AR) 語言模組化和自編碼 (AE)。
無監督表示學習在自然語言處理領域非常成功。通常,這些方法首先在大規模無标記文本語料庫上對神經網絡進行預訓練,然後對下遊任務的模型或表示進行微調。在這一共同的高層次思想下,不同的無監督預訓練目标在相關文獻中得到了探索。其中,自回歸語言模組化和自編碼是兩個最成功的預訓練目标。
AR 語言模組化是利用自回歸模型估計文本語料庫的機率分布。具體來說,給定一個文本序列 x = (x1, … ,xT),AR 語言模型将這種可能性分解為前向乘積或後向乘積。一個參數模型 (如神經網絡) 被訓練來對每個條件分布模組化。由于 AR 語言模型僅被訓練為編碼單向上下文 (向前或向後),是以它在模組化深層雙向上下文時并沒有産生效果。相反的是下遊語言了解任務,通常需要雙向上下文資訊。這導緻了 AR 語言模組化和有效的預訓練之間的差距。
給定相同輸入序列 x 但因子分解順序不同的情況下,預測 x3 的置換語言模組化目标的說明
相比之下,基于 AE 的預訓練不執行顯式密度估計,而是旨在從輸入重構原始資料。而一個著名的例子就是 BERT,它采用了最先進的預訓練方法。給定輸入 token 序列,用一個特殊符号 [MASK] 替換其中的特定部分,并且訓練模型從損壞的版本中恢複原 token。
由于密度估計不是目标的一部分,BERT 可以利用雙向上下文進行重建。直接的好處就是這消除了 AR 語言模組化中的雙向資訊差距,進而提高了性能。然而,BERT 在預訓練使用的 [MASK] 等人工符号實際資料中并不存在,導緻了預訓練的網絡差距。此外,由于預測的 token 在輸入中被重新掩蓋,BERT 無法像 AR 語言模組化一樣使用乘積規則對聯合機率進行模組化。
是以,針對現有語言預訓練目标的優缺點,CMU 與谷歌大腦提出了将 AR 和 AE 的優點充分結合的泛化自回歸預訓練模型 XLNet。
XLNet 詳解
首先,XLNet 不使用傳統 AR 模型中固定的前向或後向因式分解順序,而是最大化所有可能因式分解順序的期望對數似然。因為是對因式分解順序的排列操作,每個位置的上下文都可以由來自左右兩邊的 token 組成。在期望中,每個位置都要學會利用來自所有位置的上下文資訊,即捕獲雙向上下文。
其次,作為一種泛化的 AR 語言模型,XLNet 不依賴于殘餘資料。是以,XLNet 不受 BERT 的預訓練-微調差異的影響。同時,自回歸目标也提供了一種自然的方法來使用乘積規則對預測 token 的聯合機率執行因式分解,消除了 BERT 中做出的獨立性假設。
除了一個新的預訓練目标,XLNet 還改進了預訓練的架構設計。
受 AR 語言模組化最新進展的啟發,XLNet 将 Transformer-XL 的分段重複機制和相對編碼方案內建到預訓練中,在較長文本序列的任務中提高了性能。需要注意的是,将 Transformer(-XL) 架構簡單應用于基于排列的語言模組化是不起作用的,因為分解順序是任意的且目标是模糊的。作為一種解決方案,研究者們提出重新參數化 Transformer(-XL) 網絡,以消除歧義。
實驗結果
截至 2019 年 6 月 19 日,XLNet 在 20 個任務上超過了 BERT 的表現,并在 18 個任務上取得了目前最佳效果(state-of-the-art),包括機器問答、自然語言推斷、情感分析和文檔排序。
以下是 XLNet-Large 和 Bert-Large 的一些比較:
閱讀了解任務
文本分類任務
ClueWeb09-B 文檔排名任務
在最終的 20 項任務中,XLNet 的表現優于 BERT,并且在 18 項任務中取得了最先進的結果。
釋出模型
截至目前,已提供以下模式:
XLNet-Large, Cased:24-layer, 1024-hidden, 16-heads,
每個.zip 檔案包含三個項:
TensorFlow checkpoint(xlnet_model.ckpt),包含預先訓練的權重。
SentencePiece 模型 (spiece.model),用于 (de) 标記化。
一個配置檔案 (xlnet_config.json),指定模型的超參數。
未來釋放計劃
後續開發者還計劃在不同的環境下繼續釋出更多的訓練模型,包括:
基本模型——将在 2019 年 6 月底釋出一個 XLNet-Base。
Uncased 模型——目前,Cased XLNet-Large 比 Uncased XLNet-Large 性能更好。開發者仍在觀察與研究,當得出結論時,他們将馬上釋出 Uncased 模型。(預計時間不會太久)
在維基百科上進行微調的預訓練模型,這可用于維基百科文本的任務,如 SQuAD 和 HotpotQA。
其他超參數配置的預訓練模型,可以用于特定的下遊任務。
與新技術關聯的預訓練模型。
相關連結
論文位址
https://arxiv.org/pdf/1906.08237.pdf
預訓練模型及代碼位址
https://github.com/zihangdai/xlnet
雷鋒網 AI 科技評論