Seq2Seq/NLP/Translation:生成目标句子后,最后的解码器隐藏状态是不是带有任何残余意义?

Posted

技术标签:

【中文标题】Seq2Seq/NLP/Translation:生成目标句子后,最后的解码器隐藏状态是不是带有任何残余意义?【英文标题】:Seq2Seq/ NLP/Translation: After generating the target sentence, does the last decoder hidden state carry any residual meaning?Seq2Seq/NLP/Translation:生成目标句子后,最后的解码器隐藏状态是否带有任何残余意义? 【发布时间】:2020-05-10 19:38:05 【问题描述】:

我现在正在研究机器翻译,我对一个更深入地探讨句子表示内部的问题感兴趣。

假设我们在并行语料库上训练一个编码器-解码器 Seq2Seq En-Fr 翻译系统,从预先训练的 Eng 和 Fr 词向量开始。该系统可以使用任何东西来形成句子嵌入(Transformers、LSTMs 等)。那么 Seq2Seq 翻译系统的工作是学习从 Eng 词向量构建 Eng 句子表示,并学习从法语词向量构建法语句子表示,并通过编码器和解码器的链接,在同一空间中学习这两个句子表示.

在训练模型后,用模型对一些英文句子进行编码(例如,“This is not a pipe.”),联合表示空间中的句子嵌入对“this”、“is”等词有了一些概念, 'not', 'a', 'pipe' 等以及它们的所有关联以及它们出现的顺序。 (1)

当解码器在编码上运行时,由于在训练期间输入的大量语料库和单词之间的统计关联,它能够取出上述信息,并相应地输出'Ceci',' n',''','est','pas','une','pipe','(EOS)'。在每一步,它从解码器隐藏状态中提取并输出下一个法语单词并对其进行转换,以便解码器可以找到下一个要解码的启发式“最突出”单词,依此类推,直到'(EOS)' .

我的问题是:在 (EOS) 是输出之后的最后一个解码器隐藏状态是否有任何解释?它对其他东西有用吗?当然,一个简单的答案是“不,该模型被训练为捕获数百万行英文文本并对其进行处理,直到某个单词与隐藏状态结合产生(EOS)并且最后一个解码器隐藏状态就是这样,其他一切都不是明确训练的只是噪音而不是信号”。

但我想知道这是否还有其他内容?我想要得到的是,如果你有一个用英语生成的句子嵌入,并且解码器模型用法语将其含义转储出来,是否还有任何残留的含义无法从英语翻译成法语?当然,任何特定句子翻译的最后一个隐藏状态都很难解释,但总体而言如何(比如每个要翻译的句子的最后隐藏状态的聚合,其中包含“法语”一词,这在英语中的意思略有不同,因为它可以与“薯条”等配对。这是一个愚蠢的例子,但你可能会想到其他人利用文化歧义等,这会出现在语言中。)最后一个嵌入可能会捕捉到一些关于翻译的统计“不确定性”或歧义(可能像英语可能的“含义”和可能以法语结束但没有的关联?)或可能用于帮助我们理解的语言的其他结构方面比如说,英语和法语有什么不同?

你认为这个问题的答案属于哪一类?

“没有信号”, “可能有一些信号,但它会是 很难提取,因为取决于 模型经过训练” “有一个可以可靠提取的信号, 即使我们必须聚合数百万个示例”?

我不确定这个问题是否有意义,但我很好奇答案,是否在这方面进行了任何研究?我只是出于好奇而问。

注意事项: 我知道最后一个隐藏状态存在,因为它与最后一个词一起生成(EOS)。这就是它的目的,没有其他东西(?)使它特别。我想知道我们是否可以从中获得更多意义(即使这意味着要对其进行转换,例如再对它应用一次解码器步骤之类的)。

(1) (当然,ML 模型没有像人类那样丰富的“概念”,它与思想、经验和感受的所有关联,对于 ML 模型,“概念”仅与其他词有关联见于单语语料库进行词向量训练和双语语料库进行翻译训练。)

【问题讨论】:

【参考方案1】:

回答我自己的问题,但仍然对想法感兴趣。我有一种预感,答案是“否”,因为隐藏状态嵌入的生成只考虑了两个属性:(1)在法语的所有标记中,与下一个输出标记的余弦距离“最接近”,并且( 2)当解码器变换应用于下一个词时,产生对应于下一个词的隐藏状态。为了使最后一个隐藏状态有一个解释,而不是“它是 300 维(或我们使用的任何维度嵌入)单位圆上的点以与法国(EOS)令牌的余弦距离接近”,这意味着我们将应用(2) 对它。但是训练数据从未有任何跟随 (EOS) 的示例,因此如果我们将解码器转换应用于最后一个隐藏状态,我们得到的结果从未被学习过,并且只是随机的,具体取决于我们的模型初始化。

如果我们想了解英语和法语联合嵌入空间的“匹配”有多好,我们应该查看和比较各种翻译的测试损失,而不是查看最后的隐藏状态。但如果有人有不同的想法,仍然对人们对此事的想法感兴趣。

【讨论】:

以上是关于Seq2Seq/NLP/Translation:生成目标句子后,最后的解码器隐藏状态是不是带有任何残余意义?的主要内容,如果未能解决你的问题,请参考以下文章

变量的生存期和存储分配

第一章生孩子的男人

android之活动状态生存期启动模式

C语言变量的作用域和生存期问题

尊享e生守护e生健康要求严格,投保前请咨询我

医学生都想学的纵向随访数据分析,你学会了吗?