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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python attention机制_从零开始学Python自然语言处理(26)—— 强大的Attention机制...

發布時間:2024/9/27 python 93 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python attention机制_从零开始学Python自然语言处理(26)—— 强大的Attention机制... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前文傳送門:

在上一次面試失利后,我回來仔細研究了一下Attention機制,研究完我不禁感悟,這機制真的厲害啊!因為我之前面試被問到的Encoder - Decoder框架中有個瓶頸是編碼的結果以固定長度的中間向量表示,這導致較長的序列編碼后很多信息被稀釋了,導致解碼時效果不佳。當時只記得有個Attention,但是不了解他的原理,所以上次面試沒過:從零開始學自然語言處理(25)—— 通用的Encoder-Decoder模型框架

NLP中的Attention機制是在論文《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE》被提出的,有興趣的朋友可以去閱讀論文:https://arxiv.org/pdf/1409.0473.pdf

上次面試問到的Encoder - Decoder框架如下圖所示:

而加入Attention機制之后,Encoder - Decoder框架可以改為如下所示:

大家應該注意到上下兩張圖的主要區別在于中間向量C從固定不變的一個變成了不同的多個,在解碼每個序列字符串時使用不同的Ci。

例如我們在翻譯 “Through the woods, we reached the bank of the river.” 時,我們會翻譯成 “穿過樹林,我們到達了河岸。”,當我們在翻譯 “bank” 這個詞時,應該將注意力集中在 “bank ”上,同時也應該考慮上下文,例如“river”,這樣我們才會將“bank”翻譯為“河岸”,而不是“銀行”,這符合我們人類的認知,又例如,我們翻譯“woods”時,會重點關注“woods”和“through”等。所以我們每次在翻譯(解碼)一個詞時,重點關注的內容是不同的,那如何表示在Decoder階段解碼某個輸出(翻譯某個詞)時對原始輸入關注的重點不同呢?

這個問題在上述的論文中得到了解決,論文提出了以下結構的模型:

這里使用了雙層的RNN結構,關于RNN和雙層RNN可以參考之前的文章:

首先,在Encoder階段,輸入的是 X 序列,X=(X1,X2,X3,...,XT),經過一個雙向RNN結構編碼,得到隱藏層每個單元的向量hi ,然后使用如下的公式計算得到解碼不同單詞時用到的Ci:

大家應該發現了,這里的C不再是傳統Encoder-Decoder框架中那個固定的C了,而是根據解碼不同 y 有著不同的Ci !理解這一點就理解了Attention的精髓了!

你可能會問,這里的αij是如何計算的?這里的 αij 類似權重的意思,如上圖所示,在解碼yt時,會綜合考慮αt1,αt2,...,αtT作為對不同輸入 Xi 的關注程度不同,αij計算公式如下:

所以αij其實是 eij經過softmax之后的結果,那問題變為eij是如何計算的了!eij的計算公式如下:

這里的a是一個對齊模型(Alignment model),實際上是一個前饋神經網絡,這里的“對齊”你可以理解為是一種相似度的計算,計算的是當前解碼內容的上一個隱藏狀態s(i-1)和當前hj的關系,相當于將每個編碼輸入和當前輸出進行匹配,從而得到權重。這樣就完成了對Encoder-Decoder框架加入Attention機制,解決了一開始的問題!

這個Attention面試問題也就迎刃而解了~

掃碼下圖關注我們不會讓你失望!

總結

以上是生活随笔為你收集整理的python attention机制_从零开始学Python自然语言处理(26)—— 强大的Attention机制...的全部內容,希望文章能夠幫你解決所遇到的問題。

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