公式 (10.4.1) 是 Bahdanau 注意力模型中的一个关键公式,用于计算在解码时间步 ( t’ ) 的上下文变量 (\mathbf{c}_{t’}):
[
\mathbf{c}{t’} = \sum{t=1}^T \alpha(\mathbf{s}_{t’ - 1}, \mathbf{h}_t) \mathbf{h}_t
]
下面对公式进行详细解释:
-
上下文变量 (\mathbf{c}_{t’}):
- 这是解码器在时间步 ( t’ ) 使用的上下文变量,它是编码器输出的加权和。上下文变量包含了编码器隐状态中与当前解码步相关的重要信息。
-
注意力权重 (\alpha(\mathbf{s}_{t’ - 1}, \mathbf{h}_t)):
- 注意力权重 (\alpha(\mathbf{s}_{t’ - 1}, \mathbf{h}_t)) 表示在解码时间步 ( t’ ) 上,编码时间步 ( t ) 的隐状态 (\mathbf{h}t) 对解码器隐状态 (\mathbf{s}{t’ - 1}) 的相关性。它是通过注意力机制计算得到的。
-
加性注意力打分函数:
-
注意力权重 (\alpha(\mathbf{s}_{t’ - 1}, \mathbf{h}t)) 是使用加性注意力打分函数计算的。这一函数衡量解码器隐状态 (\mathbf{s}{t’ - 1}) 与编码器隐状态 (\mathbf{h}t) 之间的相似性。具体地,这一分数 (e{t’, t}) 计算如下:
[
e_{t’, t} = \mathbf{v}^T \tanh(\mathbf{W}1 \mathbf{s}{t’ - 1} + \mathbf{W}_2 \mathbf{h}_t)
]其中,(\mathbf{v})、(\mathbf{W}_1) 和 (\mathbf{W}_2) 是可学习的参数。
-
-
softmax 归一化:
-
计算完打分 (e_{t’, t}) 后,将其通过 softmax 函数归一化,得到注意力权重 (\alpha_{t’, t}):
[
\alpha_{t’, t} = \frac{\exp(e_{t’, t})}{\sum_{k=1}^T \exp(e_{t’, k})}
]
-
-
上下文变量计算:
-
最后,使用注意力权重 (\alpha_{t’, t}) 对编码器隐状态 (\mathbf{h}t) 进行加权求和,得到上下文变量 (\mathbf{c}{t’}):
[
\mathbf{c}{t’} = \sum{t=1}^T \alpha(\mathbf{s}_{t’ - 1}, \mathbf{h}_t) \mathbf{h}_t
]
-
总结起来,公式 (10.4.1) 描述了在每个解码时间步 ( t’ ),如何根据前一个解码时间步的隐状态 (\mathbf{s}_{t’ - 1}) 和所有编码时间步的隐状态 (\mathbf{h}t),计算出一个上下文变量 (\mathbf{c}{t’})。这个上下文变量是编码器输出的加权和,权重由注意力机制决定,能够动态地根据解码需求关注输入序列的不同部分。这样,可以有效地利用编码器输出中的相关信息,提高序列到序列任务的性能。