原文:https://towardsdatascience.com/what-is-xlnet-and-why-it-outperforms-bert-8d8fce710335?towardsdatascience.com
在 XLNet 論文發(fā)布后的一周內(nèi),每個(gè)自然語(yǔ)言處理領(lǐng)域的人都在談?wù)撍?/p>

是的,“ 在 20 項(xiàng)任務(wù)上改進(jìn)了 BERT ”確實(shí)吸引了我們的目光。但更重要的是要了解它的工作原理以及它優(yōu)于 BERT 的原因。所以我寫這篇博客后,在閱讀論文后分享我的想法。
內(nèi)容結(jié)構(gòu)如下:
什么是 XLNet?
XLNet 和 BERT 有什么區(qū)別?
XLNet 是如何工作的?
什么是 XLNet ?
首先,XLNet 是一個(gè)類似 BERT 的模型,而不是完全不同的模型。但這是一個(gè)非常有前途和潛力的??傊?,XLNet是一種通用的自回歸預(yù)訓(xùn)練方法。
那么什么是自回歸(AR)語(yǔ)言模型?
AR語(yǔ)言模型是一種使用上下文詞來預(yù)測(cè)下一個(gè)詞的模型。但是在這里,上下文單詞被限制在兩個(gè)方向,前向或后向。


AR 語(yǔ)言模型的優(yōu)勢(shì)是擅長(zhǎng)生成式自然語(yǔ)言處理任務(wù)。 因?yàn)樵谏缮舷挛臅r(shí),通常是前向的。AR 語(yǔ)言模型很自然地適用于此類 NLP 任務(wù)。
但AR語(yǔ)言模型有一些缺點(diǎn),它只能使用前向上下文或后向上下文,這意味著它不能同時(shí)使用前向和后向上下文。
XLNet和BERT有什么區(qū)別?
與 AR 語(yǔ)言模型不同,BERT 被歸類為自動(dòng)編碼器(AE)語(yǔ)言模型。
AE 語(yǔ)言模型旨在從損壞的輸入重建原始數(shù)據(jù)。

損壞的輸入意味著我們?cè)陬A(yù)訓(xùn)練階段用 [MASK] 替換原始詞 into。目標(biāo)是預(yù)測(cè) into 得到原始句子。
AE 語(yǔ)言模型的優(yōu)勢(shì)是,它可以從向前和向后的方向看到上下文。
但 AE 語(yǔ)言模型也有其缺點(diǎn)。它在預(yù)訓(xùn)練中使用 [MASK],但這種人為的符號(hào)在調(diào)優(yōu)時(shí)在真實(shí)數(shù)據(jù)中并不存在,會(huì)導(dǎo)致預(yù)訓(xùn)練-調(diào)優(yōu)的差異。[MASK] 的另一個(gè)缺點(diǎn)是它假設(shè)預(yù)測(cè)(掩蔽的)詞 在給定未屏蔽的 詞 的情況下彼此獨(dú)立。例如,我們有一句話“它表明住房危機(jī)已經(jīng)變成銀行危機(jī)”。我們掩蔽“銀行業(yè)”和“危機(jī)”。在這里注意,我們知道掩蔽的“銀行業(yè)”和“危機(jī)”包含彼此的隱含關(guān)系。但 AE 模型試圖預(yù)測(cè)“銀行業(yè)”給予未掩蔽的 詞,并預(yù)測(cè)“危機(jī)”分別給出未掩蔽的 詞。它忽略了“銀行業(yè)”與“危機(jī)”之間的關(guān)系。換句話說,它假設(shè)預(yù)測(cè)(掩蔽)的標(biāo)記彼此獨(dú)立。但是我們知道模型應(yīng)該學(xué)習(xí)預(yù)測(cè)(掩蔽)詞之間的這種相關(guān)性來預(yù)測(cè)其中一個(gè)詞。
作者想要強(qiáng)調(diào)的是,XLNet 提出了一種讓 AR 語(yǔ)言模型從雙向上下文中學(xué)習(xí)的新方法,以避免 MASK 方法在 AE 語(yǔ)言模型中帶來的缺點(diǎn)。
XLNet 是如何工作的?
AR 語(yǔ)言模型只能向前或向后使用上下文,那么如何讓它從雙向上下文中學(xué)習(xí)呢?
語(yǔ)言模型包括兩個(gè)階段,即預(yù)訓(xùn)練階段和調(diào)優(yōu)階段。XLNet 專注于預(yù)訓(xùn)練階段。在預(yù)訓(xùn)練階段,它提出了一個(gè)名為排列語(yǔ)言建模的新目標(biāo)。我們可以從這個(gè)名稱知道基本思想,它使用排列。

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

因此對(duì)于這 4 個(gè)詞的( )句子,有 24(
)個(gè)排列。
情景是我們想要預(yù)測(cè) x3。因此在 24 個(gè)排列中有 4 種模式,分別 x3 位于第 1 位,第 2 位,第 3 位,第 4 位。
[x3,xx,xx,xx]
[xx,x3,xx,xx]
[xx,xx,x3,xx]
[xx,xx,xx,x3]

這里我們?cè)O(shè)置位置 x3 作為 t-th 位置,t-1 標(biāo)記是用于預(yù)測(cè) x3 的上下文單詞。
之前的 x3 單詞在序列中包含所有可能的單詞和長(zhǎng)度。直觀地,該模型將學(xué)習(xí)從雙向的所有位置收集信息。
實(shí)現(xiàn)比上面的解釋復(fù)雜得多,我在此不再贅述。但是你應(yīng)該已經(jīng)了解了關(guān)于 XLNet 的最基本和重要的想法。
來自 XLNet 的靈感
就像 BERT 將 MASK 方法帶給公眾一樣,XLNet 表明置換方法是語(yǔ)言模型目標(biāo)的一個(gè)很好的選擇??梢灶A(yù)見,未來會(huì)有更多的工作探索語(yǔ)言模型的目標(biāo)函數(shù)。