③以上图"N-M"示意图为例,画图解释加上Attention后是如何计算的。 ④这⾥⾯是如何体现的注意⼒的分配的
时间: 2024-04-03 13:34:58 浏览: 64
下面是加入Attention后的计算过程:
1. 将输入序列经过embedding层后得到形状为(N, d)的编码矩阵,其中d是词向量的维度,N是输入序列的长度。
2. 编码矩阵经过多层双向GRU层处理后,得到上下文感知的编码向量,形状为(N, 2h),其中h是每个单向GRU的隐藏状态维度。
3. 解码器的初始状态为零向量或者通过一个全连接层从编码向量中提取得到,形状为(1, h)。
4. 在每个时间步t,解码器的状态st和上一步的输出yt-1通过一个注意力计算,得到当前时间步的上下文向量ct。
5. 上下文向量ct和解码器的当前状态st通过一个GRU层得到新的解码器状态st+1。
6. 新的解码器状态st+1通过一个全连接层得到输出概率分布yt。
7. 重复步骤4-6,直到输出指定的结束符或者达到一定的输出长度。
在Attention机制中,注意力的分配体现在计算上下文向量ct的过程中。具体来说,对于解码器的每个状态st,都会计算一个与编码向量相关的权重分布,表示编码向量中每个位置对当前状态的影响程度,这个权重分布就是注意力分配的结果。权重分布可以通过计算解码器状态st和编码向量的点积得到,然后经过softmax归一化处理,得到一个概率分布。最后,将编码向量和权重分布相乘并求和得到上下文向量ct。因此,Attention机制能够使得模型在解码器每个时间步都能够聚焦于输入序列中与之最相关的部分,从而提高模型的准确性和性能。
阅读全文