2106.07447_HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units

总结

  • 简介

    • Hidden-Unit BERT (HuBERT)

    • 目标

      • 通过自监督学习方式,从大量未标注的语音数据中学习到高质量的语音表示,从而提升语音处理任务(如语音识别、语音合成等)的性能

    • 方法

      • 通过掩码预测隐藏单元的机制

  • 核心思想:预测隐藏单元

    • 掩码预测任务:受BERT在NLP中的启发,HuBERT对输入语音进行随机掩码(遮蔽部分时间段)。

    • 预测目标:模型需预测被掩码区域对应的隐藏单元(Hidden Units),而非原始音频或传统声学特征(如MFCC)。

    • 隐藏单元的本质:这些单元是离线聚类算法(如k-means)对MFCC或模型中间特征生成的伪标签,可视为数据驱动的“声学单元”。

  • 两阶段训练流程

    • 第一阶段:用基础声学特征(MFCC)进行聚类,生成初始伪标签训练模型。

    • 第二阶段:用第一版HuBERT模型提取的特征重新聚类,生成更优质的伪标签,再训练最终模型。

    • (迭代优化:伪标签质量随模型提升而改善)

  • 关键创新:避免直接量化

    • 对比wav2vec 2.0(需学习量化模块将连续语音离散化),HuBERT直接使用聚类生成的离线伪标签作为预测目标:

      • 优势1:规避量化模块的学习难度和潜在信息损失。

      • 优势2:标签生成与模型训练解耦,简化优化过程。

  • 模型架构

    • 特征编码器:卷积神经网络(CNN),将原始音频转换为帧级特征。

    • 上下文编码器:Transformer,学习长距离依赖关系。

    • 预测头:在掩码位置预测对应隐藏单元的分布。

  • 性能优势

    • 低/高资源任务均领先:在LibriSpeech(960小时)和Libri-light(6万小时)上训练后,HuBERT在ASR任务上超越同期模型(如wav2vec 2.0),尤其在小规模标注数据场景下泛化能力更强。

    • 多任务泛化性:学到的表示可迁移到说话人识别、情感识别等任务。

  • 核心贡献总结

    • 任务设计:将语音自监督学习转化为掩码区域伪标签预测问题。

    • 标签策略:通过迭代聚类生成渐进优化的伪标签,替代量化模块。

    • 效率与效果:两阶段训练实现高性能,且规避了量化噪声。

  • 意义

    • HuBERT证明了基于聚类伪标签的掩码预测是学习通用语音表征的有效范式,推动了自监督语音模型的发展,为后续模型(如WavLM)奠定了基础。

  • 总结

    • HuBERT的核心是通过预测掩码区域的聚类伪标签学习语音表示,其创新在于利用离线聚类生成目标替代量化模块,并通过两阶段迭代优化提升表示质量,最终在多个语音任务上达到SOTA性能。

LLM 总结

本文提出了一种名为 HuBERT (Hidden Unit BERT) 的自监督语音表示学习模型。该模型借鉴了自然语言处理中 BERT 的掩码预测机制,将其应用于语音信号的隐藏单元预测任务中,以实现对语音信号的自监督学习。以下是文章内容的总结:

概述

  • 目标:通过自监督学习方式,从大量未标注的语音数据中学习到高质量的语音表示,从而提升语音处理任务(如语音识别、语音合成等)的性能。

  • 方法:HuBERT 通过掩码部分的语音隐藏单元,并预测这些被掩码的单元,从而学习语音的上下文表示。

方法细节

  1. 预训练框架

    • 使用一个标准的卷积神经网络(CNN)对输入语音信号进行编码,提取出语音的隐藏表示(hidden units)。

    • 将隐藏表示输入到一个基于 Transformer 的模型中,进行掩码预测任务。

  2. 掩码机制

    • 在训练过程中,随机掩码一部分时间步的隐藏表示。

    • 使用 Transformer 模型基于未被掩码的上下文来预测被掩码的单元。

  3. 聚类与伪标签

    • 在训练初期,使用聚类算法(如 K-means)对隐藏单元的表示进行聚类,生成伪标签。

    • 随着训练的进行,伪标签的粒度逐渐细化,从粗粒度的聚类标签过渡到更细粒度的单元预测,从而逐步提升模型的表达能力。

  4. 自监督学习过程

    • 仅使用未标注的语音数据进行训练。

    • 模型通过预测被掩码的隐藏单元,学习到语音的上下文表示。

实验与结果

  • 在多个语音识别任务中,HuBERT 的性能优于许多监督和自监督学习方法。

  • 通过不同阶段的伪标签优化,模型能够逐步学习到更丰富的语音表示。

  • 模型在少量标注数据的微调下,也能取得良好的性能,显示出较强的数据效率。

结论

  • HuBERT 是一种有效的自监督语音表示学习方法,它通过掩码预测隐藏单元的机制,能够从大量未标注语音数据中提取出高质量的语音表示。

  • 该方法具有良好的可扩展性和应用前景,可广泛用于语音识别、语音合成以及其他语音处理任务中。

这篇文章展示了自监督学习在语音处理领域的巨大潜力,并为后续研究提供了重要的方法参考。

Abstract

本文提出了一种名为Hidden-Unit BERT (HuBERT) 的自监督语音表示学习方法,旨在解决语音表示学习中的三个独特挑战:

  1. 每个语音输入包含多个语音单位;

  2. 预训练阶段无语音单位的词典;

  3. 语音单位长度不一且无显式分割。

为解决这些问题,HuBERT采用了离线聚类方法,为类似于BERT的预测损失提供对齐的标签。其核心思想是仅在被遮蔽的区域应用预测损失,从而迫使模型学习连续输入中的声学与语言联合表示。该模型主要依赖于无监督聚类步骤的一致性,而非聚类标签本身的质量。

实验结果显示,尽管采用的是一个简单的100个聚类的k-means教师模型,并仅进行两次迭代聚类,HuBERT在Librispeech和Libri-light基准数据集上的表现达到甚至超过了当前最先进的wav2vec 2.0模型,且在不同训练时长(10分钟、1小时、10小时、100小时、960小时)下均表现优异。使用10亿参数模型时,HuBERT在更具挑战性的dev-othertest-other评估子集上分别实现了19%和13%的相对词错误率(WER)减少

该研究展示了HuBERT在自监督语音表示学习中的强大性能和泛化能力。

I Introduction

Figure 1:The HuBERT approach predicts hidden cluster assignments of the masked frames (y2,y3,y4 in the figure) generated by one or more iterations of k-means clustering.

本章节主要介绍了高保真语音表示学习的背景、挑战以及当前的研究方法,重点提出了一种名为HuBERT的自监督学习模型,并展示了其在语音识别任务中的卓越表现。

内容总结如下:

  1. 研究背景与目标

    • 语音表示学习的目标是模仿婴儿学习语言的过程,通过聆听和互动来学习高保真语音表示,包括内容信息和非词汇信息(如说话人身份、情绪、语调等)。

    • 理解完整情境还需要建模与语音信号交错的背景噪声(如笑声、咳嗽、环境音等)。

  2. 自监督学习的必要性

    • 由于高质量标注数据获取困难,自监督学习逐渐成为主流,它通过设计预训练任务,从输入信号本身提取目标,无需依赖语言资源。

    • 自监督任务包括时序特征区分、音频特征预测、掩码音频特征预测等。

  3. 伪标签方法(Pseudo-Labeling)

    • 该方法通过已有监督数据训练教师模型,然后对无标签数据生成伪标签,并用于训练学生模型。

    • 虽然有效,但其依赖教师模型的监督数据质量,且难以泛化到多个任务,存在局限性。

  4. 自监督学习的优势

    • 自监督学习方法能更全面地建模输入信号的所有信息,学习到的表示更具通用性。

    • 在计算机视觉(CV)和自然语言处理(NLP)领域已取得显著成果,但在语音领域面临独特挑战(如连续信号建模、单元边界未知等)。

  5. HuBERT模型的提出

    • HuBERT是一种适用于语音信号的自监督学习模型,采用离线聚类生成噪声标签,进行类似BERT的预训练。

    • 通过掩码预测聚类标签,迫使模型学习有意义的连续潜在表示,同时建模语音的时序结构。

    • 启发自DeepCluster,但结合了语音序列的掩码预测机制。

  6. 实验与结果

    • HuBERT在标准LibriSpeech 960h和Libri-Light 60k小时数据集上进行预训练,在多个微调数据子集(10分钟到960小时)中表现优于或匹敌当前最先进的 wav2vec 2.0 模型。

    • 提供了三种模型规模(Base, Large, X-Large),其中 X-Large 在 Libri-Light 数据集上相对 Large 模型在测试集上分别实现了 19% 和 13% 的相对词错误率(WER)提升。

总体观点:

该章节强调了自监督学习在语音表示学习中的重要性,尤其在减少对标注数据依赖方面具有显著优势。通过提出 HuBERT 模型,作者展示了如何在连续语音信号中有效结合聚类与掩码预测,从而实现高效、可扩展的语音表示学习。

II Method

本章节主要介绍了 HuBERT(Hidden Unit BERT)的 方法实现与训练机制,从模型结构到训练策略进行了详细描述。以下是内容总结:


II-A:学习隐状态(Hidden Units)

  • HuBERT 通过 自监督学习 提取语音隐状态(Hidden Units),替代传统的基于文本和语音对的伪标签(伪音素标签)。

  • 使用 k-means 或更复杂的模型来生成音频帧的隐状态,这类方法能够发现与语音基本单位(如音素)相关联的结构。

  • 隐状态表示为 Z = [z₁, z₂, …, zₜ],其中 zₜ 是一个类别变量,表示第 t 帧的聚类结果。

  • 图 1 展示了 HuBERT 的结构,模型预测被掩码的帧的聚类标签。


II-B:掩码预测进行表示学习

  • 受 SpanBERT 和 wav2vec 2.0 启发,HuBERT 使用 掩码预测机制:随机选择一部分帧进行掩码,模型需要从上下文中预测这些掩码帧的隐状态。

  • 掩码策略:使用连续的 span 进行掩码,模拟真实语音中缺失片段的情况。

  • 损失函数设计

    • Lₘ:仅对掩码帧预测的损失;

    • Lᵤ:对未掩码帧预测的损失;

    • L = αLₘ + (1 - α)Lᵤ,通过 α 控制训练侧重。

  • α = 0 时,类似传统声学建模;α = 1 时,类似语言建模,更关注上下文建模,对聚类质量不敏感。


II-C:使用聚类集成(Cluster Ensembles)

  • 为了提升隐状态的质量,HuBERT 采用多个聚类模型(如不同码本大小的 k-means)。

  • 相当于 多任务学习,每个聚类模型提供不同粒度的隐状态标签。

  • 还结合 乘积量化(PQ),将高维特征分解为多个子空间,分别进行量化,提升量化效果。


II-D:迭代优化聚类分配

  • 在模型训练过程中,利用预训练模型输出的表示,迭代更新聚类模型,生成新的隐状态。

  • 通过这种方式,逐步提升隐状态与语音单位的匹配度。


II-E:模型实现细节

  • 模型架构:基于 wav2vec 2.0,包括卷积编码器、BERT 编码器、投影层和码本嵌入层。

  • 三种配置:Base、Large 和 X-Large,参数量分别为约 95M、317M 和 964M。

  • 卷积编码器:七层卷积,步长和卷积核大小固定,输入为 16kHz 声音数据,降采样因子为 320×,输出帧率为 20ms。

  • BERT 编码器:多层 Transformer,不同配置层数不同(12 / 24 / 48 层)。

  • 掩码与预测机制:掩码后输入 BERT,输出使用投影矩阵和码本嵌入计算相似度,输出聚类分布。

  • 微调阶段:使用 CTC 损失进行语音识别(ASR)微调,仅优化 BERT 部分,冻结卷积编码器。


总结:

本章详细介绍了 HuBERT 的 模型结构训练目标(掩码预测)、聚类生成与优化策略,以及 实现细节。通过自监督学习与掩码预测机制,HuBERT 能够在没有文本标注的情况下,从语音数据中学习高质量的语音表示,为后续语音识别等任务提供有力支持。

IV Experimental Details

本章节详细描述了论文中用于HuBERT模型实验的具体细节和评估方法,主要包括以下几个方面:

数据集

  • 无监督预训练:使用960小时的LibriSpeech音频或60,000小时的Libri-light音频,均来自LibriVox项目。

  • 监督微调:考虑了五个不同的划分:Libri-light的10分钟、1小时、10小时划分,以及LibriSpeech的100小时和960小时划分。其中,Libri-light划分是LibriSpeech的子集,每部分包含一半来自train-clean和另一半来自train-other的音频。

无监督单元发现

  • 使用K-means算法进行声学单元发现,初始使用39维MFCC特征进行聚类(13个系数及其一阶和二阶导数)。

  • 随后,使用HuBERT模型的中间Transformer层特征进行改进的聚类(500个簇),但由于HuBERT输出维度较高,仅使用10%的数据进行训练。

  • 使用MiniBatchKMeans算法进行大规模聚类,设置批大小为10,000帧,并使用K-means++进行初始化。

预训练

  • Base模型:使用960小时LibriSpeech音频,训练2轮,使用32个GPU,每轮训练250k步和400k步。

  • Large和X-Large模型:使用60,000小时Libri-light音频,分别使用128和256个GPU训练400k步。

  • 所有模型使用Adam优化器,学习率从0线性增长到峰值,再线性衰减回0。Base/Large/X-Large的峰值学习率分别为5e-4/1.5e-3/3e-3。

监督微调与解码

  • 每个模型在8个GPU上微调,训练批次大小根据模型大小不同(200/80/40秒/GPU)。

  • 使用wav2letter++Fairseq的解码器,融合语言模型进行解码,优化目标包括CTC概率和语言模型分数。

  • 使用Ax工具进行超参数搜索,包括学习率、训练步数、冻结步数等。

目标质量评估

  • 通过强制对齐的音素标签与K-means聚类结果之间的关联性,评估聚类质量。

  • 定义三个评估指标:

    1. 音素纯度(Phone Purity):衡量每个聚类类中最可能音素的准确率。

    2. 簇纯度(Cluster Purity):衡量每个音素中最可能聚类类的准确率。

    3. 归一化互信息(PNMI):衡量聚类标签对音素标签信息的保留程度。

实验结果

  • 表格总结了不同模型在不同标注数据量下的表现,包括10分钟、1小时、10小时、100小时和960小时的标注数据。

  • HuBERT模型在多个设定下表现优于其他模型,尤其是Large和X-Large模型在高资源设定下接近SOTA水平。

总结

本章详细描述了实验中使用的数据、训练流程、聚类方法、微调策略以及模型评估方式,通过不同模型和设定的比较,证明了HuBERT在自监督语音表示学习中的优越性。

V Results

这篇论文的“V 结果”部分主要围绕HuBERT模型的实验结果和分析展开,包括低资源和高资源设置下的性能比较、聚类稳定性、不同层和迭代的聚类质量、训练目标的影响、超参数调整等方面的探讨。以下是本章内容的总结:


V-A 主要结果:低资源与高资源设置

在低资源设置中,HuBERT模型在仅使用10分钟、1小时、10小时或100小时标注数据的情况下,通过微调取得了优异的性能表现。相比半监督和自监督方法(如IPL、wav2vec 2.0等),HuBERT在低资源下表现更优。例如,在仅使用10分钟标注数据的极端低资源设置中,HuBERT Large模型在test-clean和test-other上的词错误率(WER)分别为4.7%和7.6%,优于当前最先进的wav2vec 2.0模型。随着模型规模增加至1B参数,HuBERT X-Large模型进一步将WER降低到4.6%和6.8%。

在高资源设置中,HuBERT在微调960小时LibriSpeech数据时,性能与基于wav2vec 2.0的对比学习模型相当,但略逊于结合预训练和自训练方法的模型。然而,已有研究表明,结合自训练可显著提升HuBERT的性能,因此作者预期其在自训练优化后将表现更佳。


V-B 分析:K-Means聚类稳定性

研究了K-Means聚类在不同聚类数量和不同训练数据量下的稳定性。结果显示:

  • 聚类稳定性较好(标准差小)。

  • 使用HuBERT特征进行聚类比MFCC特征表现更优,尤其是在500个聚类的情况下,PNMI(电话归一化互信息)显著提高。

  • 聚类质量的提升验证了迭代优化的必要性。


V-C 分析:不同层和迭代的聚类质量

分析了HuBERT模型在不同层和不同迭代中用于聚类的效果。结果表明:

  • 所有层中,HuBERT的聚类质量明显优于MFCC。

  • Base-it2(第二轮迭代)模型的聚类质量在多数指标上优于Base-it1,尤其是在电话纯度(phone purity)和PNMI方面。

  • Base-it1模型在中间层(如第6层)表现最佳,但末尾层质量下降,可能与其训练目标质量较差有关。


V-D 消融实验:预测掩码帧的重要性

通过设置不同的训练目标:

  • 仅预测掩码帧(α=1.0)优于预测所有帧(α=0.5)或仅预测未掩码帧(α=0.0)。

  • 当使用高质量聚类(如Base-it1的第6层)时,掩码帧的损失对性能提升帮助最大。

  • 在使用低质量聚类时,仅预测掩码帧可显著减少词错误率。


V-E 消融实验:聚类集成的影响

研究了使用多个K-Means模型进行聚类集成的效果:

  • 使用多个不同聚类数的K-Means模型(如50、100、500)或使用拼接特征和乘积量化(Product K-means)方法,能够提高整体性能。

  • 聚类集成方法的WER优于单一K-Means模型。


V-F 消融实验:超参数影响

分析了不同超参数(如掩码比例、批量大小、训练步数)对HuBERT性能的影响:

  • 最优掩码比例为6.5%;

  • 增加批量大小(通过更多GPU)可提升性能;

  • 延长训练步数有助于模型性能提升,特别是对于低聚类数(如C=100)效果更明显;

  • 在400k步训练时,HuBERT在test-other上的WER达到11.68%。


总结

本章通过一系列实验验证了HuBERT模型在不同资源设置下的有效性与鲁棒性。关键结论包括:

  • HuBERT在低资源环境下表现优异,优于现有自监督和半监督方法;

  • 使用高质量特征(如HuBERT中间层)和迭代优化的聚类方法显著提升模型效果;

  • 仅预测掩码帧、使用聚类集成和合理设置超参数是提升性能的关键因素;

  • 尽管在某些高资源设置下略逊于结合自训练的方法,但HuBERT具备通过进一步优化实现更好性能的潜力。

这些实验结果为HuBERT模型的改进和实际应用提供了重要依据。

VI Conclusion

本文总结如下:

本论文提出了HuBERT,一种基于预测连续输入中被遮蔽片段的K-means聚类分配的语音表征学习方法。在Librispeech 960小时和Libri-light 60,000小时的预训练设置下,HuBERT在所有微调子集(10分钟、1小时、10小时、100小时和960小时)上均达到或超过了当前最先进的系统表现。此外,通过迭代优化K-means聚类分配并使用前一迭代的潜在表征,模型的表征质量显著提升。HuBERT还能够扩展到10亿参数的Transformer模型,在test-other数据集上相对词错误率(WER)最多降低了13%。未来的工作方向包括改进HuBERT的训练过程,使其仅需单阶段训练;同时,由于其表征质量优异,研究团队计划将HuBERT应用于语音识别(ASR)以外的多种下游识别和生成任务中。