加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 含義
    • 計算步驟
    • 多頭自注意力
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

一文極速了解【自注意力機制】

12/20 07:22
146
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

當(dāng)下如火如荼的大模型,其中的關(guān)鍵技術(shù)就是注意力機制(Attention),于2015年提出。2017年的“Attention is all you need”一文提出了Transformer模型,去掉RNN,只保留注意力,性能吊打所有機器翻譯模型,是NLP發(fā)展的一個里程碑。

Attention的最主要的用途是自然語言處理,比如機器翻譯、情感分析;也有學(xué)者將其用于圖像處理,比如Vision Transformer(ViT),用了自注意力機制進一步提高了模型在ImageNet的分類性能。

含義

注意力機制(Attention)最初用于改進循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),提高Sequence-to-Sequence (Seq2Seq) 模型的表現(xiàn),主要是為了緩解模型對于長序列的遺忘問題。注意力機制允許模型在處理數(shù)據(jù)時,動態(tài)地關(guān)注數(shù)據(jù)的某些部分,而非靜態(tài)地處理整個輸入。

自注意力機制 (Self-Attention) 是注意力機制的一種擴展,不局限于 Seq2Seq 模型,可以用于任意的 RNN。它允許模型在處理一個序列時,計算序列內(nèi)各個元素之間的相互關(guān)系。

后來 Transformer 模型將 RNN 剝離,只保留注意力機制。 與 RNN + 注意力機制相比,只用注意力機制居然表現(xiàn)更好,在機器翻譯等任務(wù)上的效果有大幅提升。

自注意力層的輸入是序列(x1,…,xm),其中向量的大小都是din * 1。

其有兩個顯著優(yōu)點,

第一,序列的長度 m 可以是不確定的,可以動態(tài)變化。但是神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量保持不變。

第二,輸出的向量 ci 不是僅僅依賴于向量 xi,而是依賴于所有的輸入向量 (x1, …, xm)。

自注意力層有三個參數(shù)矩陣,分別表示query、key、value:

在這里插入圖片描述

計算步驟

輸入x映射到三元組(q,k,v)

首先,對于所有的 i = 1, · · · , m,把輸入的 xi 映射到三元組 (qi, ki, vi):

在這里插入圖片描述
在這里插入圖片描述

計算權(quán)重向量 α

在這里插入圖片描述

在這里插入圖片描述

計算輸出向量 c

在這里插入圖片描述

注意力的意義

在這里插入圖片描述

公式總結(jié)

在這里插入圖片描述
dk是K的維度,用來縮放點積,避免得到太大的數(shù)值。

非常推薦大家去閱讀一個白話解釋這個公式的博客,講得非常好,包括為什么要有Q、K、V三個矩陣,為什么Transformer能做到并行數(shù)據(jù)處理等?!禨elf-attention 公式解釋》

多頭自注意力

上面介紹的是單頭自注意力層,實踐中更常用的是多頭自注意力層,它是多個單頭的組合。
設(shè)多頭由 l 個單頭組成。每個單頭有自己的 3 個參數(shù)矩陣,所以多頭一共有 3l 個參數(shù)矩陣。它們的輸入都是序列 (x1, · · · , xm),它們的輸出都是長度為 m 的向量序列。

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

多頭的意義

1、并行學(xué)習(xí)多種關(guān)系:

多頭自注意力通過 并行地運行多個自注意力“頭” 來實現(xiàn)。每個“頭”學(xué)習(xí)序列中不同的特征或關(guān)系。這允許模型在不同的表示子空間同時捕獲序列的多種方面,學(xué)習(xí)更多樣化的特征,如不同類型的語義和句法信息。

2、提高模型的表達能力:

多頭機制增加了模型的表達能力。不同的注意力頭可以關(guān)注序列的不同部分,使模型能夠更全面地理解和表示數(shù)據(jù)。

總的來做,與單頭相比,多頭能提供更豐富的信息捕獲能力和更好的泛化能力,提高了模型在處理復(fù)雜序列數(shù)據(jù)時的表達能力和性能。

本文內(nèi)容為看完王樹森和張志華老師的《深度強化學(xué)習(xí)》一書的學(xué)習(xí)筆記,十分推薦大家去看原書!

相關(guān)推薦

電子產(chǎn)業(yè)圖譜