AAAI 2022:三角分解一致性约束的端到端语音翻译丨AI Drive
作者&投稿:游晨 (若有异议请与网页底部的电邮联系)
对于给定三元组训练语料,传统的高质量端到端语音翻译系统利用预训练模型,然后利用进一步优化它。
然而,该过程在每个阶段只涉及二元组数据,这种松散耦合未能充分利用三元组数据之间的关联。我们的工作尝试基于语音输入对转录和翻译的联合概率进行建模,以直接利用此类三元组数据。在此基础上,提出了一种新颖的三角分解一致性正则化训练方法,以提高对偶路径分解的一致性。
针对这一问题,本期 AI Drive 由中国科学技术大学硕士生-杜逸超解读其团队的解决思路,也是他们发表于 AAAI 2022 的最新工作:三角分解一致性约束的端到端语音翻译三角分解一致性约束的端到端语音翻译(Regularizing End-to-End Speech Translation with Triangular Decomposition Agreement)。
这项工作由中国科学技术大学、阿里巴巴达摩院、罗格斯大学以及腾讯 AI Lab 联合完成。
本期内容将主要分为 (“数据实战派”后台可获取直播ppt) :
1、背景知识:语音翻译任务的定义及相关⼯作的回顾
2、本次研究提出的方法:三⻆分解⼀致性约束的端到端语⾳翻译⽅法
3、实验分析:基准数据集上的实验性能以及相关分析
4、总结
【【AI Drive】第98期 - 中国科学技术大学杜逸超:三角分解一致性约束的端到端语音翻译-哔哩哔哩】 https://b23.tv/Y6PK2cY (点击链接可观看回放)
1.1 任务简介
在日常生活中,语音翻译系统越来越普及,发挥作用越来越大。尤其在当今国际化交流越来越频繁的情况下,例如跨国商业谈判、国际会议、出国旅游、流媒体视频等领域都会有语音转文字翻译的需求。因此,如何提供更优质的语音翻译系统是当今热点问题。
那么语音翻译具体指什么?其主要目的是将源语言的语音信号转换到目标语言的文本。
就目前而言,语音翻译有两种主流的范式。第一种是在工业界应用比较广泛的级联式语音翻译系统,其通过级联多个独立子模块来构成整体端到端的语音翻译系统。级联式语音翻译系统先将输入语音信号的通过 ASR(自动语音识别)系统识别成源转录文本,再通过 MT(机器翻译)模型将源转录文本翻译成目标语言文本。
级联式语音翻译系统的主要优势在于以下几点:1)子模块拥有丰富的训练数据;2)子模块的技术相对成熟。
但是其缺点也比较明显:1)子模块之间存在错误累积;2)工程部署复杂,时延较高。
近期,端到端语音翻译的范式成为研究的主旋律。通常情况下,该范式直接使用 encoder-decoder 将语音信号转换成目标语言的文本。相对于级联式系统,该范式有一些潜在优势:1)接近于大脑执行任务的方式。2)可以规避错误传播。3)时延低,部署简单。
接下来,给出端到端语音翻译任务的定义。通常情况下,语音翻译任务会有三元组语料库图片,其包含源语言的语音信号图片、源语言的转录文本图片、目标语言文本图片。端到端语音翻译的目标是在不生成中间转录图片的情况下,直接寻找最优翻译序列图片,并使用 MLE 损失函数进行优化。
1.2 相关工作
对于端到端语音翻译,有两大主流的做法。第一类是 Pre-train & Finetune,其通用流程为:先进行 ASR 预训练以获得良好的语音编码器;接着使用该编码器初始化 E2E-ST 的编码器并进行端到端语音翻译训练。
另一类主流做法是 Joint Training,即联合学习 ASR/MT 和 ST 任务。其常规做法将多个任务的损失函数进行加和并共享编码器解码器的参数。
尽管前面提到的这两类主流的方法在性能方面已经有了不错提升,但是其中仍然有内在问题没有解决。先前的方法都是仅在每个阶段偶合了二元组数据,例如 Pretrain & Fine-tune 方法,在预训练阶段仅使用了图片二元组,在 Finetune 阶段使用了图片二元组,其无法充分的利用稀缺三元组数据。
因此我们工作的动机是,是否可以通过挖掘三元组数据之间的关联,以提高端到端语音翻译的性能。
我们发现,在语音到文本翻译任务中,对于同一段语音输入,如果对转录和翻译进行联合概率建模,存在三角分解一致性。具体的,针对一段“I like dogs”的语音信号,在目标端同时生成转录文本和翻译文本,即建模为图片。根据链式法则,我们可以观察到有两条路径来进行分解。①蓝色路径:首先做 ASR 任务(P(z|x)),再做 MT 任务(p(y|z,x))。②红色路径:先做 ST 任务(p(y|x)),再做 BT 任务(p(z|y,x))。由于这两条路径对应的条件概率在理论上是一样的,且分解呈现出三角关系,我们将其称为三角分解一致性。
针对上述问题,我在该项工作中提出了新的解决方案: Triangular Decomposition Agreement (E2E-ST-TDA)。从模型的角度来看,其包括编码器和解码器。在编码器部分,使用 2 层一维卷积层对语音信号进行下采样,并使用 Transformer 编码器获得其上下文表征(Encoder Output)。解码器是我们方法的核心,其分为两步走,第一步是在目标端进行对偶路径解码,从而将所有数据纳入同一个模型进行训练;第二步是通过正则化去拉近两条路径之间的输出表示。
首先,我们给出对偶路径解码的具体流程。解码器接收到 Encoder Output 之后,在目标端对转录文本跟翻译文本进行联合建模,即输出转录文本和翻译文本的联合序列。我们通过语言标识符来区分不同的解码路径,如前置一个语言标识符<2en>,则会选择 ASR-MT 路径进行解码,即先生成转录文本和<2de>标识符,并继续生成翻译文本序列,其可以建模成图片。与之相对的,当前置<2de>时,则会选择 ST-BT 路径进行解码,即先生成译文再生成转录文本,其可以建模成图片。对于这一过程,对两条路径均使用 MLE 损失函数进行优化。
根据链式分解法则,前文所提到的两个式子理论上应当一致,但在真实训练过程中,两条路径的优化是各自独立的,且学习难度和先验知识存在不同,因而实践中未必一定相等。为了解决这个问题,我们引入了两个基于概率输出的正则化项来拉近两条路径生成的序列之间的不匹配。具体的,以”dog”为例,将 ASR-MT 所输出的“dog”的概率分布和 ST-BT 所输出的“dog”的概率分布之间使用 KL 散度作为正则化项进行拉近,以消除两条路径之间的不匹配。该过程可形式化为下图。
最终,模型的训练可以使用图片来进行优化。 在推理时,对于 ST,我们选择 ST-BT 路径进行解码,并在识别到<2en>标识符时终止结码,以保证与常规模型一样的推理速度。同理,对于 ASR,我们选择 ASR-MT 路径进行解码,并在识别到<2de> 时终止解码。
实验部分我们使用当前最大的开源语音翻译数据集 MuST-C 来评估所提出的方法。该数据集的音频数据来源于 TED Talks,其包含了英语到 8 种欧洲语言的三元组数据。下图给出了具体的数据统计以及所对比的方法。对于模型的设置,分为小规模模型和中等规模模型。我们采 BLEU Score 来评价翻译质量,使用 WER 评价 ASR 性能。
下表给出了各种方法在 MuST-C 测试集上的性能结果。我们可以观察到我们的方法 E2E-ST-TDA 在所有语项上获得了最佳的结果。
同时,在 ASR 任务上,也相对于基线模型有 1.5/1.9 的性能提升。这说明我们的方法在挖掘三元组之间的关联之后,可以同时提高 ASR 和 ST 的性能。
此外,我们还在更加真实的场景,即拥有更大规模数据的情况下进行了实验。针对音频数据,我们扩充了 960h 的 Librispeech ASR 数据;针对文本数据,我们扩充了 WMT14 En-De/Fr 数据。实验得出两个结论:E2E-ST-TDA 可以有效地扩展至大规模数据场景,并获得 SOTA 性能;大规模数据可以有效的提升翻译性能。
接下来是消融实验,其对比了 WordKD/SeqKD 以及去除 KL 正则化项的情形。实验结果表明,正则化项可以有效的帮助模型拉近路径之间的不匹配。
为了进一步验证参数规模是否会对性能增益产生影响,我们在 MuST-C En-De 语项上,采用(256,512,768,1024)的嵌入维度进行实验。详细结果如下图所示,随着嵌入维度的增大,性能增益的趋势与基础模型的性能曲线趋于一致,说明我们的模型的具有一定的鲁棒性。
这项研究中,我们提出了一个新颖的三角分解一致性正则化方法。其通过探索三元组数据的之间的关联以提升整体的翻译性能。加入了两个正则化项,以消除对偶路径之间的不匹配程度。同时在基准数据集上的实验验证了我们的方法的有效性。
数据实战派希望用真实数据和行业实战案例,帮助读者提升业务能力,共建有趣的大数据社区。
郅翠欣洛: 唯一性显然是不可能的首先即便是非奇异矩阵也不能保证LU分解的存在性,比如 0 1 1 0 当然,你可以把存在性作为条件,试图证明如果存在则唯一. 不过即便存在LU分解,也可以有很大的调整余地,因为LU=(LD)(D^{-1}U).在一定约束条件下,证明唯一性的办法一般是求逆并归类,比如L1^{-1}L2=U1U2^{-1},左边是下三角阵,右边是上三角阵,要相等只能都是对角阵,再结合其他条件去证明唯一性.
长白朝鲜族自治县17376858224: 对称正定矩阵的三角分解问题 - ?
郅翠欣洛: 用配方法,把二次型先写出来 Q(x1,x2,...,xn)=(x1,x2,...,xn)A(x1,x2,...,xn)' 设A=(a[i][j]) 令x[i]'=x[i]-Sigma(a[i][j]*x[j],j=1 to i-1) i=2,3,...,n x[i]''=x[i]-Sigma(a[i][j]*x[j],j=n to i+1) i=n-1,n-2,...,1 两种方法的坐标变换矩阵,一个是上三角阵,一个是下三角阵,也就是你的U,L了
长白朝鲜族自治县17376858224: matlab中LU函数 是干嘛用的? - ?
郅翠欣洛: 实现矩阵的LU分解.矩阵的三角分解又称LU分解,它是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU. LU函数使用语句: Y = lu(A) [L,U] = lu(A) [L,U,P] = lu(A) [L,U,P,Q] = lu(A) [L,U,P,Q,R] = lu(A)
长白朝鲜族自治县17376858224: matlab里矩阵的正交分解怎么表示?
郅翠欣洛: 矩阵分解 (decomposition, factorization)是多半将矩阵拆解为数个三角形矩阵(triangular matrix). 依使用目的的不同 ,可分为三种矩阵分解法:1)三角分解法 (Triangular Factorization),2)QR 分解法 (QR Factorization),3)奇异值分 ...
长白朝鲜族自治县17376858224: matlab中有没有对矩阵的三角分解的功能 怎么定义? - ?
郅翠欣洛: LU函数可以实现该功能.A = [ 1 2 34 5 67 8 0 ];[L1,U] = lu(A)L1 =0.1429 1.0000 00.5714 0.5000 1.00001.0000 0 0U =7.0000 8.0000 00 0.8571 3.00000 0 4.5000
长白朝鲜族自治县17376858224: matlab中lu分解出错,原因? - ?
郅翠欣洛: [L,U,P] = LU(A) returns unit lower triangular matrix L, upper triangular matrix U, and permutation matrix P so that P*A = L*U.估计你把换成[l,u,p]=lu(A)就对了...