이번에 리뷰할 논문은 Sequence-to-sequence speech recognition with time-depth separable convolutions [1] 이며, receptive field를 크게 유지하면서 모델의 매개변수 수를 극적으로 줄이는 시간 깊이 분리형 CNN block을 제안한 논문임
Overview
1. TDS (Time-depth separable)
- Fully convolutional sequence-to-sequence encoder architecture
- RNN baseline에 비해 WER 우수, 계산의 병렬 특성으로 인해 효율적임을 주장
- Receptive field를 크게 유지하면서 모델의 매개 변수 수를 극적으로 줄이는 시간 깊이 분리형 CNN block 제안
2. 또한, 느리고 순차적인 기술 폐기
- Neural content attention
- Location based attention [2]
- Scheduled sampling [3]
3. CNN 기반의 언어 모델
- CNN 기반의 언어 모델을 효과적으로 통합할 수 있는 Beam search 추론 절차 제공
- Beam size가 매우 크더라도 정확도가 저하되지 않음
Proposed model
1. Background
1) 주어진 음성 입력 $X=[x_1,...,x_t]$, $Y=[y_1,...,y_u]$가 있을 때, Seq2seq 모델의 인코더는 $X$를 hidden representation으로 인코딩하며, 디코더는 인코더로부터 받은 hidden represetation과 디코더의 입력을 각각의 출력 토큰으로 디코딩하여 문장으로 생성함. 이를 아래에 자세히 설명함
2) 인코더는 아래의 식으로 볼 수 있음
$(K, V)$ = encode$(X)$
- 여기에서 $K=[k_1,...,k_t]$ 는 key이며, $V=[v_1,...,v_t]$는 value임
3) 디코더는 아래처럼 주어질 수 있는데,
$Q_u = g(y_{u-1},Q_{u-1})$
$S_u = $attend$(Q_u,K,V)$
$P(y_u|X,y_<u)=h(S_u,Q_u)$
- 여기에서 $g(\cdot)$은 이전 token과 query vector $Q_{u-1}$을 인코딩하여 다음 query vector를 처리하는 RNN임
- Attention mechanism인 attend$(\cdot)$은 summary vector인 $S_u$를 처리함. 여기에서 summary vector는 일방적인 context vector로도 알려짐
- $h(\cdot)$은 출력 token들의 전체 distribution을 계산함. 즉 attention score를 뜻함
2. Time-depth separable convolutions
1) 채널을 통한 mixing에서 시간 경과에 따른 집계를 부분적으로 분리
- 2D Convolution-based
- 매개 변수 수를 무시할 정도의 증가량으로, 모델의 receptive field를 늘릴 수 있음
2) 모델 구조 (그림 내의 b)
- $t * w * c$의 입력을 받아 2D CNN으로 시작
-> $T$: time step의 수
-> $w$: 입력 width (frequency)
-> $c$: 입력과 출력의 채널 수
- 커널 사이즈는 $k * 1$
- 매개변수의 total 수: $kc^2$
- Residual, ReLU, Layer norm 적용
3) 모델 구조 (그림 내의 c)
- 입력: $T * 1 * wc$, 즉 (b)의 출력과 동일
- 2-layer of 1x1 CNN (즉, linear layer) with ReLU 추가
- 입력과 위의 결과를 residual로 연산
- Layer norm 적용
4) 3개의 sub-sampling layers
- Stride 2로 사용
- 전체 8 sub-sampling factor 사용
-> 이 중 1개는 첫 번째 layer, 나머지는 각각의 TDS block 사이에 사용
-> 시간 축에 대해서만 stride 2로 적용
5) Increasing the number of output channels
- Feature를 적시에 압축하기 때문에, 각 sub-sample에서 output channel 수를 늘림
- 이 때 단순화를 위해 residual connection은 사용되지 않고, ReLU와 Layer norm만 적용
Efficient Decoder 제안
1. 기존 방법
- Sequential Dependency in the decoder: 다음 출력을 계산하려면 decoder는 이전 예측이 필요
- 기존 방법 중 이에 대한 예시: scheduled sampling, input feeding [4], location-based attention
2. Inner-product key-value attention 제안
- Hidden 차원 $d$의 역 제곱근으로 inner-product 확장
$S=V\cdot$softmax$(\frac{1}{\sqrt{d}}K^TQ)$
- 이를 통해 수렴을 개선하고, 모델이 alignment를 학습하는데 도움이 된다고 함
- 하지만 일반화에서는 개선된 모습이 보이지 않았다고 함
3. Scheduled sampling의 한계
- 훈련 조건을 테스트 조건에 더 가깝게 만들어 노출 편향을 제한하지만, 다음 시간 단계에서 이전 예측을 사용하기 때문에 decoder에 순차 종속성이 도입된다는 단점이 있음
- 논문에서는 병렬로 계산하기 위해 위의 기술을 폐기하고, 대안으로 random sampling [5] 적용을 제안함
- 본 논문에서는 이전 예측이 무작위로 샘플링 된 토큰으로 대체되는 무작위 샘플링을 사용
- 입력 토큰을 샘플링 할 확률 $P_{rs}$로 결정
- 샘플링시, 균일한 분포에서 새 토큰 선택
- Random number $c_j$를 균일한 분포 $[0,1]$로부터 샘플링한 토큰 $U$를 얻음
- $R=[r_1,...,r_U]$로 설정, 이때 $r_j=\mathcal{I}(c_j>P_{rs})$이고, $P_{rs}$는 sampling 확률
- 이후 $U$토큰의 벡터 $Z$를 샘플링 함
- EOS를 포함하지 않는 출력 토큰에 대해 균일한 배포를 사용
- 이후 $\hat{Y}=R\cdot Z+(1-R)\cdot Y$
4. Soft window pre-training: Deep CNN-encoder를 학습하기 위한 soft attention 제안
- 모델이 원하는 위치에서 너무 멀리 떨어져 있는 attention 값에 페널티를 적용하여 입력을 따라 균일한 간격으로 출력을 정렬함
- $W$를 $T*U$ matrix with $W_{ij}=(1-\frac{T}{U}j)^2$라고 할 때,
- $W$는 출력이 입력을 따라 균일한 간격으로 있다고 가정하고, $i$번째 입력과 $j$번째 출력 사이의 제곱 거리를 인코딩함
- 따라서 스케일링 계수는 $\frac{T}{U}$가 됨
- 아래와 같이 $W$를 적용함
$S=V\cdot$softmax$(\frac{1}{\sqrt{d}}K^TQ-\frac{1}{2\sigma^2}W)$
- $\sigma$는 $W$의 효과를 약화시키는 hyperparameter임
- $W$의 적용은 정규화 된 attention vector (즉, softmax 이후)에 가우시안 모양의 마스크를 곱하는 것과 같음
- 처음 몇 epoch에 대해서만 window pre-training 진행
- 해당 작업으로 alignment와 수렴하는 것이 충분하다고 주장
- Encoder의 sub-sampling 양이 변경될 때만 $\sigma$를 변경함
- 개인 적인 생각으론, 가우시안 필터 모양의 마스크를 곱하여 어텐션을 가이드하는 아이디어, 즉 휴리스틱한 내용은 도입해보고 잘 되었기 때문에 넣은 것인지 않을까 싶음
5. Regularization
- Dropout: 인코더 내에서 Non-linearity 이후 layer norm 이전에 적용
- Label smoothing: Prediction에 대한 과도한 신뢰성을 줄이기 위해 사용
- Word piece sampling
-> Word piece model 사용
-> 단어 수준에서 샘플링
-> 가 단어에 대해 확률 $1-P_{wp}$를 사용하여 가장 가능성이 높은 Word piece를 취하거나, $P_{wp}$가 가능성이 가장 높은 상위 10개에 대해 균일하게 샘플링하여 사용
6. Beam search decoding
- Stabilizing Beam Search
-> Seq2Seq 의 Beam Search는 종종 beam size가 증가함에 따라 성능 저하 및 불안정 한 문제가 있음 [6]
-> 하지만 모델은 가능한 hypothesize를 효과적으로 검색하기 위해 큰 beam size를 사용할 수 있어야 함
-> Beam size를 크게 사용하기 위해 성능 저하 및 불안정 문제를 해결하는 아래의 2가지 방법론 제안
- Hard Attention Limit
-> Beam search가 이전 attention peak에서 $t_{max}$ 프레임 이상을 차지하는 $\hat{y}$값에 대해 허용하지 않음
-> $t_{max}$는 주어진 데이터 셋에 대해 한 번만 조정함
- End-of-sentence Threshold
-> 짧은 transcriptions에서 검색에 bias를 주기 위해, score가 최고 후보 score의 값보다 클 경우에만 EOS를 고려함
log$P_u(EOS|y_{<u})>\gamma\cdot max_c$log$P_u(c|y_{<u})$
-> Hard attention 한계와 마찬가지로, 매개 변수 $\gamma$는 주어진 데이터 세트에 대해 한 번만 조정함
7. Efficiency
- Heuristics method on Beam search
-> Beam threshold [7]를 설정하여 현재까지의 최고의 $\hat{y}$에서 고정된 범위 미만인 beam의 $\hat{y}$을 제거함
-> 또한, beam의 현재 $\hat{y}$ 세트에 새로운 후보 토큰을 제안 할 때, threshold 적용
-> 아래의 식
log$P_u(EOS|y_{<u})>\gamma\cdot max_c$log$P_u(c|y_{<u})$
-> 이 아래의 식을 만족해야 함
log$P_u(y|y_{<u})> max_c$log$P_u(c|y_{<u})-\eta$
-> Beam의 모든 후보에 대해 업데이트 된 probability 집합을 일괄 계산하므로, 각 단계에서 한 번의 forward만 필요
Experiments
1. Data
- LibriSpeech 960h
2. Encoder
- Two 10-channel, three 14-channel 그리고 six 18-channel TDS blocks (11 blocks)
- Using 1D convolutions to sub-sample over time
-> One as the first layer
-> One in between each group of TDS blocks
- Kernel sizes: all 21 x 1
- Final linear layer produces the 1024-dimensional encoder output
3. Decoder
- One-layer GRU with 512 hidden units
4. Initialization
- uniform distribution $\mathcal{U}(-\sqrt\frac{4}{f_{in}},\sqrt\frac{4}{f_{in}})$으로 초기화 되었으며, $f_{in}$은 각 유닛에 대한 fan-in임
5. Speech preprocessing
- 80-dimensional mel-scale filter banks computed every 10ms with a 25ms window
6. Token preprocessing
- 10k word pieces computed from the Sentence Piece toolkit [8]
7. Optimizer
- Synchronous SGD with a learning rate of 0.05, decayed by a factor of 0.5 every 40 epochs
- Clip the gradient norm to 15
8. Pre-train
- 해당 모델은 soft window와 $\sigma=4$로 3에폭 동안 pre-train 됨
9. Hyperparameters
- Dropout as 20%, label smoothing as 5%, random sampling as 1%, word piece sampling as 1%
10. Two word piece LMs on the 800M-word text-only dataset
- 두 개의 word piece 언어 모델을 사용하였음
- 첫 번째는 4-gram trained with KenLM [9]
- 두 번째는 convolutional LM (ConvLM) [10]
11. Beam setting
- Beam size of 80
- $t_{max}=30$
- EOS penalty $\gamma=1.5, \eta=10$
- LM 가중치 및 토큰 삽입 조건은 dev set 및 LM 조합과 교차 검증으로 진행
- Wav2letter++ [11] 를 사용하여 training 및 evaluation 평가
Results
1. TDS 모델은 외부 LM을 사용시 더 많은 이점을 얻음
- Better loss on the correct transcription
- More effective beam search
2. Model variants
- Varying the number of channels in TDS blocks
-> TDS Block의 채널 개수 변경
-> 기존: 10, 14, 18, params=36.5
--> (10, 12, 14), params=24.4
--> (10, 10, 10), params=14.9
- Fix params, Number of TDS blocks
-> N=9, k=27, c=(14, 16, 20), 5.18%
-> N=12, k=19, c=(10, 16, 16), 5.10%
- $P_{wp}$와 $P_{rs}$가 낮을수록 성능이 좋았음
- Soft window pre-training
--> Soft window 기법은 명확히 학습 초기에 모델 수렴에 도움이 되었음
- Receptive fields
--> 큰 사이즈의 receptive field가 없으면, encoder의 키 output에 decoder의 query를 명확하게 할 수 없음을 주장
- Number of beam size
--> Beam size가 80까지 이득을 볼 수 있음
Conclusion
1. Fully convolutional encoder
- 제안하는 Fully convolutional encoder와 simple decoder가 강력한 RNN baseline의 도달함과 동시에 더 우수하고 효율적인 결과를 보임
2. TDS block
- CNN-based encode의 성공 핵심은 모델이 큰 사이즈의 receptive field를 유지할 수 있는 TDS에 의해 가능함
3. + ConvLM
- Convolutional LM을 안정적이고 확장 가능한 beam search 절차와 통합 하는 방법을 보임
[1] Hannun, Awni, et al. "Sequence-to-Sequence Speech Recognition with Time-Depth Separable Convolutions." Proc. Interspeech 2019 (2019): 3785-3789.
[2] Chorowski, Jan, et al. "Attention-based models for speech recognition." Proceedings of the 28th International Conference on Neural Information Processing Systems-Volume 1. 2015.
[3] Bengio, Samy, et al. "Scheduled sampling for sequence prediction with recurrent Neural networks." Proceedings of the 28th International Conference on Neural Information Processing Systems-Volume 1. 2015.
[4] Luong, Minh-Thang, Hieu Pham, and Christopher D. Manning. "Effective Approaches to Attention-based Neural Machine Translation." Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. 2015.
[5] Wang, Xinyi, et al. "SwitchOut: an Efficient Data Augmentation Algorithm for Neural Machine Translation." Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018.
[6] Chorowski, Jan, and Navdeep Jaitly. "Towards Better Decoding and Language Model Integration in Sequence to Sequence Models." Proc. Interspeech 2017 (2017): 523-527.
[7] Collobert, Ronan, Christian Puhrsch, and Gabriel Synnaeve. "Wav2letter: an end-to-end convnet-based speech recognition system." arXiv preprint arXiv:1609.03193 (2016).
[8] 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.
[9] Heafield, Kenneth. "KenLM: Faster and smaller language model queries." Proceedings of the sixth workshop on statistical machine translation. 2011.
[10] Dauphin, Yann N., et al. "Language modeling with gated convolutional networks." International conference on machine learning. PMLR, 2017.
[11] Pratap, Vineel, et al. "Wav2letter++: A fast open-source speech recognition system." ICASSP 2019-2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2019.
'Paper Review > Speech Recognition' 카테고리의 다른 글
Almost Unsupervised Text to Speech and Automatic Speech Recognition 리뷰 (0) | 2021.07.05 |
---|---|
Self-Training for End-to-End Speech Recognition 리뷰 (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 |