이번에 리뷰할 논문은 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에 대한 heuristic 및 confidence-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 이고, O는 observation 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$ set을 uniform 가중치와 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$ 학습
- 이후, 각각의 모델에 맞춰 tuning된 hyper-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-parameter는 pseudo-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과 연결할 수 있는 baseline과 oracle 사이의 간격을 보임
5. Comparison with other semi-supervised learning
- Seq2seq model에서 동일한 음성으로 실험 조건 세팅
- 기존 연구 (semi-supervised)
--> Cycle TTE [10]: input과 output사이에 cycle-consistency loss 도입
--> ASR+TTS [11]: TTS 모듈을 활용하여 unpaired text에서 합성 데이터 생성
- 제안한 Self-training 방법이 기존 연구 보다 약 65.1% 우수한 WER 생성
Why?
- TDS 기반 encoder
- 실제 설정에서 쉽게 얻을 수 있는 훨씬 더 큰 unpaired text corpus 활용
Conclusion
- 대규모 Unlabelled dataset을 이용한 self-training은 end-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.
'Paper Review > Speech Recognition' 카테고리의 다른 글
Almost Unsupervised Text to Speech and Automatic Speech Recognition 리뷰 (0) | 2021.07.05 |
---|---|
Sequence-to-sequence speech recognition with time-depth separable convolutions 리뷰 (0) | 2021.07.04 |
SpecAugment 리뷰 (2) | 2021.01.10 |
Feature Learning in Deep Neural Networks - A Study on Speech Recognition Tasks (0) | 2021.01.08 |
Listen, Attend and Spell 리뷰 (0) | 2019.03.19 |