Attention的基本原理与模型结构

我们尝试用人记忆和理解事物的方式来思考人工智能:
在这里插入图片描述

为什么我们需要引入这种Attention机制,以seq2seq为例:
在这里插入图片描述

传统的seq2seq可以理解为让RNN从左往右看一遍要Encode的序列,并将记忆不断存入隐藏层。但是隐藏层的维度是有限的,就像人类的记忆力有限,当序列很长时,读到最后一个word时很可能已经对开头的word发生遗忘,要以看一遍的记忆完整复述整个序列或者对序列做翻译等操作,是存在局限的。

因此我们可以借助人类产生工作记忆的方式,在decode时计算当前隐藏层和之前序列隐藏层的关联度,或者说当前这个decoder模块要关注的encoder隐藏层有哪些,要有多少关注度。
在这里插入图片描述
在这里插入图片描述

decoder端的隐藏层 z z z和encoder端隐藏层 h h h的关联度 α \alpha α计算可以有几种常见的方法:

  1. 利用余弦相似度计算 c o s ( z , h ) cos(z,h) cos(z,h)
  2. 以[ z , h z,h z,h]为输入, α \alpha α为目标输入训练全连接层
  3. α = h T W z \alpha = h^TWz α=hTWz W W W是可训练参数

求得每一个decoder隐藏层 z 0 , z 1 . . . z i , . . . z n z_0,z_1...z_i,...z_n z0,z1...zi,...zn和encoder端隐藏层 h 0 , h 1 , . . . , h j , . . . h m h_0,h_1,...,h_j,...h_m h0,h1,...,hj,...hm的关联度 α i j \alpha_i^j αij,并对其做softmax归一化,得到 α 0 ^ , α 1 ^ . . . α n ^ \hat{\alpha_0},\hat{\alpha_1}...\hat{\alpha_n} α0^,α1^...αn^, c i = ∑ k α i k ^ h k c_i = \sum_k \hat{\alpha_i^k}h^k ci=kαik^hk

c i 和 z i c_i和z_i cizi作为decoder端RNN的输入和隐藏层

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值