对于翻译系统,如语言A翻译到语言B,通常需要大量的语言对来训练神经机器翻译,而数据量的增大会大大的增加成本。本文通过构建两个神经翻译网络,θAB和θBA,这两个网络分别用于将语言A翻译到语言B和语言B翻译到语言A。文章先采用少量的语言对训练好这两个模型。之后,采用无监督学习,训练这两个模型,具体为将语言A输入网络θAB,同时将θAB的输出输入到网络θBA中,再采用强化学习的思想,对网络θAB和网络的θBA输出进行奖惩,构建损失函数。

算法具体流程如下:

dual learning for machine translation

1.语言模型

分别训练好语言模型 LMA,LMB,语言模型用于判别一个句子的自然度,相当语seq2seq的decoder阶段,模型结构为rnn,模型输入为一个句子,模型输出为decoder的句子,要使输入和输出句子相等,模型结构为:

我们分别使用语言A、B训练语言模型 LMA,LMB,得到语言模型后,便可以对该语言模型进行输入一个句子,并预测这个句子的概率,把这个概率作为该语句的自然度。

2.翻译系统

得到训练好的语言模型后,初始化语言模型LMA,LMB和翻译模型θABθBA,将语s输入翻译模型θAB,采用beam search生成k个中间语句,将这k个语句输入语言模型LMB,从而得到这k个语句的自然度r1,k,从而得到奖励r1,k。同时将这k个语句输入翻译模型θBA,计算这k个语句预测输入语句s的概率,即交流得分r2,k,最后我们得到总的得分:rk=αr1,k+(1α)r2,k

梯度计算:

计算翻译模型θAB的梯度为:

dual learning for machine translation

计算翻译模型θBA的梯度为:

dual learning for machine translation

模型更新为:

dual learning for machine translation

相关文章:

  • 2021-11-01
  • 2021-10-15
  • 2021-12-08
  • 2021-11-04
  • 2022-12-23
  • 2021-10-09
  • 2021-06-23
  • 2021-12-07
猜你喜欢
  • 2021-09-07
  • 2021-09-06
  • 2021-05-15
  • 2021-05-08
  • 2021-09-19
  • 2021-07-26
相关资源
相似解决方案