self-attention(二) 矩阵运算

矩阵乘法角度讲解self-attention运作:

1、所有的a都有对象的q,k,v所以将所有的a拼接为一个矩阵。

 同理获得K,V

做矩阵点乘:(看作矩阵和向量相乘)

在转换成矩阵与矩阵相乘:

综上:self-attention输入是A,输出是Q。

进阶版:multi-head self-attention:

多个head:翻译之类多个head效果更好。

q找相关的v;想要用不同的q找不同种类的相关性。

2种不同的head找两种不同的相关性。

每一个head只做对应的headdot product.

Self-attention少了每一个向量的位置,操作其实是一摸一样的,所有位置距离相同。例如:词性标注位置信息是一个非常重要的信息。--àpositional encoding,为每一个位置设置一个向量。

每一个位置用一个不同的信息,每一列是一个positional encoding

Positional encoding的产生仍是一个待讨论的问题!!!(每一行是一个positional encoding

Self-attention应用:

  • 语音辨识:

语音向量是特别长的一个向量。或许不需要考虑一整个句子的长度,可以只截取一部分做处理。

  • 用于影像处理:

将每一个pixel看作是一个三维向量。整张图像其实就是一个5x10的向量。

目前也有人将self-attention用于影像处理上:

self-attentioncnn进行对比:

某一个pixel产生q,其他pixel产生v:考虑整张影像的信息。

Cnn是一个简单的self-attention,是因为他只考虑感受野之内的像素,而且感受野也是学出来的。Self-attention相当于一个复杂的cnn,因为他考虑的是整个图像。

Cnn通过对self-attention进行某种限制,就可以达到相同的结果。

cnn应用于图像上,把图像裁剪成16x16patch,每一个patch类别成一个单词。

横轴是资料量。随着资料量越来越多,self-attention可以超过cnn

  • Self-attentionrnn的区别:

RNN:处理数据也是一个序列:

RNNself-attention的区别:

1RNN的输出不是并行的,self-attention的输出是并行的。

2RNN的最后一个输出需要要考虑最左边的输入,必须要将最左边的输入放入到memory且不能忘记,一路带进去才可以。但self-attention完全不存在这种问题。

  • Self-attention应用于graph

图上的edge直接就反映了attention score.

Self-attention的最大问题就是运算量特别大!!!--à减少运算量是一个好的研究方向。

目前的各种self-attention,如上图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。七十二。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值