我应该使用什么损失函数来对seq2seq RNN模型进行评分?


10

我正在研究Cho 2014论文,该论文介绍了用于seq2seq建模的编码器-解码器体系结构。

在本文中,他们似乎使用给定输入(或负对数似然)的输出概率作为长度为M的输入和长度为N的输出y的损失函数:xMyN

P(y1,,yN|x1,,xM)=P(y1|x1,,xm)P(y2|y1,x1,,xm)P(yN|y1,,yN1,x1,,xm)

但是,我认为将其用作损失函数会遇到一些问题:

  1. 似乎假设教师在训练期间是强迫的(即,不是使用解码器的位置猜测作为下一次迭代的输入,而是使用已知标记。
  2. 它不会惩罚长序列。由于概率是输出的N,因此如果解码器生成更长的序列,则第一个N之后的所有内容都不会计入损失。1NN
  3. 如果模型预测字符串尽头的早期令牌,则损失函数仍需要步-这意味着我们将基于未经训练的模型“流形”生成输出。这似乎草率。N

这些顾虑是否有效?如果是这样,那么向更高级的损失功能迈进了吗?

Answers:


1

似乎假设教师在训练期间是强迫的(即,不是使用解码器的位置猜测作为下一次迭代的输入,而是使用已知标记。

logP(y1,,yN)P(y)=iP(yi|y<i)x

鉴于MLE的普遍性以及缺乏好的替代方案,我认为假设“教师强迫”并不令人反感。

但是,确实存在问题-即,模型将高可能性分配给所有数据点,但是来自模型的样本不一定会出现在真实的数据分布中(这会导致“低质量”样本)。您可能对“教授强迫”(Lamb等人)感兴趣,该教授通过对抗性训练程序减轻了这种情况,而没有放弃MLE。

它不会惩罚长序列。由于概率是输出的1到N,因此如果解码器生成更长的序列,则第一个N之后的所有内容都不会计入损失。

如果模型预测字符串尽头的早期令牌,则损失函数仍需要N步-这意味着我们将基于未经训练的模型“流形”生成输出。这似乎草率。

这些都不是训练时发生的问题。与其将自回归序列模型视为输出预测的过程,不如将其视为计算给定序列的可能性的一种方法。该模型永远不会预测任何东西-您可以从分布中采样序列或令牌,也可以询问它最有可能出现的下一个令牌-但这与预测至关重要(而且您在训练期间不采样)要么)。

如果是这样,那么向更高级的损失功能迈进了吗?

可能会根据具体情况为不同的建模任务专门设计目标。但是我要说的是MLE仍然占主导地位-最近的GPT2模型在广泛的自然语言建模和理解任务方面获得了最先进的性能,并以此进行了训练。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.