self-attention学习笔记

self-attention学习笔记

记录摸鱼时候的学习笔记–self-attention篇

笔记来源于2021李宏毅机器学习视频中self-attention & transformer课程。

(1)基础知识

两种词编码方式:One-hot(0/1 稀疏)、word embedding(具有相关性)

可以作为向量输入:声音信号(使用滑动窗口)、图(比如social network、分子)

输出:一个向量输出一个类别(例如词性—每个单词对应一个词性)、一个序列(多个向量组成)输出一个类别(例如情感分析)、模型决定输出类别数量–seq2seq

(2)一个向量输出一个类别–sequence labeling(self-attention的引子)

: 引子
Model – FC层。情形1,每个word用fc预测类别且每个word的预测相互独立,问题:相同的单词用不同的fc层,不合理。情形2,相邻的word和FC层相互连接 with a window,问题:无法反应整个序列,如果window把整个sequence盖住–>运算量太大。

(3)self-attention

用矩阵求self-attention。

step1:计算Q、K、V。

由输入a得到Q、K、V,如下图所示。将输入的vector–a1-a4拼成一个矩阵I,分别乘上上三个矩阵Wq、Wk、Wv得到Q、K、V。注:只有Wq、Wk、Wv为可学习参数。
step1

step2:计算attention分数。

每个q和每个k计算点乘得到attention分数,如下图所示。拆分做法,例如将k1的转置和q1做点乘得到α1,1,同理可得到α1,2、α1,3、α1,4,而后,将k1-k4组成一个矩阵和q1做点乘,可得到α1,1、α1,2、α1,3、α1,4组成的矩阵,同理点乘q2、q3、q4可得到一个大的α矩阵–A。矩阵做法,K的转置点乘Q,得到A。最后softmax/relu,可得到A’。
step2

step3:计算输出O。

求O。V点乘A’,如下图所示。
step3

(4)multi-head self-attention

视频以2个head为例子,如下图所示。和self-attention做类别,相当于t个head就多了t组可学习的参数W,也相当于做了t次self-attention。
multi-head self-attention

(5)位置编码(positional encoding)

每个位置a对应有个专门的位置向量ei,如下图所示。
positional encoding

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值