ACL2021最佳论文VOLT:通过最优转移进行词表学习

点击下面卡片关注我呀,每天给你送来AI技术干货!

作者 | 太子长琴 

整理 | NewBeeNLP

今天一起来看看热议的ACL2021 best paper,一句话概述:借鉴边际效用通过最优转移学习词表。

  • 论文:Vocabulary Learning via Optimal Transport for Machine Translation[1]

  • 代码:https://github.com/Jingjing-NLP/VOLT

  • 知乎讨论:如何看待 ICLR2021 的拒稿被评为 ACL2021 的 Best Paper?[2]

机器翻译「词表」影响性能,本文旨在弄清楚什么是好的词表,以及是否可以在不尝试训练的情况下找到最佳词表。为此,作者首先从信息论的视角提供对词表作用的另一种理解。受此启发,将词汇化的探索 ,即找到具有适当大小的最佳词表,作为最优转移问题。提出了 VOLT,一个简单有效的无须尝试训练的解决方案。

实验结果表明,VOLT 在各种场景中优于广泛使用的词表。此外,与 BPE-search 相比,VOLT 将搜索时间从 384 GPU 小时减少到 30 GPU 小时。

背景

词表的构建是 NMT 任务和其他 NLP 任务的前提条件,最近子词方法(比如 BPE)比较流行,也取得不错的效果。这些方法的核心思想是选择高频的子词(或词片段)作为词表 Token。

在信息论中,「基于词频的方法是数据压缩(减熵)的简单形式」,使得生成的语料库易于学习和预测。不过词表的大小并没有得到充分重视,有些工作表明词表大小也会影响下游任务表现,尤其是在低资源任务上。

由于缺乏适当的关于词表尺寸的归纳偏向,通常需要尝试训练(遍历所有可能的尺寸)来搜索最佳尺寸,这需要很高的计算成本。方便起见,大多数已有研究都只采纳了广泛使用的配置,比如 30K-40K。

本文建议通过同时考虑熵和词汇量大小来探索自动词汇化,而无需昂贵的试验训练。这并不容易,主要因为:

  • 难以找到一个合适的目标函数。词表大时语料库熵下降,但更稀疏却不利于模型学习。

  • 即便有评估方法,依然很有挑战,因为优化问题是指数搜索空间。

本文提出 Vocabulary Learning approach via Optimal Transport,简称「VOLT」,可以通过考虑语料库熵和词汇量大小在多项式时间内给出合适的词汇量。具体而言:

  • 首先借用了经济学中边际效用的概念,使用 MUV(词汇的边际效用)作为评估方法。形式上,MUV 被定义为熵对词汇量大小的负导数。

  • 然后将目标转向在可处理的时间复杂度中最大化 MUV,将离散优化目标重新表述为最优转移问题,可以通过线性规划在多项式时间内求解。

  • 最后从最佳转移矩阵中生成词表。

直觉上,词表化的过程可以认为是找到从字符分布到词表分布的最佳转移矩阵。

「相关工作」

  • 词级别

  • Byte 级别

  • 子词方法

  • BPE

  • BPE 变种:BPE-dropout,SentencePiece

MUV(词汇的边际效用)

给定两个词表 v(k) 和 v(k+m),k 和 k+m 表示 token 数量,Hv 表示词表 v 上的语料库熵,等于所有 token 熵的和

P(i) 是 token i 在训练语料中的相对频率,l 是词表 v 中 token 的平均长度。

给定 MUV,有两种选择得到最终的词表:

  • 基于搜索:与广泛使用的词汇化解决方案(比如 BPE)结合起来。简单有效但不是自给自足的方法,而且需要大量时间生成很多词表计算 MUV。

  • 基于学习:VOLT

通过最优转移最大化 MUV

概览

由于词表是离散的,搜索空间太大,根据上面(1)式优化不好处理。本文通过从固定大小的词表中搜索最佳词表来简化原始的离散优化问题。给定 S,每个时间步 t 表示「一组」数量为 S[t] 的词,对任意的词表,MUV 分数可以基于上一步的词表:

V_S[t-1]V_S[t]「两组」词表大小上界分别为 S[t-1] 和 S[t] 的词表,由于是指数搜索空间,文章建议优化上界:

i 是 t-1 词表和 t 词表 size 的差值。

这里请教过作者,式(3)是上界,具体推导过程如下:

所以,最大化 MUV 分数可以表达为最大化式(3)。基于该等式,整个解决方案可以分成两步:

  • 在每个时间步 t 搜索具有最大熵的最优词表

  • 枚举所有时间步,输出满足 Eq3 的时间步对应的词表

第一步其实是从 V_S[t] 中搜索具有最大熵的词表 v(t):

lv 是 v(t) 中 token 的平均长度,P(i) 是 token i 的概率。但是由于词汇量很大,这个问题通常很难解决。 因此,论文在离散最优转移公式中提出了一个松弛,然后可以通过 Sinkhorn 算法有效地解决。直观地,可以将词汇构建想象成一个转移过程,将字符传输到大小为 S [t] 的 Token 候选中。

每个转移矩阵都可以通过收集带有字符的 Token 来构建词汇表。不同的转移矩阵带来不同的转移成本,最优转移目标是找到一个转移矩阵来最小化转移成本,即我们设置中的负熵。

通过最优转移词表化

给定一组词表 V_S[t],需要找到具有最大熵的词表,Eq4 可以等价地写为:

Token(i) 是 token i 的频率,len(i) 表示 token i 的长度。

「目标近似」

为了得到一个易处理的熵下界,给出上述目标函数的一个易处理的上界就足够了。论文采用合并规则来分割原始文本,类似于 BPE,如果合并后的 Token 在词汇表中,两个连续的 Token 将合并为一个。令 T ∈ V_S[t] 是包含 top S[t] 个高频 Token 的词表,C 是字符(char)的集合:

注意,左边式子是 Σ 的最小值。这里,从目标函数的上界开始,从 T 中搜索精确的 Token 集合,这样就把搜索空间降至 T 的子集。令 P(i,j) 是要学习的 Token 和 Char 的联合概率分布:

L1 是联合概率分布 P(i,j) 的负熵,可以记为 -H(P)。令 D 是 |C| × |T| 矩阵,第 (i,j) 个实体是 -logP(j|i),令 P 是联合概率矩阵,L2 可以写为:

Eq6 可以重新表述为如下目标函数,其形式与最优转移中的目标函数相同:

从最优转移的角度来看,P 可以看作是转移矩阵,D 可以看作是距离矩阵。直观地说,最佳转移是用 ⟨P ,D⟩ 定义的最小工作找到从字符分布到目标 Token 分布的最佳转移质量。

「OT的设置」

为了保证方案有效性,论文添加了以下约束:

  • 阻止从 Char j 到 Token i 的无效的转移,如果 i 不包括 j,则将距离设置为 +∞;否则使用 1/len(i) 评估 P(j|i),其中 len(i) 是 Token i 的长度

  • 字符(Char)的数量是固定的,设置转移矩阵每一行的和为 Char j 的概率;每个 Token 需要的字符(Char)的上限是固定的,将转移矩阵中每列的和设置为 Token i 的概率。

给定转移矩阵 P 和距离矩阵 D,最终目标函数为:

具体可以参考下图:

严格来说,这是一个非平衡熵正则化最优转移问题。尽管如此,仍然可以使用广义 Sinkhorn 算法来有效地找到目标词表。算法细节如下所示。在每个时间步长 t,可以根据转移矩阵 P 生成与熵分数相关的新词表。最后,收集这些与熵分数相关的词表,并输出满足 Eq3 的词表。

实现
  • 对所有 Token 按频率从大到小排序,简单起见,采用 BPE 生成的 Token 作为候选 Token。实际上任何分割算法都可以初始化 Token 候选,不同的初始化方法结果接近。

  • 所有的 Token 候选以及它们的概率用来初始化 算法中的L。

  • 递增整数序列 S 的大小是超参数,双语翻译设置为(1K,...,10K),多语翻译设置为(40K,...,160K)

  • 每一个时间步 t,可以基于转移矩阵使用最大熵得到词表。由于限制放宽,处理非法转移情况在所难免。因此,删除了那些频率低于 0.001 的 Token。

  • 最后,枚举出所有时间步,选择出满足 Eq3 的词表作为最终词表。

生成词表后,VOLT 和 BPE 类似,使用贪婪策略对文本进行编码。即首先将句子切分成字符级,然后合并连续的两个 Token(如果合并后在词表中),直到没有 Token 可以被合并为止。

实验

三个数据集:WMT-14 英德翻译,TED 双语翻译和 TED 多语翻译。

主要结果
  1. VOLT 搜索的词表效果优于之前广泛使用的方法,可以找到具有更高 BLEU 和更小尺寸的性能良好的词汇表。

  1. VOLT 搜索的词汇表与低资源数据集上启发式搜索的词汇表相当。

  1. VOLT 在多语言翻译上运行良好。

  1. VOLT 是一种绿色词汇解决方案,与需要数百 GPU 小时的 BPE-Search 相比,可以在单个 CPU 上 0.5 小时内找到具有竞争力的词汇。

讨论

  1. 带有 VOLT 生成的词汇表的简单基线达到 SOTA 结果,换句话说,简单的基线可以通过定义明确的词汇表获得良好的结果。(Table5)

  2. 胜过 SentencePiece 和 WordPiece。(Table5)

  3. 适用于各种架构。

  1. 可以在训练期间带来轻微的加速。

  • 2 Tesla-V 100-GPUs + 1 Gold-6130-CPU

  • VOLT-searched(11.6k tokens):133 句子/秒 VS BPE-30K(33.6k tokens):101句子/秒

  • 加速主要来自更大的批量和减少的 Embedding 参数

  • VOLT 词汇表和 BPE 词汇表高度重叠。从经验的角度来看,具有 VOLT 大小的 BPE 也是一个不错的选择。

  • 结论

    • 提出了无须尝试训练的新的词汇搜索方法。

    • 框架从信息论开始,借用经济学中边际效用的概念,使用 MUV(词汇的边际效用)作为评估方法。

    • 将词汇化制定为一个两步离散优化目标,并将其表述为最优转移问题。

    感想

    在刚看到这篇 Paper 介绍时就被其中借鉴的边际效用吸引,一方面是因为我之前经济学专业,比较敏感,另一方面是之前做过一些将 “法则” 或 “规则” 与机器学习融合的尝试,比如最省力法则、齐夫定律等。

    因此,虽然目前工作不是做这一块的,依然迫不及待地第一时间去拜读了。读完后感觉确实不错,不只是指结果,更多地是「如何将某一个规则从想法应用到实际,并产生还不错结果」这一过程。其中碰到几个问题,给一作许晶晶同学发了邮件请教,人非常耐心、友好,很愉快的交流。希望她们未来能够带来更多出色的作品。

    说个正事哈

    由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

    (1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

    (2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

    感谢支持,比心

    投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

    方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

    记得备注呦

    点击上面卡片,关注我呀,每天推送AI技术干货~

    整理不易,还望给个在看!
    
VOLT:STEP是一种用于模拟电源供应的设备,它主要用于电子产品的设计、测试和验证阶段,以便于工程师可以准确地控制并模拟实际环境下的电压变化情况。这种设备可以在一定范围内提供稳定的直流电压,并允许用户通过软件设定电压上升或下降的速度、持续时间以及脉冲宽度等参数。 以下是关于VOLT:STEP的一些基本特性: 1. **电压范围**:VOLT:STEP通常支持从几伏特到几百伏特的电压输出,能够满足各种应用需求,包括低电压小功率电路的测试,以及高电压大功率系统的验证。 2. **电流限制**:除了提供稳定电压外,VOLT:STEP还具有电流限制功能,以防止过流损坏被测设备。这通常是通过内部保护电路实现的,确保安全操作并在超出预定电流阈值时自动断开。 3. **波形生成**:除了简单的线性电压变化,一些高级的VOLT:STEP设备还可以生成复杂的电压波形,如三角波、锯齿波、正弦波等,对于需要模拟真实世界条件下非稳态供电情况的应用特别有用。 4. **可编程性**:许多VOLT:STEP设备都配有用户友好的软件界面,允许用户预先设置测试程序,并自动执行一系列预设的电压变化和测量过程。这大大提高了工作效率和精确度。 5. **安全性**:为了保证实验者和被测试设备的安全,VOLT:STEP配备了多种保护措施,比如过压保护、短路保护等,确保在故障状态下能迅速切断电源。 使用VOLT:STEP进行测试时,工程师可以根据具体需求调整输出电压、频率、波形以及其他参数,从而模拟出各种复杂的工作场景,有效评估电子设备在不同条件下的性能和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值