attention中计算权重值的几种方法

权重 α i \alpha_i αi

decoder的初始状态是encoder的最后一个状态 h m h_m hm,在attention下,encoder的所有状态都要保留下来。首先需要计算 s 0 s_0 s0与encoder的每一个 h i h_i hi的相关性(权重) α i = a l i g n ( h i , s 0 ) \alpha_i = align(h_i, s_0) αi=align(hi,s0)。最终算出来 α 1 , α 2 , ⋯   , α m \alpha_1, \alpha_2, \cdots, \alpha_m α1,α2,,αm a l p h a i alpha_i alphai都是介于01之间的实数,且所有 α \alpha α的和为1
在这里插入图片描述

计算方法

方法一(attention第一篇论文中提出的)

在这里插入图片描述
首先将 h i h_i hi s 0 s_0 s0作concatenation得到一个更高维的向量。然后求矩阵 w w w与这个向量的乘积,得到一个向量,然后将tanh应用于向量的每一个元素上,将每一个元素压缩到[-1,1],将tanh的输出与 v v v求内积,结果为一个实数 α i ~ \tilde{\alpha_i} αi~
需要注意的是,图中的矩阵 w w w v v v都是参数,需要通过训练数据学习。
求出 m m m个参数 α 1 ~ , α 2 ~ , ⋯   , α m ~ \tilde{\alpha_1}, \tilde{\alpha_2}, \cdots , \tilde{\alpha_m} α1~,α2~,,αm~需要对他们使用softmax变换(和为1):
[ α 1 , α 2 , ⋯   , α m ] = S o f t m a x ( [ α 1 ~ , α 2 ~ , ⋯   , α m ~ ] ) [\alpha_1, \alpha_2, \cdots, \alpha_m] = Softmax([\tilde{\alpha_1}, \tilde{\alpha_2}, \cdots , \tilde{\alpha_m}]) [α1,α2,,αm]=Softmax([α1~,α2~,,αm~])

方法二(更常用)

  1. Linear maps( W k , W Q W_k,W_Q Wk,WQ通过训练得到):
    k i = W k ⋅ h i k_i = W_k \cdot h_i ki=Wkhi, for i = 1  to  m i = 1 \text{ to } m i=1 to m
    q 0 = W Q ⋅ s 0 q_0 = W_Q \cdot s_0 q0=WQs0
  2. Inner product:
    α i ~ = k i T q 0 \tilde{\alpha_i} = k^{T}_{i}q_0 αi~=kiTq0, for i = 1  to  m i = 1 \text{ to } m i=1 to m
  3. Normalization:
    [ α 1 , α 2 , ⋯   , α m ] = S o f t m a x ( [ α 1 ~ , α 2 ~ , ⋯   , α m ~ ] ) [\alpha_1, \alpha_2, \cdots, \alpha_m] = Softmax([\tilde{\alpha_1}, \tilde{\alpha_2}, \cdots , \tilde{\alpha_m}]) [α1,α2,,αm]=Softmax([α1~,α2~,,αm~])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜色如墨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值