728x90

이번에 리뷰할 논문은 Facebook AI에서 발표한, Self-Training for End-to-End Speech Recognition [1] 이며, Pseudo labels을 활용한 self-training에 대한 내용임

 

Overview

1. Self-training with pseudo-labels

2. Pseudo-labelled data set을 사용한 학습이 기준 모델의 정확도를 크게 향상시킬 수 있음을 보임

- 작은 쌍의 labeled 데이터셋에서 강력한 베이스라인 (음향 모델) training

- Pseudo-label을 생성하기 위해 대규모 text corpus에서 훈련된 LM으로 안정적인 디코딩 수행

- 시퀀스 간 모델의 일반적인 error에 조정된 filtering mechanism 제안

- Seq2Seq 모델에서 자주 접하게 되는 실수를 해결 하기 위해, 제안하는 pseudo-label filtering에 대한 heuristicconfidence-based approach 평가

-> Looping and early stopping

- 또한, 학습 중 여러 모델을 결합하는 앙상블 접근 방식 제안

-> 레이블 다양성을 개선하고 모델이 잡음이 있는 pseudo-label에 대해 지나치게 확신하지 않도록 함

 

Background & Issue

1. ASR 시스템을 구축하기 위해 많은 양의 transcribed data 필요

- Labeled 데이터 양이 감소하면 end-to-end 모델의 성능 저하

- 많은 양의 오디오를 transcribing 하는 것은 expensive, time-consuming

- Unpaired audio and text를 활용하기 위해 semi-supervised learning이 제안됨

 

2. Self-training

- Semi-supervised learning 기법 중 하나인 self-training 방법 채용

- 훨씬 더 작은 labeled 데이터에서 학습된 모델로부터 생성된 잡음이 있는 label을 사용

 

Proposed model

1. Baseline model architecture [2]

- 앞서 리뷰한 TDS block 논문 아키텍처를 사용

 

2. Inference

- Beam search를 사용하여 가능성이 가장 높은 hypothesis 탐색

$\bar{Y}=$argmax$_Y$log$P_{AM}(Y|X)+\alpha$log$P_{LM}(Y)+\beta|Y|$ ...(1)

- $\alpha$는 LM의 weight임

- $\beta$는 seq2seq 모델에서 흔히 볼 수있는 조기 중지 문제를 피하기위한 토큰 insertion [3]

-> 디코딩 중에 발생하는 모델의 실수로 인해, 음성의 특정 frame을 건너 뛰어 일부 단어가 decoding이 안되는 문제

-> 이는 특히 외부 언어 모델을 사용할 때 많이 발생

 

- [2]의 모델을 활용하여 decoder 안정화 (random sampling, EOS threshold)

log$P_u$(EOS$|y_{<u}$)$<\gamma\cdot$max$_{c\neq EOS}$log$P_u(c|y_{<u})$

- 위의 식이 성립될 경우에 EOS 사용

- $\gamma$는 튜닝 가능한 hyperparameter임

 

3. Semi-supervised Self-training

 

1) Supervised learning setting

- 우리가 많이 사용하는 supervised learning setting은 입력 $X$와 그에 해당하는 label $Y$가 있으며, 이를 paired dataset이라 부름. 이는 아래와 같음

$\mathcal{D}={(X_1,Y_1),...,(X_n,Y_n)}$

- 아래의 식처럼, $D$에 대해 학습된 모델은 레이블이 있는 $Y$에 주어진 ground-truth의 가능성을 최대화 함

$\sum_{(X,Y)\in\mathcal{D}}$log$P(Y|X)$ ...(2)

 

2) Semi-supervised setting

- $mathcal{D}$ 외에 label이 없는 오디오 데이터 세트 $\mathcal{X}$ 및 페어링되지 않은 텍스트 데이터 세트 $mathcal{Y}$ 만 포함 됨

- 먼저, 식 (2)를 최대화하여 $mathcal{D}$에서 AM 모델을 훈련함
- 둘째, $mathcal{Y}$에서 LM 교육

- 셋째, 두 모델을 결합하여 식 (1)을 적용하고, label이 지정되지 않은 각 데이터에 대한 pseudo label을 생성하고, 아래와 같이 paired pseudo label을 이룬 데이터 세트를 얻음
$\mathcal{D}={(X_i,\bar{Y_i})|X_i\in\mathcal{X}}$

- 마지막으로 새 AM은 $mathcal{D}$와 $D$의 조합에 대해 아래와 같은 목표로 훈련 할 수 있음

$\sum_{(X,Y)\in\mathcal{D}}$log$P(Y|X)+\sum_{(X,Y)\in\mathcal{D}}$log$P(\bar{Y}|X)$

 

3) Proposed filtering

- Pseudo-labelled dataset $\bar{\mathcal{D}}$는 noisy $\bar{Y}$를 포함하고 있음

- Filtering은 $\bar{\mathcal{D}}$의 크기와 pseudo-label 사이에 balance를 이루기 위해 사용됨

- Seq2seq에 특화된 두 가지 heuristic-based filtering 기능 제안

 

-> Confidence-based filtering [4] 추가 결합 가능하며, 문장 수준에 적용

-> $c$번 이상 반복되는 n-gram을 포함하는 pseudo-label을 제거하여 루프를 필터링 함

-> EOS확률이 threshold 이상인 $\hat{Y}$을 유지함으로써, early stopping을 해결할 수 있음

-> 또한, 완전한 $\hat{Y}$을 찾지 않고 beam search이 종료되는 경우에 대해서도 필터링 함

 

4) Confidence-based filtering [4]

- Decoder가 디코딩 된 $\bar{\mathcal{Y}}$에 대해 얼마나 확신하는가?

- Sentence-level confidence $C_{sent}$는 아래의 식인 평균 단어 신뢰도로 계산됨

$C_{sent}\frac{1}{N}\sum_{i=1}^N c_{w_i}$

- Word confidence $c_{w_i}$Confusion Network [5]의 $i$번째 step에 있는 단어 $w_i$의 사후 확률임

- Word sequence posterior 값은 예상되는 WER을 최소화하는 Minimum Bayes Risk Decoding [6]에 의해 얻어짐

 

5) Confusion network [5]

- 디코딩 결과가 얼마나 정확한지 검증하는 기법으로 사용 됨

- Word graph 혹은 Finite-state Machine에서 state transition 스코어의 합이 1이 되도록 확률로 normalize한 모델

- 이외에도 알아두면 좋을 것들: Lattice-based word error minimization algorithm

-> Lattice alignment algorithm

-> Intra-word clustering

-> Inter-word clustering

-> Pruning

-> The consensus hypothesis

-> Score scaling

- 올해 안에 확인해보기

 

6) Minimum Bayes decoding [6]

- ASR에 사용되는 MAP rule은 다음과 같음

$W^*=$argmax$_{w}P(W|\mathcal{O})$

- W word-sequence 이고, Oobservation sequence이며

- 이를 통해 WER과 관련된 Minimum Bayes Risk 추정치 제공 (Levenshtein edit distance를 기준으로 WER 사용하기 때문)

$W^*=$argmin$_w\sum_{w'}P(W'|\mathcal{O}L(W,W'))$

- 여기에서 $L(W,W')$는 word sequence $W$와 $W'$사이의 Levenshtein edit distance임

- 또한, $P(W'|\mathcal{O})$는 모델에 의해 $W'$에 할당된 posterior 확률임

 

다시 3)으로 돌아와서, - 각 pseudo-label에 대해 seq2seq에서 length-normalized log likelihood를 confidence score로 계산한 것은 아래의 식과 같음

 

ConfidenceScore$(\bar{Y_i})=\frac{log{P_{AM}(\bar{Y_i}|X_i)}}{|\bar{Y_i}|}$

- 여기에서 $|\bar{Y_i}|$는 각 발화의 토큰 수임

 

7) Ensembles in self-training 

7-1) 문제점

- Self-training에서 여러 모델을 활용하는 방법은 추론 중 모델들의 score 결합

- 더 높은 품질의 single pseudo-labelled 세트를 생성할 수 있음

- 하지만 $M$이 증가하면 디코딩 프로세스가 heavyweight

 

7-2) Proposed sample ensemble

- Given $M$ bootstrapped AM, 각 모델에 대한 pseudo-labelled dataset $\bar{D_m}$을 병렬로 생성

이후 pseudo-label의 모 $M$ setuniform 가중치와 combine

훈련 중 아래의 식을 최적화

$\sum_{(X,Y\in\mathcal{D})}$log$P(Y|X)+\frac{1}{M}\sum_{m=1}^M\sum{X,Y\in{D_m}}$log$P(\bar{Y}|X)$

 

- Implementation으로, 먼저 labelled $\mathcal{D}$를 이용하여 randomly initialized weights로 모 $M$ 학습

- 이후, 각각의 모델에 맞춰 tuninghyper-parameter로 $\bar{D_m}$생성

- 학습 동안, 모델 $M$중 하나에서 매 epoch마다 target으로 pseudo-label을 균일하게 샘플링함

 

Experiments

1. Data (LibriSpeech)

- Paired dataset: Train-clean 100

- Unpaired dataset (clean): Train-clean-360

- Unparied dataset (noisy): Train-other-500

- Realistic for self training

-> LibriSpeech는 총 14,476권의 공개 도서에서 파생되어 생성된 데이터셋임

-> LM을 위한 훈련 데이터에서 AM 훈련 셋과 관련된 모든 책 제거 (997개)

- NLTK toolkit for text normalization

--> 문장 분할 적용, 소문자로 모두 변경, ` 를 제외한 구두점 제거, 하이픈 공백으로 대체

 

2. Model

- 각각 10, 14 및 16 채널과 $k$ = 21이 있는 3 개 그룹의 9 개의 TDS 블록
- Soft-window 사전 교육 (attention 수렴을 위해), teacher-forcing, 20%의 dropout, 1%의 random sampling, 10%의 Label smoothing, 정규화를위한 1%의 word piece sampling
- SentencePiece [7]을 사용하여 "train-clean-100"의 transcripts에서 5,000 개의 word piece을 대상 토큰으로 계산

 

3. Training

- Pseudo-labels 학습시 8GPUs 사용

- Learning rate가 0.05 인 200 Epoch 동안 momentum이 없는 SGD 사용

- GPU 1개를 사용할 때 Epoch 40마다 0.5 씩 decay, GPU 8개에 Epoch 80 개씩 decay 먹임
- wav2letter ++ 프레임 워크 사용 [8]

 

4. LM

- ConvLM [9]과 동일한 model architecture 및 학습 방법 사용하여 word piece 학습

- 모든 beam search hyper-parameterpseudo-label 생성 전 dev set에서 조정

 

Results

1. Label measure

- Ground truth와 비교하여 필터링 된 pseudo-label의 WER로 정의함 (논문 자체에서 이렇게 했다는 말임)

2. Heuristic filtering

- No EOS + n-gram필터를 $c=2, n=4$에 적용

- 이후 필터링 된 데이터 세트 위에 confidence-based filtering 추가

- Confidence score에 대한 threshold 조정 시 pseudo-label 품질 개선됨 (그림 참조)

 

3. Model ensembles

- 여러 모델을 결합하면 특히 노이즈가 많은 설정에서 성능 향상

- 6개 모델과 heuristic filtering을 통해 13.7%의 상대적 개선률 획득

- 두 가지 필터링 기술이 ensemble과 효과적으로 결합 됨을 보임

- Sample ensemble이 학습 시간에 동일한 utterance에 대해 서로 다른 transcript를 사용하기 때문에 모델이 noise가 포함된 pseudo-label에 지나치게 확신하는 것을 방지함

 

4. Comparison with Literature

- 원본 책(label)과 비교를 하였는데 이때 쓰인 measure는 WRR (WER Recovery Rate) 이며 아래와 같음

$\frac{baseline WER - semi - supervised WER}{baseline WER - oracle WER}$

- WRR를 통해 pseudo-label과 연결할 수 있는 baselineoracle 사이의 간격을 보임

5. Comparison with other semi-supervised learning

- Seq2seq model에서 동일한 음성으로 실험 조건 세팅

기존 연구 (semi-supervised)

--> Cycle TTE [10]: inputoutput사이에 cycle-consistency loss 도입

--> ASR+TTS [11]: TTS 모듈을 활용하여 unpaired text에서 합성 데이터 생성

- 제안한 Self-training 방법이 기존 연구 보다 약 65.1% 우수한 WER 생성

Why?

- TDS 기반 encoder

- 실제 설정에서 쉽게 얻을 수 있는 훨씬 더 큰 unpaired text corpus 활용

 

 

Conclusion

- 대규모 Unlabelled dataset을 이용한 self-trainingend-to-end 시스템의 상당한 개선을 가져옴

- 기존의 Seq2seq 모델 및 앙상블에서 발생하는 문제점에 맞게 조정된 필터링 메커니즘의 효과

- Self-training에도 효과적임을 보임

 

- TDS block 및 이 논문 모두 Decoding, External LM 등에 대한 사전 지식이 있어야 충분히 이해할 수 있는 레벨이었음

- 소량의 Self-training을 통해 data augmentation 효과 및 unseen data의 distribution등의 개선을 기대할 수 있을 것 같고, real scenario에 사용해봄직 함

 

[1] Kahn, Jacob, Ann Lee, and Awni Hannun. "Self-training for end-to-end speech recognition." ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2020.

[2] Kahn, Jacob, Ann Lee, and Awni Hannun. "Self-training for end-to-end speech recognition." ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2020.

[3] Chorowski, Jan, and Navdeep Jaitly. "Towards Better Decoding and Language Model Integration in Sequence to Sequence Models." Proc. Interspeech 2017 (2017): 523-527.

[4] Veselý, Karel, Mirko Hannemann, and Lukáš Burget. "Semi-supervised training of deep neural networks." 2013 IEEE Workshop on Automatic Speech Recognition and Understanding. IEEE, 2013.

[5] Mangu, Lidia, Eric Brill, and Andreas Stolcke. "Finding consensus in speech recognition: word error minimization and other applications of confusion networks." Computer Speech & Language 14.4 (2000): 373-400.

[6] Xu, Haihua, et al. "An improved consensus-like method for Minimum Bayes Risk decoding and lattice combination." 2010 IEEE International Conference on Acoustics, Speech and Signal Processing. IEEE, 2010.

[7] Kudo, Taku, and John Richardson. "SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing." Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. 2018.

[8] Vineel Pratap, Awni Hannun, Qiantong Xu, Jeff Cai, Jacob Kahn, Gabriel Synnaeve, et al., "Wav2letter++: A fast opensource speech recognition system", International Conference on Acoustics Speech and Signal Processing (ICASSP), 2019.

[9] Dauphin, Yann N., et al. "Language modeling with gated convolutional networks." International conference on machine learning. PMLR, 2017.

[10] Takaaki Hori, Ramon Astudillo, Tomoki Hayashi, Yu Zhang, Shinji Watanabe and Jonathan Le Roux, "Cycle-consistency training for end-to-end speech recognition", International Conference on Acoustics Speech and Signal Processing (ICASSP), 2019.

[11] Murali Karthick Baskar, Shinji Watanabe, Ramon Astudillo, Takaaki Hori, Luk áš Burget and Jan Černockỳ, "Semi-supervised sequence-to-sequence ASR using unpaired speech and text", Interspeech, 2019.

728x90

+ Recent posts