原文: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語言模型是一種使用上下文詞來預測下一個詞的模型。但是在這裏,上下文單詞被限制在兩個方向,前向或後向。
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 個詞的( )句子,有 24( )個排列。
情景是我們想要預測 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 表明置換方法是語言模型目標的一個很好的選擇。可以預見,未來會有更多的工作探索語言模型的目標函數。