[논문 리뷰] HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units
논문의 전문은 여기에서 확인할 수 있다.
논문 리뷰 PPT는 여기에서 확인할 수 있다.
BackGround
0. Abstract
음성을 Self-supervised 방식으로 학습하고자 할 때, 마주하는 세 가지 문제점이 있다.
- 같은 입력 발화에 여러 음성 단위가 포함되어 잇다.
- pre-training 단계에서는 입력 소리 단위의 사전이 없다.
- 소리 단위는 명백한 부분 없이 가변 길이를 가진다.
이러한 문제를 해결하기 위해 Facebook Team은 Hidden-Unit BERT (HuBERT)라는 모델을 만들었다.
이는 offliine clustering 단계를 이용하여 target labels을 만든다.
주된 방법은 prediction loss를 마스킹된 부분에만 적용하여 모델이 음향, 언어 모델을 혼합하여 학습할 수 있게 하는 것이다.
HuBERT는 unsupervised clustering의 일관성에 의존한다.
100-cluster를 갖는 k-means teach로 시작하여 두번의 반복으로 학습하여 SOTA인 wav2vec2.0을 능가하는 성능을 보였다.
또한 1B paramters 에서 에러율 감소를 보였다.
1. Introduction
많은 연구들은 아기들이 처음 그들의 모국어를 배우듯이 모델이 음성 표현을 학습하는 것을 목표로 하고 있다.
높은 품질의 음성 표현은 단순히 말의 내용 뿐만 아니라 전달 방식과 같은 정보도 포함해야 한다.
더 나아가 완전한 상황 이해를 위해서는 웃음, 기침과 같은 소음 또한 고려해야 할 것이다.
고품질 표현의 필요성은 self-supervised learning에 대한 연구로 이어졌다.
즉, input signal 자체에서 pretext task를 수행하는 연구가 진행되었다.
음성 분야의 self-supervised learning에서의 pretext task의 예로는
- 시간적으로 가까이 있는 것과 멀리 있는 것을 구별하기
- 다음 음성 features를 예측하기
- 마스킹된 음성 features를 예측하기
등이 있다.
한편, self-supervised learning은 훈련 도중 언어 자원을 사용하지 않기 때문에 보편적인 표현을 사용할 수 있다.
레이블이 없는 대량의 데이터를 통해 음성 표현을 학습하는 것은 매우 중요하다.
시간이 돈인 AI 산업에서 데이터를 라벨링 하는 것이 매우 큰 시간적 비용이기 때문이다.
또한 언어 자원을 사용하지 않기 때문에 얻는 이점이 또 있는데 구어만 사용되는 방언과 언어를 포괄할 수 있다는 점이다.
이들은 비표준 철자 규칙을 가지기 때문에 많은 경우 자원이 없다.
Pseudo-labeling(PL)은 self-training, semi-supervised learning의 한 기법으로 알려져 있으며 성공적으로 사용되어 왔다.
PL은 특정 downstream task에서 “teacher” model을 훈련시키기 위하여 일부 supervised data 에서 시작한다.
그 다음 이 “teacher” 모델을 이용하여 label이 없는 데이터에 label을 부여한다.
이후에 “student” 모델은 이렇게 “teacher” 모델이 라벨링 한 것을 학습한다.
이를 반복함으로써 teacher model이 부여한 label의 품질을 향상시킬 수 있다.
PL 과정 from GPT
Pseudo-Labeling (PL) 과정은 준지도 학습 방법 중 하나로, 레이블이 있는 데이터와 없는 데이터를 모두 사용하여 모델을 훈련하는 기술입니다. PL 과정은 다음과 같은 주요 단계들로 구성됩니다:
1. 초기 교사 모델 훈련
- 레이블이 있는 데이터 사용: 초기 교사 모델을 훈련하기 위해 레이블이 있는 데이터셋을 사용합니다.
- 목표: 이 단계의 목표는 기초적인 모델을 만들고, 이 모델이 일정 수준 이상의 성능을 가지도록 하는 것입니다.
2. 레이블 없는 데이터에 대한 예측
- 교사 모델 사용: 훈련된 교사 모델을 사용하여 레이블이 없는 데이터에 대해 예측을 수행합니다.
- 의사 라벨 생성: 예측된 레이블 (의사 라벨, pseudo-label)을 생성하여 레이블 없는 데이터에 할당합니다.
3. 학생 모델 훈련
- 데이터 결합: 레이블이 있는 데이터와 의사 라벨이 할당된 레이블 없는 데이터를 결합합니다.
- 학생 모델 훈련: 이 결합된 데이터를 사용하여 새로운 학생 모델을 훈련합니다. 이때, 표준 교차 엔트로피 손실 함수나, 의사 라벨의 노이즈를 고려한 대조 손실 함수 등을 사용할 수 있습니다.
4. 반복 (선택 사항)
- 교사 모델 업데이트: 훈련된 학생 모델이 성능이 더 좋다면, 이 학생 모델을 새로운 교사 모델로 사용합니다.
- 의사 라벨 재생성: 업데이트된 교사 모델을 사용하여 레이블 없는 데이터에 대해 다시 예측을 수행하고, 새로운 의사 라벨을 생성합니다.
- 재훈련: 새로운 의사 라벨을 사용하여 학생 모델을 다시 훈련합니다.
5. 최종 모델 평가
- 성능 평가: 반복 과정을 통해 최적의 성능을 갖춘 최종 모델을 얻습니다. 이 모델은 레이블이 있는 데이터와 레이블 없는 데이터에서 모두 학습된 정보를 반영합니다.
PL은 큰 성공을 거두었으나, self-supervised learning은 두 가지 고유한 장점이 있다.
- PL은 student model이 teacher model을 따르도록 강제한다. 그러나 self-supervised pretext task는 입력 신호 전체를 표현하도록 모델을 강제한다.
- PL은 teacher model의 supervised data가 전체 학습과정을 단일 downstream task에 맞추도록 강제한다. 반면 self-supervised는 다수의 downstream에도 적용가능한 일반화를 보여준다.
이러한 이점을 지닌 self-supervised learning은 CV, NLP에서 성공적으로 적용되었다.
NLP에서는 Masked 된 토큰을 예측하거나 흐리게 처리된 부분을 자기 회귀로 생성하고, CV에서는 표현은 instance classification을 통해 학습된다.
Speech signal은 위에서와 같은 text, image와는 다르게 continuous-valued sequence이다.
따라서 CV, NLP와 다르게 self-supervisesd learning은 음성 인식에 있어 독특한 challenge를 마주한다.
- CV에서는 이미지와 그 변형을 동일 인스턴스로 가정하지만, 음성 인식의 각 입력 발화에는 여러 소리가 포함되어 있어 그 변형을 동일 인스턴스로 취급하기 어렵다.
- NLP에서는 word나 word piece과 같은 사전이 존재하지만, 음성인식은 pre-training 단계에 이러한 소리 단위 사전이 없어 predictive loss를 특정하기 어렵다.
- 소리 단위간의 경계가 명확하지 않아 masked prediction pre-training시 어려움 존재
이를 해결하기 위하여 Facebook Team은 HuBERT라는 모델을 소개한다.
이는 offline clustering 단계를 통해 noisy가 섞인 label을 생성하여 BERT와 유사한 pre-training을 가능케한다.
구체적으로 BERT는 masked 된 speech features를 가지고 미리 부여된 cluster를 예측하게 된다.
predictive loss는 masked된 영역에만 적용함으로써 모델이 masked 되지 않은 부분의 고수준 표현을 학습하여 masked 처리 된 부분을 올바르게 추론할 수 있게 강제 한다.
직관적으로 HuBERT는 input으로 부터 음향, 언어 모두를 학습하도록 강제된다.
- 모델은 unmasked input을 의미 있는 latent 표현으로 바꾸어야 한다. 이는 고전적인 음향 모델링 문제에 해당한다.
- prediction error를 줄이기 위해, 모델은 학습된 표현 간의 장기적인 시간 관계를 파악하여야 한다.
여기서 중요한 것은 타깃의 정확성 뿐 아니라 일관성이다. 일관성은 모델이 입력데이터의 순차적 구조를 모델링 하는데 집중할 수 있게 한다.
이러한 접근 방식은 self-supervised visual learning에서 영감을 얻었지만, masked prediction loss를 음성 시퀀스에 적용하여 HuBERT는 연속적인 구조를 잘 표현한다.
HuBER는 Librispeech로 pre-trained 되었을때, SOTA인 wav2vec의 성능을 능가하였다.
또, 이 논문에서는 HuBERT를 BASE, LARGE, X-LARGE로 분류하였는데, X-LARGE는 LARGE 보다 우수한 성능을 보였다.
2. METHOD
A. Learning the Hidden Units for HuBERT
text와 speech 쌍으로 훈련된 음향 모델은 semi-supervised learning에서 가짜 음성 라벨을 제공한다.
반면 self-supervised learning은 오직 음성 데이터에만 접근 가능하다.
그럼에도 불구하고, 간단한 이산 잠재 변수 모델(k-means, Gaussian mixture models)은 기본 음성 단위와 비직관적인 상관을 나타내는 Hidden unit을 추론한다.
더 나은 그래픽 모델을 사용하거나 더 강력한 신경망 모델로 분포를 파라미터화하여 성능을 개선할 수 있다.
HuBERT는 frame 단위의 target을 제공하기 위해 음향 단위 모델을 사용한다.
HuBERT는 masked frames을 예측한다.
위 그림에서 X는 T frame의 음성 발화이고, h(x)=Z 에서 z_t는 C-class의 범주형 변수, h는 k-means와 같은 클러스터링 모델이다.
B. Representation Learning via Masked Prediction
M을 마스킹할 인덱스 집합이라 하고, X’ 를 마스킹 처리가 된 버전의 X라 하자.
masked prediction model인 f는 X’를 입력으로 받아 각 시간의 target 인덱스 분포를 예측한다.
여기서 masked prediction과 관련해 두 가지 고려해야 할 사항이 있다.
- 어떻게 마스킹할 것인가
- 어디에 prediction loss를 적용할 것인가
어떻게 마스킹할 것인가
타임 스템프의 일정 비율을 p% 마스킹 처리 하는 방법을 채택한다.
이후 l 만큼 연속적인 스텝을 마스킹한다. 이는 SpanBERT와 wav2vec2.0의 마스킹 생성 기법과 동일하다.
어디에 prediction loss를 적용할 것인가
HuBERT는 Cross Entropy를 마스킹 된 부분과 마스킹 되지 않은 부분에 각각 적용하는 데 이를 각각 Lm, Lu라 한다.
아래 수식은 Lm을 나타내고, Lu는 마스킹 되지 않은 영역에서 Cross Entropy를 계산하는 것 이외에는 동일하다.
최종 손실은 아래 수식과 같이 계산된다.
극단적인 alpha = 0 인 경우, 손실은 마스킹 되지 않은 경우에서만 계산되고
반대로 alpha = 1인 경우는 마스킹 된 경우에서만 계산된다.
이때 모델은 context으로부터 보이지 않는 음향 표현을 예측해야 한다.
이는 모델이 마스킹되지 않은 부분의 음향 표현과 긴 시간 구조를 학습하도록 강제한다.
이 논문에서 alpha=1 설정이 cluster targets에 대하여 더 강건하다는 것을 실험을 통해 보여준다.
C. Learning with Cluster Ensembles
target의 품질 향상을 위해 다양한 clustering model은 앙상블한다.
단일 clustering model은 성능이 저조할 수 있지만, 앙상블하게 되면 보완적인 정보를 제공하여 학습을 더 잘할 수 있게 된다.
예를 들어 다른 codebook sizes(k의 값)을 가진 k-means model의 앙상블은 자음/모음 분류부터 세논단위(예를들어 ‘a’의 처음,중간,끝) 까지 다양한 세분화 정도를 가진 target을 생성할 수 있다.
이 앙상블 기법을 위해 Loss를 다시 정의하는데, 아래와 같이 쓸 수 있다.
여기서 Z(k) k번째 clustering model에 의해 생성된 target sequence들의 집합이다.
Lu 도 비슷하게 정의된다.
이 앙상블은 Product Quantization(차원 압축의 일종)과 함께 사용할때 더 효과가 좋다.
D. Iterative Refinement of Cluster Assignments
MFCC와 같은 원시 음향 특징보다 pre-trained model이 더 나은 표현을 제공하므로 학습된 모델을 훈련하여 새로운 세대의 cluster를 만들 수 있다.
이후 새롭게 발견된 cluster를 이용해 진행한다.
E. Implementation
pre-trained model은 wav2vec 2.0 architecture를 따르며,
CNN waveform encoder와 BERT encoder, projection layer와 code embedding layer로 구성된다.
HuBERT는 BASE, LARGE, X-LARGE 로 구성되어 있으며
파라미터 수는 아래 표와 같다.
CNN waveform encoder는 샘플링된 오디오에 대하여 feature sequence를 생성한다.
그리고 위에 설명한 바와 같이 무작위로 마스킹 되고, BERT는 이 마스킹 된 sequence를 받아 [O1, … , OT] feaure sequence를 출력한다.
codeword의 분포는 아래 식과 같이 나타내어진다.
이를 HuBERT 구조와 비교하며 이해하자.
이러한 Pre-training 과정을 가친 HuBERT는 CTC loss를 사용하여 Auto Speech Recognization을 위한 fine-tuning을 진행한다.
이떄 CNN encoder를 제외한 모든 부분을 업데이트 한다.
projection layer는 제거 되고, 무작위 초기화 된 softmax layer로 제거 된다.
CTC target 어휘는 26개의영어 알파벳, 공백, 아포스트로피 그리고 특별한 CTC 공백 기호가 포함된다.
3. Related Work
이 논문에서는 음성 표현 학습에 대한 self-supervised 관련 연구들을 training 목적에 따라 그룹화하여 소개한다.
초기 연구에는 잠재 변수가 관련 음운 정보를 포함한다고 가정한 생성 모델을 사용하였다.
이러한 학습은 우도 최대화에 해당하는데, 다양한 잠재 구조가 생성된데, 불연속, 연속, 순차적인 구조가 해당한다.
예측 기반 self-supervised learning은 최근 들어 많은 관심을 받고 있다. 이는 새로운 영역의 내용을 예측하거나 대조하는 task를 수행한다.
일부는 이것들을 합친 task를 수행하며, 이러한 목표들은 mutual information maximaizaion으로 해석할 수 있다.
HuBERT는 DiscreteBERT와 가장 연관이 있다. HuBERT와 DiscreteBERT는 masked regions의 이산 target을 예측한다는 공통점이 있다.
그러나 몇가지 중요한 차이점이 있다.
- 양자화된 단위를 input으로 사용하는 대신, HuBERT는 원시 waveform 이용하여 정보를 transformer layer에 더 많이 넘긴다.
- 고정된 teacher 모델을 사용하는 대신, teacher를 개선하는 방식들을 존재한다.
또한 HuBERT는 wav2vec 2.0 과도 연관이 있다.
그러나 wav2vec 2.0은 contrastive loss를 사용하여 안정성을 해치고, 적절한 Gumbel-softmax 온도 조절을 필요로 한다.
또한 제한된 CNN encoder 용량으로 인하여 최적이 아닐 수 있는 waveform encoder 출력만 탐구한다.
HuBERT는 더 직접적인 predictive loss를 채택하여 음향 유닛 단계와 masked prediction 단계를 분리함으로써 더 직접적인 예측 손실을 채택하였다.
그리고 다양한 fune-tuning scale에서 SOTA인 wav2vec 2.0을 능가하는 성능을 보였다.
마지막으로 반복해서 target labels은 semi-supervised ASR의 PL과 유사하다. HuBERT 방식은 masked prediction loss를 사용하는 self-supervised 으로 확장한 것이라 볼 수 있다.
4. Experimental Details
A. Data
unsupervised pre-training을 위하여 LIbriSpeech audio 데이터 셋을 이용하였다.
supervised fine-tuning을 위해서는 Libri-light의 다양한 분할이 고려되었다.
Libri-light는 LibriSpeech training 분할의 하위 집합이다.
B. Unsupervised Unit Discovery
HuBERT가 저품질 클러스터 할당을 활용하는 데 효과적임을 보여주기 위하여 K-means 알고리즘을 사용하여 음향 유닛 발견에 사용한다.
HuBERT의 첫 반복을 수행하기 위한 LibriSpeech 데이터셋의 라벨링을 생성하기 위해 Facebook Team은 MFCC feature를 사용하여 k-means clustering을 수행한다.
다음 반복을 위해 더 나은 target을 생성하기 위하여 500개의 cluster로 k-means clustering을 실행한다.
transformer의 출력 차원이 MFCC 보다 훨씬 크기 때문에 메모리 조절을 위해 데이터의 사이즈를 알맞게 조정한다.
C. Pre-Training
BASE Model
960 시간의 LibriSpeech audio를 훈련 데이터로 사용
32 GPU 사용, 최대 배치 사이즈는 각 GPU 당 87.5초의 audio
첫 반복은 250K step, 두번째 반복은 400K 스텝이며 transformer layer의 출력을 clustering하여 생성된 라벨을 사용 각 100K step 마다 9.5시간 소요
LARGE, X-LARGE Model
60K 시간의 Libri-light audio를 훈련 데이터로 사용
각각 128, 256 GPU 사용
모두 훈련 스텝은 400K step.
배치사이즈는 메모리 제한을 위해 적절히 조율
훈련 데이터는 BASE HuBERT에 생성된 feature를 clustering하고 이를 라벨링하여 훈련
For all HuBERT Model
mask span l =10
masked start 비율 p = 8%
Adam optizer 사용, learning rate는 최대 8%까지 증가
D. Supervised Fine-Tuing and Decoding
Facebook Team은 각 model을 8개의 GPU에서 Fine-Tuning 하였다.
각 GPU당 배치 크기는 BASE/LARGE/X-LARGE model에 대해 최대 200/80/40초의 audio이다.
fine-tuning 동안 CNN waveform audio encoder는 고정된다.(학습되지 않는다)
wave2letter++ beam search decoder를 사용해 언어 모델과 결합한 디코딩을 사용한다.
이는 아래 식을 최적화한다.
여기서 Y는 예측된 텍스트, | Y | 는 텍스트의 길이, w1과 w2는 각각 언어모델 가중치와 단어 점수를 나타낸다. |
E. Metrics of Target Quality
k-means cluster 할당과 실제 음운 유닛 간의 상관 관계를 측정한다.
frame-level 정렬된 라벨 [y1,…,yT]와 k-means 라벨 [z1,…,zT]이 주어지면 결합분포는 아래 식과 같이 주어진다.
Target의 Quality를 측정하기 위한 3가지 측도가 있다.
Phone purity
K-mean clustering 레이블이 j가 되었을때 조건부 확률을 통해 phone의 평균 순도를 구함
Cluster purity
phone purity와 반대되는 지표
phone 레이블이 i일때 cluster의 평균 순도를 구함
phone-normalized mutual information (PNMI)
PNMI는 k-mean label인 z을 통해 phone label인 y의 불확실성을 얼마나 제거할 수 있는지를 측정하는 지표이다.
5. Result
A. Main Results : Low- and High-Resource Setups
추후 계속..
Leave a comment