机器翻译 | 反向翻译 (back-translation) 笔记
转载自: 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) 笔记相关推荐
- 神经机器翻译(Neural machine translation, NMT)学习笔记
神经机器翻译(Neural machine translation, NMT)是最近提出的机器翻译方法.与传统的统计机器翻译不同,NMT的目标是建立一个单一的神经网络,可以共同调整以最大化翻译性能.最 ...
- Symfony学习笔记之翻译组件-----translation总结
"过际化"(internationalization,常被简写为i18n),是指将字符串和其他一些具有区域特征的片段,从你的程序中提取(abstract)出来,并基于用户所在区域( ...
- 【工大SCIR】AAAI20 基于反向翻译和元学习的低资源神经语义解析
论文名称:Neural Semantic Parsing in Low-Resource Settings with Back-Translation and Meta-Learning 论文作者:孙 ...
- Object Detection in 20 Years A Survey-论文翻译(阅读笔记)
Object Detection in 20 Years A Survey论文翻译(阅读笔记) 原文地址:[1905.05055] Object Detection in 20 Years: A Su ...
- CS231n课程笔记翻译:神经网络笔记3(下)
CS231n课程笔记翻译:神经网络笔记3(下) 笔记译自斯坦福CS231n课程笔记Neural Nets notes 3,课程教师Andrej Karpathy授权翻译. 转自知乎,原文地址: htt ...
- 【轻量化网络系列(2)】MobileNetV2论文超详细解读(翻译 +学习笔记+代码实现)
前言 上一篇我们介绍了MobileNetV1,主要是将普通Conv转换为dw和pw,但是在dw中训练出来可能会很多0,也就是depthwise部分得到卷积核会废掉,即卷积核参数大部分为0,因为权重数量 ...
- 《Swift编程语言教程》中文翻译及读书笔记page21
<The Swift Programming Language>中文翻译及读书笔记,附件中为英文原版教程 因21页之前内容和技术关系不大,不做翻译整理,从第21页开始 第21页 1 swi ...
- CS231n课程笔记翻译:图像分类笔记(上)
译者注:本文翻译自斯坦福CS231n课程笔记image classification notes,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成.ShiqingFan对译 ...
- 解决idea翻译插件translation无法使用问题
问题描述 今天突然发现idea的翻译插件translation 无法使用了 ,呃 应该不是我自己的原因,我搜索相关信息发现有人也用不了 就在这一两天 可能是插件出了啥问题,也许,过一段时间就好了. 解 ...
- ios android的中文翻译,苹果 iOS 14 Beta反向翻译,拒不承认iOS不如安卓
原标题:苹果 iOS 14 Beta"反向翻译",拒不承认iOS不如安卓 在前不久,苹果就召开了一年一度的WWDC 2020,也就是苹果2020年的开发者大会,会上就对于苹果旗下的 ...
最新文章
- Windows纸牌×××式计分法
- TCP为什么是三次握手和四次挥手
- Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
- Python 3.9.0 首个迭代版本发布了
- Oracle中for update造成锁表,致使无法删除或更新表内容
- maven一键部署tomcat war包
- oracle last_day比较,Oracle的LAST_DAY函数
- npm、cnpm、yarn的安装与常用命令
- mvn compile遇到的问题:-source1.3 中不支持注释
- 计算机设备分配资源的发展,分配系统资源
- python struct_struct
- Java之移位运算符
- 蝗虫优化算法(GOA)优化深度置信网络DBN【matlab源码】
- 如何在 iPhone、iPad 和 Mac 上压缩照片?
- ps批量处理--像素大小修改
- 河南第八届ACM省赛(真题训练)
- @自我怀疑的开发者:你够优秀吗?
- Android 前置摄像头强制关闭镜像预览
- Unity3d中UGUI组件精简复盘(十八)Aspect Ratio Fitter组件
- 计算机网络——网络层路由协议、IP组播、移动 IP、路由器