论文阅读——Mockingjay: unsupervised speech representation learning

《Mockingjay: Unsupervised Speech Representation Learning with Deep Bidirectional Transformer Encoders》

原文地址:https://arxiv.org/abs/1910.12638v2


摘要

文章提出了一种新的语音表示学习方法——Mockingjay。该方法使用双向的Transformer Encoder在大规模无标签数据集上预训练,它是根据过去(past)和未来(future)的帧来共同预测当前的帧。通过这个方法得到的语音表示广泛地提高了下游任务的表现,例如音素分类、语音识别、基于语音的情感分析等。除此之外,实验证明用Mockingjay方法进行预训练,然后再用其他下游任务进行微调,能够极大得提高表现。

 

引入

Speech Representation Learning的目的就是找到一种语音表示方法(就像词向量是为了找到一种词的表示方法),文章提出了Mockingjay方法。Mockingjay使用多层transformer encodersmulti-head self-attention,构成双向encoder而为了进行无监督预训练,文章还提出了Masked Acoustic Model(MAM)任务,Mockingjay通过完成该任务来得到语音表示。而Mockingjay这个词本身指的是一种鸟,它能够模仿人发出的声音。

 

MOCKINGJAY

Mask Acoustic Modeling

mask acoustic modeling任务预训练方法如下图所示。MAM选择15%的输入帧将其遮盖,然后根据他们的上下文文本,通过模型对遮盖住的帧进行预测。Prediction Head层包含了两层前向网络。使用L1 Loss来最小化这15%的预测值帧和真实帧之间的差距。

在这15%的遮盖帧中,文章的处理方法与Bert类似。

  • 80% —— 置为0
  • 10% —— 替换为其他的任意帧
  • 10% —— 不变

同样的,这样处理的原因是为了减小训练与测试之间的差距,因为在测试阶段是不会进行mask的。

除此之外,为了避免声音帧的local smoothness(?),文章提出还需要对额外的C_num个连续帧进行置0 mask。

论文阅读——Mockingjay: unsupervised speech representation learning

Mockingjay Model Architecture

文章使用多层transformer encoder和multi-head self-attention。每个transformer encoder层都包括两个子层:multi-head self-attention和feed-forward,各子层内部都有残差连接和正则化,如下图所示。

原始数据帧首先经过mask;其次为了适应长序列,可以对Masked Frames进行下采样;而为了避免直接将声学数据与positional encoding相加可能会导致的训练失败问题,在加入positional encoding前先将数据通过一个线性投影层(projection);最后,因为Transformer Encoder中没有循环和卷积,所以使用positional encoding来提供序列顺序信息,这里使用sinusoidal positional encoding(正弦位置编码),原因是声学特征可以任意变长,变化很大。

将最后一层Transformer Encoder的输出作为Mockingjay语言表示,标记为Hidden。在下一节“与下游任务相连”中会给出如何使用Mockingjay语言表示。

论文阅读——Mockingjay: unsupervised speech representation learning

与下游任务相连

Mockingjay表示本质上是Transformer Encoder的隐藏层。将学习到的表征与下游任务相结合的方法主要分为3种:

  1. 最主要的方法就是从Transformer Encoder的最后一层中获取表征
  2. 或者类似于ELMo方法,通过求不同Transformer Encoder层的输出的加权求和来获取表征
  3. 除此之外,预训练的Mockingjay模型还可以和随机初始化参数的下游模型一起进行微调。(微调表现相当好)

 

实现

文章提供了两种模型参数设置:BASE和LARGE。这两种模型参数设置使用相同的hidden dimension size——H_dim=768,feed forward size——F_dim=3072,attention heads——A_num=12;其余的encoder layer number——L_num,downsample factor——R_factor 以及  consecutive masking number——C_num都是不同的,设置如下所示。

论文阅读——Mockingjay: unsupervised speech representation learning

 

实验

作者提供了5种实验设置以及它们的实验结果:

1BASE —— 最后一层Transformer Encoder输出作为Mockingjay 表示

2LARGE ——最后一层Transformer Encoder输出作为Mockingjay 表示

3BASE-FT2 —— BASE加上随机初始化参数的下游模型,微调2epoch

4BASE-FT500 —— BASE加上随机初始化参数的下游模型,微调50Wepoch

5LARGE-WS —— LARGE中所有encoder layers的输出加权求和,作为Mockingjay表示

主要将这5种方法和APC[1],Mel_feature做比较,因为[1]中提到APC是十分适合作为baseline的。

音素分类实验

使用LibriSpeech train-clean-360子集的Mel-features, APC, Mockingjay表征来训练线性音素分类器。实验结果如下所示。

  • 大数据集上(360
  • BASE相比Mel-features提高了11.8%
  • LARGE相比Mel-features提高了15.2%
  • BASE-FT2表现极佳,相比Mel-features提高了35.2%,相比APC提高了10.2%
  • BASE-TF2BASE-FT500只有很小的差距
  • LARGE-WS的结果比LARGE
  • 小数据集上(0.36
  • BASE相比Mel-features提高了22.7%
  • APC在大数据集上表现较好,但在小数据集上却很差
  • Mockingjay在数据受限的情况下也有很好的表现

论文阅读——Mockingjay: unsupervised speech representation learning

 

说话人识别

使用不同的表征训练一个一层的RNN分类器。实验结果如下图Speaker列所示。可以看出,BASE和LARGE的表征优于APC和Mel-Features,BASE-FT2表征表现最好。

论文阅读——Mockingjay: unsupervised speech representation learning

 

基于语音的情感分类

为了证明所提出的表示在不同数据集上的域不变性,Mockingjay模型在LibriSpeech上进行了预训练,并应用于MOSEI[2]数据集上,然后使用一个简单的单层RNN分类器,对模型进行训练以从语音中提取语言含义并区分情感。实验结果如上图Sentiment列所示。

LARGE-WS在无需微调的情况下获得了最高分,这表明更深层次的模型具有提取一般语音表示的巨大潜力。