大数据文摘转载自微软研究院AI头条
随着深度学习的不断发展,语音识别技术得到了极大的提升,同时为人们的日常生活提供了许多便利。
然而,一个语音模型的训练并非易事,因为语音数据天然存在着获取难、数据标注耗时昂贵的问题,而且还会面临模型漂移、标注数据不足等难题。因此,迁移学习技术对于语音数据非常重要。
为了解决语音识别的跨领域和跨语言问题,微软亚洲研究院机器学习组和微软(亚洲)互联网工程院提出了跨领域和跨语言语音识别的 CMatch 和 Adapter 方法。
这两项技术是如何提升模型迁移学习性能的?他们又利用了哪些创新技术?让我们从今天的文章中来获得答案吧。
语音识别就是将人的声音转化为对应的文字,在如今的日常生活中有着重要的应用,例如手机中的语音助手、语音输入;智能家居中的声控照明、智能电视交互;还有影视字幕生成、听录速记等等,以语音识别为核心技术的应用已经屡见不鲜。但是,语音数据天然存在着获取难、数据标注耗时昂贵的问题。不同人的方言、口音、说话方式也有所不同。受限于此,采集到的语音数据绝大多数会面临模型漂移、标注数据不足等问题。
尤其是语音识别中的跨领域和跨语言场景更是十分具有挑战性。跨领域指的是在领域 A(如普通麦克风)训练的模型如何迁移到领域 B(如专用麦克风)。而跨语种则指的是在语言 A(如俄语)上训练的模型如何迁移到语言 B(如捷克语)。特别是对于一些标注数据稀缺的小语种更是如此。因此,研究低资源跨语种迁移至关重要。
为了解决上述难题,微软亚洲研究院提出了用于语音识别的无监督字符级分布适配迁移学习方法 CMatch 和基于适配器架构的参数高效跨语言迁移方法 Adapter。相关论文已分别被语音领域顶会和顶刊 Interspeech 2021 及 IEEE/ACM TASLP 2022 所接收。
迁移学习方法 CMatch:实现字符级跨领域适配
众所周知,基于深度学习的端到端 ASR(自动语音识别)已经可以通过大规模的训练数据和强大的模型得到很好的性能。但是,训练和测试数据之间可能会因录音设备、环境的不同有着相似却不匹配的分布,导致 ASR 模型测试时的识别精度下降。而这种领域或分布不匹配的情况非常多样且常见,以至于很难对每个领域的语音数据进行大量收集并标记。这种情况下模型往往需要借助无监督领域适配来提升其在目标域的表现。
现有的无监督领域适配方法通常将每个领域视为一个分布,然后进行领域适配,例如领域对抗训练或是特征匹配。这些方法可能会忽略一些不同领域内细粒度更高的分布知识,例如字符、音素或单词,这在一定程度上会影响适配的效果。这点在此前的研究《Deep subdomain adaptation network for image classification》[1] 中得到了验证,与在整个域中对齐的传统方法相比,在子域中对齐的图像(即按类标签划分的域)通常可以实现更好的自适应性能。
微软亚洲研究院提出了一种用于 ASR 的无监督字符级分布匹配方法—— CMatch,以实现在两个不同领域中的每个字符之间执行细粒度的自适应。在 Libri-Adapt 数据集上进行的实验表明,CMatch 在跨设备和跨环境的适配上相对单词错误率(WER)分别降低了14.39%和16.50%。同时,研究员们还全面分析了帧级标签分配和基于 Transformer 的领域适配的不同策略。
以图1为例,通过执行 CMatch 算法,两个领域相同的字符在特征分布中被拉近了:
CMatch 方法由两个步骤组成:帧级标签分配和字符级别的分布匹配。
其中,帧级别标签分配可以为语音信号获得更加准确的“特征-标签”对应关系,为下一步实现基于标签(即字符)的分布适配提供依据,即需要获得帧级别的标签以取得更细粒度的特征分布。要想进行帧级标签分配,首先需要获得较为准确的标签对齐。如图2所示的三种方法:CTC 强制对齐、动态帧平均、以及伪 CTC 标签。可以看出,CTC 强制对齐是通过预训练的 CTC 模块,在计算每条文本对应的最可能的 CTC 路径(插入重复和 Blank 符号)后分配到每个语音帧上,这个方法相对准确但是计算代价较高;动态帧平均则是将语音帧平均分配到每个字符上,这个方法需要基于源域和目标域语速均匀的假设;而伪 CTC 标签的方法,通过利用已经在源域上学习较好的 CTC 模块外加基于置信度的过滤(如图2中的 t、e、p 等),兼顾了高效和准确性。
图2:三种帧级标签分配策略
需要说明的是,在源域上使用真实文本进行标签分配时,由于目标域没有文本,所以需要借助源域模型先对目标域的语音数据进行伪标注,然后再使用模型标注的文本进行标签分配。
得到帧级别的标签后,就需要进行字符级别的分布匹配。研究员们选择采用了 Maximum Mean Discrepancy(MMD)度量进行特征匹配。MMD 用于评估两个分布之间的差异,是迁移学习中常见的一种分布度量方法。它的公式为:
实际操作中,给定源域和目标域样本 X_S, X_T,计算 MMD 的有偏差的经验估计:
通过计算所有字符之间的平均 MMD,可以得到字符级别的分布匹配损失函数:
最终,微软亚洲研究院采用 CTC-Attention 混合模型作为基础 ASR 模型,以及同时混合学习 CTC 模块(用于帧级标签分配)和基于 Transformer Decoder 的 Seq2Seq Loss,于是语音识别的损失函数可以表示为:
将分布匹配损失函数和语音识别损失函数相结合,就得到了最终的损失函数:
最终算法流程如表1:
表1:CMatch 学习算法
领域内、跨设备、跨环境语音识别,CMatch均取得最佳效果
表2是跨设备语音识别时的结果,值得注意到的是,Source-only 的模型在其他设备录制语音上的识别效果相比领域内模型都会有一定程度的下降。而基于全局 MMD 和领域对抗训练的方法均有所提升,CMatch 则在各个情况下均取得了最佳的效果。
表2:跨设备语音识别结果
表3的结果表明,CMatch 在跨环境(抗噪声)语音识别情况下也取得了很好的效果。
表3:跨环境(抗噪声)语音识别结果
表4为消融实验,可以看到结合了自训练和细粒度的分布匹配能够使 CMatch 达到最好的效果。
表4:CMatch 消融实验结果
此外,研究员们还分析比较了三种字符分配方法。在表5中可以看出 CTC 强制对齐取得了最好的效果,但是其计算开销也最大;而 FrameAverage 也取得了较好的效果,但它的假设前提是领域和目标域具有均匀的说话速度;而使用 CTC 伪标签的方法取得了与 CTC 强制对齐相近的结果,同时计算起来也更加高效。
表5:三种字符分配方法的实验结果
最后,对于是否需要在解码器端使用 CMatch Loss,实验结果如表6。由于解码器在实验中本来就没有功能上的差别,目标文本都是标准的英文,因此减小其分布的差异并没有什么效果,甚至会损害性能。
表6:解码器端使用 CMatch Loss 的测试结果
Adapter 再进化:更少的训练数据,更高的准确率
在一代代科学家和工程师的努力下,语音识别系统在各种主流语言上都已经达到了非常好的效果,比如英语、中文、法语、俄语、西班牙语等……让人们在日常生活中就能享受其带来的便利。然而,世界上有大约7,000种语言,其中绝大部分语言的使用者并不多,而且不同人的方言、口音、说话方式也有所不同,这就使得这些语言的语音数据十分稀缺,即低资源(low-resource)语言。标注数据的稀缺导致近年来端到端语音识别的诸多成果迟迟不能应用到这些语言上。
为此,微软亚洲研究院的研究员们开始思考如何利用迁移学习,将主流语言(如英语、中文等)的知识用于帮助低资源语言的学习,在多种语言之间共享,起到“四两拨千斤”的效果,从而提升小语种语音识别的表现。如图3所示,给定罗马尼亚语作为目标语言,如何利用数据相对丰富的意大利语、威尔士语和俄语来训练出更好的罗马尼亚语语音识别模型?
图3:给定若干源语言,如何将知识迁移到目标语言上?
幸运的是,近年来,如 wav2vec2.0 [2] 等预训练模型都已经推出了多语言版本,微软亚洲研究院之前的研究也证明了仅需要简单的微调,一个大规模的多语言模型就能被适配到一个低资源语言上,并能显著改善识别性能。
但与此同时,研究员们也发现了两个新问题: