0

我对机器学习概念很陌生,尤其是机器翻译。我读过关于 Luong's Attention 和 Bahdanau's Attention 的文章。据说 Luong 是“乘法”,而 Bahdanau 是“加法”。但我仍然不知道哪个更好,什么时候应该使用 Luong 或 Bahdanau

良

4

1 回答 1

4

tl;dr:Luong 的注意力计算速度更快,但对编码器和解码器状态做出了强有力的假设。他们的表现是相似的,并且可能取决于任务。但是,主流工具包(MarianOpenNMTNematusNeural Monkey)使用 Bahdanau 的版本。

更多细节:注意力分数的计算可以看作是计算解码器状态h t与所有编码器状态h s 的相似度。如果假设向量来自相同的向量空间,则可以简单地使用点积来衡量它们的相似性。如果假设编码器和解码器状态之间存在线性对应关系,则可以使用带有单矩阵乘法的通用变体。

这些假设可能不成立,或者至少没有充分的理由为什么它们应该是普遍的。但是,它们使注意力在计算上比标准 Bahdanau 的注意力更简单,这里表示为concat。Bahdanau 的注意力实际上是单个隐藏层网络,因此能够处理编码器和解码器状态之间的非线性关系。

于 2019-04-30T12:03:27.723 回答