Vocabulary Learning via Optimal Transport for Neural Machine Translation论文解读
abstract
token vocabulary的选择对机器翻译结果的影响比较大
本文研究什么样才是好的词表,并且能不能不通过训练直接找到最优的词表
首先提供一种从信息理论的角度来分析词表的作用
通过optimal transport的思路来找到最佳token词典,并且有一个合适的词表大小,不用训练
降低70%的词表大小,取得0.5bleu提升
相对于BPE-search,搜索时间从384gpu->30gpu,这个的意思有些没看懂,是指vocabularies的时间。
背景:
当所有样本等几率出现的情况下,熵达到最大值(所有可能的事件等概率时不确定性最高)
对于样本等几率分布而言,样本数越大,熵值越大(可能的事件越多,不确定性越高)
1. intoduction
- 用更小的词表来压缩数据,减少熵,可以使语料更容易训练和预测,降低过拟合的风险。
- byte-pair encoding BPE:就是选择最高频的sub-words或者sub-word pieces来做的。
- 因为词表大小也会影响下游任务的表现,如何选择合适的大小呢,只考虑频率也是不妥的,通过实验来做,需要一个一个来做,比较繁琐,导致大家现在都是只选择30k-40k左右。
- 一般来说减低熵和词表大小是矛盾的,词表越大,熵约大。
- 根据语料的熵和词表大小,选择合适的词表,并且可以再polynomial时间内解决。
- muv作为评价指标,muv=熵在词表大小上的微分=diff(熵)/m,m为词表大小的diff。
- muv和下游任务的表现基本上是正相关的,所以优化muv就是优化下游任务了?所以可以直接算出muv最大值,拿到最佳词表大小,就可以拿到一个比较好的下游表现了?
- 通过找到最大的muv来找到词表,并且将其转化成optimal transport problem来做,相当于是从字符的分布到词表的分布中找到最佳转移矩阵optimal transport matrix,最终是通过这个矩阵来产生词表。
2. related work
- 字级别的词典有大小限制,会遇到oov
- 有基于char的,BPE等优化方法,拿到subword-level级别的词表,例如happy可能和happier比较相似,在char-lvel,并且在小的粒度上就没有oov了,还有sentencepiece方法等
- 一般大家只注意到频率,没有注意到词表大小,并且确定词表是一个很耗资源的工作
3. MUV是啥
- muv定义了增加词表大小带来的收益。
- 通过实验证明了muv和bleu的关系,验证了用muv来衡量的正确性。
4 Maximizing MUV via Optimal Transport
4.1 idea
- 词表是离散的,找最佳muv的搜索空间太大。
- 简化:从固定大小的词表中找到最佳muv,固定的步长还是固定的大小?
S:递增整数数列
t:timestep,代表diff t
总结:
固定t,找到最佳muv(找到最大熵的词表)
枚举所有t
- 词表到转移矩阵
不同的转移矩阵有不同的转移cost,目标是找到最小的cost,例如负的熵等。
4.2 optimal transport solution
给定词表,要找到最大熵,公式可转化为:
合并,减少token太大带来的计算量问题
计算转移矩阵的每一行的和和每一列的和干啥?
非平衡交叉熵的正则最优化转移问题?
可以用Sinkhorn算法解决,每个时间t,产生一个新的词表,根据转移矩阵p计算交叉熵分数,根据熵挑选词表,输出词表。
4.3 implementation
- 根据频率将所有token排序,用的是BPE方法生成的token,例如利用BPE-100K作为候选,其他的也可以,基本可以带来类似的结果。
- 用他们的概率初始化L
- 每个timestep,根据当前的词表及其转移矩阵计算最大的熵。
- 枚举t,选择合适的词表。
- 有词表后,使用贪心算法去对句子进行编码。
- 将句子分裂到char粒度的token
- 和并consecutive tokens到一个,如果他在词表中
- oov token会被分到更细的粒度
5. experience
就用VOLT来选词表,效果居然就好了
对于低资源的数据集,BPE-1k通过很多实验拿到词表,VOLT通过一次实验,0.5CPU hours,30GPU hours就找到了最优的词表。
VOLT是一个绿色的词表化解决方案,通过比较BPE-search:一种从BPE生成的词表中,根据BLEU分数选择最优词表的方法,来证明,VOLT在一个cpu花费少量时间就能算出来0.5h,BPE-search在需要在GPU上花费上百小时。
5.3 讨论
- VOLT生成的词表能达到SOTA结果。
- 领先sentencePiece和wordPiece方法非常多,这两个是分到细粒度词的一种分词方法。
- 各种架构都适应,transformer-big结构,seq2seq结构都适应。
- VOLT能在训练阶段带来加速,主要因为降低embedding参数的大小,对于softmax计算,因为在gpu中已经并行计算了,提升不大。
- VOLT和BPE词表高度重叠,相当于直接可以拿到BPE的结果?
6. 结论
不用训练,直接可能产生词表搜索的方法,利用信息论理论,通过两步优化,离散化目标函数和最优化转移方案来实现。实验表明效果非常有效。
- 构造目标函数
- optimal transport solution解目标函数极值的方法。
Vocabulary Learning via Optimal Transport for Neural Machine Translation论文解读相关推荐
- Bi-SimCut: A Simple Strategy for Boosting Neural Machine Translation 论文笔记
目录 一.摘要 二.Token Cutoff介绍.公式 2-1.背景介绍 2-2.Cutoff介绍.架构示意图.公式详解 三.Bi-SimCut介绍.公式 3-0.Bi-SimCut完整概要 3-1. ...
- 阅读笔记|Ensemble Learning for Multi-Source Neural Machine Translation
原文链接: Ensemble Learning for Multi-Source Neural Machine Translation Abstract 本文描述和评价了神经机器翻译(NMT)中进行集 ...
- nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(一)
<Neural Machine Translation by Jointly Learning to Align and Translate>--基于联合学习对齐和翻译的神经机器翻译 作者 ...
- 《Reducing Word Omission Errors in Neural Machine Translation:A Contrastive Learning Approach》论文阅读笔记
Reducing Word Omission Errors in Neural Machine Translation:A Contrastive Learning Approach 基本信息 研究目 ...
- neural machine translation by jointly learning to align and translate
1.论文出处 Dzmitry Bahdanau, KyungHyun Cho, Yoshua Bengio, "neural machine translation by jointly l ...
- 【论文泛读】4. 机器翻译:Neural Machine Translation by Jointly Learning to Align and Translate
更新进度:■■■■■■■■■■■■■■■■■■■■■■■|100% 理论上一周更一个经典论文 刚刚开始学习,写的不好,有错误麻烦大家留言给我啦 这位博主的笔记短小精炼,爱了爱了:点击跳转 目录 准备 ...
- 《Neural Machine Translation by Jointly Learning to Align and Translate》阅读笔记
个人总结 本文最大贡献是提出了注意力机制,相比于之前 NMT(Neural Machine Translation) 把整个句子压缩成一个固定向量表示的方法,对不同位置的目标单词计算每个输入的不同权重 ...
- [论文阅读]Neural Machine Translation By Jointly Learning to Align and Translate
文章目录 前言 摘要 一.神经机器翻译 1.机器翻译 2.基于RNN的Encoder-Decoder架构 二.文章贡献 三.模型架构 1.译码器:整体概述 2.编码器:用于注释序列的双向RNN 四.实 ...
- 论文阅读笔记:Frequency-Aware Contrastive Learning for Neural Machine Translation
论文链接:https://arxiv.org/abs/2112.14484 author={Zhang, Tong and Ye, Wei and Yang, Baosong and Zhang, L ...
最新文章
- Microsoft Expression Blend 2 密钥,key
- 初学者学python好还是c-学Python还是学C?
- Android开发之蓝牙--扫描已经配对的蓝牙设备
- MaxScript 扇子打开
- Robotium导入被测源码遇到问题 had used a different Landroid/support/v4/view/ViewPager
- 运营商缺的是应用还是想法--广州晨皓
- Java方法调用和参数传递
- csdn中下载资源入口查找
- 国家标准《文后参考文献著录规则》(GB7714-87)
- word2016 插入书签域
- 使用Git初始化已有的项目
- python爬取企业电话_Python爬取天眼查企业数据
- Eclipse中Outline里各种图标的含义
- 如何开发微信小程序?微信小程序有哪些特点?
- Day14【元宇宙的实践构想03】—— 元宇宙的资产观(NFT、数字资产、虚拟地产、与现实世界资产关系)
- 红绿灯pipeline探索
- 在腾讯云服务器Linux系统中安装MySQL【完美解决】
- 变频器的工作原理及其电路分析
- 玩转软件|WinRAR压缩软件,去除advert教程
- 这12个最新AI开源项目,你一定要收下
热门文章
- 【软件工程】-- 期末考试题含答案(二)(考前必看、看完不挂科)
- ESP32-pico-kit 串口通信 与 蓝牙串口
- 计算机网络基础知识(笔记)
- SQL中的left outer join,inner join,right outer join用法详解
- 利用tftpd32在Linux与Windows7之间传输文件
- ODrive应用 #1 ODrive入门指南
- 我是在校大学生(计算机专业)需要提前报考阿里云ACP证书吗?大家对此有什么看法?
- 27岁了,老大不小了,转载一篇文章作年度回顾
- 摄像头捕获视频流软件AMCAP使用教程(视频采集捕获处理媒体制作微型软件)
- 手机电脑文件怎样同步?