HUBERT HOW MUCH CAN A BAD TEACHER BENEFIT ASR PRE-TRAINING
文章来源:icassp2021
研究背景:
相比于CV和NLP领域,ASR领域中自监督预训练方法面临3个挑战。
- 一条语音句子中存在多个发音单元。
- 只进行audio-pretraining,没有发音单元的词典。
- 发音单元变长,没有清晰的段边界。
在这篇文章中,作者提出了HIdden-Unit BERT(HUBERT)模型,采用k-means聚类,为BERT预训练模型提供target label。**作者方法成功的关键因素是只在被masked的区域计算预测损失函数。**这使得模型在预训练阶段能够受益于无监督teacher的一致性,而不是teacher的质量。在初始阶段,只进行100类别的聚类,进行两次迭代的聚类,HUBERT模型的性能能够在低资源场景下,和最优的wav2vec2.0模型相当。
具体做法:
wav2vec2.0是怎么生成target
在讲解本文的做法之前,需要先了解预训练模型wav2vec2.0的做法。wav2vec2.0是一个很优秀的自监督预训练模型,在预训练阶段不需要语音-文本pair数据,但是预训练模型训练需要构建自监督任务所需要的target。
wav2vec2.0模型采用原始语音输入,然后进行features encoder学习类似于fbank的局部特征,然后features encoder的输出被多段mask后,进入transformer,通过transformer上下文预测被mask的表征,然后features encoder输出的被多段mask的真实特征进入VQ模块进行量化,这个VQ模块本质上是一个聚类器,是一个提供预训练target的模块,这里的VQ本身是随着训练进行参数更新,是一个在线聚类的过程。wav2vec2.0先了解到这里。
HUBERT是怎么生成target
HUERT是一个离线聚类获取target的过程,具体做法:
- 首先在39维的MFCC特征上进行k-means和GMM聚类,聚类中心数为{50,100,500}。聚类之后可以获取每一帧语音的聚类中心,此时的聚类中心为每一帧的target。
- 每一帧语音获取target后,进行类似于wav2vec2.0类似的pretraining,然后在mask位置和未被mask的位置计算损失函数,
L
=
α
L
m
+
(
1
?
α
)
L
u
L=\alpha L_m+(1-\alpha)L_u
L=αLm?+(1?α)Lu?。
L
m
L_m
Lm?为mask位置产生的损失,
L
u
L_u
Lu?为未被mask位置产生的损失。
- 预训练完成后,可以在有标签数据上finetune。
- 进行迭代式的聚类。在预训练阶段2完成后,此时已经有比较好的预训练模型,可以将预训练模型当作teacher模型生成表征进行第二次k-means聚类,发现更有意义的聚类单元。
研究结果:
-
作者在实验中发现,只在被mask的位置计算损失函数性能最好。 -
可以看出,finetune性能与在预训练阶段teacher的质量有很好的相关性。而且在MFCC上k-means聚类中心数目对性能影响不大。 -
增大batch-size能够明显提升性能;训练更长时间性能会更好。另外这个结果优于DiscreteBERT中采用13.5k的聚类中心数目的结果,作者猜测HUBERT性能好的原因:使用了更合适的聚类中心数目并且将原始mfcc作为输入,不会丢弃信息。 -
无监督的teacher模型融合,可以带来比单个teacher更好的性能。 -
作者在采用预训练模型进行迭代式聚类时,采用不同层的输出进行聚类,发现中间层6层的表征产生target进行二次预训练对下游finetune任务帮助最大。
附录
文章链接:Hubert: How Much Can a Bad Teacher Benefit ASR Pre-Training? | IEEE Conference Publication | IEEE Xplore
幻灯片链接:Wei-Ning Hsu, Yao-Hung Hubert Tsai, Benjamin Bolte, Ruslan Salakhutdinov, Abdelrahman Mohamed · HUBERT: How much can a bad teacher benefit ASR pre-training? · SlidesLive
|