Attention 机制

注意力机制解决seq2seq模型中长文本信息丢失问题。分为BahdanauAttention和LuongAttention,通过加权平均encoder隐藏状态来突出重要信息。Bahdanau使用前一时刻的解码器状态,Luong使用当前时刻状态,得分计算方式有所不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 为什么要引入注意力机制
    在原本的 encoder-decoder 模型中,无论输入的文本序列有多长,都会讲信息压缩成一个固定维度的向量 c 。维度固定,存储的信息量也就固定了,那么对于长文本序列,会丢失很多信息,这是我们不想看到的。注意力机制的引入就是为了解决这个问题。

  2. 注意力机制

分两种:BahdanauAttention 与 LuongAttention

BahdanauAttention
图片来自论文
加了注意力机制以后,向量 c 的维度依然是固定的,但是在每个时间步, c 的值都会改变,或者说从原来的的单个向量 c 变成了一组向量 c i c_i ci

c i 的 公 式 c_i 的公式 ci
c i = ∑ j = 1 T α i j h j c_i = \sum_{j=1}^T\alpha_{ij}h_j ci=j=1Tαijhj

α i j = e x p ( e i j ) ∑ k = 1 T e x p ( e i k ) , \alpha_{ij} = \frac{exp(e_{ij})}{\sum_{k=1}^Texp(e_{ik})}, αij=k=1Texp(eik)exp(eij),
e i j = a ( s i − 1 , h j ) = v a T t a n h ( W a s i − 1 + U a h j ) e_{ij} = a(s_{i-1}, h_j) = v_a^Ttanh(W_as_{i-1}+U_ah_j) eij=a(si1,hj)=vaTtanh(Wasi1+Uahj)
其中 i 代表输出的第 i 个位置, j 代表输入的 第 j 个位置。
a 代表一种分数的计算方式。最简单的方式就是点积了
e i j e_{ij} eij(或者 α i j \alpha_{ij} αij) 衡量了输入位置 j 和输出位置 i 的匹配程度,或者说是相关性,越相关,值越大,对应了权重的概念。
c i c_i ci 代表了对 encoder hidden states 的加权平均,权重是 α i j \alpha_{ij} αij .
这样在不同阶段 c i c_{i} ci 的信息重要程度不同,就不用担心遗失重要的信息了。

LuongAttention

公式如下:
c i = ∑ j = 1 T α i j h j c_i = \sum_{j=1}^T\alpha_{ij}h_j ci=j=1Tαijhj
α i j = e x p ( e i j ) ∑ k = 1 T e x p ( e i k ) , \alpha_{ij} = \frac{exp(e_{ij})}{\sum_{k=1}^Texp(e_{ik})}, αij=k=1Texp(eik)exp(eij),
e i j = { h j T s i dot h j T W a s i general v a T t a n h [ h j T , s i ] concat e_{ij}= \begin{cases} h_j^Ts_i& \text{dot}\\ h_j^TW_as_i& \text{general} \\ v_a^Ttanh{[h_j^T,s_i]} &\text{concat} \end{cases} eij=hjTsihjTWasivaTtanh[hjT,si]dotgeneralconcat
注:为了和上文保持一致,我将 h s ‾ \overline{h_s} hs 换成了 s i s_i si, h t h_t ht 换成了 h j h_j hj

它们的不同点:

  1. 在计算第 i 个位置的分数时,BahdanauAttention 选择了 s i − 1 s_{i-1} si1, 而 LoungAttention 选择了 s i s_i si
  2. BahdanauAttention 对 Encoder 和 Decoder 的双向的 RNN 的 state 拼接起来作为输出,LuongAttention 仅使用最上层的 RNN 输出
  3. 得分的计算方式

这只是两种最基本的形式,先说这么多。。。

参考:
Neural Machine Translation by Jointly Learning to Align and Translate
Effective Approaches to Attention-based Neural Machine Translation
BahdanauAttention与LuongAttention注意力机制简介

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值