热门问题
时间线
聊天
视角
注意力機制
人工神经网络中一种模仿认知注意力的技术 来自维基百科,自由的百科全书
Remove ads
注意力機制(英語:attention)是類神經網路中一種模仿認知注意力的技術。這種機制可以增強神經網路輸入資料中某些部分的權重,同時減弱其他部分的權重,以此將網路的關注點聚焦於資料中最重要的一小部分。資料中哪些部分比其他部分更重要取決於上下文。可以透過梯度下降法對注意力機制進行訓練。
類似於注意力機制的架構最早於1990年代提出,當時提出的名稱包括乘法模組(multiplicative module)、sigma pi單元、超網路(hypernetwork)等。[1]注意力機制的靈活性來自於它的「軟權重」特性,即這種權重是可以在執行時改變的,而非像通常的權重一樣必須在執行時保持固定。注意力機制的用途包括神經圖靈機中的記憶功能、可微分神經電腦中的推理任務[2]、Transformer 模型中的語言處理、Perceiver(感知器)模型中的多模態資料處理(聲音、圖像、影片和文字)。[3][4][5][6]
Remove ads
概述
假設我們有一個以索引 排列的標記(token)序列。對於每一個標記 ,神經網路計算出一個相應的滿足 的非負軟權重 。每個標記都對應一個由詞嵌入得到的向量 。加權平均 即是注意力機制的輸出結果。
可以使用查詢-鍵機制(query-key mechanism)計算軟權重。從每個標記的詞嵌入,我們計算其對應的查詢向量 和鍵向量 。再計算點積 的 softmax 函式便可以得到對應的權重,其中 代表當前標記、 表示與當前標記產生注意力關係的標記。
某些架構中會採用多頭注意力機制(multi-head attention),其中每一部分都有獨立的查詢(query)、鍵(key)和值(value)。
Remove ads
語言翻譯範例
下圖展示了將英語翻譯成法語的機器,其基本架構為編碼器-解碼器結構,另外再加上了一個注意力單元。在圖示的簡單情況下,注意力單元只是迴圈層狀態的點積計算,並不需要訓練。但在實踐中,注意力單元由需要訓練的三個完全連接的神經網路層組成。這三層分別被稱為查詢(query)、鍵(key)和值(value)。
下表是每一步計算的範例。為清楚起見,表中使用了具體的數值或圖形而非字母表示向量與矩陣。巢狀的圖形代表了每個h都包含之前所有單詞的歷史記錄。在這裡,我們引入注意力分數以得到所需的注意力權重。
步 | x | h, H = 編碼器輸出 大小為 500×1 的向量,以圖形表示 |
s = 解碼器提供給注意力單元的輸入 | 對準分數 | w = 注意力權重 = softmax(分數) |
c = 上下文向量 = H*w | y = 解碼器輸出 |
1 | I | ![]() |
- | - | - | - | - |
2 | love | ![]() |
- | - | - | - | - |
3 | you | ![]() |
- | - | - | - | - |
4 | - | - | 解碼器尚未初始化,故使用編碼器輸出h3對其初始化 ![]() |
[.63 -3.2 -2.5 .5 .5 ...] | [.94 .02 .04 0 0 ...] | .94 * ![]() ![]() ![]() |
je |
5 | - | - | s4 | [-1.5 -3.9 .57 .5 .5 ...] | [.11 .01 .88 0 0 ...] | .11 * ![]() ![]() ![]() |
t' |
6 | - | - | s5 | [-2.8 .64 -3.2 .5 .5 ...] | [.03 .95 .02 0 0 ...] | .03 * ![]() ![]() ![]() |
aime |
以矩陣展示的注意力權重表現了網路如何根據上下文調整其關注點。
I | love | you | |
je | .94 | .02 | .04 |
t' | .11 | .01 | .88 |
aime | .03 | .95 | .02 |
對注意力權重的這種展現方式回應了人們經常用來批評神經網路的可解釋性問題。對於一個只作逐字翻譯而不考慮詞序的網路,其注意力權重矩陣會是一個對角占優矩陣。這裡非對角占優的特性表明注意力機制能捕捉到更為細微的特徵。在第一次透過解碼器時,94%的注意力權重在第一個英文單詞「I」上,因此網路的輸出為對應的法語單詞「je」(我)。而在第二次透過解碼器時,此時88%的注意力權重在第三個英文單詞「you」上,因此網路輸出了對應的法語「t'」(你)。最後一遍時,95%的注意力權重在第二個英文單詞「love」上,所以網路最後輸出的是法語單詞「aime」(愛)。
Remove ads
變體
注意力機制有許多變體:點積注意力(dot-product attention)、QKV 注意力(query-key-value attention)、強注意力(hard attention)、軟注意力(soft attention)、自注意力(self attention)、交叉注意力(cross attention)、Luong 注意力、Bahdanau 注意力等。這些變體重新組合編碼器端的輸入,以將注意力效果重新分配到每個目標輸出。通常而言,由點積得到的相關式矩陣提供了重新加權係數(參見圖例)。
參考文獻
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads