[Paper Review] Contextnet: Improving convolutional neural networks for automatic speech recognition with global context

2 minute read

Contextnet: Improving convolutional neural networks for automatic speech recognition with global context

Han, Wei, et al. “Contextnet: Improving convolutional neural networks for automatic speech recognition with global context.” arXiv preprint arXiv:2005.03191 (2020).

Abstract

end-to-end 음성 인식에서 CNN이 좋은 성능을 보여왔지만, 여전히 RNN/Transformer 기반 모델들 보다 성능이 떨어짐

본 논문에서는 이러한 성능 격차를 어떻게 해결할 수 있을지 연구하고, 새로운 CNN-RNN-transducer 구조인 ContextNet 제안

ContextNet은 squeeze-and-excitation 모듈을 추가함으로써 global context 정보를 convolution layers에 통합하는 fully convolutional encoder로 구성

ContextNet의 너비를 조정하는 간단한 scaling method 제안

모델 사이즈(widths)는 연산량과 정확도 간 trade-off 관계가 있음

가장 널리 사용되는 Librispeech benchmark(clean/noisy)에서 좋은 성능을 보임

외부적인 language model(LM) 없이 2.1%/4.6% WER (word error rate)

LM 추가하여 1.9%/4.1% WER

10M parameters만으로 2.9%/7.0%

Introduction

end-to-end (E2E) speech recognition을 위한 CNN 기반 모델들에 대한 관심이 높아지고 있음

  • the Jasper model

    외부적인 neural language model을 사용하여 LibriSpeech test-clean에서 2.95% WER로 SOTA와 근접

    여러번 쌓은 1D convolutions과 skip connections으로 구성된 deep convolution 기반 encoder

    CNN 모델의 정확도와 성능을 개선하기 위해 Depthwise separable convolutions 활용

    -> 이러한 CNN 기반 모델의 장점은 parameter efficiency이지만, CNN 기반 모델 중 가장 성능이 좋은 QuartzNet은 여전히 RNN/Transformer 보다 성능이 떨어짐

RNN/transformer 기반 모델과 CNN 기반 모델의 가장 큰 차이점은 context length에 있음 (문맥을 어느정도 범위까지 고려할 수 있는지)

양방향 RNN 모델의 경우, 이론상으로 하나의 셀은 전체 시퀀스 정보에 접근할 수 있음

Transformer 모델의 경우, attention mechanism은 두개의 서로 다른 타임 스탬프에 존재하는 노드들이 서로의 연산에 참여함

하지만, 제한된 kernel 사이즈를 가진 convolution은 특정 시간에 작은 window 사이즈만을 고려할 수 있음

-> 이러한 문맥은 범위가 작고, global 정보를 담지 못함

본 논문에서 CNN 기반 ASR 모델과 RNN/transformer 기반 모델 간 성능 차이의 주된 원인은 global context의 부족이라고 주장


CNN 모델에서 global context를 향상시키기 위해, the squeeze-and-excitation (SE) layer로부터 영감을 얻어 새로운 CNN 기반 ASR 모델인 ContextNet 제안

  • SE layer가 local feature vectors의 시퀀스를 하나의 global context vector로 만듦

  • 이러한 context를 다시 각각의 local feature vector로 broadcating 시킴 (global 정보 local로 보내기)

  • multiplication을 통해 두가지 정보를 합침

convolution layer 뒤에 SE layer를 위치시켰고, convolution 출력이 global 정보에 접근할 수 있도록 함 ??

실험을 통해, squeeze-and-excitation layers를 ContextNet에 추가시키는 것이 WER 값이 크게 감소시키는 것을 확인함


많은 layer를 쌓거나 개별적으로 학습된 global vector를 accustic model에 도입하는 하이브리드 ASR 방식의 기존 연구들이 성공적이었음

[17]에서 SE가 unsupervised adaptation을 위한 RNN에 적용되었음

본 논문에서는 SE가 RNN 뿐만 아니라 CNN encoders에도 효과적으로 적용될 수 있음을 보여줌

ContextNet의 구조는 encoder에서 depthwise separable 1D convolution 이용과 같은 QuarzNet의 선택에서 영감을 얻음

하지만, SE layer를 도입했다는 점이 다르고, 이외에도 다른 점이 있음

  • CTC decoder 대신 RNN-T decoder 사용

  • Swish activation function 사용

ContextNet은 LibriSpeech test clean/test-other에서 WER 기준 1.9%/1.4% 성능을 달성

QuartzNet과 같은 기존 CNN 기반 방식을 크게 뛰어넘었고, tansformer와 LSTM 기반 모델도 뛰어넘음

또한, 빠른 학습과 평가를 위해 ContextNet의 계산 비용을 감소시킬 수 있는 방식을 연구함

  • 점진적인 downsampling scheme

    점진적으로 인코딩된 시퀀스의 길이를 8번 감소시켜서 계산 비용을 크게 줄임

    이런 scheme으로 모든 convolution layers의 kernel 사이즈를 감소시킬 수 있었음

  • convolutional filters에서 채널 수를 변경함으로써 ContextNet 사이즈를 조절할 수 있음

Contributions

  1. ASR을 위해 global context를 적절히 다룰 수 있는 향상된 CNN 모델 제안

  2. 점진적 downsampling scheme, 정확도의 모델 사이즈의 trade-off 간 적절한 모델을 찾기 위한 model scling scheme

Model

End-to-end Network: CNN-RNN-Transducer

본 논문에서 제안한 네트워크는 RNN-Transducer framework 기반 모델임

네트워크는 input utterance에 대한 audio encoder, input label에 대한 label encoder, 둘을 결합하고 decoding하는 joint network로 구성

LSTM 기반 label encoder와 [20]에서 사용된 joint network를 사용하지만, 새로운 CNN 기반 audio encoder 제안

Encoder Design

encoder가 신호 x를 high level representation h로 변환

\[x = (x_{1},...,x_{T}), h = (h_{1},...,h_{T}), where T'<=T\] \[h = AudioEncoder(x) = C_{K}(C_{K-1}(...C_{1}(x)))\]

C는 convolution block이고, 여러개의 convolution layers로 구성 (batch normalization과 activation function이 뒤에 붙음)

squeeze-and excitation component와 skip connections을 포함하고 있음

Leave a comment