Tensorflow 里昂注意力和巴达瑙注意力有什么区别?
这两个注意事项用于seq2seq模块。在TensorFlow文档中,这两种不同的注意被介绍为乘法和加法注意。有什么不同吗?在中对它们进行了很好的解释 主要区别在于如何对当前解码器输入和编码器输出之间的相似性进行评分。我已经讨论过了。在第3.1节中,他们提到了以下两种注意事项之间的区别:Tensorflow 里昂注意力和巴达瑙注意力有什么区别?,tensorflow,deep-learning,nlp,attention-model,Tensorflow,Deep Learning,Nlp,Attention Model,这两个注意事项用于seq2seq模块。在TensorFlow文档中,这两种不同的注意被介绍为乘法和加法注意。有什么不同吗?在中对它们进行了很好的解释 主要区别在于如何对当前解码器输入和编码器输出之间的相似性进行评分。我已经讨论过了。在第3.1节中,他们提到了以下两种注意事项之间的区别: Luong attention在编码器和解码器中都使用了顶部隐藏层状态。但是,Bahdanau注意将前向和后向源隐藏状态(顶部隐藏层)串联起来 在Luong attention中,他们在t时获得解码器隐藏状态。
我只是想添加一张图片,以便更好地理解@shamane siriwardhana 主要区别在于解码器网络的输出:scores=tf.matmul(query、key、transpose_b=True)
:scores=tf.reduce\u sum(tf.tanh(query+value),axis=-1)除了得分和局部/全局注意力之外,实际上还有很多不同之处。差异的简要总结:
有关更具体的细节,请参阅它像全球和本地关注吗?我已经阅读了pytorch seq2seq教程。所以,这只是分数函数在注意力上的不同。否则这两种注意都是软注意。我说的对吗?是的,但是Wa代表什么?它是移位标量、权重矩阵还是其他什么?@Zimeo是第一个点,直接使用点积测量相似度。“一般”方程中的Wa矩阵可以被认为是某种加权相似性或更一般的相似性概念,其中将Wa设置为对角矩阵可以提供点相似性。在我看来,第二种形式“一般”是点积思想的延伸。当我们把W_a设为单位矩阵时,两种形式是一致的。观察Luong形状的一种方法是对隐藏的单位进行线性变换,然后取它们的点积。这正是我们在代码中实现它的方式。Bandanau变体使用串联(或加法)而不是点积/乘法形式。