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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

超细粒度分析XLNet中神奇的Attention Mask

發布時間:2024/10/8 编程问答 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超细粒度分析XLNet中神奇的Attention Mask 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?PaperWeekly 原創 ·?作者|海晨威

學校|同濟大學碩士生

研究方向|自然語言處理

BERT 后時代,XLNet 在 20 個任務上超越 BERT,引起不小的關注。最重要的改進是 XLNet ?實現了不在輸入中加 [Mask] 標志,同樣可以利用上下文信息,解決了 BERT 預訓練和微調不一致的問題。

1. XLNet 如何實現在不加 [Mask] 情況下利用上下文信息呢?

XLNet 通過 Permutation Language Modeling(PLM)重排輸入文本,使得當前詞的下文也有可能出現在當前詞的「上文」中,而實際的操作不是通過改變文本輸入順序來實現,而是依靠關鍵的 Attention Mask 機制來完成的。

上圖就是文中 Attention Mask 的機制,只看圖并不是那么好理解,這里引用張俊林老師:XLNet:運行機制及和 Bert 的異同比較 [1] 文章中非常關鍵的一句話:

在Transformer內部,通過 Attention 掩碼,從 T 的輸入單詞里面,也就是 Ti 的上文和下文單詞中,隨機選擇 i-1 個,放到 Ti 的上文位置中,把其它單詞的輸入通過 Attention 掩碼隱藏掉,于是就能夠達成我們期望的目標(當然這個所謂放到Ti的上文位置,只是一種形象的說法,其實在內部,就是通過 Attention Mask,把其它沒有被選到的單詞 Mask 掉,不讓它們在預測單詞 Ti 的時候發生作用,如此而已。看著就類似于把這些被選中的單詞放到了上文 Context_before 的位置了)

以圖中的排列序列:3->2->4->1 為例,通過 Attention Mask,在 self-attention 的加權平均計算中,假設要計算 attention 之后第 2 個詞對應的向量 :

根據圖中 Content stream 中的 mask,,其中 表示第 2 個詞對應的向量,表示第 2 行第 2 列紅點位置對應的 attention score,其他同理。這樣在 中就看到了它的下文 ,就像是把 放到了它的上文位置一樣,但實際順序并沒有改變。

采樣序列的全排列,目的就是為了生成這個 Attention Mask,實際的文本輸入并不受任何的影響。

那這個 Attention Mask 是如何生成的呢?

還是以排列 3->2->4->1 為例,去生成 Content stream 中的 mask,1 前面有 3,2,4,再加上自己,所以上圖中第一行都為紅點;2 前面只有 3,再加上自己,所以第二行的二三列都為紅點,依次類推,就可以得到這個排列對應的? Attention Mask。

注:紅點位值為 0,代表這個位有用,白點位值為 -inf,代表這個位被 mask 掉。

2. 為什么不直接在attention掩碼矩陣中只把當前的單詞掩蓋住來獲取上下文的信息呢?直接mask住左上到右下的對角線構建雙向語言模型不行嗎?

XLNet 實際上仍然遵循語言模型的預測模式(AutoRegressive Language Modeling),即從左往右依次預測,如對于排列序列:3->2->4->1,預測 2 時用到了 3 信息,預測 4 時用到了 3、2 信息.……因此,它本質還是需要一個上三角/下三角 mask 矩陣,在第一幅圖的 content stream 矩陣中,把第 4 行的左邊兩個紅點移到第 4 列中去,就變成了一個三角矩陣了,和 Transformer decoder 中的 mask 矩陣是一樣的。

那為什么要這樣的三角矩陣呢?直接 mask 住左上到右下的對角線可以嘛?

答案是不行,mask 掉對角線在預測時可以不看到當前詞,但是會提前看到后面的詞,這樣在預測后面詞的時候就相當于提前發生了泄露。

另外,要提及的一點是,XLNet 的從左到右和一般語言模型(如 GPT)的從左到右稍微有一點區別,GPT 的輸入和輸出是錯位一個時間步的,即讀入 1,2,3,然后在 3 的位置預測 4;而 XLNet 的輸入和輸出時間步數是相同的(這一點類似于 BERT),輸入 1,2,3,4 并在 4 的位置預測 4。當然,XLNet 不會讀取第 4 個時間步的單詞(否則有信息泄露),僅僅利用位置 4 的 position embedding,告訴模型現在想要預測第 4 個位置,所以最終預測是用的 query stream,不含當前時間步文本信息 [2]。

3. 雖然不需要改變輸入文本的順序,但 XLNet 通過 PLM 采樣輸入文本的不同排列去學習,這樣不會打亂或者丟失詞匯的時序信息嘛?

不會,因為 BERT/XLNet 底層的特征提取器都是 Transformer,而不是時序敏感的 RNN/LSTM。

在 BERT/XLNet 中,時序信息是通過 Position Embedding 獲取的,每個詞最后的 embedding 都是已經疊加了 Position Embedding 的,采樣不同的排列,影響的是每個詞能看到的「上文」,但這個「上文」的 Position Embedding 是由它在原始輸入文本中的位置決定的,而不是排列之后的位置。

比如,兩種排列 3->2->4->1 和 2->3->4->1 對于預測 4 來說是沒有差別的,因為 4 看到的上文都是 2 和 3,它們各自最后的 embedding 不會因為采樣排列順序不同而變化。

XLNet 的實現,確實很驚艷,希望這篇文章能幫你掌握 XLNet 的關鍵實現機制——Attention Mask。

參考文獻

[1] https://zhuanlan.zhihu.com/p/70257427

[2] https://www.zhihu.com/question/330307904/answer/721986216

更多閱讀

#投 稿?通 道#

?讓你的論文被更多人看到?

如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得技術干貨。我們的目的只有一個,讓知識真正流動起來。

?????來稿標準:

? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?

? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?

? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志

?????投稿郵箱:

? 投稿郵箱:hr@paperweekly.site?

? 所有文章配圖,請單獨在附件中發送?

? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通

????

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

總結

以上是生活随笔為你收集整理的超细粒度分析XLNet中神奇的Attention Mask的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。