谷歌更強 NLP 模型 XLNet 開源:20 項任務全面碾壓 BERT!

2020-12-17 雷鋒網

雷鋒網(公眾號:雷鋒網) 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 科技評論

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 谷歌開源 BERT 模型原始碼
    BERT 模型以來,BERT 模型以其雙向、深層等特點,成功在 11 項 NLP 任務中取得 state of the art 的結果,贏得自然語言處理學界的一片讚譽之聲。驚鴻一瞥後,人們都在期待谷歌何時會放出 BERT 模型原始碼。直至今日,谷歌終於一鼓作氣發布了包括 BERT 模型 TensorFlow 代碼、BERT-Base 與 BERT-Large 模型的預訓練檢查點、微調實驗結果的自動化復現 TensorFlow 代碼、預訓練數據生成和數據訓練的代碼在內的「BERT 模型大禮包」。
  • XLNet太貴?這位小哥在PyTorch Wrapper上做了個微縮版的
    近日,一位韓國小哥成功將簡化版的XLNet在PyTorch Wrapper實現,批規模僅為1,不再依賴谷歌爸爸的巨額算力,讓「窮人」也能用得起。不久前,谷歌大腦和CMU聯合團隊提出面向NLP預訓練新方法XLNet,性能全面超越此前NLP領域的黃金標杆BERT,在20個任務上實現了性能的大幅提升,刷新了18個任務上的SOTA結果,可謂全面屠榜。
  • 谷歌開源NLP模型可視化工具LIT,模型訓練不再「黑箱」
    假如有一款可視化的工具,能夠幫助研究人員更好地理解模型行為,這應該是件非常棒的事。近日,Google 研究人員發布了一款語言可解釋性工具 (Language Interpretability Tool, LIT),這是一個開源平臺,用於可視化和理解自然語言處理模型。
  • NLP領域最優秀的8個預訓練模型(附開源地址)
    還有一個更新、更直觀的版本,叫做 Transformer-XL,我們將稍後予以介紹。這種雙向性有助於模型更好地理解使用單詞的上下文。此外,BERT 的設計目標是能夠進行多任務學習,也就是說,它可以同時執行不同的自然語言處理任務。BERT 是第一個無監督、深度雙向的自然語言處理模型預訓練系統。它只使用純文本語料庫進行訓練。在發布的時候,BERT 在 11 個自然語言處理任務上取得了最先進的結果。
  • 最強NLP預訓練模型!谷歌BERT橫掃11項NLP任務記錄
    與最近的語言表徵模型不同,BERT 旨在基於所有層的左、右語境來預訓練深度雙向表徵。BERT 是首個在大批句子層面和 token 層面任務中取得當前最優性能的基於微調的表徵模型,其性能超越許多使用任務特定架構的系統,刷新了 11 項 NLP 任務的當前最優性能記錄。
  • 2019已經過去一大半了,努力一把成為NLP專家!
    lesson它會教你在fastai,語言模型是如何實現的。LSTM:即使transfomer更為流行,你還是有必要學習一些LSTM相關的知識, 因為在某些時候你仍然可以使用它,並且它是第一個在序列數據上取得較好較好效果的模型。
  • 20項任務全面碾壓BERT,CMU全新XLNet預訓練模型屠榜(已開源)
    機器之心報導機器之心編輯部BERT 帶來的影響還未平復,CMU 與谷歌大腦提出的 XLNet 在 20 個任務上超過了 BERT 的表現,並在 18 個任務上取得了當前最佳效果。令人激動的是,目前 XLNet 已經開放了訓練代碼和大型預訓練模型,這又可以玩一陣了~2018 年,谷歌發布了基於雙向 Transformer 的大規模預訓練語言模型 BERT,刷新了 11 項 NLP 任務的最優性能記錄,為 NLP 領域帶來了極大的驚喜。很快,BERT 就在圈內普及開來,也陸續出現了很多與它相關的新工作。
  • NLP歷史突破!谷歌BERT模型狂破11項紀錄,全面超越人類!
    今天請記住BERT模型這個名字。谷歌AI團隊新發布的BERT模型,在機器閱讀理解頂級水平測試SQuAD1.1中表現出驚人的成績:全部兩個衡量指標上全面超越人類!任務1: Masked LM從直覺上看,研究團隊有理由相信,深度雙向模型比left-to-right 模型或left-to-right and right-to-left模型的淺層連接更強大。遺憾的是,標準條件語言模型只能從左到右或從右到左進行訓練,因為雙向條件作用將允許每個單詞在多層上下文中間接地「see itself」。
  • NLP中文預訓練ERNIE模型全面超越谷歌BERT
    2019年3月,百度提出知識增強的語義表示模型ERNIE(Enhanced Representation from kNowledge IntEgration),並發布了基於PaddlePaddle的開原始碼與模型。
  • BERT, RoBERTa, DistilBERT, XLNet的用法對比
    BERT 以及後續模型谷歌基於transformer的BERT系列一經問世就在NLP領域掀起了一場風暴,在幾項任務中的表現可謂勢頭強勁,已經超越了先前沿用的最先進的技術。最近,谷歌對BERT進行了改版,我將對比改版前後主要的相似點和不同點,以便你可以選擇在研究或應用中使用哪一種。
  • 性能媲美BERT,參數量僅為1/300,谷歌最新的NLP模型
    機器之心編輯部在最新的博客文章中,谷歌公布了一個新的 NLP 模型,在文本分類任務上可以達到 BERT 級別的性能,但參數量僅為 BERT 的 1/300。在過去的十年中,深度神經網絡從根本上變革了自然語言處理(NLP)領域的發展,但移動端有限的內存和處理能力對模型提出了更高的要求。人們希望它們可以變得更小,但性能不打折扣。去年,谷歌發布了一種被稱為 PRADO 的神經架構,該架構當時在許多文本分類問題上都實現了 SOTA 性能,並且參數量少於 200K。
  • 一文看盡2019年NLP前沿突破
    無需針對性訓練就能橫掃各種特定領域的語言建模任務,還具備閱讀理解、問答、生成文章摘要、翻譯等等能力。而且,OpenAI最初還擔心項目過於強大,而選擇沒有開源。但在10個月之後,還是決定將其公布。現在還有一個 SuperGlue 基準測試,它包含了更難理解的語言任務。
  • 3分鐘看懂史上最強NLP模型BERT
    看完本文相信您會對BERT為什麼被認為是當前最好的NLP模型、實現原理以及適用場景有所了解。目前最好的自然語言預訓練方法無疑是BERT。它的工作流程分為兩步:首先,使用大量未標記的數據,以預訓練、也就是無人監督的方式學習語言表達。然後,使用少量經過標記的訓練數據對模型進行fine-tune,以監督學習的方式,執行多種監督任務。
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    機器之心報導參與:一鳴昨日,機器之心報導了 CMU 全新模型 XLNet 在 20 項任務上碾壓 BERT 的研究,引起了極大的關注。為了利用這種思想提升預訓練模型在中文的表現,百度發布了知識增強的表示模型 ERNIE,在中文數據集的表現中超過了 BERT。近期,谷歌發布了基於全詞覆蓋(Whold Word Masking)的 BERT 預訓練模型,則進一步提升了 BERT 模型的性能水平。
  • BERT相關模型匯總梳理
    像 BERT 這類基於 Pre-training 和 fine-tuning 的模型在 NLU(Natural Language Understanding)任務中取得了很大的成功。LM,1/6 的時間採用 left-to-right Unidirectional LM,1/6 的時間採用 right-to-left Unidirectional LM80% 的時間 mask 一個 token,20% 的時間 mask一個bigram 或 trigram對於 NLU 任務,同 BERT對於 NLG 任務,若是 Seq2Seq 任務,則只 mask 目標序列中的
  • 谷歌搜索:幾乎所有的英文搜索都用上BERT了
    BERT 是谷歌開源的一款自然語言處理預訓練模型,一經推出就刷新了 11 項 NLP 任務的 SOTA 記錄,登頂 GLUE 基準排行榜。具體到搜尋引擎來說,BERT 可以幫助搜尋引擎更好地理解 web 頁面上的內容,從而提高搜索結果的相關性。BERT 模型中創新性的 架構是一大亮點。
  • 圖解當前最強語言模型BERT:NLP是如何攻克遷移學習的?
    Transformer 的大規模預訓練語言模型 BERT,該預訓練模型能高效抽取文本信息並應用於各種 NLP 任務,該研究憑藉預訓練模型刷新了 11 項 NLP 任務的當前最優性能記錄。BERT 這種模型打破了多項模型處理基於語言的任務的紀錄。在描述該模型的論文發布之後不久,其研究團隊還開源了該模型的代碼,並發布了可供下載的模型版本——已經在大規模數據集上經過預訓練。這是一個重大的進展,因為它讓任何人都可以構建涉及語言處理的機器學習模型,並將這種強大工具用作其中的組件——這能節省從頭開始訓練語言處理模型所需的時間、精力、知識和資源。
  • 2019,不可錯過的NLP「高光時刻」
    內容 主要集中於 NLP 領域,但也會包括一些與 AI 有關的有趣故事,包括新發布模型、工程成果、年度報告以及學習資源等。文章較長,將近萬字,適合先馬後看,靜下心來細細研讀。模型與文獻谷歌AI 提出了 ALBERT 模型,這是 BERT 模型的簡化版本,用於語境化語言表示的自監督學習。相較於 BERT,其在模型更加精練的同時更有效地分配了模型的容量。
  • 7 Papers | 谷歌量子霸權論文;13項NLP任務奪冠的小模型ALBERT
    軟體架構和代碼推薦:本文是微軟開源工具的論文,用於幫助人們使用科技史的模型進行機器學習。論文 6:Quantum Supremacy Using a Programmable Superconducting Processor摘要:量子計算機的誘人前景在於量子處理器上執行某項計算任務的速度要比經典處理器快指數倍,而根本性的挑戰是構建一個能夠在指數級規模的計算空間中運行量子算法的高保真度處理器
  • BERT詳解:開創性自然語言處理框架的全面指南
    這是因為在一個大型文本語料庫上訓練一個模型時,模型開始獲得對語言工作原理的更深入的理解。這些知識是瑞士軍刀,幾乎對任何自然語言處理任務都有用。第三,BERT是一個「深度雙向」的模型。雙向意味著BERT在訓練階段從所選文本的左右上下文中汲取信息。模型的雙向性對於理解語言的真正意義很重要。