注意力机制、Encoder、Decoder

注意力机制

开始我们先想一个问题:假设我要找工作,我怎么才能知道我在一个公司可能拿到多少工资呢?
将全公司所有人的工资进行平均?这显然不合理吧。
一个合理的想法是找到这个公司和我相同或类似岗位且与我教育经历、工作经验相似的人的工资做平均,这样的到平均显然就更接我可能拿到的工资。
其中:已知公司每个员工岗位经历等以及对应工资分别是Key和Value(K_i, V_i)
而我就是Query(Q),最后想要得到的工资就是求的Value

注意力机制的目的就是找到一个函数F[Q, (K_i, V_i)]通过Query找到相似的Key, 并根据与每个Key的相似度赋予不同的权重Weight, 通过这个权重Weight与对应Value求出目标Query的价值Value。
这个寻找Query相似的Key的 限制条件(相似度判别方法) 就是注意力。

Attention机制:神经网络接收的输入是很多大小不一的向量,并且不同向量向量之间有一定的关系,但是实际训练的时候无法充分发挥这些输入之间的关系而导致模型训练结果效果极差。注意力机制迫使模型在解码时学会将注意力集中在输入序列的特定部分,而不是仅仅依赖于decoder的输入。

定义:从大量输入信息里面选择小部分的有用信息来重点处理,并忽略其他信息,这种能力就叫做注意力(Attention)

计算

  1. 输入Query、Key、Value;
  2. 根据Query和Key计算两者之间的相关性/相似性(常见方法点乘、余弦相似度,一般用点乘),得到注意力得分;
  3. 对注意力得分进行缩放scale(除以维度的根号),再softmax归一化,再得到权重系数;
  4. 根据权重系数对Value值进行加权求和,得到Attention Value(此时的V是具有一些注意力信息的,更重要的信息更关注,不重要的信息被忽视了);

f ( q , ( k 1 , v 1 ) , … , ( k m , v m ) ) = ∑ i = 1 m α ( q , k i ) v i ∈ R v f\left(\mathbf{q},\left(\mathbf{k}_{1}, \mathbf{v}_{1}\right), \ldots,\left(\mathbf{k}_{m}, \mathbf{v}_{m}\right)\right)=\sum_{i=1}^{m} \alpha\left(\mathbf{q}, \mathbf{k}_{i}\right) \mathbf{v}_{i} \in \mathbb{R}^{v} f(q,(k1,v1),,(km,vm))=i=1mα(q,ki)viRv

α ( q , k i ) = softmax ⁡ ( a ( q , k i ) ) = exp ⁡ ( a ( q , k i ) ) ∑ j = 1 m exp ⁡ ( a ( q , k j

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值