介绍
序列生成有广泛的应用,如机器翻译、序列标注(实体识别等)、文本摘要、问答等等。从机器学习的角度来说,序列生成就是给定一些上下文(context)$x$,然后生成序列 $y$(即 $y_1y_2…y_T$)。针对序列生成任务,使用监督学习时,不管是用CNN、RNN还是Transformer来建模型,最终优化的目标大多是最小化negative log-likelihood,目标函数公式如下:
当模型训练完后,一般用如下greedy search的方式生成序列 $\hat{y}=[\hat{y}_1,…\hat{y}_T]$,即选每一个时间步骤上选择概率最大的输出,其中$\hat{y}_t$表示第 $t$ 步生成的输出:
对文本生成(如摘要、翻译)任务来说,评估函数一般是ROUGE, BLEU。监督学习很难直接对这类不可微分的评估函数进行学习。这就使得训练和测试的时候产生了偏差。于是强化学习(Reinforcement Learning)的优势就体现出来。强化学习不需要反馈(reward)或者损失是可微分的,因而可以使用任何评估函数用来进行优化学习。