深度學習和NLP中的注意力和記憶

深度學習和NLP中的注意力和記憶

在這里插入圖片描述

文章目錄

  • 一、說明
  • 二、注意力解決了什么問題?#
  • 三、關注的代價#
  • 四、機器翻譯之外的關注#
  • 五、注意力=(模糊)記憶?#

一、說明

?? 深度學習的最新趨勢是注意力機制。在一次采訪中,現任 OpenAI 研究總監的 Ilya Sutskever 提到,注意力機制是最令人興奮的進步之一,而且它們將繼續存在。這聽起來很令人興奮。但什么是注意力機制?

?? 神經網絡中的注意力機制(非常)松散地基于人類中的視覺注意力機制。人類的視覺注意力得到了很好的研究,雖然存在不同的模型,但它們本質上都歸結為能夠以“高分辨率”聚焦在圖像的某個區域,同時以“低分辨率”感知周圍的圖像,然后隨著時間的推移調整焦點。

?? 神經網絡中的注意力有著悠久的歷史,特別是在圖像識別方面。示例包括學習將中央凹瞥見與三階玻爾茲曼機相結合,或使用用于圖像跟蹤的深度架構學習參加地點。但直到最近,注意力機制才進入通常用于NLP的遞歸神經網絡架構(并且越來越多地用于視覺)。這就是我們將在這篇文章中重點介紹的內容。

二、注意力解決了什么問題?#

?? 為了理解注意力可以為我們做什么,讓我們以神經機器翻譯(NMT)為例。傳統的機器翻譯系統通常依賴于基于文本統計屬性的復雜特征工程。簡而言之,這些系統很復雜,構建它們需要大量的工程工作。神經機器翻譯系統的工作方式略有不同。在 NMT 中,我們將句子的含義映射到固定長度的向量表示中,然后基于該向量生成翻譯。通過不依賴 n-gram 計數之類的東西,而是嘗試捕捉文本的更高層次的含義,NMT 系統比許多其他方法更好地泛化到新句子。也許更重要的是,NTM 系統更容易構建和訓練,并且不需要任何手動特征工程。事實上,Tensorflow 中的簡單實現只不過是幾百行代碼。

?? 大多數 NMT 系統的工作原理是使用遞歸神經網絡將源句子(例如德語句子)編碼為向量,然后根據該向量解碼英語句子,也使用 RNN。
在這里插入圖片描述

RNN for Machine Translation
?? 在上圖中,“Echt”、“Dicke”和“Kiste”單詞被輸入編碼器,在特殊信號(未顯示)之后,解碼器開始生成翻譯的句子。解碼器不斷生成單詞,直到生成特殊的句子結尾標記。在這里,?向量表示編碼器的內部狀態。

?? 如果你仔細觀察,你會發現解碼器應該只根據最后的隱藏狀態生成翻譯 h 3 ?_3 h3? 從編碼器。這 h 3 ?_3 h3? vector 必須對我們需要了解的有關源句子的所有內容進行編碼。它必須充分體現其意義。用更專業的術語來說,該向量是一個句子嵌入。事實上,如果你使用PCA或t-SNE在低維空間中繪制不同句子的嵌入進行降維,你可以看到語義上相似的短語最終彼此接近。這真是太神奇了。

?? 盡管如此,假設我們可以將有關一個可能很長的句子的所有信息編碼到一個向量中,然后讓解碼器僅基于此產生良好的翻譯,這似乎有些不合理。假設您的源句子有 50 個單詞長。英文翻譯的第一個單詞可能與源句子的第一個單詞高度相關。但這意味著解碼器必須考慮 50 步前的信息,并且該信息需要以某種方式編碼到向量中。眾所周知,遞歸神經網絡在處理這種長程依賴關系方面存在問題。從理論上講,像 LSTM 這樣的架構應該能夠處理這個問題,但在實踐中,遠程依賴關系仍然存在問題。例如,研究人員發現,反轉源序列(將其向后饋送到編碼器)會產生更好的結果,因為它縮短了從解碼器到編碼器相關部分的路徑。同樣,兩次輸入序列似乎也有助于網絡更好地記憶事物。

?? 我認為顛倒句子的方法是一種“黑客”。它使事情在實踐中更好地工作,但這不是一個有原則的解決方案。大多數翻譯基準都是在法語和德語等語言上完成的,這些語言與英語非常相似(甚至中文的詞序也與英語非常相似)。但是在某些語言(如日語)中,句子的最后一個單詞可以高度預測英語翻譯中的第一個單詞。在這種情況下,反轉輸入會使情況變得更糟。那么,還有什么替代方案呢?注意力機制。

?? 使用注意力機制,我們不再嘗試將完整的源句子編碼為固定長度的向量。相反,我們允許解碼器在輸出生成的每個步驟中“關注”源句子的不同部分。重要的是,我們讓模型根據輸入的句子以及到目前為止產生的內容來學習要注意什么。因此,在非常一致的語言(如英語和德語)中,解碼器可能會選擇按順序處理事情。在生成第一個英語單詞時注意第一個單詞,依此類推。這就是在神經機器翻譯中通過聯合學習對齊和翻譯所做的,如下所示:
在這里插入圖片描述

NMT Attention
?? 在這里,y的是我們翻譯的單詞,由解碼器生成,而x是我們的源句詞。上圖使用雙向循環網絡,但這并不重要,您可以忽略相反的方向。重要的部分是每個解碼器輸出字 y t y_t yt? 現在取決于所有輸入狀態的加權組合,而不僅僅是最后一個狀態。這里的"a"表示的權重定義了每個輸出應考慮多少每個輸入狀態。所以,如果 a 3 , 2 a_{3,2} a3,2? 是一個很大的數字,這意味著解碼器在生成目標句子的第三個單詞時會非常注意源句子中的第二個狀態。這里的a通常歸一化為總和 1(因此它們是輸入狀態的分布)。

?? 注意力的一大優勢是,它使我們能夠解釋和可視化模型正在做什么。例如,通過可視化注意力權重矩陣a,當一個句子被翻譯時,我們可以理解模型是如何翻譯的:
在這里插入圖片描述

NMT Attention Matrix
?? 在這里,我們看到,在從法語翻譯成英語時,網絡會按順序處理每個輸入狀態,但有時它會在生成輸出時同時處理兩個單詞,例如將“la Syrie”翻譯成“Syria”。

三、關注的代價#

?? 如果我們再仔細觀察一下注意力的方程式,我們就會發現注意力是有代價的。我們需要為輸入和輸出單詞的每個組合計算一個注意力值。如果您有一個 50 個單詞的輸入序列并生成一個 50 個單詞的輸出序列,則該序列將是 2500 個注意力值。這還不錯,但是如果你進行字符級計算并處理由數百個標記組成的序列,上述注意力機制可能會變得非常昂貴。

?? 實際上,這是相當違反直覺的。人類的注意力應該可以節省計算資源。通過專注于一件事,我們可以忽略許多其他事情。但這并不是我們在上面的模型中真正要做的。在決定關注什么之前,我們基本上是在詳細研究所有內容。直觀地說,這相當于輸出一個翻譯的單詞,然后回溯你對文本的所有內部記憶,以決定接下來要生成哪個單詞。這似乎是一種浪費,根本不是人類正在做的事情。事實上,它更像是內存訪問,而不是注意力,在我看來,這有點用詞不當(更多內容見下文)。盡管如此,這并沒有阻止注意力機制變得非常流行,并在許多任務中表現出色。

?? 另一種注意力方法是使用強化學習來預測要關注的大致位置。這聽起來更像是人類的注意力,這就是視覺注意力的循環模型中所做的。

四、機器翻譯之外的關注#

?? 到目前為止,我們已經研究了對機器翻譯的關注。但是,上述相同的注意力機制可以應用于任何循環模型。因此,讓我們再看幾個例子。

?? 在“展示、參與和講述”中,作者將注意力機制應用于生成圖像描述的問題。他們使用卷積神經網絡來“編碼”圖像,并使用具有注意力機制的遞歸神經網絡來生成描述。通過可視化注意力權重(就像在翻譯示例中一樣),我們解釋模型在生成單詞時正在查看的內容:
在這里插入圖片描述

Show, Attend and Tell Attention Visualization
?? 在《語法作為外語》一書中,作者使用帶有注意力機制的遞歸神經網絡來生成句子解析樹。可視化的注意力矩陣可以深入了解網絡如何生成這些樹:
在這里插入圖片描述

Screen Shot 2015-12-30 at 1.49.19 PM
?? 在《教機器閱讀和理解》一書中,作者使用RNN來閱讀文本,閱讀(合成生成的)問題,然后得出答案。通過可視化注意力矩陣,我們可以看到網絡在試圖找到問題的答案時“看”在哪里:
在這里插入圖片描述

Teaching Machines to Read And Comprehend Attention

五、注意力=(模糊)記憶?#

?? 注意力機制解決的基本問題是,它允許網絡回溯輸入序列,而不是強迫它將所有信息編碼為一個固定長度的向量。正如我上面提到的,我認為這種關注有點用詞不當。換一種解釋,注意力機制只是讓網絡訪問其內部存儲器,這是編碼器的隱藏狀態。在這種解釋中,網絡不是選擇“參加”什么,而是選擇從內存中檢索什么。與典型的內存不同,這里的內存訪問機制是軟的,這意味著網絡檢索所有內存位置的加權組合,而不是從單個離散位置檢索值。使內存訪問軟化的好處是,我們可以使用反向傳播輕松地端到端地訓練網絡(盡管有一些非模糊方法使用采樣方法而不是反向傳播來計算梯度)。

?? 記憶機制本身的歷史要長得多。標準遞歸神經網絡的隱藏狀態本身就是一種內部存儲器。RNN遭受梯度消失問題的困擾,這使它們無法學習長程依賴關系。LSTM 通過使用允許顯式內存刪除和更新的門控機制對此進行了改進。

?? 現在,更復雜的內存結構的趨勢仍在繼續。端到端內存網絡允許網絡在進行輸出之前多次讀取相同的輸入序列,并在每個步驟中更新內存內容。例如,通過對輸入故事進行多個推理步驟來回答問題。然而,當網絡參數權重以某種方式綁定時,端到端記憶網絡中的內存機制與這里介紹的注意力機制相同,只是它在內存上進行了多次跳躍(因為它試圖整合來自多個句子的信息)。

?? 神經圖靈機使用類似形式的內存機制,但具有更復雜的尋址類型,即使用基于內容的尋址(如此處)和基于位置的尋址,允許網絡學習尋址模式以執行簡單的計算機程序,如排序算法。

?? 在未來,我們很可能會看到記憶和注意力機制之間更清晰的區別,也許會沿著強化學習神經圖靈機的路線,它試圖學習訪問模式來處理外部接口。

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

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

相關文章

使用 python 構建企業級高可用海量爬蟲調度系統

一、引言 在大數據時代,信息的獲取與分析成為了企業決策的重要依據。對于營銷行業而言,實時抓取和分析競爭對手動態、市場趨勢以及用戶反饋等數據,是制定有效策略的關鍵。然而,構建一個高可用的、能夠處理海量數據的爬蟲調度系統…

K8S中部署 Nacos 集群

1. 準備 GitK8Skubectlhelm 咱也沒想到 K8S 部署系列能搞這么多次,我一個開發天天干運維的活,前端后端運維測試工程師實至名歸。 2. 方案選擇 https://github.com/nacos-group/nacos-k8s 我替你們看了一下,有好幾種方式能部署&#xff…

華為機考真題 -- 求字符串中所有整數

題目描述: 輸入字符串s,輸出s中包含所有整數的最小和。 說明:字符串s,只包含 a-z A-Z ; 合法的整數包括: 1) 正整數 一個或者多個0-9組成,如 0 2 3 002 102 2)負整數…

【RHCE】基于用戶認證和TLS加密的HTTP服務(HTTPS)

目錄 一、創建用戶賬號 二、TLS加密 三、配置http服務子配置文件 四、創建訪問http服務的文件夾以及輸入重定向到文件 五、配置Linux本地倉庫以及Windows下的本地倉庫 六、基礎操作 七、測試 一、創建用戶賬號 用戶認證 # 創建兩個賬戶 [rootlocalhost ~]# htpasswd -…

交叉熵損失函數的使用目的(很膚淺的理解)

第一種使用方法 import torch from torch import nn # Example of target with class indices loss nn.CrossEntropyLoss() input torch.randn(3, 5, requires_gradTrue) target torch.empty(3, dtypetorch.long).random_(5) output loss(input, target) output.backward(…

可控學習綜述:信息檢索中的方法、應用和挑戰

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領…

10. 啤酒和飲料

啤酒和飲料 題目描述 本題為填空題,只需要算出結果后,在代碼中使用輸出語句將所填結果輸出即可。 啤酒每罐 2.32.3 元,飲料每罐 1.91.9 元。小明買了若干啤酒和飲料,一共花了 82.382.3 元。 我們還知道他買的啤酒比飲料的數量…

js逆向第24例:FastMoss數據分析網站Fm-Sign加密字段破解

文章目錄 一、前言二、定位關鍵參數三、代碼實現一、前言 破解:FastMoss數據分析網站Fm-Sign加密字段 二、定位關鍵參數 先看一下網站加密字段是長什么樣,如下圖,老手估計一下子就能發現字段Fm-Sign:的密文類似md5加密后的結果。 直接全局搜索Fm-Sign:看來key也沒有做混…

韋爾股份:深蹲起跳?

利潤大增7倍,是反轉信號還是回光返照? 今天我們聊聊光學半導體龍頭——韋爾股份。 上周末,韋爾股份發布半年業績預告,預計上半年凈利潤13至14億,同比增幅高達 754%至 819%。 然而,回首 2023 年它的凈利僅 …

Linux--DHCP原理與配置

目錄 一、DHCP 1、DHCP 服務是什么 2、DHCP 優點 3、為什么使用DHCP 二、DHCP的模式與分配方式 1、DHCP 模式 2、DHCP 分配方式 3、工作原理 3.1 租約過程(四步) 3.2 更新租約 三、DHCP 服務器的配置 3.1 配置DHCP 3.2 dhcpd.conf 的內容構成 3.3 全局設置,作…

RedisTemplate使用

文章目錄 RedisTemplate使用String類型Hash類型List類型Set類型Zset類型 RedisTemplate使用 String類型 Overridepublic void testString() {// t11();String key "k1";String currentNum;// 用法1:key是否存在Boolean value client.hasKey(key);log.i…

持續進化的難題:解析Transformer模型在增量學習中的挑戰

持續進化的難題:解析Transformer模型在增量學習中的挑戰 Transformer模型自問世以來,以其卓越的性能在自然語言處理(NLP)領域大放異彩。然而,當應用于增量學習場景時,即便是這一強大的模型也面臨著一系列挑…

Qt:15.布局管理器(QVBoxLayout-垂直布局、QHBoxLayout-水平布局、QGridLayout-網格布局、拉伸系數,控制控件顯示的大小)

目錄 一、QVBoxLayout-垂直布局: 1.1QVBoxLayout介紹: 1.2 屬性介紹: 1.3細節理解: 二、QHBoxLayout-水平布局: 三、QGridLayout-網格布局: 3.1QGridLayout介紹: 3.2常用方法&#xff1a…

如何在 Windows 10 上恢復未保存的 Word 文檔

您是否整晚都在處理一個重要的 word 文件,但忘記保存它了?本文適合您。在這里,我們將解釋如何恢復未保存的 word 文檔。除此之外,您還將學習如何恢復已刪除的 word 文檔。 從專業人士到高中生,每個人都了解丟失重要 W…

three完全開源擴展案例01-三角形漸變

演示地址 import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls.jsconst box document.getElementById(box)const scene new THREE.Scene()const camera new THREE.PerspectiveCamera(75, box.clientWidth / box.client…

SQL Server鏡像與日志:數據保護的雙重保障

SQL Server鏡像與日志:數據保護的雙重保障 在SQL Server的高可用性解決方案中,數據庫鏡像和日志傳送是兩種重要的技術,它們都旨在提供數據的安全性和業務連續性。然而,這兩種技術在實現方式和使用場景上有著明顯的區別。本文將深…

時間序列分析方法匯總對比及優缺點和適用情況(上)--1. 移動平均 2. 指數平滑 3. 自回歸模型 4. 移動平均模型 5. 自回歸移動平均模型

目錄 1. 移動平均(Moving Average) 2. 指數平滑(Exponential Smoothing) 3. 自回歸模型(Autoregressive Model, AR) 4. 移動平均模型(Moving Average Model, MA) 5. 自回歸移動…

杜比全景聲——空間音頻技術

什么是杜比?是否是標清、高清、超清之上的更清晰的格式?杜比全景聲 和傳統多聲道立體聲的差別?杜比全景聲音頻的渲染方式?車載平臺上杜比技術的應用? 杜比技術的起源 杜比實驗室(Dolby Laboratories&…

大數據基礎:Hadoop之MapReduce重點架構原理

文章目錄 Hadoop之MapReduce重點架構原理 一、MapReduce概念 二、MapReduce 編程思想 2.1、Map階段 2.2、Reduce階段 三、MapReduce處理數據流程 四、MapReduce Shuffle 五、MapReduce注意點 六、MapReduce的三次排序 Hadoop之MapReduce重點架構原理 一、MapReduce概…

ORACLE重裝之后恢復數據庫,相當于sqlserver的附加數據庫

在開發機器上經常會遇到重裝系統的問題,重裝之前如果ORACLE沒有及時備份的話重裝之后就糾結了,數據還原很頭疼。 只能找到一些ORACLE安裝與重裝系統前目錄相同的解決辦法,目錄不同就沒招了。 我用的是oracle11G。老版的應該相似。 經過我的嘗試,找到了幾個關鍵點,現在分…