0
本文作者: AI研習(xí)社-譯站 | 2019-07-24 15:19 |
原標(biāo)題 | What is XLNet and why it outperforms BERT
作者 | Xu LIANG
譯者 | Ryan(西安理工大學(xué))、依耶芙特?歐
XLNet發(fā)布后僅僅不到一周的時(shí)間,我周圍NLP領(lǐng)域的每個(gè)人似乎都在談?wù)撍?/span>
XLNet:NLP領(lǐng)域中一個(gè)新的預(yù)訓(xùn)練方法,相比BERT可以顯著提高20個(gè)任務(wù)的準(zhǔn)確率。
arxiv:https://arxiv.org/abs/1906.08237
github (代碼 + 預(yù)訓(xùn)練模型):https://github.com/zihangdai/xlnet
由Zhilin Yang, @ZihangDai, Yiming Yang,
Jaime Carbonell, @rsalakhu等發(fā)出。
是的,“在 BERT 基礎(chǔ)上20個(gè)任務(wù)提高了準(zhǔn)確率”確實(shí)吸引了我們的眼球。但是更加重要的事情是去理解 XLnet 的工作原理以及為何它的效果超過BERT。所以我寫了這個(gè)博客來分享我閱讀論文后的理解。
內(nèi)容結(jié)構(gòu)如下:
什么是 XLNet?
XLNet 和 BERT 有哪些區(qū)別?
XLNet 是如何工作的?
首先,XLNet是一個(gè)類似BERT的模型,而不是完全不同的模型。但這是一個(gè)非常有前途和潛力的模型??傊琗LNet是一種通用的自回歸預(yù)訓(xùn)練方法。
那么什么是自回歸(AR)語言模型?
AR語言模型是一種利用上下文詞來預(yù)測(cè)下一個(gè)詞的模型。但是在這里,上下文詞被限制在兩個(gè)方向上,要么向前,要么向后。
GPT和GPT-2都是自回歸語言模型。
AR語言模型在生成NLP任務(wù)方面具有很好的優(yōu)勢(shì),因?yàn)樵谏缮舷挛臅r(shí),通常是向前的方向。AE語言模型自然能很好地處理這些NLP任務(wù)。
但AR語言模型存在一些不足,它只能使用前向上下文或后向上下文,這意味著它不能同時(shí)使用前向上下文和后向上下文。
與AR語言模型不同,BERT被歸類為自動(dòng)編碼器(AE)語言模型。
AE語言模型的目的是從被破壞的輸入中重建原始數(shù)據(jù)。
損壞的輸入意味著我們?cè)陬A(yù)處理階段中使用[MASK]將原始標(biāo)記into。目的是預(yù)測(cè)into來得到原來的句子。
AE語言模型的優(yōu)點(diǎn)在于它可以看到前后兩個(gè)方向的語境。
但是,AE語言模型也有其不足之處。它在預(yù)訓(xùn)練中使用了[MASK],但是這種人工符號(hào)在訓(xùn)練過程中沒有出現(xiàn)在實(shí)際數(shù)據(jù)中,導(dǎo)致了訓(xùn)練前的誤差。[MASK]的另一個(gè)缺點(diǎn)是假定預(yù)測(cè)的(蒙面的)標(biāo)記是相互獨(dú)立的,給出未蒙面的標(biāo)記。例如,我們有一句話:“這表明房地產(chǎn)危機(jī)已轉(zhuǎn)變?yōu)殂y行危機(jī)”。我們掩蓋住“銀行”和“危機(jī)”。在這里,我們知道遮住的“銀行”和“危機(jī)”包含彼此的隱含關(guān)系。但AE模型試圖預(yù)測(cè)“銀行”和“危機(jī)”,并分別給出未掩蓋的標(biāo)記。它忽略了“銀行”與“危機(jī)”之間的關(guān)系。換句話說,它假定預(yù)測(cè)的(蒙面的)標(biāo)記是相互獨(dú)立的。但我們知道,模型應(yīng)該了解預(yù)測(cè)(蒙面)標(biāo)記之間的這種相關(guān)性,以預(yù)測(cè)其中一個(gè)標(biāo)記。
作者想強(qiáng)調(diào)的是,XLNet提出了一種讓AR語言模型從雙向語境中學(xué)習(xí)的新方法,以避免AE語言模型中的掩碼方法帶來的缺點(diǎn)。
AR語言模型只能使用前向或后向上下文,那么如何讓它從雙向上下文中學(xué)習(xí)呢?
語言模型由兩個(gè)階段組成,一個(gè)是預(yù)訓(xùn)練階段,一個(gè)是微調(diào)階段.XLNet專注于訓(xùn)練階段。在預(yù)訓(xùn)練階段,提出了一個(gè)叫做置換語言建模的新的目標(biāo),我們可以知道這個(gè)名字的基本概念,它使用置換。
圖1:給定相同輸入序列x,但具有不同因式分解順序的預(yù)測(cè) x3 的置換語言建模目標(biāo)的說明
這里我們以一個(gè)例子來解釋。序列順序是[x1,x2,x3,x4]。這些序列的所有排列都在下面。
因此,對(duì)于這4個(gè)標(biāo)記(N)句,有24(N!)組排列。
情況是,我們希望預(yù)測(cè)x3。24位排列中有4種類型,x3位于第1位、第2位、第3位、第4位。
四種模式
在這里,我們將 x3 的位置設(shè)置為第t個(gè)位置,t-1標(biāo)記是預(yù)測(cè) x3 的上下文詞。
x3之前的單詞在序列中包含所有可能的單詞和長(zhǎng)度。從直覺上講,該模型將學(xué)習(xí)從兩個(gè)方面的所有位置收集信息。
執(zhí)行比上面的解釋要復(fù)雜得多,我不會(huì)在這里說的。但是你應(yīng)該得到關(guān)于XLNet的最基本和最重要的想法。
就像BERT把MASK方法帶給了公眾一樣,XLNet顯示置換方法是作為語言模型目標(biāo)的一個(gè)很好的選擇。可以預(yù)見,未來對(duì)語言模型目標(biāo)的探索還會(huì)有更多的工作。
論文: https://arxiv.org/abs/1906.08237
代碼:https://github.com/zihangdai/xlnet
本文編輯:王立魚
英語原文:https://towardsdatascience.com/what-is-xlnet-and-why-it-outperforms-bert-8d8fce710335
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
點(diǎn)擊【什么是 XLNet ? 為什么它的性能優(yōu)于 BERT?】即可訪問!
福利大放送——滿滿的干貨課程免費(fèi)送!
「好玩的Python:從數(shù)據(jù)挖掘到深度學(xué)習(xí)」該課程涵蓋了從Python入門到CV、NLP實(shí)踐等內(nèi)容,是非常不錯(cuò)的深度學(xué)習(xí)入門課程,共計(jì)9節(jié)32課時(shí),總長(zhǎng)度約為13個(gè)小時(shí)。。
課程頁面:https://ai.yanxishe.com/page/domesticCourse/37
「計(jì)算機(jī)視覺基礎(chǔ)入門課程」本課程主要介紹深度學(xué)習(xí)在計(jì)算機(jī)視覺方向的算法與應(yīng)用,涵蓋了計(jì)算機(jī)視覺的歷史與整個(gè)課程規(guī)劃、CNN的模型原理與訓(xùn)練技巧、計(jì)算機(jī)視覺的應(yīng)用案例等,適合對(duì)計(jì)算機(jī)視覺感興趣的新人。
課程頁面:https://ai.yanxishe.com/page/domesticCourse/46
現(xiàn)AI研習(xí)社將兩門課程免費(fèi)開放給社區(qū)認(rèn)證用戶,只要您在認(rèn)證時(shí)在備注框里填寫「Python」,待認(rèn)證通過后,即可獲得該課程全部解鎖權(quán)限。心動(dòng)不如行動(dòng)噢~
認(rèn)證方式:https://ai.yanxishe.com/page/blogDetail/13999
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。