Abstract
새로운 음성 인식 응용프로그램이 포함되는 순환 신경망 언어 모델(RNN LM)이 제공된다. 최첨단 backoff language 모델과 비교했을때, perplexity가 50%하는 결과가 나타났다. 음성인식 실험은 Wall Street Joural task에서 단어 오차율이 같은 양의 데이터로 학습된 모델과 비교했을 때 대략 18% 감소를 보여준다. 그리고 대락 RNN LM보다 더 많은 데이터로 학습된 backoff 모델의 오차율에서 대략 5% 감소했다. 우리는 높은 계산(훈련) 복잡성을 제외하고, 연결론적 언어 모델이 표준 n-gram 기술보다 뛰어나다는 것을 말하는 충분한 경험적 증거를 제시한다.
index Terms : language modeling, recurrent neural networks, speech recognition
Introduction
시퀀셜 데이터 예측은 머신러닝과 인공지능에서 많은 key problem을 가지고 있다고 여겨진다. statistical language modeling의 목표는 문맥을 가진 텍스트 데이터에서 다음 단어를 예측하는 것이다. 따라서, 우리는 언어 모델을 구성할 때, 시퀀셜 데이터 예측 문제를 다룰 것이다. 그럼에도 불고하고, 이러한 통계 모델을 넘으려는 많은 시도는 매우 특정한 언어 도메인의 접근 방식을 포함한다.
예를 들어, 자연어 문장이 구문 분석 트리에 의해 설명될 수 있다는 가정, 또는 단어, 구문, 의미의 형태를 고려해야할 수 있다는 가정.
심지어 가장 널리 일반적으로 사용되는 모델(n-gram 통계에 기반한)도 언어는 원자 기호, 즉 문장을 형성하는 단어로 구성된다고 가정한다. 그리고 문장의 끝 기호가 중요하고 특별한 역할을 한다.
simple n-gram 모델에 비해 언어 모델링이 눈에 띄는 과정이 있었는지 의문이다. 만약 우리가 시퀀셜 데이터를 더 잘 예측하는 모델의 능력에 의해 이러한 진행상황을 측정한다면, 대답은 캐시 모델과 클래스 기반 모델의 도입에 상당한 개션이 이뤄졌다는 것이다. 다른 많은 기술들이 목적을 이루는 동안, 노력의 대부분은 비슷한 캐쉬 모델(긴 문맥 정보를 설명하는 모델) 혹은 클래스 기반 모델(비슷한 단어간에 파라미터를 공유하여 짧은 context에 대한 매개 변수 추정을 개선함.)
실제로 응용 프로그램을 통해 고급 언어 모델링 기술의 성공을 측정하려면 훨씬 더 회의적이어야 할 것이다. 실제 음성 인식 또는 기계 번역 시스템을 위한 언어 모델은 엄청난 양의 데이터를 기반으로 구축되며, 일반적인 믿음은 더 많은 데이터가 우리에게 필요한 전부라고 말한다. 연구에서 도출된 모델은 복잡한 경향이 있으며 종종 매우 제한된 양의 훈련 데이터를 기반으로 하는 시스템에서만 잘 작동한다. 실제로 제안된 대부분의 고급 언어 모델링 기술은 단순한 기준선에 비해 아주 작은 개선 사항만 제공하며 실제로 거의 사용되지 않는다.
Model description
순차 데이터를 모델링하기 위해 반복 신경망에 대해 조사하기로 결정했다. 통계 언어 모델링에서 인공 신경망을 사용하는 것은 고정된 길이 컨텍스트를 가진 feedforward 신경망을 사용한 Bengio에 의해 이미 제안됐다. 이 접근 방식은 예외적으로 성공적이었으며 Goodman의 추가 조사를 통해 이 단일 모델이 클래스 기반 모델을 포함한 다른 기술을 기반으로 한 여러 모델의 혼합보다 성능이 우수하다는 것을 알 수 있다. 이후, Schwenk는 신경망 기반 모델이 양호한 기준선 시스템에 대한 몇 가지 작업에 대해 음성 인식의 상당한 향상을 제공한다는 것을 보여주었다.
Bengio 접근 방식의 주요 결점은 feedforward 네트워크가 훈련 전에 특별하게 지정되어야하는 고정된 길이의 컨텍스트를 사용해야 한다는 것이다. 보통 이것은 신경망이 다음 단어를 예측할 때 5개에서 10개의 단어만 본다는 것을 의미한다. 인간이 더 긴 문맥을 성공적으로 이용할 수 있다는 것은 잘 알려져 있다. 또한 캐시 모델은 신경망 모델에 보완 정보를 제공하므로 임의의 길이를 가진 컨텍스트에 대해 시간 정보를 암시적으로 인코딩하는 모델을 생각하는 것은 당연하다.
반복 신경망은 제한된 크기의 컨텍스트를 사용하지 않는다. 반복적인 연결을 사용함으로써, 정보는 임의로 오랜 시간 동안 이러한 네트워크 내부에서 순환할 수 있다. 하지만, 확률적 경사 하강에 의한 long-term dependencies를 학습하는 것은 상당히 여려울 수 있다는 주장도 종종 제기된다.
우리의 연구에서, 우리는 보통 단순 반복 신경망 또는 Elman 네트워크라고 불리는 아키텍처를 사용했다. 이것은 아마도 반복 신경망의 가장 단순한 버전일 것이며 구현과 훈련이 매우 쉽다. 네트워크에는 입력 계층 x, 숨겨진 계층 s(context layer 또는 state) 및 출력 계층 y가 있다. 시간 t로 입력은 x(t), 출력은 y(t), 히든 레이어는 s(t)로 나타낸다. 입력 벡터 x(t)는 현재 단어를 나타내는 벡터 w와 시간 t-1에서 컨텍스트 레이어의 s의 뉴런 출력값을 연결하여 형성된다. input, hidden, output layer는 다음과 같이 계산된다.
함수 $f(z)$는 시그모이드 활성화 함수로 아래와 같다.
함수 $g(z)$는 소프트맥스 함수로 아래와 같다.
초기화의 경우 s(0)은 많은 양의 데이터를 처리할 때 초기화는 중요하지 않은 0.1과 같이 작은 값의 벡터로 설정될 수 있다. 다음 시간 단계에서 s(t+1)는 s(t)의 사본이다. 입력 벡터 x(t)는 N 코드화 1(one-hot 인코딩)을 사용하여 인코딩된 단어 t를 나타내며 벡터 x의 이전 컨텍스트 레이어 크기는 사전 V의 크기와 같다.(실제로 30,000 ~ 200,000). 컨텍스트(hidden) 레이어의 크기는 일반적으로 30 ~ 500 hidden 단위이다. 우리의 실험에 따르면, hidden 레이어의 크기는 훈련 데이터의 양을 반영해야 한다. 많은 양의 경우
네트워크는 훈련 말뭉치의 모든 데이터가 순차적으로 표시되는 여러 epoch에서 훈련된다. 가중치는 작은 값으로 초기화 된다.(평균이 0이고 분산이 0.1인 랜덤 가우시안 노이즈로) 네트워크를 훈련시키기 위해 확률적 경사 하강을 가진 backpropagation 알고리즘을 사용한다. 시작 학습률은 α = 0.1입니다. 각 epoch 이후, 네트워크는 유효성 검사 데이터에 대해 테스트된다. 검증 데이터의 로그-라이클리후드가 증가하면 새로운 epoch에서도 학습을 계속한다. 유의미한 개선이 보이지 않으면, 학습률 $\alpha$는 새로운 epoch가 시작할 때마다 절반으로 감소한다. 다시 이렇다할 개선이 없으면 훈련이 끝난다. 수렴은 보통 10~20 epoch 후에 이뤄진다.
우리의 실험에서, 네트워크는 매우 큰 hidden 레이어를 사용하더라도 크게 오베트레이닝되지 않는다. (- 큰 가중치에 불이익을 주기 위한 네트워크의 정규화는 큰 개선을 제공하지 않았다.) 출력 계층 y(t)는 이전단어 w(t)와 컨텍스트(t-1)가 주어진 다음 단어의 확률 분포를 나타낸다. 소프트맥스는 이 확률 분포가 유효한지 확인하다.
각 교육 단계에서 교차 엔트로피 기준에 따라 오류 벡터가 계산되고 backpropagation 알고리즘으로 가중치가 업데이트 된다. $error(t)=desired(t)-y(t)$
desired는 1-of-N 코딩 표현을 사용한 벡터로 특정 컨텍스트에서 예측되는 단어를 나타내고 y(t)는 실제 네트워크로부터의 출력이다.
통계적 언어 모델링의 훈련 단계와 시험 단계는 일반적으로 시험 데이터가 처리될 때 모델이 업데이트되지 않는다는 점에서 다르다. 따라서, 새로운 사람 이름이 테스트 세트에서 반복적으로 발생한다면, 알려진 단어로 구성되더라도 반복적으로 매우 작은 확률을 얻게 될 것이다. 이러한 long term 메모리는 컨텍스트 유닉의 활성화(이러한 매우 빠르게 변화함에 따라)가 아니라 시냅스 자체에 있어야 하며, 네트워크가 테스트 단계 중에도 훈련을 계속해야 한다고 가정할 수 있다. 우리는 그러한 모델을 동적 모델이라고 부른다. 동적 모델의 경우 고정 학습 속도 α = 0.1을 사용한다. 학습 단계에서는 모든 데이터가 epoch에서 여러 번 네트워크에 제공되지만, 동적 모델은 테스트 데이터를 처리할 때 한 번만 업데이트된다. 이것은 물론 최적의 솔루션은 아니지만, 우리가 볼 수 있듯이 정적 모델에 대한 큰 난이도 감소를 얻기에 충분하다. 이러한 수정은 신경 네트워크가 연속 공간에서 학습하는 차이와 함께 backoff 모델의 캐시 기법과 매우 유사하므로, '개'와 '고양이'가 관련이 있는 경우, 테스트 데이터에서 '개'가 자주 발생하는 것도 '고양이'의 확률을 높일 수 있다는 점에 유의한다.
따라서 동적으로 업데이트된 모델은 새로운 도메인에 자동으로 적응할 수 있다. 그러나 음성 인식 실험에서 역사는 인식자에 의해 주어진 가설로 표현되며 인식 오류를 포함한다. 이는 일반적으로 ASR에서 캐시 n-gram 모델의 성능 저하를 초래한다.
여기서 설명하는 학습 알고리즘은 τ = 1을 사용한 시간 경과에 따른 잘린 backpropagation라고도 한다. 현재 시간 단계에 대해서만 계산된 오류 벡터를 기반으로 네트워크의 가중치가 업데이트되기 때문에 최적화되지 않는다. 이러한 단순화를 극복하기 위해 BPTT(Back Propagation through Time) 알고리즘이 일반적으로 사용된다.
Bengio와 schwenk에서 사용하는 feedforward 신경망과 반복 신경망 사이의 주요 차이점 중 하나는 훈련 전에 조정하거나 특별하게 선택해야 하는 매개 변수의 양이다. RNN LM의 경우 hidden(컨텍스트) 계층의 크기만 선택하면 된다. feedforward 네트워크의 경우 단어를 저차원 공간에 투영하는 계층의 크기, 숨겨진 계층의 크기 및 컨텍스트 길이를 조정해야한다.
Optimization
성능을 향상시키기 위해, 우리는 (훈련 텍스트에서) 임계값(threshold)보다 적게 발생하는 모든 단어를 특별한 rare 토큰으로 병합한다. 단어-확률(Word-probabilities) 계산은 아래와 같다.
여기서 $C_{rare}$는 단어에서 임계값보다 적게 발생하는 단어 수입니다. 따라서 모든 rare 단어는 동등하게 취급된다. 즉, 확률은 균일하게 분배된다. Schwenk는 추가적인 성능 향상에 사용할 수 있는 몇 가지 접근 방식을 설명한다. 추가 가능성은 [10][11][12]에서도 논의되며, 대부분의 가능성을 RNN에도 적용할 수 있다. 비교를 위해, 우리의 기본 구현이 브라운 말뭉치(800K 단어, 100개의 숨겨진 단위 및 어휘 임계값(vocabulary threshold 5)를 기반으로 RNN 모델을 훈련하는 데 약 6시간이 소요되며, Bengio는 유사한 데이터와 신경망 크기를 사용할 때 기본 구현에 113일, 중요도 샘플링 [10]으로 26시간을 걸렸다고 보고서에 썼다. 계산 속도를 올리기 위해 BLAS 라이브러리를 사용한다.
Conclusion and future work
반복 신경망은 모든 실험에서 최첨단 backoff 모델보다 훨씬 더 많은 데이터에 대해 backoff 모델을 훈련한 경우에도 훨씬 더 우수한 성능을 보였다. WSJ 실험에서는 동일한 양의 데이터에 대해 훈련된 모델의 경우 워드 오류율 감소가 약 18%, 백오프 모델이 5번 훈련되었을 때 12%이다. RNN 모델보다 데이터 수가 더 많습니다. NIST RT05의 경우, 우리는 모델이 단 5번에 대해 훈련되었다고 결론을 내릴 수 있다. 5.4백만 단어의 도메인 내 데이터는 수백 배 많은 데이터에 대해 훈련된 빅 backoff 모델을 능가할 수 있습니다. 언어 모델링은 단지 n-gram(n-gram)의 계산에 관한 것이며, 결과를 개선하는 유일한 합리적인 방법은 새로운 훈련 데이터를 획득 하는 것이라는 속설을 깨는 결과이다.
표 2에 보고된 난해성 개선은 온라인 학습의 매우 중요한 효과(본 논문에서는 동적 모델이라고도 하며 비지도 LM 훈련 기법과 매우 유사한 음성인식 맥락에서)와 유사한 데이터 세트에 대해 보고된 최대 중 하나이다. WER은 약간만 영향을 받고 정확한 테스트 데이터 순서가 필요하지만, 온라인 학습은 캐시와 트리거 같은 정보를 얻는 자연스러운 방법을 제공하므로 더 자세히 조사해야한다.(데이터 압축의 경우, 예를 들어, 예측 신경망 훈련을 위한 온라인 기술은 이미 Mahoney에 의해 연구되었다.) 언어를 실제로 배울 수 있는 모델을 구축하려면 온라인 학습이 매우 중요합니다. 새로운 정보를 얻는 것은 확실히 중요합니다. 반복 신경망 학습을 위한 시간 알고리즘을 통한 역전파에 대한 추가 조사가 추가적인 개선을 제공할 수 있다. 장난감 작업에 대한 예비 결과는 유망하다. 그러나 캐시 모델은 BPTT로 훈련된 동적 모델에까지 여전히 보완 정보를 제공하기 때문에 단순한 반복 신경망은 정말 긴 컨텍스트 정보를 캡쳐할 수 있는 것 같지는 않다. 설명은 [6]에서 논의한다.
task에서 task 또는 언어별 가정을 하지 않았기 때문에 기계번역이나 OCR과 같은 backoff 언어 모델을 사용하는 모든 종류의 애플리케이션에서 RNN 기반 모델을 거의 쉽게 사용할 수 있다. 특히, [12]에서 이미 설명한 것처럼, 큰 어휘를 가진 변곡 언어 또는 언어를 포함하는 작업은 NN 기반 모델을 사용함으로써 이득을 얻을 수 있다.
연구에서 보고된 매우 좋은 결과 외에도, 제안된 반복 신경망 모델은 언어 모델링을 기계 학습, 데이터 압축 및 인지 과학 연구와 더 밀접하게 연결하기 때문에 흥미롭다. 앞으로 이러한 connection이 더 잘 이해되기를 바란다.
논문 리뷰
전반적으로 n-gram에서 진화했다는 것에 초점을 맞춘 논문 같다. 내가 느낀 바로는 사람은 단어를 무한히 듣고 답할 수 있는데 n-gram 모델은 제한적인 입력을 받는 것으로 이거를 까려고? 만든 논문이라는 느낌이다. 핵심으로는 BPTT를 사용했다는 것과 semantic semantic utterance meaning으로 vocabulary에 없는 단어가 들어왔을때도 비슷한 단어를 찾아 결과를 낸다는 것 같다.