[논문분석] HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units
k-means clusters 를 활용한 the Hidden-Unit BERT (HuBERT), Audio 압축
[Paper, Code, Research]
Wei-Ning Hsu, Benjamin Bolte, Yao-Hung Hubert Tsai
1. Abstract
Self-supervised approaches for speech representation learning are challenged by three unique problems: (1) there are multiple sound units in each input utterance, (2) there is no lexicon of input sound units during the pre-training phase, and (3) sound units have variable lengths with no explicit segmentation. To deal with these three problems, we propose the Hidden-Unit BERT (HuBERT) approach for self-supervised speech representation learning, which utilizes an offline clustering step to provide aligned target labels for a BERT-like prediction loss. A key ingredient of our approach is applying the prediction loss over the masked regions only, which forces the model to learn a combined acoustic and language model over the continuous inputs. HuBERT relies primarily on the consistency of the unsupervised clustering step rather than the intrinsic quality of the assigned cluster labels. Starting with a simple k-means teacher of 100 clusters, and using two iterations of clustering, the HuBERT model either matches or improves upon the state-of-the-art wav2vec 2.0 performance on the Librispeech (960h) and Libri-light (60,000h) benchmarks with 10min, 1h, 10h, 100h, and 960h fine-tuning subsets. Using a 1B parameter model, HuBERT shows up to 19% and 13% relative WER reduction on the more challenging dev-other and test-other evaluation subsets.1
Self-supervised learning speech 에 3가지 단점
(1) 각 입력 utterance에 여러 개의 소리 단위가 있음
(2) 사전 훈련 단계에서 입력 소리 단위의 어휘집이 없음
(3) 소리 단위는 명시적인 분할 없이 길이가 다양함
본 논문에서는 offline clustering step를 활용하여 BERT와 유사한 prediction loss에 대해 정렬된 목표 레이블을 제공하는 self-supervised speech representation learning을 위한 the Hidden-Unit BERT (HuBERT) 접근 방식을 제안
이 접근 방식의 핵심 요소는 마스킹된 영역에만 예측 손실을 적용 → 모델이 연속 입력에 대해 음향 및 언어 모델을 결합하여 학습하도록 하는 것
HuBERT는 주로 intrinsic quality of the assigned cluster labels보다는 consistency of the unsupervised clustering step에 의존.
간단한 k-means teacher of 100 clusters부터 시작하여 two iterations of clustering을 사용하는 HuBERT 모델으로 학습
Self-supervised learning 이란?
https://sanghyu.tistory.com/184
unlabelled dataset으로부터 좋은 representation을 얻고자하는 학습방식으로 representation learning의 일종
label(y) 없이 input(x) 내에서 target으로 쓰일만 한 것을 정해서 즉 self로 task를 정해서 supervision방식으로 모델을 학습
task를 pretext task(=일부러 어떤 구실을 만들어서 푸는 문제)라고 부름
self-supervised learning의 목적은 downstream task를 잘푸는 것이기 때문에 기존의 unsupervised learning과 다르게 downsream task의 성능으로 모델을 평가
Self-prediction과 Contrastive learning으로 나눔
Self-prediction
하나의 data sample내에서 한 파트를 통해서 다른 파트를 예측하는 task
크게 4가지 방법이 있음
- Autoregressive generation
- Masked generation → BERT
- Innate relationship prediction
- Hybrid self-prediction
이를 통해서 과거정보 뿐 아니라 앞뒤 문맥을 파악하여 relational 정보를 이해
Contrastive learning
batch내의 data sample들 사이의 관계를 예측하는 task
유사한 sample pair들은 거리가 가깝게 그리고 유사하지 않은 sample pair의 거리는 멀게 하는 것
유사한지/유사하지 않은지에 기준이 되는 현재 data point를 anchor 라고 함
Alignment and Uniformity on the Hypersphere
Contrastive하게 학습된 feature들은 supervised learning을 통해 학습한 feature보다 훨씬 uniform하고 aligned되었다는 것도 실험적으로 증명 됨
같은 class인 샘플들이 가까운 위치에 있어야하는 alignment도 중요하고 그러면서도 각각의 instance가 고유의 특성을 유지하기 위해 uniformity도 중요
positive pair간 가까워지는 것이 alignment에 기여한다고 볼 수 있다. 그리고 negative pair간 멀어지는 것이 uniformity를 만족하는데 기여
- Triplet loss
embedding space에서 sample들 사이의 유사도를 distance로 판단
anchor와 positive 사이의 distance는 minimize하는 동시에 negative와의 distance는 maximize하는 간단한 방식
- InfoNCE (loss)
target data를 관계가 없는 noise samples(negative samples)와 구분하기 위해 categorical cross-entropy loss를 사용하는 loss
cross-entropy로 결국 정리가 되지만 내부적으로 positive sample의 context vector와 input vector의 mutual information을 크게 가져가는 효과 있음
Feature clustering
encoder를 통해 학습된 feature representation으로 데이터 샘플들을 clustering함으로써 만들어진 class들에 pseudo-label을 명시적으로 달고 이를 토대로 inter-sample classification을 진행하는 방식
2. Introduction
Speech signals은 기존 이미지 텍스트 신호와 다름. continuous-valued sequences
- 각 입력 발화에 여러 개의 소리가 존재하면 많은 CV 사전 학습 접근 방식에서 사용되는 인스턴스 분류 방식이 불분명함
- 사전 학습 중에는 단어나 단어 조각을 사용하는 NLP처럼 개별 소리 단위의 사전 어휘집이 없음 → 예측 손실을 사용하는 데 방해됨
- 사운드 단위 사이의 경계를 알 수 없음 → 마스크된 예측 사전 학습이 복잡해짐
Hidden unit BERT (HuBERT) 제안 an offline clustering step to generate noisy labels for a BERT-like per-training
BERT 모델은 마스크된 연속 음성 특징을 사용하여 미리 결정된 클러스터 할당을 예측
예측 손실은 마스킹된 영역에만 적용되므로 모델은 마스킹되지 않은 입력에 대한 높은 수준의 표현을 학습하여 마스킹된 입력의 대상을 정확하게 추론
직관적으로, HuBERT 모델은 연속 입력에서 음향 모델과 언어 모델을 모두 학습해야 함
- 모델은 마스킹되지 않은 입력을 의미 있는 continous 잠재 표현으로 모델링해야 하며, 이는 고전적인 음향 모델링 문제와 매핑
- 예측 오류를 줄이기 위해 모델은 학습된 표현 간의 장거리 시간적 관계를 포착해야 함. 모델이 입력 데이터의 순차적 구조를 모델링 할 수 있게 해주는 정확성뿐만 아니라 대상의 일관성을 학습
DeepCluster 방법에서 영감을 얻음
3. Method
A. Learning the Hidden Units for HuBERT
기존 text speech pair dataset + semi-supervised learning
the self-supervised representation learning은 speech only data
k-means and Gaussian mixture models (GMMs) → hidden unit 활용해서 깊은 상관관계를 유추
frame-level targets 활용
X denote a speech utterance \(X = [x_1 , · · · , x_T ]\) of T frames.
Discovered hidden units are denoted with \(h(X) = Z = [z_1,··· ,z_T ]\)
\(z_t ∈ [C]\) is a C-class categorical variable and h is a clustering model, e.g. k-means.
B. Representation Learning via Masked Prediction
\(\tilde{X} = r(X,M)\) : 마스크된 입력
마스크된 예측 모델 f는 \(\tilde{X}\) 를 입력으로 받아 각 타임스텝에서 target index에 대한 분포를 $$p_f( · | \tilde{X}, t)$$로 예측 |
마스킹 방법과 예측 손실을 적용할 위치라는 두 가지 결정을 내림
첫 번째 결정 : 우리는 마스크 생성에 대해 SpanBERT 및 wav2vec 2.0 에서 사용된 것과 동일한 전략을 채택
여기서 시간 간격의 p%는 무작위로 시작 인덱스로 선택되고 l 단계의 스팬은 마스킹
두 번째 결정 : 마스크된 타임스텝과 마스크되지 않은 타임스텝에서 계산된 교차 엔트로피 손실을 각각 Lm과 Lu로 표시
Lm은 다음과 같이 정의:
\[L_m(f; X, M, Z) = \sum_{t \in M} \log p_f(z_t \mid \tilde{X}, t)\]Lu는 t ̸∈ M에 걸쳐 합산된다는 점을 제외하면 동일한 형태
최종 손실은 다음 두 가지의 가중치 합계로 계산
\[L = αL_m +(1−α)L_u\]- α = 0인 경우, 손실은 마스킹되지 않은 시간 단계에 걸쳐 계산, 이는 하이브리드 음성 인식 시스템의 음향 모델링과 유사. 이 설정에서는 학습 프로세스가 클러스터링 모델을 모방하는 것으로 제한.
- α = 1인 경우, 언어 모델링과 유사하게 모델이 문맥에서 보이지 않는 프레임에 해당하는 대상을 예측해야 하는 마스킹된 시간대에 대해서만 손실이 계산. 이를 통해 모델은 마스킹되지 않은 세그먼트의 음향적 표현과 음성 데이터의 장거리 시간적 구조를 모두 학습 α = 1로 설정하는 것이 클러스터 타깃의 품질에 더 탄력적이라는 가설을 세웠으며, 이는 실험에서 입증됨.
C. Learning with Cluster Ensembles
타겟 품질을 개선하기 위한 간단한 아이디어는 다중 클러스터링 모델을 활용하는 것
개별 클러스터링 모델은 성능이 매우 떨어질 수 있지만, 클러스터 앙상블은 상호 보완적인 정보를 제공하여 표현 학습을 용이하게 함
\[L_m(f; X, \{Z^{(k)}\}_k, M) = \sum_{t \in M} \sum_k \log p_f^{(k)}(z_t^{(k)} \mid \tilde{X}, t)\]각 클러스터 k에 대해 손실을 계산하고, 그것을 모두 합산하여 최종 손실 \(L_m\) 을 정의
- \(L_m\)은 마스크된 데이터에 대한 손실 함수입니다.
- X는 입력 데이터, \(Z^{(k)}\)는 각 클러스터 k에 대한 레이블입니다.
- \(p_f^{(k)}\)는 클러스터 k에 대한 예측 확률을 나타내며, 이는 주어진 입력 데이터 \(\tilde{X}\) 와 시간 t에 의존합니다.
- 두 개의 합계 기호는 각각 시간 t와 클러스터 k에 대해 합산하는 것을 의미합니다.
\(L_u\): 마스크되지 않은 손실 함수로, 비지도 클러스터링에 의해 생성된 값을 사용
- 앙상블 클러스터링 방법: 앙상블 클러스터링에서는 가상 공간을 여러 개의 하위 공간으로 분할하고, 각 하위 공간을 개별적으로 양자화한 제품 양자화(Product Quantization, PQ)와 함께 사용할 수 있습니다.
- PQ 활용: 고차원 공간의 특징과 하위 공간 간의 관계를 분석하여, 유클리드 거리 기반 양자화를 적용하여 클러스터링을 진행할 수 있습니다.
- 이론적 크기: 이 방법에서는 대상 공간의 이론적 크기를 모든 코드북의 곱으로 정의할 수 있습니다.
D. Iterative Refinement of Cluster Assignments
클러스터 앙상블을 사용하는 것 외에도, 클러스터 할당을 정제(refine) 하는 것도 표현력을 향상시킴
- 초기 클러스터링 생성 : 원시 데이터 또는 초반의 특징 공간을 이용해 초기 클러스터링을 수행, MFCCs와 같은 원시 음향 특징이나 기본적인 데이터를 기반으로 클러스터를 할당, 성능 bad
- 사전 훈련된 모델 적용 : 사전 훈련된 모델을 사용하여 더 좋은 표현력을 가진 특징을 추출
- discrete latent model 학습
- 이산 잠재 모델은 더 나은 표현력을 가진 클러스터를 생성하는 데 도움이 됨
- 새로운 클러스터는 초기 클러스터보다 더 세밀하고 의미 있는 구조를 가짐
- 새로운 클러스터 할당 및 반복 학습 : 새로운 클러스터가 할당되면, 학습 과정은 이 새로운 클러스터 단위들을 바탕으로 다시 진행. 이 과정에서 클러스터 할당이 반복적으로 정제
E. Implementation
Our pre-trained models follows the wav2vec 2.0 architecture, with a convolutional waveform encoder, a BERT encoder, a projection layer and a code embedding layer.
The convolutional waveform encoder는 16kHz로 샘플링된 오디오에 대해 20ms 프레임 속도로 특징 시퀀스를 생성합니다(CNN 인코더 다운 샘플링 계수는 320배).
그런 다음 오디오 인코딩된 피처를 무작위로 마스킹
BERT 인코더는 마스킹된 시퀀스를 입력으로 받아 특징 시퀀스 $[o_1 , · · · , o_T ]$를 출력
codewords에 대한 분포는 다음과 같이 파라미터화 됨
\[p_f^{(k)}(c \mid \tilde{X}, t) = \frac{\exp(\text{sim}(A^{(k)} o_t, e_c)/\tau)}{\sum_{c'=1}^{C} \exp(\text{sim}(A^{(k)} o_t, e_{c'})/\tau)}\]A : the projection matrix
\(e_c\) : codewords c에 대한 임베딩
\(sim(·, ·)\) : 두 벡터 간의 코사인 유사도를 계산 , 임베딩 벡터 \(A^{(k)}o_t\)와 클러스터 c에 해당하는 임베딩 \(e_c\) 사이의 유사도 함수(similarity function).
\(τ\) : 0.1로 설정된 로짓의 스케일링, temperature 매개변수로, 확률 분포의 스무딩(smoothing) 효과를 조절
분자는 c 클러스터에 대한 유사도에 지수 함수를 적용한 값, 분모는 모든 클러스터에 대한 유사도를 합산하여 확률 분포를 정규화한 것
클러스터 앙상블을 사용하는 경우, 각 클러스터링 모델 k에 대해 하나의 투영 행렬 A(k)가 적용
HuBERT 사전 학습 후
고정된 상태로 유지되는 컨볼루션 오디오 인코더를 제외,
전체 모델 가중치의 ASR 미세 조정을 위해 the connectionist temporal classification (CTC) 사용
The projection layer(s)는 제거되고 무작위로 초기화된 softmax layer로 대체
CTC 대상 어휘에는 26개의 영어 문자, 공백 토큰, 아포스트로피 및 특수 CTC 공백 기호가 포함
4. Related work
DiscreteBERT 및 wav2vec 2.0과 비교
HuBERT는 DiscreteBERT와 유사하게 이산 목표를 예측
하지만, 원시 음성 파형을 입력으로 사용하여 더 많은 정보를 전달한다는 차이
HuBERT는 단순한 k-means 목표를 사용하여 더 나은 성능을 보여주며, 학습 교사의 품질을 개선하는 기술도 도입
HuBERT와 wav2vec 2.0의 차이점으로는, 후자가 대조적 손실을 사용하며, 음성 인코더 출력의 양자화가 제한된 성능을 보일 수 있다는 점을 지적
HuBERT는 음향 단위 발견 단계를 예측 학습과 분리함으로써 성능을 향상
5. Experimental details
Data
- 비지도 학습용 데이터
- LibriSpeech 오디오의 전체 960시간 사용.
- Libri-light 오디오의 60,000시간 사용.두 데이터 모두 LibriVox 프로젝트에서 파생되며, 자원봉사자가 인터넷에서 제공하는 저작권이 없는 오디오북의 영어 녹음을 포함
- 지도 학습용 데이터
다음 다섯 가지 파티션 사용
- Libri-light 10분
- 1시간, 10시간 분할
- LibriSpeech 100시간 (train-clean-100) - 960시간 (train-clean-100, train-clean-360, train-other-500 합친 것).
- 세 Libri-light 분할은 LibriSpeech 교육 분할의 하위 집합이며, 각각 train-clean의 오디오의 절반과 train-other-500의 다른 부분을 포함