转载自: http://www.yongfeiyan.cn/post/md/1

介绍

为了更好地利用目标语言单语语料, Improving Neural Machine Translation Models with Monolingual Data 提出了两种方式

  • 假如有目标语言句子y, 将源语言对应的句子设置为空, 得到句对 (dummy, y), 加入到平行语料中进行训练. 这样在有平行句对和(dummy, y)句对的情况下, 训练翻译系统可以想想成翻译和语言模型多任务训练, 因为输入dummy, 使得y的概率最大, 实际上等价于训练一个语言模型.
  • 反向翻译: 有了目标语言句子y, 用训练好的目标语言到源语言的翻译模型得到伪句对(x’, y), 加入到平行句对中一起训练. 因为y是高质量的单语语料, x‘可能包含一些UNK, 或者错误的句法等, 质量较差. 这样训练可以想像成去噪声训练的形式. 在有噪声的情况下, 训练x->y方向的翻译模型尽量能还能翻译好, 提升泛化性能.
  • 使用时机: 一般先用高质量的句对训练好初始模型后, 然后将反向翻译的句对(x’,y)和训练语料混合, 再次训练.

实验文章

Understanding Back-Translation at Scale
实验性文章, 分析了在不同场景下反向翻译的表现

一般结论

  • 反向翻译平均来讲能提升~2BLEU
  • 在低资源情况下, 因为翻译模型的性能较差, 因此得到的句对(x’, y) 质量较差, 可能需要过滤一下才行
  • 如果有跨领域的单语语料, 用反向翻译进行训练一下, 得到的模型跨领域表现会提升.

不同的采样方法的影响

得到句对(x’, y)可以有不同的采样方式

  • sampling: 直接从翻译模型中输入y, 采样得到一个x’
  • beam search: 根据beam search得到x‘, 这样x’的质量较高
  • beam + noise: 在beam search的过程中, 添加给token添加随机噪声
  • greedy: 根据输入y, 翻译时每一步采用最好的一个token, 翻译得到x’
  • top10: 根据输入y, 翻译时每一个在前10个最可能的token中采样得到下一个token

不同采样方式下, 平行语料较多的情况下, 反向翻译的效果如下图:

可以看出

  • 反向翻译句对量增加的时候, 对最终翻译的效果有提升
  • 带有噪音的采样方法效果好一些(beam+noise, sampling), 原因大致可以解释为去噪的影响, 噪声多了, 效果会好一些

注: 这是平行语料多的情况, 如果平行语料较少, 由于翻译模型的效果还不好, 得到的句对(x’, y)质量不高, 这时使用beam的方式反向翻译效果最好. 实际使用的时候, 可以结合过滤策略过滤掉一些质量不高的句对, 在保证noise较多的情况, 也保证质量不太差, 效果会更显著.

机器翻译 | 反向翻译 (back-translation) 笔记相关推荐

  1. 神经机器翻译(Neural machine translation, NMT)学习笔记

    神经机器翻译(Neural machine translation, NMT)是最近提出的机器翻译方法.与传统的统计机器翻译不同,NMT的目标是建立一个单一的神经网络,可以共同调整以最大化翻译性能.最 ...

  2. Symfony学习笔记之翻译组件-----translation总结

    "过际化"(internationalization,常被简写为i18n),是指将字符串和其他一些具有区域特征的片段,从你的程序中提取(abstract)出来,并基于用户所在区域( ...

  3. 【工大SCIR】AAAI20 基于反向翻译和元学习的低资源神经语义解析

    论文名称:Neural Semantic Parsing in Low-Resource Settings with Back-Translation and Meta-Learning 论文作者:孙 ...

  4. Object Detection in 20 Years A Survey-论文翻译(阅读笔记)

    Object Detection in 20 Years A Survey论文翻译(阅读笔记) 原文地址:[1905.05055] Object Detection in 20 Years: A Su ...

  5. CS231n课程笔记翻译:神经网络笔记3(下)

    CS231n课程笔记翻译:神经网络笔记3(下) 笔记译自斯坦福CS231n课程笔记Neural Nets notes 3,课程教师Andrej Karpathy授权翻译. 转自知乎,原文地址: htt ...

  6. 【轻量化网络系列(2)】MobileNetV2论文超详细解读(翻译 +学习笔记+代码实现)

    前言 上一篇我们介绍了MobileNetV1,主要是将普通Conv转换为dw和pw,但是在dw中训练出来可能会很多0,也就是depthwise部分得到卷积核会废掉,即卷积核参数大部分为0,因为权重数量 ...

  7. 《Swift编程语言教程》中文翻译及读书笔记page21

    <The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 第21页 1 swi ...

  8. CS231n课程笔记翻译:图像分类笔记(上)

    译者注:本文翻译自斯坦福CS231n课程笔记image classification notes,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成.ShiqingFan对译 ...

  9. 解决idea翻译插件translation无法使用问题

    问题描述 今天突然发现idea的翻译插件translation 无法使用了 ,呃 应该不是我自己的原因,我搜索相关信息发现有人也用不了 就在这一两天 可能是插件出了啥问题,也许,过一段时间就好了. 解 ...

  10. ios android的中文翻译,苹果 iOS 14 Beta反向翻译,拒不承认iOS不如安卓

    原标题:苹果 iOS 14 Beta"反向翻译",拒不承认iOS不如安卓 在前不久,苹果就召开了一年一度的WWDC 2020,也就是苹果2020年的开发者大会,会上就对于苹果旗下的 ...

最新文章

  1. Windows纸牌×××式计分法
  2. TCP为什么是三次握手和四次挥手
  3. Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
  4. Python 3.9.0 首个迭代版本发布了
  5. Oracle中for update造成锁表,致使无法删除或更新表内容
  6. maven一键部署tomcat war包
  7. oracle last_day比较,Oracle的LAST_DAY函数
  8. npm、cnpm、yarn的安装与常用命令
  9. mvn compile遇到的问题:-source1.3 中不支持注释
  10. 计算机设备分配资源的发展,分配系统资源
  11. python struct_struct
  12. Java之移位运算符
  13. 蝗虫优化算法(GOA)优化深度置信网络DBN【matlab源码】
  14. 如何在 iPhone、iPad 和 Mac 上压缩照片?
  15. ps批量处理--像素大小修改
  16. 河南第八届ACM省赛(真题训练)
  17. @自我怀疑的开发者:你够优秀吗?
  18. Android 前置摄像头强制关闭镜像预览
  19. Unity3d中UGUI组件精简复盘(十八)Aspect Ratio Fitter组件
  20. 计算机网络——网络层路由协议、IP组播、移动 IP、路由器

热门文章

  1. markdown下载
  2. linux下addr2line详解
  3. Ubuntu24.04下向日葵,CUDA,cuDNN的详细安装,亲测有效
  4. 同花顺公式转python_【转】 同花顺系统公式编写教程及函数用法基础(一)
  5. comsol奶酪模型 comsol多孔材料
  6. 无线ac管理服务器调试方法,AC功能管理无线AP设置步骤
  7. qqxml代码-班级作业xml卡片代码班级作业
  8. 考计算机初级难不难,初级程序员好考吗_考试难不难_上学吧
  9. Excel2007快捷键大全
  10. lua 斗地主癞子牌型检测中使用递归