无隐藏状态的注意力网络?

我想知道编码器的隐藏状态对注意力网络的作用有多大。当我研究注意力模型的结构时,我发现了一个模型的一般结构如下:

  • 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)。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注