WeChat Neural Machine Translation Systems for WMT21

Abstract

英中,英日,日英,英德 方向,以Transformer为基础。做了数据过滤,大规模合成数据生成(回译,知识蒸馏,前向翻译,迭代领域知识迁移),微调(作者说是先进的微调),模型集成(boosted Self-BLEU based model ensemble),

Introduction

主要通过增加模型体系结构和合成数据多样性来提高模型性能。
# 模型架构
Pre-Norm Transformer, Post-Norm Transformer,对于Post-Norm应用了初始化方法防止梯度消失问题(https://github.com/layer6ai-labs/T-Fixup)
整合了AAN和多头机制。并且引进了Talking-Heads Attention,该机制在所有变体中展示了显著的多样性# 合成数据
使用了large-scale back-translation去利用target-side单语数据,使用序列级别的知识蒸馏利用双语数据的source-side。为了使用源端单语数据,我们利用集成模型进行正向翻译,以获得一般的领域合成数据。使用域内迭代知识转移来生成领域内数据。为了提高模型的鲁棒性,提出了多个数据增强方法,包含不同的token-level noise和动态的top-p采样。# 训练策略
主要关注在condidence-aware scheduled sampling(置信度计划采样),target denoising(目标去燥)和graduated label smoothing(分层标签平滑)对领域数据。# 模型集成
关注在高潜力的候选模型,使用两个指标:model performance(使用BLEU评分),模型的多样性(使用Self-BLEU),作者使用基于self-bleu的矩阵搜索搜索的版本在selected model和candidate models中搜索。观察到,通过使用这种新颖的方法来实现与蛮力搜索相同的 BLEU 分数,可以节省大约 95% 的搜索时间

Model Archtectures

model configurations

加深加宽模型,20/25 layer encoders和1024的hidden size对于所有模型。并且增加了decoder的深度为8,10可以带来确信的提升和多样性。
对于wider模型,作者尝试8/12/15encoder layers和1024/2048 hidden size,15000/12000/8192的filter size。以上的设置对所有变体都适用。

Transformer with Diffetent Layer-Norm

使用Pre-Norm作为基线模型,因为它的性能和稳定性优于Post-Norm。
新的研究证明Post-Norm的不稳定训练可以通过修改网络初始化来缓解,并且效果要比Pre-Norm的效果好。 Improving transformer op-timization through better initialization.
在实验过程中,作者发现后范数模型与前范数模型相比具有良好的多样性,并能有效地提高模型集成的性能。

Average Attention Transformer

使用简单直接的平均注意力替换decoder中的自注意力计算,并且没有性能的损失。在作者的初步试验中发现AAN和Transformer之间的self-BLEU评分低于Deeper和Wider Transformer。

解码时,对于step=k的输入embedding y k y_k yk的上下文表示是:

Weighted Attention Transformer

探讨了三个加权策略来改进AAN中之前位置的历史信息建模。三种方法包括:递减权值,可学习的权值和指数权值。其中实验表示指数权值的表现最好:

其中 α = 0.7 \alpha=0.7 α=0.7

Mix-AAN Transformer

为了获得更有效和多样化的模型,组合了AAN和self attention。对于每一层的decoder包含Masked Attention sub-layer,Multi-head Corss Attention sub-layer 和Feed-forward sub-layer。将Average Attention称为average layer。通过不同形式组合来形成不同的模型架构。每一层都包含三个sub-layer,但是Masked Attention 将使用Average Attention和self Attention的输出去计算一个平均和的hiddent states,将这样的计算成为双重注意力。

作者实验了三个变体:

(a) Average First Transformer, (b) Average Bottom Transformer and © Dual Attention Trans-former.

实验中Mix-AAN并不是performs better但是表现出了很强的多样性比原始的transformer。使用四个Mix-AAN模型集成比10个deeper和wider模型集成效果更好。

Talking-Heads Attention

在多头注意力中,每个的计算是分离独立进行的。此方法插入两个可学习的线形映射权重 W l , W w W_l,W_w Wl,Ww去改变attention-logits和attention scores,在不同头之间移动信息。

作者将该方法应用在encoder和decoder,这个方法在只有微小的性能损失下在所有变体中表现出不凡的多样性。

System Overview

四部分组成,数据过滤,大规模合成数据生成,领域微调和集成。其中合成数据生成包括通用领域和领域数据生成。

Data Filter

  • 使用Moses脚本normalize punctuation,除了日语
  • 过滤句子长度大于100并且一个单词长度大于40
  • 过滤重复的句子对
  • 单词个数比率不能超过1:4
  • 使用fast-text过滤掉不匹配的语言对
  • 拥有不合法的Unicode字符
  • en-zh方向,过滤掉汉语句子中含有英文字符的句对(这个感觉有点不太合理!?)
  • 单语数据用n-gram进行过滤

General Domain Synthetic Data

# Large-scale Back-Translation
使用了不同的生成策略- beam search:beam size=5- sampling top-K:K=10,在decoding过程中随机的从前十个单词中选择- dynamic sampling top-p:从累积概率质量超过0.9-0.95的集合中选# Knowledge Distillation
从teacher model转移知识到student model
首先使用teacher models去生成合成数据(forward direction)
然后使用生成的数据去训练学生模型。从右到左的知识提取是对从左到右的知识很好的补充,可以进一步提高模型性能。# 前向翻译
使用集成模型去生成高质量的前向翻译结果,在英中和英德方向都有一些提升# Iterative In-domain Knowledge Transfer
这项技术在英中方向没有什么提升。
首先使用一个正常的微调让模型具有领域的知识,然后模型集成去翻译src的单语数据到tgt,下一步,组合真假数据,重新训练。# Data Augmentation
伪数据构造完成之后,作者添加多级的噪声来进一步获得不同的数据。- token-level:在每一个subword上,bpe之后- word-level:before bpe- span-level:before bpe,连续的tokens序列
使得数据更加有噪音,训练替换,删除,排列。在每个句子中以平行的方式应用这三种噪音类型。启用这三个操作的概率是0.2。
此外,一种实时噪声方法被部署到合成数据。利用动态噪声对模型进行训练,使模型在每个阶段都使用不同的噪声,而不是整个训练阶段都使用相同的噪声。# in-domain finetuning
探索了几个微调的方式,来加强领域微调的影响和缓解曝光偏差问题(在领域迁移是一个重要问题)。## target Denoising
因为有tracher forcing,作者在finetuning的嘶吼,在解码端添加噪音,选择30%的数据添加噪音,15%的概率随机替换目标句的第i的token。## Graduated Label-smoothing
在小数据的情况下微调会导致过拟合,模型输出的概率会很自信,所以作者对这种概率值很大,很自信的输出进行更高的惩罚。在微调阶段,设置token预测概率概率高于0.7的smoothing penalty=0.3,概率低于0.3的为0,其他的为0.1## Confidence-Aware Scheduled Sampling
通过计算模型的置信度来确定是否让模型生成token。## Boosted Self-BLEU based Ensemble (BSBE)
将self-bleu和bleu结合起来,贪婪搜索训练最优的集成模型

结果

不同技巧的BLEU

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c3Wc28Gd-1631617807628)(https://www.tzer.top/usr/uploads/2021/08/1706727530.png)]

深度宽度网络和Mix-AAN网络的集成效果对比

搜索算法的时间和性能

不同微调方法

WMT2021-新闻-wechat相关推荐

  1. Docker Desktop宣布收费;腾讯7月已申请注册WECHAT CLOUD商标;MongoDB成为当前最具价值开源软件公司...

    NEWS 本周新闻回顾 Docker Desktop 宣布收费 近日 Docker 官方宣布一项新的动作,即将产品订阅划分为个人.专业.团队和商业不同版本.如果企业规模在 250 名员工以上或年收入超 ...

  2. 基于Python热点新闻关键词数据分析系统

    温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :) 1. 项目简介 利用网络爬虫技术从某新闻网站爬取最新的新闻数据,并进行版块分类,对某篇版块下的所有新闻进行中文分词, ...

  3. 微信每日定时推送消息新闻到群聊或朋友

    本项目使用python来完成每日在群聊中或者给朋友推送新闻.主要使用python的wxauto库来完成此功能. 想要完成以上任务,需要安装3.8.10版本的python和最新版本的PC端微信. 另外, ...

  4. 微信小程序编写新闻阅读列表

    微信小程序编写新闻阅读列表 本篇学习主要内容 Swiper 组件(轮播图) App.json 里的关于导航栏.标题的配置. Page 页面与应用程序的生命周期 数据绑定(核心知识) 数据绑定的运算与逻 ...

  5. 爬虫篇——腾讯新闻的详细采集过程(列表新闻和新闻内容)

    腾讯新闻.新浪新闻的详细采集过程 一.腾讯新闻采集 1.按分类采集腾讯新闻列表 分析过程: 具体代码: 2.采集腾讯新闻内容 分析过程 具体代码 二.新浪新闻采集分析 一.腾讯新闻采集 1.按分类采集 ...

  6. 智能管家App kotlin版(6)——新闻头条文章查看开发

    既然是一款轻松娱乐的应用怎么能没有一个新闻列表呢?我们listview实现新闻列表 ,通过webview去加载新闻详情,本文章会讲解Picasso图片加载,以及webview的一些基本应用,自定义加载 ...

  7. 微信小程序(应用号)开发新闻客户端的实战课程

    下载最新版的微信小程序开发工具,目前是v0.9.092300 下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html ...

  8. 黑客利用本地新闻站点在iPhone上安装间谍软件

    iPhone iOS间谍软件,一项新发现的黑客"水坑攻击"针对香港的苹果iPhone用户,利用恶意网站链接诱使他们在设备上安装间谍软件. 根据国内知名网络黑客安全组织东方联盟和卡巴 ...

  9. 每周全球科技十大新闻(2020.9.14-9.20)

    新闻摘要: (1)ARM创始人:"这是灾难,救救ARM!" (2)博云BoCloud获得数亿元D轮融资 (3)Pure Storage以3.7亿美元收购容器存储厂商Portworx ...

  10. Springboot新闻管理系统1

    一.自动生成数据库表 Springboot 之 Hibernate自动建表(Mysql) 先引入Maven依赖包 org.springframework.boot spring-boot-starte ...

最新文章

  1. ESP8266编译脚本之四
  2. C语言跟随鼠标画方框,JS拖动鼠标画出方框实现鼠标选区的方法
  3. python 提示错误AttributeError: type object 'str' has no attribute '_name_'
  4. aws ec2 选择可用区_AWS Messaging Services:选择合适的服务
  5. python类对象点处折行_史上最全的Python面向对象知识点疏理(对象是类的实例)
  6. Web服务器性能估算
  7. linux -rpm,linux 的rpm命令
  8. ubuntu12.04 qtcreate支持中文输入
  9. 2Sigma OA prepare: Friends Circle
  10. 安装erlang没有bin文件夹_Windows10有关jdk13.0.1的详细安装过程
  11. python中home定义是什么_搞清楚Python中self的含义
  12. mbedtls | 02 - 伪随机数生成器(ctr_drbg)的配置与使用
  13. 阿里云开发者藏品计划【阿里云飞天5K纪念碑】
  14. 今天给大家分享的案例就是关于电影的啦,我们一起来看看IMDBtop10000的电影排行榜数据
  15. C++在指定目录生成txt文件
  16. 香港理工大学计算机系 主任,我校与香港理工大学合作MScIS项目第七期开学
  17. Teamviewer 图文使用教程
  18. 干货 | 携程机票Sketch插件开发实践
  19. 计算机网络第四版课后题答案黄彦,教学大纲-计算机电路基础(9页)-原创力文档...
  20. 流体力学基本流动复势推导

热门文章

  1. 重要的软件测试度量和度量指标(1)——附带例子和图表
  2. 食用香精香料行业现状调研及趋势分析报告
  3. Brew----常见问题 ( 最近一次更新 2011--04--30)
  4. 瑞丽评出的年度最好用化妆品~~转了以后就不用找啦
  5. 使用Construct2制作小游戏的心得
  6. multiple definition of `yylloc‘
  7. python - scrapy '笔下文学'
  8. 【聊一聊】程序员的恶性循环 !
  9. Java容器有哪些?哪些是同步容器,哪些是并发容器?
  10. WinPcap 卸载重新安装