本次分享台湾大学李宏毅老师团队在ICASSP 2020会议发表的论文《MOCKINGJAY: UNSUPERVISED SPEECH REPRESENTATION LEARNING WITH DEEP BIDIRECTIONAL TRANSFORMER ENCODERS》。该论文主要介绍了MOCKINGJAY这一个新的语音表征学习方法,它通过对过去和未来语境的共同调节来预测当前帧。

论文地址:

https://arxiv.org/pdf/1910.12638.pdf

代码仓库:

https://github.com/andi611/Mockingjay-Speech-Representation

0 Abstract

我们提出了的Mockingjay是一种新的语音表征提取方法,使用大量无标签数据对双向Transformer编码器进行预训练。以前的语音表征提取方法通过对过去帧进行调节、预测未来帧的信息来进行学习。而Mockingjay通过对过去和和未来语境的共同调节来预测当前帧。Mockingjay表征提取法广泛的提高了下游任务性能,在包括音素分类、说话人识别和口语内容的情感分类的下游任务中优于其他方法。Mockingjay在经验上是十分强大的,只需要对下游任务进行2个epoch的微调就能进一步大幅提高性能。在只有0.1%的标注数据的低资源环境下,我们的表现超过了使用所有100%标注数据的Mel-features的结果。

1 Introduction

语音表征学习任务的目标是从语音中找到一种转换,使得高层信息更容易被语音和语言处理(SLP, Speech and Language Processing)的下游任务所接受,因为语音信号拥有丰富的声学和语言学内容,包括音素、单词、语义、语调、说话人特征,甚至情感信息。

在本文中,我们提出了Mockingjay,在不使用任何标签的情况下,通过无监督训练学习语音表征。我们使用多层Transformer encoders和多头自注意力机制(multi-head self-attention)来实现双向编码;这个框架允许我们的模型同时考虑过去和未来的语境。为了实现语音表征的无监督预训练,Mockingjay在掩蔽声学模型(MAM)任务下进行学习。在训练过程中,给出被掩码掉的帧,模型学习重建和预测原始帧。图1给出了模型框架。

1.1 Related work

无监督的语音表征学习能有效的从语音中提取出高级属性。SLP的下游任务的性能可以通过语音表征得到改善,因为表面的特征,如log Mel-spectrograms或波形可以很好地揭示语音中的丰富信息。对比预测编码(CPC, Contrastive Predictive Coding)和wav2vec使用多层CNN对过去的语境进行编码,表征是在对比二元分类任务下通过预测潜在空间的未来而学习的。自回归预测编码(APC, Autoregressive Predictive Coding)使用自回归模型来编码过去声学序列的时间信息;该模型像基于RNN的语言模型一样预测未来帧,用重建损失进行优化。然而,这种对模型架构的约束限制了语音表示学习的潜力。最近提出的vq-wav2vec方法试图将表现良好的自然语言处理(NLP)中的BERT应用于连续语音。输入的语音被离散到一个K-way量化的嵌入空间,因此连续的语音可以像离散的单元一样,进行类似于NLP任务中的单词标记。在vq-wav2vec中,由于量化过程违背了语音的连续性质,因此需要一个详尽的两阶段训练管道和大量计算资源来使语音适应NLP算法。与ve-wav2vec通过量化使语音适应BERT不同,我们所提出的方法可以看作是BERT[12]的修改版,直接应用于连续语音。

1.2 Proposed Method

与之前只考虑过去的序列来预测未来帧的信息的从左到右的单向性方法不同,论文中所提出的方法允许我们训练一个双向的语音表示模型,缓解了之前方法的单向性约束。因此,Mockingjay模型在几个SLP任务中获得了实质性的改进。此外,由于将预训练模型的能力仅限制在表征提取上,所以我们提出的方法可以在下游任务上轻松的进行微调,它是鲁棒的。实验表明,2个epoch的微调就可以很容易改善模型的性能。

所提出的方法优于其他代表和特征。与常用的log Mel-features相比,在无标签的口语内容数据集上进行预训练,我们的音素分类准确率比它高35.2%(绝对提高),说话人识别准确率高28.0%(绝对提高),情绪辨别准确率高6.4%(绝对提高)。我们还在低资源环境下进行了实验,表明Mockingjay能够在现实生活的低资源场景中改善监督训练。在只有0.36小时(0.1%)的转录语音的情况下,提出的方法优于有360小时(100%)标签的Mel-features。

2 Mockingjay

在这一节中,我们首先介绍了模型架构及其设计,其次解释了所提出的无监督语境预测任务,最后解释了所提出的模型如何与下游任务模型一起使用。

2.1 Model Architecture

我们使用多头自注意力的多层Transformer编码器进行左右双向编码,这个架构如图2所示。每个编码器层有两个子层,第一个是多头自力网络,第二个是前馈层,每个子层都有一个残余连接,然后是层的归一化。模型中的所有编码器层以及子层都有相同尺寸的输出,表示为Hdim。在图2中,我们将前馈尺寸表示为Fdim,自我注意的头数表示为Anum,Transformer层的总数表示为Lnum。Mockingjay的表征可以从Transformer编码器的隐藏状态中提取出来,并标记为Hidden,我们在第2.3节中解释如何将它们作为表征。

由于Transformer编码器不包含递归和卷积,我们使用位置编码来使我们的模型知道输入序列的顺序。由于直接将声学特征加入到位置编码中可能会导致潜在的训练失败,因此在加入位置编码之前,首先将输入帧线性投影为Hdim的维度。由于声学特征可以是任意长的高方差,所以我们使用正弦波位置编码而不是可学习的位置嵌入。我们对输入特征进行降采样,使我们的模型适应长序列。为了减少帧的长度,我们使用了重塑技术,将Rfactor的连续帧堆叠成一个步骤。

2.2 Masked Acoustic Modeling

我们提出了掩蔽声学建模任务,我们随机选择15%的输入帧,模型根据其左右语义预测所选帧,如图1所示。在训练过程中,我们增加了一个由两层前馈网络组成的预测头,使用最后的编码器层作为它的输入。我们使用L1损失来最小化所选15%的预测和真实帧之间的重建误差。一旦模型训练完成,预测头就不再使用。

在训练过程中,对于选定的15%的帧,1)我们在80%的时间内将其全部屏蔽为零,2)在10%的时间内用随机帧进行替换,3)在10%的时间保留原始帧。为了缓解训练和推理之间的不匹配,我们引入了这个子随机过程,因为在推理时不会出现这些被屏蔽的帧。请注意,与BERT不同的是,BERT的子随机过程是在第i个选定的标记上逐个进行的,而我们的子随机过程是在语料上进行的。换句话说,我们的模型可能在3)10%的时间内收到作为ground-truth帧的输入,而不是像BERT那样,一些输入总是被增强的。

为了避免模型利用声学帧的局部平滑性,我们提出了额外的连续屏蔽,即我们将连续的帧Cnum屏蔽为零。该模型需要推断全局结构而不是局部信息。与BERT中采用的在数据预处理过程中进行掩蔽的静态掩蔽不同,我们还使用了动态掩蔽,每次我们将序列送入模型时,掩蔽模式都是从均匀分布中采样的。不同于BERT和ALBERT需要两个任务来训练其语言模型,我们只使用一个单一的上下文预测任务来训练我们的表征模型。在我们的初步实验中,我们发现BERT和ALBERT中使用的句子预测任务是没有帮助的,因为额外的任务有可能损害训练行为。由于篇幅限制,我们没有阐述具体的细节。

2.3 Incorporating with Downstream Tasks

Mockingjay表征本质上是Transformer编码器的隐藏状态。有许多方法可以将学到的表征纳入下游任务。在这项工作中,我们主要从最后一层提取表征。但是,我们也将Mockingjay的深层内部结构暴露给下游模型,我们使用类似于ELMO的方法,使用了自所有层的混合表征。换句话说,我们使用一个可学习的加权和来整合所有层的隐藏状态。最后要说明的是,预训练的Mockingjay模型可以与下游模型进行微调来对结果进行改造,我们将预训练的Mockingjay与随机初始化的下游任务模型一起更新。

3 Implementation

在这项工作中,我们使用两种类型的特征作为我们模型的输出重建目标:Mel-scale spectrogram和linear-scale spectrogram。由于Mel-scale spectrogram与Linear-scale spectrogram相比是一种更简洁的声学特征,所以我们提出了两种模型设置:BASE和LARGE。这两个模型都以Mel-features为输入,并将输入的Mel-features转化为高级表征。它们使用相同的隐藏维度大小Hdim=768,前馈大小Fdim=3072,注意力头数Anum=12,除了层数Lnum、下采样因子Rfactor和连续掩蔽数Cnum之外,两种模型设置的不同之处列于表1。我们在实验部分进一步分析了它们的差异。

提出的Mockingjay模型是在LibriSpeech语料库的train-clean-360子集上进行预训练的。我们使用了Adam,其中学习率在500k总训练步骤的前7%被预热到4e-4的峰值,然后线性衰减。在所有层和注意力权重上应用0.1的dropout。对于下游任务的微调,除了学习率为4e-3之外,大多数超参数与预训练时相同,训练周期数被设置为2(大约为50k步)。我们使用单一的1080Ti GPU,以6个批次的规模进行训练。我们在实现过程中提供了预训练的模型,这些模型是公开并且可以重复使用。

4 Experiment

按照以前的工作,我们在不同的下游任务中评估了不同的特征以及它们的表现,包括:音素分类、说话人识别和口语内容的情感分类。

我们给出了5个不同的环境设置。1)BASE;2)LARGE,其中Mockingjay表征是从最后一个编码器层提取的;3)BASE-FT2,我们用随机初始化的下游模型对BASE进行了2个epoch的微调;4)BASE-FT500,我们对模型进行了500k步的微调;最后是5)LARGE-WS,我们使用了一个可学习的加权和将LARGE模型的所有编码器层的隐藏状态纳入。我们并没有对LARGE模型进行微调,因为它是用来提取表征的。从经验上看,我们发现即使是有监督训练,随机初始化的Mockingjay模型之后的任何下游模型都很难从头训练。这表明,提出的预训练基本上是不可或缺的。

4.1 Comparing with other representations

所提出的方法主要与APC表征法进行比较,因为它们都在音素分类和说话人验证方面进行了实验。正如APC论文中所提到的,APC方法在这两项任务中的表现都优于CPC表征学习法,这使得APC适合作为一个强有力的基线。APC使用一个单向自回归模型。我们将提出的方法与APC进行比较,以说明我们的双向方法在语音表征学习中具有优势。为了进行公平的比较,我们使用了APC的官方实现对其进行预训练,并使用文献中的理想参数和设置,但将模型的隐藏大小扩大到Hdim=768,以匹配我们的模型。我们还给出了160维log Mel-features的结果,这有助于评估常规声学特征对语音信息的可及性。

4.2 Phoneme Classification

为了评估语音特征是否包含发音信息,我们使用LibriSpeech train-clean-360子集的Mel-features、APC和Mockingjay表征训练线性音素分类器。我们用蒙特利尔强制对齐器(Montreal Forced Aligner)获得强制对齐的音素序列,其中包括72个可能的音素类别。对LibriSpeech test-clean子集的测试结果如图3所示。

在所有360小时的标签都被用来训练分类器的情况下,相比于Mel-features,BASE和LARGE中分别增加了11.8%和15.2%的准确性。BASE-FT2模型在经过2个epoch的微调后优于其他所有的表征,比APC和Mel-features的绝对值分别提高了10.2%和35.2%。我们观察到,2个epoch的微调足以显示出我们方法的潜力,因为BASE-FT2和BASE-FT500之间只有很小的差距(3.9%)。此外,正如我们预期的那样,LARGE-WS比LARGE表现的更好。

为了证明在资源有限的情况下,即在人类标签不足的情况下,对语音的预训练是否能改善监督训练,我们使用减少了的训练数据来训练音素分类器。图3显示了不同方法的性能变化,我们通过测量各种受限的训练数据的间隔来观察性能下降的情况。

4.3 Speaker Recognition

为了证明所提出的方法在所有的SLP下游任务都有不错的表现,我们给出了在LibriSpeech 100小时选定子集上的说话人识别结果,其中训练/测试分割是以9:1的比例随机进行的,一共有63个可能的说话人。我们使用不同的表征法训练了一个简单的单层RNN分类器进行说话人识别,结果列在表2。提出的BASE和LARGE表征法的表现优于APC和Mel-Features。BASE-FT2在BASE的基础上得到了进一步改进,同时取得了最高的准确性,而LARGE-WS也优于LARGE。

4.4 Sentiment Classification on Spoken Content

为了证明所提出的表征在不同数据集上的领域具有可转移性,Mockingjay模型在LibriSpeech上进行了预训练,并应用于MOSEI数据集。我们还使用了一个简单的单层RNN分类器,该模型从语音中提取语言学意义,并对情绪进行区分。表2中列出的结果具有与说话人识别任务相同的结论。除了在情感分类的情况下,LARGE-WS在不需要微调的情况下取得了最高分,表明更深层次的模型在提取一般语音表征方面有很大潜力。作为本节的结束语,我们声称所提出的表征是通用的,可以用于具有各种未见领域的数据集。

Conclusion

提出的表征包含各种知识,包括但不限于语音、说话人和情感信息。我们改善了广泛的下游任务的性能,并在低资源环境下显示出不错的结果,因为学到的语音表征是鲁棒的,所以可以将其转移到不同数据集的不同任务上。在未来的工作中,我们将在更多的下游SLP任务中研究和部署Mockingjay表征,包括ASR、语音转换和语音翻译。

Mockingjay: 基于双向Transformer编码的无监督语音表征学习相关推荐

  1. MG-BERT:利用无监督原子表征学习进行分子性质预测

    MG-BERT:利用无监督原子表征学习进行分子性质预测 MG-BERT: leveraging unsupervised atomic representation learning for mole ...

  2. MoCo 动量对比用于无监督视觉表征学习

    目录 1.前言 2.代理任务 3.论文摘要 4.引言 5.相关工作 6.具体方法(关于InfoNCEloss的详细介绍见另一篇博文) 7.总结 1.前言 对比学习:将样本通过模型映射到特征空间,在特征 ...

  3. CVPR 2021 | 何恺明等人新作!深入探究无监督时空表征学习

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 本文转载自:Smarter 先看一下阵容,何恺明+Ross Girshick!!! 目前该工作已收录于CVP ...

  4. *基于类平衡自我训练的无监督域自适应用于语义分割

    基于类平衡自我训练的无监督域自适应用于语义分割 摘要:最近的深度网络实现了最先进的性能在各种语义分割任务中.尽管有这样的进步,但是这些模型在现实世界中面临挑战,它们存在很大的差别在已标签训练/源文件和 ...

  5. Unsupervised Degradation Representation Learning for Blind Super-Resolution(基于无监督退化表示学习的盲超分辨率处理)

    文章目录 Abstract(摘要) 1. Introduction 2. Related Work 2.1. Single Image Super-Resolution 2.2. Contrastiv ...

  6. 《异常检测——从经典算法到深度学习》16 基于VAE和LOF的无监督KPI异常检测算法

    <异常检测--从经典算法到深度学习> 0 概论 1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法 3 基于One-Class SVM的异常检测算法 4 基于高斯概率密度异常检测 ...

  7. MG-BERT | 利用 无监督 原子表示学习 预测分子性质 | 在分子图上应用BERT | GNN | 无监督学习(掩蔽原子预训练) | attention

    分子性质预测的的大部分文章,本质是研究分子的表示学习,然后应用到性质预测任务. 有分子性质预测的文章,关键词是"property prediction",也有专门研究毒性的文章,关 ...

  8. 《异常检测——从经典算法到深度学习》15 通过无监督和主动学习进行实用的白盒异常检测

    <异常检测--从经典算法到深度学习> 0 概论 1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法 3 基于One-Class SVM的异常检测算法 4 基于高斯概率密度异常检测 ...

  9. CVPR 2021 华南理工和微信的Transformer:UP-DETR无监督预训练检测器

    点击上方"机器学习与生成对抗网络",关注星标 获取有趣.好玩的前沿干货! 作者:飞奔的啦啦啦   知乎 https://www.zhihu.com/question/4323211 ...

最新文章

  1. Python实现信息自动配对爬虫排版程序(附下载)
  2. python 数据分析学什么-入门数据分析,我应该学习什么编程语言
  3. XML解析,dom解析,Jdom解析
  4. birt脚本for循环语句_Python初级教程(11): for循环语句
  5. oracle时间mapper怎么比较,MyBatis+Oracle时间精度丢失的问题
  6. 将Chrome调试器里的JavaScript变量保存成本地JSON文件
  7. ubuntu下创建软件图标和直接点文件打开
  8. 《解读NoSQL》——1.4 小结
  9. 国产数据库发展十策(二):数据库难在研发还是难在生态?
  10. android解析布局树,Android Viewtreeobserver解析
  11. Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法[转]
  12. 再议FastReport.NET(转)
  13. C语言程序设计知识点总结归纳(全书)
  14. 详解python主函数
  15. swfupload 无法加载_解决SWFUpload上传控件在非IE浏览器下不好用的问题
  16. 服务器里怎么设置微信多开,企业微信多开的4种方法
  17. Createjs的控件 BitMap、MovieClip、Sprite
  18. 35岁以后你还能干嘛?
  19. java 组织机构代码_JAVA实现社会统一信用代码校验的方法|chu
  20. 电脑显示器设置被锁定如何解锁

热门文章

  1. Elasticsearch day01
  2. 【深度强化学习】Q-learning
  3. 常见Flash无法播放现象处理
  4. DFS理解(java)
  5. 电商项目之分类管理理解
  6. 计算机专业就业银行,计算机专业硕士毕业的人进入银行工作或者去高校当教师怎么样?...
  7. C语言自己实现ls -al 功能,支持更换目录。 利用LINUX命令行解析,实现ls,总结船长
  8. Q460GJDZ35钢板材料选择舞阳钢厂的原因
  9. MySQL数据库单词
  10. linux清理内存占用