自然语言处理(NLP)基础知识——序列生成模型中的学习问题(一)

Teacher Forcing & Exposure Bias

教师强制 & 曝光偏差

  • 在自回归生成模型中,第 t t t步的输入为模型生成的前缀序列 x ^ 1 : ( t − 1 ) \hat{\boldsymbol{x}}_{1:(t-1)} x^1:(t1)。而在训练时,我们使用的前缀序列是训练集中的真实数据 x 1 : ( t − 1 ) \boldsymbol{x}_{1:(t-1)} x1:(t1),而不是模型预测的 x ^ 1 : ( t − 1 ) \hat{\boldsymbol{x}}_{1:(t-1)} x^1:(t1)。这种学习方式也称为教师强制(Teacher Forcing)

  • 在训练时,每步的输入 x 1 : ( t − 1 ) \boldsymbol{x}_{1:(t-1)} x1:(t1)来自于真实数据分布 p r ( x 1 : ( t − 1 ) ) p_{r}\left(\boldsymbol{x}_{1:(t-1)}\right) pr(x1:(t1));而在测试时,每步的输入 x ^ 1 : ( t − 1 ) \hat{\boldsymbol{x}}_{1:(t-1)} x^1:(t1)来自于模型分布 p θ ( x 1 : ( t − 1 ) ) p_{\theta}\left(\boldsymbol{x}_{1:(t-1)}\right) pθ(x1:(t1))。由于模型分布和真实数据分布并不严格一致,因此存在协变量偏移问题。一旦在预测前缀 x ^ 1 : ( t − 1 ) \hat{\boldsymbol{x}}_{1:(t-1)} x^1:(t1)的过程中存在错误,会导致错误传播,使得后续生成的序列也会偏离真实分布。这个问题称为曝光偏差问题(Exposure Bias)

Scheduled Sampling

计划采样

  • 为了缓解曝光偏差问题,我们可以在训练时混合使用真实数据和模型生成数据。在第 t t t步时,模型随机使用真实数据 x t − 1 x_{t-1} xt1或前一步生成的词 x ^ t − 1 \hat{x}_{t-1} x^t1作为输入

  • ϵ ∈ [ 0 , 1 ] \epsilon \in[0,1] ϵ[0,1]为一个控制替换率的超参数,在每一步时,以 ϵ \epsilon ϵ的概率使用真实数据 x t − 1 x_{t-1} xt1,以 1 − ϵ 1-\epsilon 1ϵ的概率使用生成数据 x ^ t − 1 \hat{x}_{t-1} x^t1。直觉上,如果一开始训练时的 ϵ \epsilon ϵ过小,模型相当于在噪声很大的数据上训练,会导致模型性能变差,并且难以收敛。因此,较好的策略是在训练初期赋予 ϵ \epsilon ϵ较大的值,随着训练次数的增加逐步减小 ϵ \epsilon ϵ的取值。这种策略称为计划采样(Scheduled Sampling)

  • ϵ i {\epsilon}_i ϵi为在第 i i i次迭代时的替换率,在计划采样中可以通过下面几种方法来逐步减小 ϵ \epsilon ϵ的取值

    • 线性衰减

      ϵ i = max ⁡ ( ϵ , k − c i ) \epsilon_{i}=\max (\epsilon, k-c i) ϵi=max(ϵ,kci)
      其中 ϵ \epsilon ϵ为最小的替换率, k k k c c c分别为初始值和衰减率

    • 指数衰减

      ϵ i = k i \epsilon_{i}=k^{i} ϵi=ki
      其中 k < 1 k<1 k<1为初始替换率

    • 逆Sigmoid衰减

      ϵ i = k / ( k + exp ⁡ ( i / k ) ) \epsilon_{i}=k /(k+\exp (i / k)) ϵi=k/(k+exp(i/k))
      其中 k ≥ 1 k\geq1 k1控制衰减速度

  • 计划采样的一个缺点是过度纠正,即在每一步中不管输入如何选择,目标输出(Ground Truth)依然是来自于真实数据,这可能使得模型预测一些不正确的序列

训练目标不一致问题

训练目标不一致问题

  • 序列生成模型的好坏通常采用和任务相关的指标来进行评价,比如BLEU、ROUGE等。然而,在训练时通常是使用最大似然估计来优化模型,这导致训练目标和评价方法不一致。并且这些评价指标一般都是不可微的,无法直接使用基于梯度的方法来进行优化。

  • 基于强化学习的序列生成

    • 在第 t t t步,动作 a t a_t at可以看作从词表中选择一个词,状态 s t s_t st为之前步骤中生成的前缀序列 x 1 : ( t − 1 ) \boldsymbol{x}_{1:(t-1)} x1:(t1),采用Policy Gradient进行训练

    • 可以使用BLEU或ROUGE作为Reward,解决了训练与评价目标不一致,也解决了曝光偏差问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值