目录
3. Prefix-to-Prefix Architecture
1. Introduction
同声翻译应用领域非常广泛,在许多国际会议、外交场合中非常常见,同声传译工作人员需要在说话者说话的时候进行实时翻译,仅延迟几秒钟。这对于同传工作人员来说不仅工作难度大,还极度消耗体力,通常每次只能连续工作15-30min,随后翻译出现的错误就会出现指数增长,然鹅目前有资质的同声传译工作者人数非常有限。因此,同声翻译自动化技术应运而生。
对于机器来说,实现同声翻译最大的困难在于源语言和目标语言之间的语序不同。比如将SOV(主宾谓)语法结构的德语翻译成SVO(主谓宾)语法结构的英文时,必须得等到整个德语句子说完、出现了动词,才能进行翻译。这里给出了一个容易看懂的汉译英的例子,“布什总统在莫斯科与普京会晤”,动词“会晤”在句子的最后,因此机器同声翻译的时候(b)就得等到整个句子说完才能翻译出来对应的英文;可以看出来这就导致了之前的机器同声翻译都是基于整句翻译的,这样的翻译方式会有长达一个句子的延迟,实时效果是不太理想的。
因此,针对这个问题,本文作者提出了一个非常简单而有效的解决方案,设计了一个新颖的prefix-to-prefix框架,该框架仅使用源句的已经说完的单词来预测目标词,并提出了wait-k策略,即在说完每个词后等待k个词就进行翻译。
例如刚刚这个句子,用本文方法来翻译,wait-2(a),在说完每个词后等待两个词就进行翻译,大大提高了同声翻译的速度。 用前4个中文词“布什总统在莫斯科”“. “Bush president in Moscow””就能正确得预测到英文动词,因为它是以前缀到前缀的方式训练的,而训练数据里有很多(X zai` Y ..., X met ...).这样的prefix-pairs,所以预测到了meet。(克服了词序不同的问题,SOV->SVO)
本文这个prefix-to-prefix框架是在seq-to-seq框架——transformer的基础上进行改进的,因此在介绍本文这个框架之前,我们先介绍关于transformer框架的技术要点。
2. Full-Sentence Transformer
transformer是经典的NLP模型,最初由2017年谷歌团队提出,并发表了论文Attention is all you need。
transformer详细的原理见:图解Transformer(完整版)
3. Prefix-to-Prefix Architecture
接下来来介绍本文所提出的prefix-prefix同声翻译框架。
首先介绍几个定义:
Definition 1:
g(t)表示在确定目标词yt时编码器encoder所处理的源词数量。
还以“布什总统”这句翻译为例,g(3)=4,意思是在确定第三个目标词“met”时,encoder用了4个中文源词“布什总统在莫斯科”。
这个定义的引出,是prefix-to-prefix架构能够优于seq-seq架构的重要原因,如下图所示:
- 在确定目标词yt时,prefix-to-prefix的编码器encoder只将g(t)个源词作为模型输入而不是整个source sentence,并计算相应的条件概率和损失函数,从而可以避免整句的延迟。
Definition 2:
,截止点,表示source sentence结束时的下一个decoding 步骤的下标。
还以“布什总统”这句翻译为例,=6,意思是中文原句在第六个target word“in”前结束。
如下方的网格图所示,Chinese是source,English是target,黑色箭头表示wait-2 policy,红色箭头表示源词等待滞后的数量。这幅图直观地得出的大小,从cut-off point之后,剩下的target word(tail)将由full sentence 产生,这就跟传统的full sentence同声翻译模型一样了。所以,对于cut-off point之后的target word,y≥|x|−k来说,就可以直接用translate full sentences的方法来翻译 ;而前面的target word,y<|x|−k ,还是得用本文提出的wait-k policy的greedy(概率分布)来翻译。
Wait-k Policy:
- first wait k source words
- then translates concurrently with the rest of source sentence
Wait-k策略:指先等待k个源词,将前面的这些源词作为输入,然后在输入源句其余部分的同时进行翻译。
这是受到同声传译人员的启发,同声传译人员通常在演讲者发言几秒钟后开始翻译,并在演讲者发言几秒钟后结束。例如下图,如果k = 2,使用前2个源词预测第一个目标词,使用前3个源词预测第二个目标词,以此类推。
在该策略下,g(t)和可以很直观的用这两个公式计算得到。
Test-Time Wait-k:
- using a full-sentence model but decoding it with a wait-k policy
作者在wait-k的基础上又提出了Test-time wait-k:它使用整个源句作为输入,但使用wait-k策略进行解码翻译。
还是拿“布什总统”为例,k取2时,产生了无意义的翻译,并且不能预测动词。
作者提出Test-time wait-k,一方面是和一种已有的同声翻译方法(Gu)做对比,因为他们核心都是用的full-sentence model;另一方面是和wait-k做对比,具体的实验会在后面介绍。
prefix-prefix:
介绍完上述定义,再来看看prefix-prefix是如何在seq-seq的基础上改进的。
prefix-prefix和seq-seq最主要的区别就在于self-attention的计算。为了更直观地对比,将前面讲的self-attention关键计算步骤写成下面三个公式:
计算了source sentence中两个词的关联性,则是对所有进行归一化,得出第i个词的隐藏状态序列。
Encoder部分,仍然一次将整个句子输入编码器,但这个“整个句子”是说话者暂时说完的句子。
和传统的transformer不同的是,prefix-to-prefix在self-attention layer对每个source word增加了约束:在t时刻,要确定目标词yt时,i,j都要<=g(t),g(t)表示在确定目标词yt时编码器encoder所处理的源词数量。这个约束条件的意思是:在每次进行解码翻译的时刻t,也就是输入一个新的source word的时候,该source word只能关注位于它前面的词, Encoder只能计算这些有限源词之间的关联性。这样做,构成了一个增量式encoder。 然后生成包含了约束的该时刻下的隐藏状态序列z,输入到decoder部分进行解码翻译。
当接收到新的源词source word时,所有以前的源词都需要调整它们的状态。
4. Metric
在进行实验前,先介绍本文所用的评价指标。
Quality Metric:
首先是翻译质量指标BLEU,用于评估模型生成的句子(candidate)和实际句子(reference)的差异。它的取值越高,句子越完美匹配(perfect mismatch)
Latency Metric:
下面是两个延迟度量:连续等待CW、平均滞后AL。
Consecutive Wait,连续等待 CW,表示在两个目标词之间等待的源词的数量。因为g(t)表示编码器encoder在确定目标词yt时所处理的源词数量,那么每一步的CW就等于g(t)-g(t-1),整个句子的CW就由下面这个公式计算。 CW计算的是average source segment length,缺点是它测量的是局部延迟,对实际的滞后不敏感。
Average Lagging,平均滞后AL,目标是根据源词的数量来量化翻译与说话者的不同步程度。因为source sentence和target sentence的长度往往会不相等,所以随着target sentence长度的递增,滞后的源词数量也在增加,因此引入一个比率因子r,r=target长度除以source长度,以提高AL计算结果的准确性。 只计算到cut-off point,因为source sentence全部已知,剩余的target word可以立即生成,不会有延迟。
下图给出了一个例子,黄色:wait-1 policy,红色:wait-4 policy,绿色箭头的长度示该时刻进行decoding时所滞后的源词数量。
5. Experiments
Quality and Latency of Wait-k Model.
测试不同的k取值对于翻译质量的影响,结果如下表所示。
- 使用某个k值的wait-k策略test时,它在用比k稍微大一点的wait-k' train的模型上会取得最好的效果。
- 最后一行是"test-time wait-k"测试:在k很小的时候,"test-time wait-k"性能比真正的wait-k差很多,但会逐渐赶上;但最终两种方法都接近full-sentence baseline。
在德译英和英译德两个相反翻译方向上,对比prefix-prefix的性能。 纵轴表示BLEU,横轴表示延迟度量,蓝色折线是wait-k ,黄色折线是test-time wait-k,红色折线是CW取不同值的GU的方法,实心星星是full-sentence (greedy )空心星星是full-sentence (beam-search)。(Gu的方法是另一种实时翻译方法,详见Introduction部分:))
整体上来看:
- wait-k improves in BLEU score
- the gap between test-time wait-k and wait-k shrinks
- Eventually, both wait-k and test-time wait-k approaches the full-sentence baseline as k →∞
和Gu的方法(红色折线)相比:
- BLEU vs AL 折线: Gu和 test-time wait-k的性能类似,因为他们核心都是用的full-sentence model
- BLEU vs CW: Gu的CW更高,因为Gu的R/W模型更喜欢连续的READs、WRITEs段(如:RRRRWWWRRRWW...) ;而wait-k模型随着input的每次输入进行同时翻译(初始时,length=k,后续实时翻译阶段length=1)
- Gu非常脆弱,wait-k鲁棒性强
6. Limitation
wait-k policy的一个局限: 对于必须调整语序的句子,必须等待更多的source word才能正确翻译。
例如下图中的英译汉:
由于必须进行长距离排序而导致anticipate错误:使用wait-3 policy时(第二行), 英文中最后的从句“since the founding of new china” 被错误翻译成了“近几年来”。Time-test wait-3policy(第三行),按照英文顺序翻译了,虽然没有啥错误,但翻译成的中文语序奇怪拗口,并且丢失了两个短语。
7. Conclusion
- A prefix-to-prefix training and decoding framework for simultaneous translation with integrated anticipation.
- A wait-k policy that can achieve arbitrary word-level latency while maintaining high translation quality.
- 这篇文章提出了一个prefix-prefix训练和编码框架用来进行可预测形式的同声传译任务。
- 其次,还提出了一个wait-k策略,既可以保证高质量的翻译结果也能控制任意时长的延迟时间。