attention機制_簡析Attention機制—優缺點,實現,應用

什么是Attention機制?

Attention機制的本質來自于人類視覺注意力機制。人們在看東西的時候一般不會從到頭看到尾全部都看,往往只會根據需求觀察注意特定的一部分。

簡單來說,就是一種權重參數的分配機制,目標是協助模型捕捉重要信息。具體一點就是,給定一組<key,value>,以及一個目標(查詢)向量query,attention機制就是通過計算query與每一組key的相似性,得到每個key的權重系數,再通過對value加權求和,得到最終attention數值。

72501f53a2a5248d52af7ecaaf2f3d8f.png

a133933a909079afaa5115bd7d45b167.png

優缺點:

優點:

  1. 一步到位獲取全局與局部的聯系,不會像RNN網絡那樣對長期依賴的捕捉會收到序列長度的限制。
  2. 每步的結果不依賴于上一步,可以做成并行的模式
  3. 相比CNN與RNN,參數少,模型復雜度低。(根據attention實現方式不同,復雜度不一)

缺點:

  1. 沒法捕捉位置信息,即沒法學習序列中的順序關系。這點可以通過加入位置信息,如通過位置向量來改善,具體可以參考最近大火的BERT模型。

應用領域:

在這主要介紹幾篇論文或經典文檔。

自然語言處理:

  1. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  2. Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
  3. Generating Wikipedia by Summarizing Long Sequences
  4. Universal Transformers

計算機視覺:

  1. Image Transformer
  2. Show, Attend and Tell: Neural Image Caption Generation with Visual Attention

推薦系統:

  1. Deep Interest Network for Click-Through Rate Prediction
  2. Deep Interest Evolution Network for Click-Through Rate Prediction
  3. Learning Tree-based Deep Model for Recommender Systems

Attention常見實現方法

  1. 多層感知機:

88fd9744730f2526d6b09e4e3fd32373.png

該方法主要是將Q,K拼接,然后一起通過一個激活函數為tanh的全連接層,再跟權重矩陣做乘積,在數據量夠大的情況下,該方法一般來說效果都不錯。

2.Dot Product / scaled-dot Product:

c0a44578ce15d6f60ba4a025f2410577.png

該方法適用于query與key維度相同情景,通過q轉置后與k點積。在權重值過大的情況下,可以將數據標準化,即scaled-dot Product。

3.Bilinear:

951f674f02117a02496bef686df0c8c5.png

通過一個權重矩陣直接建立query與key的關系,權重矩陣可以隨機初始化也可以使用預設的。

4.cosine

49036c4fa18713e1081e517d5a9c123f.png

即計算兩個向量的cosine相似度。

self-attention

該方法即Q,K,V都來自于同一個輸入,其余計算過程,基本同上常用方法。

Multi-Head Attention

該方法可以理解成attention版本的ensemble,不同head學習不同的子空間語義。權值計算也同上常用方法。

ecfcf2b53c15bab366c18e72f4435a38.png

推薦系統中的attention機制

現在推薦系統的趨勢基本是朝著海量數據+復雜模型的方向發展,相信將來會取代人工精細特征+簡單模型的方式。

這里主要介紹阿里的din模型:

8c6ca514bdb426a490eff52f57ee2cfa.png

模型的主要思想在于用戶的興趣是無序的,比如在電商場景下,用戶A的歷史行為序列包含游泳用品,牛奶,女裝。而當前展示的廣告是女裝,它便只能激活女裝的這個興趣,即在當前展示廣告面前,用戶的興趣是多峰的。

基于此,通過target廣告與用戶行為序列key做attention,捕獲當前最可能被激活的那個峰。

具體算法實現便是通過target與行為序列做attention,再將輸出與其他特征拼接之后通過全連接層得到最終輸出。

相似的應用場景還有TDM模型,DIEN模型等。

小弟在此拋磚引玉,希望各位看官多多指點

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454313.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454313.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454313.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高級程序員如何面對職場壓力?(2)--受傷的總是我

版權聲明&#xff1a;原創作品&#xff0c;允許轉載&#xff0c;轉載時請務必以超鏈接形式標明文章原始出版、作者信息和本聲明。否則將追究法律責任。本文地址&#xff1a;http://tech.it168.com/a2008/0911/204/000000204752.shtml 課程上線消息&#xff1a;Leo講的《初入公司…

pycharm Debug問題

pycharm Debug問題 參考鏈接:https://blog.csdn.net/weixin_43472408/article/details/85072640 Debug的調試方式如下所示&#xff1a; 1.show execution point (F10) 顯示當前所有斷點 2.step over(F8) 單步調試。 若函數A內存在子函數a時&#xff0c;不會進入子函數a內執…

vue表單的用法

你可以用 v-model 指令在表單控件元素上創建雙向數據綁定。它會根據控件類型自動選取正確的方法來更新元素。盡管有些神奇&#xff0c;但 v-model 本質上不過是語法糖&#xff0c;它負責監聽用戶的輸入事件以更新數據&#xff0c;并特別處理一些極端的例子。 v-model 會忽略所有…

php執行npm命令_npm系列之命令執行

當我想使用vue的腳手架來創建一個項目的時候&#xff0c;我應該怎么做&#xff1f;執行命令 npm install -g vue/cli 全局安裝&#xff0c;之后就可以在控制臺中使用vue create programName 來創建一個項目。為什么可以直接使用vue命令&#xff1f;這類支持命令的依賴會在項目中…

模擬產品展示 Flash無法展示的追蹤過程

鼠標滑過小圖時&#xff0c;左側前四張大圖可以&#xff0c;但是最后那張大圖無法展示&#xff1a; falsh產品展示需要通過參數傳遞&#xff0c;把關聯產品id的圖片get出來&#xff0c;如&#xff1a; http://192.168.8.166:90/category/prod_img.aspx?prodid101 結果&#xf…

git提交 本地分支和遠程分支斷開連接

1級標題 當 git push origin branch_name時遇到報錯如下&#xff1a; fatal:‘origin’ does not appear to be a git repository fatal:Could not read from remote repository 原因&#xff1a; 本地分支和遠程分支斷開連接 解決方法&#xff1a; cd 本地分支里 1、git…

編程高手箴言

本書是作者十余年編程生涯中的技術和經驗的總結。內容涵蓋了從認識CPU、Windows運行機理、 編程語言的運行機理&#xff0c;到代碼的規范和風格、分析方法、調試方法和內核優化&#xff0c;內有作者對許多問題 的認知過程和透徹的分析&#xff0c;以及優秀和精彩的編程經驗。…

nodejs里的module.exports和exports

引 在node.js中我們可以使用module.exports和exports導出模塊&#xff0c;設置導出函數、數組、變量等等 為什么可以用這兩個模塊&#xff1f; 或者直接問&#xff0c;node.js的模塊功能是怎么實現的。 這樣得益于javascript是函數性的語言&#xff0c;并支持閉包。 js的閉包 直…

c語言貪吃蛇最簡單代碼_C語言指針,這可能是史上最干最全的講解啦(附代碼)!!!...

點擊上方“大魚機器人”&#xff0c;選擇“置頂/星標公眾號”福利干貨&#xff0c;第一時間送達&#xff01;指針對于C來說太重要。然而&#xff0c;想要全面理解指針&#xff0c;除了要對C語言有熟練的掌握外&#xff0c;還要有計算機硬件以及操作系統等方方面面的基本知識。所…

SpringSecurity深度解析與實踐(3)

這里寫自定義目錄標題 引言SpringSecurity之授權授權介紹java權限集成 登錄失敗三次用戶上鎖 引言 SpringSecurity深度解析與實踐&#xff08;2&#xff09;的網址 SpringSecurity之授權 授權介紹 Spring Security 中的授權分為兩種類型&#xff1a; 基于角色的授權&#…

簡單解釋什么是 依賴注入 和 控制反轉

簡單解釋什么是 依賴注入 和 控制反轉2017-07-09 關于 依賴注入 與 控制反轉 的概念有些人覺得很難理解&#xff0c;最近在給別人講這個概念的時候梳理了一個比較好理解的解釋&#xff0c;而且我認為非技術人員也應該能聽的懂&#xff0c;因此分享給大家&#xff0c;希望下次你…

python pip install指定國內源鏡像

有時候安裝一些依賴包&#xff0c;網不好&#xff0c;直接超時&#xff0c;或者這個包就是死都下不下來的時候&#xff0c;可以指定國內源鏡像。 pip install -i 國內鏡像地址 包名 清華&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 阿里云&#xff1a;http://mirr…

機器學習之單標簽多分類及多標簽多分類

單標簽二分類算法 Logistic算法 單標簽多分類算法 Softmax算法 One-Versus-One&#xff08;ovo&#xff09;&#xff1a;一對一 One-Versus-All / One-Versus-the-Rest&#xff08;ova/ovr&#xff09;&#xff1a; 一對多 ovo和ovr的區別 Error Correcting Output code…

ionic3 隱藏子頁面tabs

看了幾天ionic3 問題還挺多的&#xff0c;今天想把所有子頁面tabs 給去掉&#xff0c;整了半天&#xff0c;發現app.Module 是可以配置的 修改 IonicModule.forRoot(MyApp&#xff09; imports: [BrowserModule,// IonicModule.forRoot(MyApp),HttpModule,IonicModule.forRoot(…

cas單點登錄-jdbc認證(三)

前言 本節的內容為JDBC認證&#xff0c;查找數據庫進行驗證&#xff0c;其中包括&#xff1a; 密碼加密策略&#xff08;無密碼&#xff0c;簡單加密&#xff0c;加鹽處理&#xff09;認證策略&#xff08;jdbc&#xff09;一、業務需求 不同的公司&#xff0c;需求業務需求或者…

get clone 出現 fatal: the remote end hung up unexpectedly5 MiB | 892.00 KiB/s 報錯信息

fatal: the remote end hung up unexpectedly5 MiB | 892.00 KiB/s 解決方案 &#xff08;親測有效&#xff09; 解決方案如下&#xff1a; git clone時加上 --depth1&#xff0c;比如&#xff1a; git clone https://gitee.com/songyitian/tctm.git --depth 1depth用于指定…

mybatis foreach map_重學Mybatis(六)-------輸入映射(含面試題)

博主將會針對Java面試題寫一組文章&#xff0c;包括J2ee&#xff0c;SQL&#xff0c;主流Web框架&#xff0c;中間件等面試過程中面試官經常問的問題&#xff0c;歡迎大家關注。一起學習&#xff0c;一起成長&#xff0c;文章底部有面試題。入參映射關鍵字說明圖中paramenterTy…

php輸出多余的空格或者空行

1&#xff0c;文件是否有bom。可以通過腳步檢測&#xff0c;或者利用notepa打開&#xff0c;查看編碼格式。 2. <?php echo something; ?> 或許是你的php標簽外&#xff0c;有空格或者空行。一般的項目都是用框架&#xff0c;包含很多的文件&#xff0c;如果一個個文…

執行git命令時出現fatal: ‘origin‘ does not appear to be a git repository錯誤

執行git命令時出現fatal: ‘origin’ does not appear to be a git repository錯誤 在執行git pull origin master時出現&#xff1a;   fatal: ‘origin’ does not appear to be a git repository   致命提示:“origin”看起來不是一個git存儲庫   fatal: Could not r…

蔣濤作序盛贊Leo新作為“程序員職場實用百科全書”——《程序員羊皮卷》連載(1)

《程序員羊皮卷》當當購買地址&#xff1a;http://product.dangdang.com/product.aspx?product_id20691986 互動購買地址&#xff1a;http://www.china-pub.com/196049 程序員行業從外面看起來有很多絢麗的光環&#xff0c;這里有無數以程序致富的天才&#xff0c;世界首富比…