开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開(kāi)APP
          userphoto
          未登錄

          開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

          開(kāi)通VIP
          什么是XLNet中的雙流自注意力

          理解XLNet中的雙流自注意力機(jī)制。

          在我之前的文章什么是XLNet,它為什么比BERT效果好?中,我主要討論了XLNet (AR語(yǔ)言模型)和BERT (AE語(yǔ)言模型)之間的區(qū)別以及重排列語(yǔ)言建模。
          我相信對(duì)XLNet有一個(gè)直觀的理解遠(yuǎn)比實(shí)現(xiàn)細(xì)節(jié)重要,所以我只解釋了重排列語(yǔ)言建模,而沒(méi)有提到另一個(gè)重要的部分,雙流自注意力架構(gòu)。但正如陳家明在評(píng)論中提到的,雙流自注意力是XLNet論文的另一個(gè)亮點(diǎn),所以我寫(xiě)這篇文章是為了盡可能清楚地解釋雙流自注意力。
          內(nèi)容結(jié)構(gòu)如下。
          • 重排列語(yǔ)言建模的快速回顧
          • 重排列帶來(lái)了什么問(wèn)題?
          • BERT有這樣的問(wèn)題嗎?
          • XLNet如何解決這個(gè)問(wèn)題?
          • 注意力mask:XLNet如何實(shí)現(xiàn)重排列?


          重排列建模的快速回顧

          特殊的術(shù)語(yǔ):
          • AR語(yǔ)言模型:自回歸語(yǔ)言建模
          • AE語(yǔ)言模型:自動(dòng)編碼器語(yǔ)言建模
          為了使這篇文章更加獨(dú)立,我在這里做一個(gè)簡(jiǎn)短的總結(jié):什么是XLNet,為什么它的性能優(yōu)于BERT。
          XLNet提出使用重排列語(yǔ)言建模,使AR語(yǔ)言模型學(xué)習(xí)雙向上下文。這樣可以避免AE語(yǔ)言模型中MASK方法帶來(lái)的弊端。
          重排列方法是獲取一個(gè)序列的重排列,并使用之前的t-1個(gè)tokens作為上下文來(lái)預(yù)測(cè)第t個(gè)位置的token。例如,我們有一個(gè)句子[x1, x2, x3, x4],而x3是我們要預(yù)測(cè)的第t個(gè)位置的token。首先,我們得到句子的排列。
          [('x1', 'x2', 'x3', 'x4'), ('x1', 'x2', 'x4', 'x3'), ('x1', 'x3', 'x2', 'x4'), ('x1', 'x3', 'x4', 'x2'), ('x1', 'x4', 'x2', 'x3'), ('x1', 'x4', 'x3', 'x2'), ('x2', 'x1', 'x3', 'x4'), ('x2', 'x1', 'x4', 'x3'), ('x2', 'x3', 'x1', 'x4'), ('x2', 'x3', 'x4', 'x1'), ('x2', 'x4', 'x1', 'x3'), ('x2', 'x4', 'x3', 'x1'), ('x3', 'x1', 'x2', 'x4'), ('x3', 'x1', 'x4', 'x2'), ('x3', 'x2', 'x1', 'x4'), ('x3', 'x2', 'x4', 'x1'), ('x3', 'x4', 'x1', 'x2'), ('x3', 'x4', 'x2', 'x1'), ('x4', 'x1', 'x2', 'x3'), ('x4', 'x1', 'x3', 'x2'), ('x4', 'x2', 'x1', 'x3'), ('x4', 'x2', 'x3', 'x1'), ('x4', 'x3', 'x1', 'x2'), ('x4', 'x3', 'x2', 'x1')]
          然后選取一些樣本作為訓(xùn)練數(shù)據(jù)。(本文從排列中隨機(jī)抽取樣本)
          ('x1', 'x2', 'x4', 'x3'),('x1', 'x4', 'x3', 'x2'),('x2', 'x3', 'x4', 'x1'),('x4', 'x2', 'x3', 'x1'),('x3', 'x2', 'x4', 'x1'),v
          我們可以看到每個(gè)token都有機(jī)會(huì)出現(xiàn)在x3之前。因此,AR模型可以從這些上下文tokens中學(xué)習(xí)雙向信息。如果你仍然不清楚重排列,你可以閱讀前面的文章。


          重排列帶來(lái)了什么問(wèn)題?

          這種重排列可以使AR模型從兩個(gè)方向看到上下文,但也帶來(lái)了原transformer 無(wú)法解決的問(wèn)題.
          重排列語(yǔ)言建模目標(biāo):
          • Z:一種分解順序
          • p_θ:似然函數(shù)
          • x_zt:分解順序中的第t個(gè)token
          • x_z<t:第t個(gè)token之前的所有tokens
          這是重排列語(yǔ)言建模的目標(biāo)函數(shù),即以t-1個(gè)tokens為上下文,預(yù)測(cè)第t個(gè)token。
          有兩個(gè)標(biāo)準(zhǔn)Transformer不能滿足的要求:
          1. 為了預(yù)測(cè)token x_t,模型應(yīng)該只看到x_t的位置,而不是x_t的content(我將在下一節(jié)解釋什么是content)
          2. 為了預(yù)測(cè)token x_t,模型應(yīng)該將x_t之前的所有token編碼為content
          特別是第一個(gè)要求,transformer將位置編碼合并到token嵌入中。因此,它不能將位置信息與token嵌入分離開(kāi)來(lái)。


          BERT有這樣的問(wèn)題嗎?

          BERT是一個(gè)AE語(yǔ)言模型,它不像AR語(yǔ)言模型那樣需要單獨(dú)的位置信息。與XLNet需要位置信息來(lái)預(yù)測(cè)第t個(gè)token不同,BERT使用[MASK]來(lái)表示要預(yù)測(cè)哪個(gè)token(我們可以認(rèn)為[MASK]只是一個(gè)占位符)。例如,如果BERT使用x2, x1, x4來(lái)預(yù)測(cè)x3,那么x2, x1, x4的嵌入包含了位置信息和其他與[MASK]相關(guān)的信息。因此,該模型很有可能預(yù)測(cè)[MASK]是x3。
          在這里我將對(duì)信息做更詳細(xì)的說(shuō)明。BERT embedded (BERT所學(xué)的信息)包含兩種信息:位置信息和內(nèi)容信息(為簡(jiǎn)單起見(jiàn),我將其分為兩部分)。
          位置信息很容易理解,因?yàn)樗嬖V模型當(dāng)前token的位置。內(nèi)容信息(語(yǔ)義和語(yǔ)法)包含當(dāng)前標(biāo)記的“意義”。一個(gè)直觀的例子是kind — man + woman = queen。


          XLNet怎么解決這個(gè)問(wèn)題?

          XLNet提出了雙流自注意力來(lái)解決這個(gè)問(wèn)題。
          顧名思義,它包含兩種自注意力。一個(gè)是content stream attention,它是Transformer中的標(biāo)準(zhǔn)自注意力。另一個(gè)是query stream attention。XLNet引入它來(lái)替換BERT中的[MASK] token。
          例如,如果BERT想用上下文單詞x1和x2的知識(shí)來(lái)預(yù)測(cè)x3,它可以使用[MASK]來(lái)表示x3 token。[MASK]只是一個(gè)占位符。x1和x2的嵌入包含位置信息,幫助模型“知道”[MASK]的是x3。
          XLNet的情況有所不同。一個(gè)token x3將服務(wù)兩種角色。當(dāng)它被用作內(nèi)容來(lái)預(yù)測(cè)其他標(biāo)記時(shí),我們可以使用內(nèi)容表示(通過(guò)內(nèi)容流注意力來(lái)學(xué)習(xí))來(lái)表示x3。但是如果我們想要預(yù)測(cè)x3,我們應(yīng)該只知道它的位置而不是它的內(nèi)容。這就是為什么XLNet使用查詢表示(通過(guò)查詢流注意力來(lái)學(xué)習(xí))來(lái)保留x3之前的上下文信息,只保存x3的位置信息。
          為了直觀地理解雙流自注意力,我們可以認(rèn)為XLNet用查詢表示代替了BERT中的[MASK]。他們只是選擇不同的方法做同一件事。


          注意力mask:XLNet如何實(shí)現(xiàn)重排列?

          當(dāng)我第一次讀到這篇文章的時(shí)候,我不禁對(duì)訓(xùn)練中重排列的實(shí)現(xiàn)細(xì)節(jié)產(chǎn)生了疑惑。如果你們感興趣,我就簡(jiǎn)單講一下。
          在第一部分“重排排列語(yǔ)言建模的快速回顧”中,我給出了一個(gè)句子[x1, x2, x3, x4] 的排列示例,如下所示。
          [('x1', 'x2', 'x3', 'x4'), ('x1', 'x2', 'x4', 'x3'), ('x1', 'x3', 'x2', 'x4'), ('x1', 'x3', 'x4', 'x2'), ('x1', 'x4', 'x2', 'x3'), ('x1', 'x4', 'x3', 'x2'), ('x2', 'x1', 'x3', 'x4'), ('x2', 'x1', 'x4', 'x3'), ('x2', 'x3', 'x1', 'x4'), ('x2', 'x3', 'x4', 'x1'), ('x2', 'x4', 'x1', 'x3'), ('x2', 'x4', 'x3', 'x1'), ('x3', 'x1', 'x2', 'x4'), ('x3', 'x1', 'x4', 'x2'), ('x3', 'x2', 'x1', 'x4'), ('x3', 'x2', 'x4', 'x1'), ('x3', 'x4', 'x1', 'x2'), ('x3', 'x4', 'x2', 'x1'), ('x4', 'x1', 'x2', 'x3'), ('x4', 'x1', 'x3', 'x2'), ('x4', 'x2', 'x1', 'x3'), ('x4', 'x2', 'x3', 'x1'), ('x4', 'x3', 'x1', 'x2'), ('x4', 'x3', 'x2', 'x1')]
          我們很容易誤解,我們需要獲得一個(gè)句子的隨機(jī)順序并將其輸入到模型中。但事實(shí)并非如此。輸入語(yǔ)句的順序是[x1, x2, x3, x4],XLNet使用注意力掩碼來(lái)重排列分解因子的順序
          這個(gè)句子的原始順序是[x1, x2, x3, x4]。我們隨機(jī)得到一個(gè)分解的順序?yàn)閇x3, x2, x4, x1]。
          左上角是內(nèi)容表示的計(jì)算。如果我們想要預(yù)測(cè)x1的內(nèi)容表示,我們應(yīng)該擁有所有4個(gè)token內(nèi)容信息。KV = [h1, h2, h3, h4]和Q = h1。
          左下角是查詢表示的計(jì)算。如果我們想要預(yù)測(cè)x1的查詢表示,我們不能看到x1本身的內(nèi)容表示。KV = [h2, h3, h4],Q = g1。
          右下角是整個(gè)計(jì)算過(guò)程。我把它從頭到尾解釋了一遍。首先,h和g被初始化為e(xi)和w。在內(nèi)容掩碼和查詢掩碼之后,雙流注意力將輸出第一層輸出h^(1)和g^(1),然后計(jì)算第二層。
          注意右邊的內(nèi)容掩碼和查詢掩碼。它們都是矩陣。在內(nèi)容mask中,第一行有4個(gè)紅點(diǎn)。這意味著第一個(gè)token (x1)可以看到(注意到)所有其他tokens,包括它自己(x3->x2->x4->x1)。第二行有兩個(gè)紅點(diǎn)。這意味著第二個(gè)token (x2)可以看到(注意到)兩個(gè)token(x3->x2)。等等。
          內(nèi)容掩碼和查詢掩碼之間惟一的區(qū)別是,查詢掩碼中的對(duì)角元素為0,這意味著token不能看到它們自己。
          讓我們總結(jié)一下。輸入的句子只有一個(gè)順序。但是我們可以使用不同的注意力mask來(lái)實(shí)現(xiàn)不同的分解順序。


          總結(jié)

          在這篇文章中,我主要解釋了XLNet面臨的問(wèn)題是什么,以及如何使用雙流自注意力來(lái)解決它。我還提到了有關(guān)排列注意里mask的一些實(shí)現(xiàn)細(xì)節(jié)。對(duì)于結(jié)果的比較,你可以從XLNet team中找到最新的發(fā)布,它比論文的比較更加公平。

          英文原文:https://towardsdatascience.com/what-is-two-stream-self-attention-in-xlnet-ebfe013a0cf3

          作者:Xu LIANG

          編譯:ronghuaiyang

          轉(zhuǎn)載來(lái)源:AI公園

          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
          打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          絕對(duì)干貨!NLP 預(yù)訓(xùn)練模型:從 Transformer 到 Albert
          帶你讀論文丨8篇論文梳理BERT相關(guān)模型進(jìn)展與反思
          從語(yǔ)言模型到Seq2Seq:Transformer如戲,全靠Mask
          CVPR2022Mask Modeling在視頻任務(wù)中也有效?復(fù)旦&微軟提出Video版本BEVT,在多個(gè)視頻數(shù)據(jù)集上SOTA!
          預(yù)訓(xùn)練無(wú)需注意力,擴(kuò)展到4096個(gè)token不成問(wèn)題,與BERT相當(dāng)
          20項(xiàng)任務(wù)橫掃BERT!CMU谷歌發(fā)布XLNet,NLP再迎屠榜時(shí)刻
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服