我想知道编码器的隐藏状态对注意力网络的作用有多大。当我研究注意力模型的结构时,我发现了一个模型的一般结构如下:
- x:输入。
- h:编码器的隐藏状态,它向前传递到下一个编码器的隐藏状态。
- s:解码器的隐藏状态,它以所有编码器隐藏状态的加权和作为输入,并向前传递到下一个解码器的隐藏状态。
- y:输出。
在像翻译这样的过程中,为什么编码器的隐藏状态需要向前传递或存在?我们已经知道下一个x会是什么。因此,输入的顺序对于输出的顺序并不一定重要,之前输入的记忆也无关紧要,因为注意力模型同时查看所有输入。难道不能直接在x的嵌入上使用注意力吗?
谢谢!
回答:
你可以轻松尝试一下,你会发现结果相当差。即使你在输入嵌入中添加了一些位置编码,结果仍然会很差。
顺序很重要。例如句子:
- John loves Marry.
- Marry loves John.
确实有不同的含义。此外,从编码器获得的不仅仅是顺序信息。编码器还进行输入消歧:例如“train”这样的同音异义词(参见https://arxiv.org/pdf/1908.11771.pdf)。此外,对训练好的神经网络的探测显示,编码器对输入句子发展出了一种相当抽象的表示(参见https://arxiv.org/pdf/1911.00317.pdf),并且翻译的大部分工作实际上已经在编码器中完成(参见https://arxiv.org/pdf/2003.09586.pdf)。