在过去的几天里,我阅读了注意力背后的理论,何时应用它以及有哪些类型。我认为我对这个概念有一个不错的初步理解,但现在我想将我得到的一些见解应用到我自己的项目中,我发现自己陷入了在 TF 中实现注意力的问题。(快速链接到 TF Attention)
注意层要求我至少提供查询和值。如果我已经错了,请纠正我,但这是我对它们的想法:
- 查询:这些是我的解码器的隐藏状态
- 值:这些是我的编码器的隐藏状态
到现在为止还挺好。我正在努力解决的问题是我不知道解码器的隐藏状态可能来自哪里。我想实现一个自我注意机制。所以我的解码器隐藏状态是动态生成的,在实际应用注意力层之前我无法知道它们。文档中提供的示例对我没有帮助,因为它专注于我已经有一些查询序列的问题。
除了提到的 TF 注意力层是否适用于 self-attention 之外,我如何解释不同的输入?