不用看数学公式!图解谷歌神经机器翻译核心部分:注意力机制( 七 )

需要注意的是,基于softmaxed得分的score^。注意力仅按预期分布在[5,0,1]上。实际上,这些数字不是二进制数,而是0到1之间的浮点数。

第四步:将每个编码器的隐藏状态乘以其softmax得分

将每个编码器的隐藏状态与其softmaxed得分(标量)相乘,就能获得对齐向量。这就是发生对齐机制的地方。

encoder_hidden score score^ alignment----------------------------------------[0, 1, 1] 15 0 [0, 0, 0] [5, 0, 1] 60 1 [5, 0, 1] [1, 1, 0] 15 0 [0, 0, 0] [0, 5, 1] 35 0 [0, 0, 0]

由于注意力分数很低,除了[5,0,1]之外的所有编码器隐藏状态的对齐都减少到了0。这意味着,我们可以预期,第一个被翻译的单词,应该与带有[5,0,1]嵌入的输入单词匹配起来。

第五步:将对齐向量聚合起来

将对齐向量聚合起来,得到语境向量。

encoder_hidden score score^ alignment----------------------------------------[0, 1, 1] 15 0 [0, 0, 0] [5, 0, 1] 60 1 [5, 0, 1] [1, 1, 0] 15 0 [0, 0, 0] [0, 5, 1] 35 0 [0, 0, 0]context = [0+5+0+0, 0+0+0+0, 0+1+0+0] = [5, 0, 1]

推荐阅读