Listen, Attend and Spell : A Neural Network for Large Vocabulary Conversational Speech Recognition 리뷰
이번에 읽은 논문은 Listen, Attend and Spell: A Neural Network for Large Vocabulary Conversational Speech Recognition 이다.
Carnegie Mellon 대학의 William Chan과 Google Brain팀에서 출간한 논문이며, 해당 논문은 https://arxiv.org/pdf/1508.01211.pdf 에서 볼 수 있다.
ICASSP2016에 제출 된 논문이다.
1. Abstract
이 논문은 LAS(Listen, Attend and Spell) model을 소개하고 있다. LAS는 기존의 DNN-HMM모델과는 다른 스피치 발화를 문자로 변경해주는 뉴럴넷이다. 기존의 DNN-HMM모델과 다르다고 주장하는 이유는, 모든 것을 End-to-End로 학습하기 때문이라고 한다. 시스템은 크게 2개의 구성요소로 되어있는데 1개는 Encoder Part의 Listener, 1개는 Decoder Part의 Speller이다. Listener는 피라미드 모양의 RNN을 사용하고 있으며, 이 때 input 데이터로는 filter bank를 통과한 Spectrum들을 사용하고 있다. Speller는 Attention-Based RNN이며 Listener의 output을 input으로 받아 글자로 내뱉어주는 역할을 한다.
논문은 2015년 8월에 쓰여졌고, 이때 당시 state-of-the-art 였던 CLDNN-HMM 모델의 WER은 8.0% 였지만, 이 논문에서 제안하는 WER은 14.1%였다. 이 때, 14.1%는 사전이나 언어 모델 없이 학습하였을 때의 결과이고, 언어 모델을 사용할 때의 WER은 10.3%라고 한다.
2. Introduction
(논문이 쓰여진 2015년 8월 즈음) State-of-the-art 음성인식 모델은 음향 모델(Acoustic Model), 언어 모델(Language Model), 명사 모델(Pronunciation), 언어 정규화(Text normalization) 등 다양한 구성 요소로 이루어진 복잡한 시스템이었다. 예를 들어 n-gram 언어 모델과 Hidden Markov Models (HMMs)은 문장 내의 단어/기호간 strong한 Markovian independence 추정을 만든다. CTC (Connectionist Temporal Classification)와 DNN-HMM 시스템은 뉴럴 네트워크가 독립된 예측을 다른 시간에서 하게끔 하고, HMM이나 언어 모델은 시간 경과에 따라 이러한 예측 간의 종속성을 도입하게 해준다.
이렇듯, 2개 이상의 구성 요소를 합쳐서 음성 인식 시스템을 만들었지만, 이 논문에서 제안하는 바로는 End-to-End로 음성을 문자로 변경하는 시도를 보인다. 즉, input으로 음성을 받아서 언어 모델이나 명사 모델, Hmm 등을 쓰지 않고 output으로 character로 내보내는 것을 말한다. 이 방법은 Seq2Seq 학습 framework에 에 Attention 기법을 도입하는 것을 참고로 한다. Encoder로 Listener라는 이름을 갖는 RNN을 사용하고, decoder로 Speller라는 이름을 갖는 RNN을 사용한다.
3. Model and Methods
x = (x1, x2, ...., xt) 를 필터 뱅크를 통과한 스펙트럼 특징들인 입력 시퀀스로 두고, y = (<sos>, y1, ...., ys, <eos>)문자의 출력 순서라고 가정하자. 이 때, yi는 {a, ...., z, 0, ...., 9, <space>, <comma>, <period>, <apostrophe>, <unk>) 를 포함하는데, sos는 sentence의 시작 토큰이고, eos는 sentence의 종료 토큰이다.(start-of-sentence: sos, end-of-sentence: eos) 또한 <unk>는 악센트 문자와 같이 unknown token으로 가정하고 있으며, <space>, <comma>, <apostrophe> 같은 경우는 스페이스, 콤마, ' 와 같은 문자이다. 즉 알파벳 a~z, 숫자 0~9, 그리고 위에서 언급한 것들이 모두 y에 포함된다는 것이다.
LAS 모델은 각각의 출력 문자 yi를 이전 문자 y<i에 대한 조건부 분포로 모델링하고, 확률에 대한 Chain Rule을 사용하여 입력 신호 x를 y로 모델링 한다. 이때의 공식은 다음과 같다.
즉 주어진 음성 x에 대하여 출력문자 y가 될 확률은, 전체 문자 y < i(위에서의 a~z, 0~9, 등)에 대한 x의 조건부 분포(Conditional Distribution)로 모델링한다고 볼 수 있다. 위의 식은 음향 신호가 입력으로 들어오면, 문자 시퀀스의 조건부 확률을 직접 예측할 수 있기 때문에 모델을 차별화 된 End-to-End로 만들어 준다.
아래의 그림은 Paper에 개재된 그림으로 LAS 모델의 구조인 Listener(Encoder)와 Speller(Decoder)를 설명해주고 있다.
1) 먼저 Listener는 Encoder로서 음성 신호를 high level feature들로 변환하는 역할을 LAS내에서 맡고 있다. Listener는 BLSTM을 Pyramidal 형식으로 3개를 붙여서 사용하고 있다. 논문에서는 이를 pBLSTM으로 부르고 있으며, pyramidal 하게 사용하는 이유는 pBLSTM 1개당 연산속도를 2배로 줄여주기 때문이다.
h를 Listen Encoder라 하고, i를 i-th time step이라하고, j를 from the j-th layer라 하였을 때,
3개의 BLSTM의 top of the bottom에 쌓은 pBLSTM은 time resolution을 2의 3승만큼, 즉 8 배만큼 줄여준다고 한다.
2) Speller는 Decoder로서, attention-based LSTM 변환기 역할을 맡고 있다. 즉, 모든 출력 단계에서 변환기는 이전에 본 모든 문자를 조건으로 한 다음 문자에 대한 확률 분포를 생성한다. yi에 대한 분포는 디코더 상태 si 및 컨텍스트 ci의 함수이다. 디코더 상태 si는 이전 상태 si-1, 이전에 출력 된 문자 yi-1 및 컨텍스트 ci-1의 함수이다. 컨텍스트 벡터 ci는 attention-mechanism에 의해 생성된다.
여기서 CharacterDistribution은 charcter 위로 softmax 출력이있는 MLP이고 RNN은 2계층 LSTM이다.
매 time step마다, attention mechanism인 AttentionContext ci는 컨텍스트 벡터를 생성하고, 다음 문자를 생성하는데 필요한 음향 신호의 정보를 캡슐화한다. attention 모델은 내용 기반이며, 디코더 상태 si의 내용은 attention 벡터 ai를 생성하기 위해 h의 time step u를 나타내는 hu의 내용과 일치한다. 벡터 hu는 ai를 사용하여 linear하게 블렌딩되어 AttentionContext를 생성한다.
3) 이 모델의 학습은, 입력 음성에 대해 알맞는 sequence의 log probability를 maximize한다. 공식은 아래와 같다.
4) 디코딩 관련하여, test 시에 가장 근접한 character sequence를 주어진 음향에 대해 찾는다. 공식은 아래와 같다.
4. Experiments and results
저자는 3백만개의 Google Voice Search utterances(2000시간의 데이터셋)를 이용했다. 거의 10시간의 발화들이 랜덤으로 선택되어 validation set으로 사용되었다. room simulator를 이용하여 Data Augmentation를 진행하였고, 이 때 기존 녹음된 것과 같은 reverberation과 noise를 추가했다.
음성 데이터 input은 Mel-Spectrogram을 사용하여 number of mel을 40으로 주고 10ms마다 features들을 뽑았다 (40 dimensional log-mel filter bank).
Text Normalization은 모든 캐릭터들을 lower case English alphanumerics로 일반화 해주었다. 알파벳, 숫자, space, comma, period, apostrophe는 그대로 유지해주고 나머지들을 <unk> token으로 치환해주었다. 또한 맨 앞쪽에 언급한 것처럼, 모든 발화의 앞쪽에는 <sos>를, 끝쪽에는 <eos>를 패딩해주었다.
논문이 쓰여진 당시의 State-of-the-art의 CLDNN-HMM의 Clean WER는 8.0이고, Noisy WER는 8.9였다. 논문 실험 결과인 LAS는 그보다 미치진 못하였다.
저자는 Listen Function에서(Encoder part) 3개의 pBLSTM을 쓰기 때문에 시간을 2^3= 8times 만큼 줄여준다고 주장하고 있다. weights들은 uniform distribution (-0.1, 0.1)로 초기화 하였다. Gradient는 Asynchronous Stochastic Gradient Descent (ASGD)를 train 하는데에 사용했다. learning rate는 0.2로 시작하여 20 에폭마다 0.98씩 decay를 하였다. 모델 학습하는 데에 거의 2주간의 시간이 걸렸다고 한다. 마지막으로 모델은 N-best list decoding으로 decode하였다.
아래의 그림은 paper에 실린 그림으로, 문자와 입력 음성간의 할당 (Alignment)를 보여준다.
"how much would a woodchuck chuck" 라는 음성 input에 따른 character alignment를 보여주고 있다. Content based attention mechanism은 첫 번째 문자에 대한 오디오 시퀀스의 시작 위치를 올바르게 식별할 수 있었다고 한다. 생성 된 alignment(그림)은 일반적으로 위치 기반 prior가 없이도 단조로운걸 주장하고 있다.
Content based Attention Mechanism은 문자와 오디오 신호 사이의 명확한 정렬을 만들고 있다. 모든 문자의 output 시간 단계에서 audio 시퀀스에 attention distribution을 기록하여 attention mechanism을 visualization 할 수 있었다고 한다.
이 논문에 쓰여진 2015년 8월 기준으로, 저자는 여러가지 end-to-end trained speech models이 폭발적으로 증가했다고 한다. 그러나 이 모델(
- A. Graves and N. Jaitly, “Towards End-to-End Speech Recognition with Recurrent Neural Networks,” in International Conference on Machine Learning, 2014.
- Y. Miao, M. Gowayyed, and F. Metze, “EESEN: End-to-End Speech Recognition using Deep RNN Models and WFSTbased Decoding,” in Http://arxiv.org/abs/1507.08240, 2015.
- D. Bahdanau, J. Chorowski, D. Serdyuk, P. Brakel, and Y. Bengio, “End-to-end attention-based large vocabulary speech recognition,” in Http://arxiv.org/abs/1508.04395, 2015.
- A. Hannun, C. Case, J. Casper, B. Catanzaro, G. Diamos, E. Elsen, R. Prenger, S. Satheesh, S. Sengupta, A. Coates, and A. Ng, “Deep Speech: Scaling up end-to-end speech recognition,” in Http://arxiv.org/abs/1412.5567, 2014.
- A. Maas, Z. Xie, D. Jurafsky, and A. Ng, “Lexicon-free conversational speech recognition with neural networks,” in North American Chapter of the Association for Computational Linguistics, 2015.
)들은 고유의 단점을 갖고 있고, 그 단점을 해결하기 위해 이 논문을 제안했다고 한다.
논문에서 주장하는 이 단점이라 함은, 좋은 정확도를 얻기 위해서는 use of a strong language model during beam search decoding 이라고 표현되어 있따. 즉, 언어 모델 사용은 CTC 목적에 독립적으로 고정되어 훈련되기 때문이다.
CTC는 또한 FST를 사용하여 음소 표적 및 n-gram 언어 모델을 사용하는 종단 간 교육에 적용되었지만, FST에서는 발음 사전과 언어 모델을 사용하기 때문에 LAS와는 다르다.
- 여기에서 FST는 Finite-state Transducer 로서, 한국말로는 유한 상태 변환기이다.
- FST 관련 자료는 아래의 사이트에서 잘 나와있으니 참고해보면 될 듯.
2) https://shleekr.github.io/2016/06/30/introducing-rouzeta/
즉, CTC는 end-to-end 음성 인식에서 엄청난 가능성을 보여 주었지만, 1개의 frame의 output은 다른 frame의 출력에 영향을 미치지 않기 때문에 프레임 간 독립성의 가정에 의해 제한된다. 그리하여 CTC는 이 문제를 개선하기 위한 유일한 방법이 강력한 언어 모델을 사용 하는데, LAS의 저자는 이 점을 뽑아서 단점이라고 주장하고 있다.
그렇다면 LAS는?
LAS는 시퀀스-시퀀스: Seq2Seq2 아키텍처를 기반으로하며 위의 단점을 겪지 않는다고 한다. LAS는 CTC의 단점을 해결하기 위해 첫 번째 문자에서 시작하여(sos) Chain Rule Decomposition을 사용하여 input sequence 가 주어진 경우 output sequence를 모델링 한다고 주장하고 있다. 또한 이 end-to-end LAS 모델은 음성 인식 시스템의 모든 측면 - 음향, 발음, 언어 모델 모두 해당 인코딩 - 을 포함한다고 주장한다. 따라서 저자는 LAS가 end-to-end 훈련 시스템이 아니라 end-to-end 모델이 될 수 있다고 주장한다. 굉장히 powerful 하다고 마지막에 주장하고 있다.
5. Conclusion
저자는 Listen, Attend and Spell = LAS를 제안하고 있고, 음향 신호를 직접적으로 문자로 표현해줄 수 있는 모델인 LAS를 제안하고 있다. 이 모델에는 전통적인 음성인식 기법인 HMM(Hidden Markov Model), 언어 모델, 음향, 사전적인 구성 요소가 없이도 음성 인식이 가능한 것을 제안하고 있다. 이 LAS는 end-to-end trained system일 뿐만 아니라, 자체적으로 end-to-end 모델이라고 주장한다. LAS는 Seq2Seq framework를 사용하여 출력 sequence에 대한 조건부 독립 가정을 설정하지 않고 음성 인식이 가능하며, 이것은 CTC, DNN-HMM 및 end-to-end 훈련을 받을 수 있는 다른 모델과는 다르다고 주장한다.(조건 독립)
6. 간단 요약 및 느낀점
- Propose End-to-End Encoder-Decoder Model
- This model can End-to-End model (Not using HMMs, language model, etc)
- Transcribing Speech Utterances to Characters Task
- 14.1% WER w/o dictionary or language model, and 10.3% with language model. The Compare model is State-of-the-art CLDNN-HMM model achieves 8.0%
- 이 논문을 찾아보게 된 건 음성 인식 및 dialect 관련하여 자료를 찾다가 오래되었지만 LAS라는 모델을 기반으로 논문이 발행된 것이 있어서 찾게 되었다. 기존의 음성인식은 CTC에 언어모델을 접합하거나 GMM, HMM을 이용하여 하였지만, 이 논문 같은 경우 언어모델을 사용하지 않고도 어느정도의 WER를 뽑은 것을 확인할 수 있었다.
- 다음에는 Dialect 인식 및 Attention Mechanism을 이용한 접근 법에 대해 찾아 볼 계획이다.
- 대학원생의 주관적인 생각이 들어있으므로 관련 논문에 대해 잘못된 부분이나 comment는 언제나 환영합니다.
'Paper Review > Speech Recognition' 카테고리의 다른 글
Self-Training for End-to-End Speech Recognition 리뷰 (0) | 2021.07.04 |
---|---|
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 |
Baidu Deep Voice review (0) | 2017.03.15 |