Attention中存在的问题-错位对齐

本文是在学习RNN中Attention机制运用,所产生的一个问题,欢迎在评论区讨论。

在RNN网络中可以引入注意力机制来克服长距离依赖关系造成的困难,其网络示意图如下:
在这里插入图片描述

  1. 在这个新结构中,定义每个输出的条件概率为:
    𝑝(𝑦𝑖│𝑦1,⋯,𝑦𝑖−1, 𝒙)=𝑔(𝑦𝑖−1,𝑥𝑖,𝑐𝑖 )

  2. 其中𝑠𝑖为解码器RNN中的隐层状态:
    𝑠𝑖=𝑓(𝑠𝑖−1,𝑦𝑖−1,𝑐𝑖)

  3. 这里的上下文向量𝑐𝑖取决于注释向量序列 (encoder转化得到),通过使用注意力系数𝛼𝑖𝑗对 h𝑗 加权求得
    在这里插入图片描述

在RNN网络中attention的计算方式如下。其中函数a()为相似度计算函数,Si-1和hj是两个向量,因此最简单的相似度计算方式为点乘。
在这里插入图片描述

存在的问题

由于St的隐状态位置,因此采用St-1来代替近似,这导致一个问题,位置并未对齐。用一个例子说明这个问题:
下面图中添加了一句话:”Tom is a boy"
在这里插入图片描述
如果要计算"boy"和其它所有词的依赖权重aij,实际上使用的是"a"和其它词的相似度的权重。
在这个例子里,“boy"更依赖于"Tom”,但实际上使用的是"a"这个词计算权重aij,词"a"更依赖于词"is",因此最终计算"boy"时更多考虑了"is"的权重,这会产生较大的错位问题。

可能的解决的方法

  1. Transformer框架(参见《attention is all you need》)使用栈式编码器规避计算顺序依赖关系
  2. 对上层解码器中的隐状态S也采用一个双向RNN输出,来通过上下文计算依赖关系来减少误差。

如果你有更好的解决方案或者认为文本有误,欢迎在评论区提出~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值