728x90

이번에 리뷰할 논문은 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)

TDS convolution model architecture

- $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와 수렴하는 것이 충분하다고 주장

- Encodersub-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의 키 outputdecoderquery를 명확하게 할 수 없음을 주장

 

- Number of beam size

--> Beam size80까지 이득을 볼 수 있음

 

Conclusion

1. Fully convolutional encoder

- 제안하는 Fully convolutional encodersimple 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.

728x90

+ Recent posts