dual learning for machine translation

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

算法具体流程如下:

这里写图片描述

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 的梯度为:

这里写图片描述

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

这里写图片描述

模型更新为:

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值