본문 바로가기

AI/Speech Processing

[Paper Review] Wav2Vec2.0 : A Framework for Self-Supervised Learning of Speech Representations

요약

speech 만으로 powerful한 representation을 학습하고, 이후에 script가 있는 오디오 데이터 파인튜닝 하는 것이 개념적으로 더간단하면서 성능이 좋음을 처음 증명해 낸 논문이다. 

  • Librispeech의 모든 labeld data(960h)를 사용한 실험에서, 깨끗한 데이터 세트(clean)와 노이즈가 있는 데이터 세트(other)에서 각각 1.8/3.3의 WER을 달성했다.

레이블 데이터 양을 조절하면서 파인튜닝하는 실험도 진행하였는데, 

  • 라벨 데이터 양을 1시간으로 줄였을 때 성능이 100h subset에서 이전 SOTA모델을 사용했을 때 보다 더 좋은 성능을 보였다. 
  • 라벨 데이터 양을 10분으로 줄이고, unlabeled 데이터 53,000h 사용했을때, clean 데이터와 other 데이터에서 각 4.8/8.2의 WER을 달성했다. 

즉, 제한된 레이블 데이터를 사용하는 한계를 극복한 첫 사례라고 할 수 있다! 

 

설명

 

  •  raw-audio data를 multi-layer CNN 으로 speech audio를 인코딩시키고, mlm( masked language modeling ) 처럼 latent speech representatios의 영역을 masking한다.
  • Latent representations은Transformer network에 전달되어 문맥적 표현을 구축하게 하고, 모델은 대조학습을 통해 방해요소들로부터 진짜 latent를 구별할 수 있도록 훈련시킨다. 
  • Pre-training이 완료되면, CTC를 사용하여 레이블된 데이터로 파인튜닝 시킨다.

Feature encoder (multi-layer CNN)

  • 인코더는 여러개의 블럭으로 구성 됨. 
  • 각 블럭은 temporal convolution과 layer normalization, GELU activation 함수를 포함한다. 
  • Raw waveform input은 zero-mean&unit-variance로 정규화된다. 
  • Encoder의 총 stride는 Transformer에 입력되는 총 time-step T를 결정한다. 

Contextualized representation with Transformer 

  1. Input : Feature encoder's output
  2. Fixed positional embedding(절대위치정보) -> Convolutional layer (RPE같은 역할)
  3. GELU activation을 한 뒤, layer normalization 적용

Quantization module 

  • Input : Feature encoder's output
  • Output : q 

Self-supervised learning을 위해, feature encoder z의 출력을 product quantization을 통해 유한한 speech representations으로 이산화한다. 첫 번째 단계에서 discrete units을 학습한 뒤에 문맥적 표현을 학습하는 이전의 방식에서는 좋은 결과를 냈다.

  • Product Quantization은 multiple codebooks에서 quantize된 표현을 선택하고, concat시키는 것을 의미한다.
    • G개의 코드북과 V개의 entries가 주어졌을 때,우리는 각 코드북에서 entry 하나씩을 선택하고, 벡터 [e1, e2, ... , eG]로 표현하여, 선형변환을 시킨 뒤 q를 얻는다. 
    • 참고로 저자는 V=320을 사용

[그림03] G개의 codebook, V개의 code words를 활용한 Wav2Vec 2.0의 quantization 모듈

 

Gumbel Softmax를 취하면, dicrete codeboks entries 선택하는 방식을 다르게 할 수 있다. 우리는 직선 추정기(straight-thorough estimator)를 사용하고, G hard gumbel softmax 연산하는 방식을 택했다. 

 

따라서, feature encoder에서 나온 z는 l ∈ R^(G×V) logit으로 매핑되며, 그룹 g에 대해 v번째 코드북 항목을 선택할 확률은 다음과 같다. 

  • 여기서 τ는 음이 아닌 온도(temperature)이며, 이고, 는 에서 뽑은 균일 분포 샘플이다.
  • Forward pass에서는 codevword  i = \arg\max_j p_{g,j}에 의해 선택되며,
  • Backward pass에서는 Gumbel 소프트맥스 출력의 진짜 그래디언트를 사용하여 학습한다. 

 

 

학습

 BERT에서 사용된 마스킹된 언어 모델링과 유사하게 잠재 피처 인코더 공간의 타임스텝 중 일정 비율을 마스킹한다

(양자화 모듈에 대한 입력은 마스킹하지 않는다) 

마스킹

마스킹 시작점을 무작위로 샘플링 (p)

Transformer에 입력으로 들어가기 전에, CNN에서의Feature encdoer z의 일정 비율(p)을 중복 없이 무작위로 샘플링한다. 

 

후속 M sequence만큼 masking

 

그런 다음 후속 M개의 연속되는 time-step을 마스킹한다. 시작점에 따라서 마스킹되는 부분이 겹칠 수도 있다. 

 

목적함수 (손실함수) 

  • Contrastive Loss 

  • 마스킹된 타임스텝 를 중심으로 하는 Context network representation c_t가 주어졌을 때,
  • 모델은 K+1개의 양자화된 후보 표현 세트 Q_t내에서 올바른 양자화된 잠재 음성 표현 q_t(정답)를 식별해야 한다.
  • 이 세트는 q_t(정답)와 K개의 혼란 요소(Distrator)들로 구성되며
  • K개의 혼란 요소(Distrator)들 은 같은 발화의 다른 마스킹된 타임스텝에서 균일(랜덤)하게 샘플링됩니다
  •  

유사도는 Cosine Similarity

  •   Context network representation c_t 와 양자화된 잠재 음성 표현 q_t사이의 코사인 유사도를 계산

  • Diversity Loss 

  • G=2, V=320 사용. 따라서, 320 x 320 = 102,400 가지의 경우의 수 

  • 대조 학습 과제는 코드북을 사용하여 긍정적 예시와 부정적 예시를 모두 나타내며, 다양성 손실 L_d는 양자화된 코드북 표현의 사용을 증가시키기 위해 설계되었습니다.

 

Q. 과연 모델이 모든 조합의 경우의 수를 진짜로 고려해서 Quantized Representation을 만들까? 

수많은 code word 선택에 대한 경우의 수가 있는데, 제대로 활용하지 못한다면 codebook을 활용할 이유가 없는 것과 다름 없다.

  • 따라서, 우리는 각 코드북 G에서 V 항목을 균등하게 사용하도록 장려하며, 이를 위해 각 발화(batch)에서 코드북 항목에 대한 평균 소프트맥스 분포의 엔트로피를 최대화합니다. (엔트로피 : 균등분포에서 가장 큰 값을 갖는 특성) 
  • 이 소프트맥스 분포는 Gumbel 노이즈나 온도는 포함하지 않습니다.

  • 최종 Loss (Contrastive loss + Diversity loss) 

α 는 조정가능한 하이퍼파라미터

 

Fine-tuning 

  • 사전 훈련된 모델은 음성 인식을 위해 파인튜닝 진행. (Quantization 사용 안 함!) 
  • 이 과정에서는 임의로 초기화된 Linear Projection을 Context network의 최상단에 추가하여
  • 작업의 어휘(Vocabulary)의 개수를 나타내는 C개의 클래스에 mapping한다. 
  • LibriSpeech 데이터셋을 사용한 경우, 우리는 문자 대상(character targets)을 위해 29개의 토큰단어 경계 토큰(word boundary token)을 추가.
  • 모델은 CTC 손실을 최소화하는 방식으로 최적화되며,
  • 훈련 중에 타임스텝과 채널에 마스킹을 적용한 수정된 SpecAugment 기법을 사용.
  • 이는 과적합을 지연시키고, 라벨이 적은 Libri-light 서브셋에서 최종 오류율을 크게 개선함.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

References