日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【论文串讲】从GPT和BERT到XLNet

發(fā)布時(shí)間:2025/3/8 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【论文串讲】从GPT和BERT到XLNet 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?本文是本專欄即將發(fā)表的文本預(yù)訓(xùn)練系列里面的一個(gè)章節(jié),主要講了XLNet的思路和具體實(shí)現(xiàn)細(xì)節(jié),之所以叫XLNet是因?yàn)樗訲ransformer- XL為基礎(chǔ)。XLNet是一種廣義的自回歸預(yù)訓(xùn)練模型,它提出了Permuted Language Model的思路,將BERT和GPT的各自優(yōu)點(diǎn)結(jié)合在一起。為了解決實(shí)現(xiàn)一個(gè)細(xì)節(jié)上的問題,它還創(chuàng)新地提出了“雙流自注意力機(jī)制”。那么具體是怎么展開的,就來(lái)一起看看吧!。


作者:潘小小,字節(jié)跳動(dòng)AI-Lab算法工程師,專注機(jī)器翻譯,會(huì)講法語(yǔ),喜歡音樂,寫文,記錄,無(wú)人機(jī)航拍(剛?cè)肟?#xff09;。

本文涉及的論文鏈接: ?XLNet: Generalized Autoregressive Pretraining for Language Understanding(https://arxiv.org/abs/1906.08237)

「在開頭先列出本文中涉及到的名詞縮寫:」

  • 「LM」 : Language Model,語(yǔ)言模型

  • 「AR」 : Auto-Regressive,自回歸

  • 「AE」 : Auto-Encoding,自編碼

  • 「MLM」 : Masked Language Model

  • 「PLM」 : Permuted Language Model

  • 「NLU」 : Natural Language Understanding

  • 「NLG」 : Natural Language Generation


「1. GPT」

  • 「關(guān)鍵詞:」 單向信息,NLU的pretrain-finetune差異

優(yōu)化目標(biāo)是單向(從左到右或者從右到左)建模序列的聯(lián)合概率,是傳統(tǒng)意義上的語(yǔ)言模型,后預(yù)測(cè)的詞以先預(yù)測(cè)的詞為條件,比較適合文本生成任務(wù),但是缺陷是只使用了單向的語(yǔ)言表征信息,無(wú)法獲取雙向上下文信息表征,而文本理解任務(wù)中經(jīng)常需要用到雙向的上下文信息(比如,完形填空),因此,這就帶來(lái)了pre- train階段和下游任務(wù)的不一致。

「2. BERT」

  • 「關(guān)鍵詞:」 雙向信息,獨(dú)立性假設(shè),NLG的pretrain-finetune差異

將一段序列部分“損壞”,優(yōu)化目標(biāo)是部分損壞的序列恢復(fù)到原始序列的獨(dú)立概率之積。其優(yōu)點(diǎn)是獲取了雙向上下文信息表征,缺點(diǎn)之一是引入了“ 「獨(dú)立性假設(shè)」”,也即每一個(gè)被mask的token都是獨(dú)立被重建的;缺點(diǎn)之二是預(yù)訓(xùn)練階段的[MASK] token在下游任務(wù)的finetune中并沒有出現(xiàn)過,這也會(huì)造成pretrain階段和下游生成類任務(wù)的不一致。

  • 如果當(dāng)前token被mask,則 ? ?否則 ?

  • ?為部分損壞的序列

**3. XLNet (AR + MLM - > PLM) **

GPT和BERT的對(duì)比如下圖所示

「我們的核心的關(guān)注點(diǎn)是: 如何取兩者之長(zhǎng),避兩者之短」 。首先要提到的就是XLNet這篇工作:XLNet是一種廣義的Auto- Regressive模型,它可以看作將序列的聯(lián)合概率分布按照打亂的順序重新因式分解,其將LM的 「順序拆解推廣到隨機(jī)拆解」,token之間的自回歸關(guān)系不再是基于在 「天然序列」 中的前后順序,而是基于 「打亂后的序列」 中的前后順序。

LM順序拆解(左)和亂序拆解(右)

  • 順序拆解(左): ?

  • 亂序拆解(右): ? ?,( ? ?)

正是因?yàn)檫@種“打亂”(permutation)的機(jī)制,模型既可以保留AR的優(yōu)點(diǎn),規(guī)避AE的缺點(diǎn)(獨(dú)立性假設(shè);引入[MASK]),又可以保留AE的優(yōu)點(diǎn): 使得每個(gè)位置的token可以獲取到雙邊的信息(因?yàn)樾蛄斜淮騺y了)。這樣的建模方法,也叫做 「Permuted Language Model」(PLM)。

3.1 通過attention去實(shí)現(xiàn)Permutation

在具體的實(shí)現(xiàn)上,我們并不需要真正地去打亂序列的順序,只需記住Transformer框架下的序列中token的位置和它對(duì)應(yīng)的position encoding「唯一綁定」 (請(qǐng)參考 潘小小:【經(jīng)典精讀】Transformer模型深度解讀 positional encoding那一節(jié)的內(nèi)容)。所以,只需要設(shè)計(jì)合適的attention mask就可以實(shí)現(xiàn)對(duì)因式分解順序的打亂。

論文里有這么一段,解釋了具體是如何去實(shí)現(xiàn)"Permutation"的

?

we 「keep the original sequence order」 , use the 「positional encodings」corresponding to the original sequence, and rely on a 「proper attention mask」 in Transformers to achieve permutation of the factorization order.

?
  • 舉例來(lái)詳細(xì)解釋一下,如下的3張圖分別對(duì)應(yīng)了不同的permutation,前2張圖是同樣目標(biāo)序列輸出對(duì)應(yīng)的不同permutation順序的輸入,第3張圖(從右向左)和前兩張(從左向右)的目標(biāo)序列不同(注意第3張圖的解碼實(shí)際順序是it-read-to-like-,不是圖中畫的從下到上的順序)。同理我們也可以得出"like-to-read-it-I"->"I-like-to-read-it"等permutation的mask。

decoder 輸入 I-like-to-read-it, target輸出 I-like-to-read-it

  • 作者也提供了一張圖來(lái)解釋這個(gè)機(jī)制:下圖都是同一序列不同因式分解順序,在解碼 ? ?時(shí)的示意圖。

「XLNet的優(yōu)化目標(biāo)函數(shù)」

  • sequence ? 「x」 ?的長(zhǎng)度為 ?

  • 所有permutation的集合是 ?

3.2. Target-aware Representations

「【問題】」 預(yù)測(cè)亂序中第t個(gè)token時(shí),模型并不知道亂序中第t個(gè)對(duì)應(yīng)的是原序列中的第幾個(gè)。

  • 回顧一下XLNet的優(yōu)化目標(biāo)函數(shù)中的 ? ?,這個(gè)部分描述的是在解碼permutated sequence中第t個(gè)位置的token時(shí)的概率

,其中 ? ?代表 ? ?經(jīng)過 「按照permutation進(jìn)行mask」(上一節(jié)有講怎么mask)之后的Transformer輸出的hidden representation。

  • 我們注意到 ? 和 ? ?的位置(也就是 ? )沒有關(guān)系。不管 ? ?是1到T中(總長(zhǎng)度為T)的哪個(gè), 都完全一樣。

「【解決方法】Target-aware Representations」

既然模型不知道將要預(yù)測(cè)的token在原序列中的位置,那么我可不可以告訴它呢?答案是可以的,這就是Target-aware Representations。具體的做法就是在預(yù)測(cè) ? ?的時(shí)候同時(shí)將 ? ?作為輸入傳遞給模型。

那么這時(shí)候的 ? ?就變成了

  • 其中 ? ?在 ? ?的基礎(chǔ)上,加上了關(guān)于position ? ?的信息

3.3. 雙流自注意力機(jī)制(Two-stream Self-attention)

?

該機(jī)制的提出是為了實(shí)現(xiàn)上文所述的Target-aware Representations ?

?

在考慮到使用上述Target-aware Representations來(lái)整個(gè)序列的解碼過程時(shí),發(fā)現(xiàn)了互相矛盾的兩點(diǎn):

  • 預(yù)測(cè) ? ?時(shí), ?

  • 預(yù)測(cè) ? ?時(shí), ? 應(yīng)該同時(shí)使用position ? ?和content ?

  • 作者的解決思路是提出一種“雙流機(jī)制”,也就是

    • Query Representation ? ?只看得到之前的token+position,當(dāng)前的position,但是看不到當(dāng)前的token

    • Content Representation ? ?可以看到之前的token+position,當(dāng)前的token+position

    Query Representations和Content Representations的更新過程如下:

    「初始化」

    • Query Stream初始化為隨機(jī)初始化:?

    • Content Stream初始化即相應(yīng)的Word Embedding:?

    「更新的公式」

    • 如果self-attention有M層,對(duì)第m層

    • 在finetune的時(shí)候,因?yàn)闆]有了permutation,也就不需要模型去預(yù)測(cè) ? ?,因此此時(shí)只需要使用content stream就可以了。

    3.4. 部分打亂

    一個(gè)長(zhǎng)度為 ? ?的序列有 ?中permutation,這會(huì)導(dǎo)致訓(xùn)練過程中收斂非常的慢,于是我們采取折中的做法:只對(duì)序列的末尾幾個(gè)token進(jìn)行打亂,而對(duì)前面的部分保留原序列順序。

    往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯獲取一折本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群請(qǐng)掃碼進(jìn)群(如果是博士或者準(zhǔn)備讀博士請(qǐng)說(shuō)明):

    總結(jié)

    以上是生活随笔為你收集整理的【论文串讲】从GPT和BERT到XLNet的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。