自编码器需要注意力机制吗?

17
我对自编码器中注意力机制的概念感到困惑。我认为我理解了在seq2seq翻译方面使用注意力的用法——在训练完组合的编码器和解码器之后,我们可以同时使用编码器和解码器创建(例如)语言翻译器。因为我们在生产中仍然使用解码器,所以我们可以利用注意力机制。
但是,如果自编码器的主要目标是生成输入向量的潜在压缩表示,该怎么办呢?我在谈论那些训练后基本上可以丢弃模型中解码器部分的情况。
例如,如果我使用没有注意力机制的LSTM,"经典"方法是使用最后一个隐藏状态作为上下文向量,它应该代表我的输入序列的主要特征。如果我使用带有注意力机制的LSTM,我的潜在表示将不得不包含每个时间步长的所有隐藏状态。这似乎不符合输入压缩和保留主要特征的概念。可能维数甚至会显著增加。
此外,如果我需要使用所有隐藏状态作为我的潜在表示(就像在注意力情况下一样),为什么要使用注意力呢?我可以只使用所有隐藏状态来初始化解码器。

你可以在大的隐藏状态后面添加一个小的前馈层来降低维度。 - Hai Feng Kao
是的,但这似乎完全违背了关注的初衷。关注是关于知道在给定上下文中哪些隐藏状态是相关的。添加一个线性维度将执行静态重要性选择。鉴于LSTM的递归性质,在解码期间第一层隐藏层应该是递归的最佳选择。那么为什么要使用关注呢? - user3641187
2个回答

1
答案很大程度上取决于您想要从自动编码器中使用表示的目的。每个自动编码器都需要一些使自动编码任务困难的东西,因此它需要一个丰富的中间表示来解决任务。它可以是体系结构中的瓶颈(如香草编码器-解码器模型的情况),也可以在源端添加噪声(您可以将BERT视为去噪自动编码器的特殊情况,在该情况下,某些输入令牌被掩盖)。
如果您在源端不引入任何噪声,则自动编码器将学习简单地复制输入,而不会学习除输入/输出符号的身份之外的任何内容-注意力将打破香草模型的瓶颈属性。对于标记编码器状态的情况也是如此。
有一些序列到序列的自动编码器(BARTMASS)使用编码器-解码器注意力。生成的噪声包括掩蔽和随机排列令牌。然后,他们学习的表示比仅具有编码器的模型(例如BERT)的表示更适合序列到序列任务(例如文本摘要或低资源机器翻译)。

0
"关注度被提出作为解决编码器-解码器模型的限制的方案,该模型将输入序列编码为一个固定长度的向量,从中解码每个输出时间步。当解码长序列时,这个问题被认为更加严重。"

https://machinelearningmastery.com/how-does-attention-work-in-encoder-decoder-recurrent-neural-networks/

这只是一种改进“无注意力”架构的方法,特别是在处理长序列时,压缩表示可能变得不足。

如果我使用带有注意力机制的LSTM,我的潜在表示将包括每个时间步的所有隐藏状态。这似乎不符合输入压缩和保留主要特征的概念。

欠完备潜在表示是正则化自编码器的一种方式,可以强制它们提取相关特征,但这不是必要条件。过完备自编码器(具有更高维度的潜在表示+正则化)也可以成功地学习相关特征。

如果您想了解更多信息,可以阅读:《深度学习》(Ian Goodfellow)-第14章。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接