注意力机制与Transformer模型详解
1. 注意力机制概述
注意力机制在自然语言处理等领域发挥着重要作用,它能够帮助模型聚焦于输入序列的关键部分,从而提升性能。下面我们将详细介绍几种不同类型的注意力机制及其应用。
1.1 带注意力的Seq2seq模型
传统的Seq2seq模型使用RNN解码器,形式为 $h_d^t = f_d(h_d^{t - 1}, c)$,其中 $c$ 是固定长度的上下文向量,通常设为编码器RNN的最终状态。然而,对于机器翻译等任务,这种模型可能表现不佳,因为输出无法直接访问输入单词。
为了解决这个问题,我们可以使用(软)注意力机制。让解码器函数变为 $h_d^t = f_d(h_d^{t - 1}, c_t)$,其中上下文向量 $c_t$ 通过输入编码向量的加权和计算:
$c_t = \sum_s A_{ts}h_e^s$
注意力权重 $A_{ts}$ 由下式给出:
$A_{ts} = \frac{\exp(score(h_d^{t - 1}, h_e^s))}{\sum_{s’ = 1}^{S’} \exp(score(h_d^{t - 1}, h_e^{s’}))}$
常见的得分函数有两种:
- Luong的乘法风格:$score(a, b) = a^⊤Wb$
- Bahdanau的加法风格:$score(a, b) = v^⊤\tanh(W_1a + W_2b)$
我们可以在句子对上以常规方式训练该模型,然后用于翻译任务。同时,还可以可视化解码过程中计算的注意力权重,了解模型认为哪些输入部分对生成相应输出最相关。
超级会员免费看
订阅专栏 解锁全文
6125

被折叠的 条评论
为什么被折叠?



