【问题标题】:Luong Attention and Bahdanau. When should we use Luong or Bahdanau? [closed]Luong 注意和 Bahdanau。我们什么时候应该使用 Luong 或 Bahdanau? [关闭]
【发布时间】:2019-04-30 07:44:03
【问题描述】:

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

【问题讨论】:

  • 感谢您的建议 :)

标签: machine-translation attention-model


【解决方案1】:

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

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

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

【讨论】:

  • 我认为 h(t) 应该是当前解码器状态,而 h(s) 是源隐藏状态。在 [Minh-Thang Luong 论文] (aclweb.org/anthology/D15-1166) 中,他说对齐向量 a(t) 是通过将当前目标隐藏状态 h(t) 与每个源隐藏状态进行比较得出的h(s)。他的意思是说 h(s) 是由编码器的多个隐藏状态串联创建的向量吗?
  • 你说得对,我交换了索引。是的,hs 是编码器正向和反向运行的串联。
猜你喜欢
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 2012-12-23
  • 2021-07-13
  • 2018-11-24
  • 1970-01-01
相关资源
最近更新 更多