什麼是 XLNet,爲何它會超越 BERT?

原文:https://towardsdatascience.com/what-is-xlnet-and-why-it-outperforms-bert-8d8fce710335towardsdatascience.com

在 XLNet 論文發佈後的一週內,每個自然語言處理領域的人都在談論它。

是的,“ 在 20 項任務上改進了 BERT ”確實吸引了我們的目光。但更重要的是要了解它的工作原理以及它優於 BERT 的原因。所以我寫這篇博客後,在閱讀論文後分享我的想法。

內容結構如下:

  • 什麼是 XLNet?

  • XLNet 和 BERT 有什麼區別?

  • XLNet 是如何工作的?

什麼是 XLNet ?

首先,XLNet 是一個類似 BERT 的模型,而不是完全不同的模型。但這是一個非常有前途和潛力的。總之,XLNet是一種通用的自迴歸預訓練方法。

那麼什麼是自迴歸(AR)語言模型?

AR語言模型是一種使用上下文詞來預測下一個詞的模型。但是在這裏,上下文單詞被限制在兩個方向,前向或後向。

GPTGPT-2 都 AR 語言模型。

AR 語言模型的優勢是擅長生成式自然語言處理任務。 因爲在生成上下文時,通常是前向的。AR 語言模型很自然地適用於此類 NLP 任務。

但AR語言模型有一些缺點,它只能使用前向上下文或後向上下文,這意味着它不能同時使用前向和後向上下文。

XLNet和BERT有什麼區別?

與 AR 語言模型不同,BERT 被歸類爲自動編碼器(AE)語言模型。

AE 語言模型旨在從損壞的輸入重建原始數據。

損壞的輸入意味着我們在預訓練階段用 [MASK] 替換原始詞 into。目標是預測 into 得到原始句子。

AE 語言模型的優勢是,它可以從向前和向後的方向看到上下文。

但 AE 語言模型也有其缺點。它在預訓練中使用 [MASK],但這種人爲的符號在調優時在真實數據中並不存在,會導致預訓練-調優的差異。[MASK] 的另一個缺點是它假設預測(掩蔽的)詞 在給定未屏蔽的 詞 的情況下彼此獨立。例如,我們有一句話“它表明住房危機已經變成銀行危機”。我們掩蔽“銀行業”和“危機”。在這裏注意,我們知道掩蔽的“銀行業”和“危機”包含彼此的隱含關係。但 AE 模型試圖預測“銀行業”給予未掩蔽的 詞,並預測“危機”分別給出未掩蔽的 詞。它忽略了“銀行業”與“危機”之間的關係。換句話說,它假設預測(掩蔽)的標記彼此獨立。但是我們知道模型應該學習預測(掩蔽)詞之間的這種相關性來預測其中一個詞。

作者想要強調的是,XLNet 提出了一種讓 AR 語言模型從雙向上下文中學習的新方法,以避免 MASK 方法在 AE 語言模型中帶來的缺點。

XLNet 是如何工作的?

AR 語言模型只能向前或向後使用上下文,那麼如何讓它從雙向上下文中學習呢?

語言模型包括兩個階段,即預訓練階段和調優階段。XLNet 專注於預訓練階段。在預訓練階段,它提出了一個名爲排列語言建模的新目標。我們可以從這個名稱知道基本思想,它使用排列。

這裏我們舉一個例子來解釋。序列的次序是 [x1, x2, x3, x4]。這種序列的所有排列如下。

因此對於這 4 個詞的(N )句子,有 24(N! )個排列。

情景是我們想要預測 x3。因此在 24 個排列中有 4 種模式,分別 x3 位於第 1 位,第 2 位,第 3 位,第 4 位。


[x3,xx,xx,xx] 
[xx,x3,xx,xx] 
[xx,xx,x3,xx] 
[xx,xx,xx,x3]

這裏我們設置位置 x3 作爲 t-th 位置,t-1 標記是用於預測 x3 的上下文單詞。

之前的 x3 單詞在序列中包含所有可能的單詞和長度。直觀地,該模型將學習從雙向的所有位置收集信息。

實現比上面的解釋複雜得多,我在此不再贅述。但是你應該已經瞭解了關於 XLNet 的最基本和重要的想法。

來自 XLNet 的靈感

就像 BERT 將 MASK 方法帶給公衆一樣,XLNet 表明置換方法是語言模型目標的一個很好的選擇。可以預見,未來會有更多的工作探索語言模型的目標函數。

論文:https://arxiv.org/abs/1906.08237

代碼:https://github.com/zihangdai/xlnet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章