본문 바로가기
Deep Learning/자연어처리

RNN 언어 모델(RNNLM)

by 대소기 2021. 12. 17.

RNNLM(RNN Language Model)

* RNN을 도입한 언어 모델을 RNNLM이라고 한다.

Teacher Forcing(교사 강요)

* RNNLM의 경우 모델 테스트시에 위와 같이 현재 time step의 입력을 집어넣으면 이전 time step의 hidden state까지 고려해 다음에 올 단어를 예측하는 과정을 거친다. 이 hidden state에는 모델이 예측한 단어(label, 즉 ground truth가 아니다)에 대한 정보가 들어있게 된다.

* 그렇다면 훈련 과정에서도 동일하게 모델이 예측한 단어의 정보를 hidden state에 담아 다음 단어의 예측을 실시할까? 아니다. 테스트는 모델의 성능을 검증하는 것이므로 예측한 단어를 가지고 다음 단어를 예측하게 되지만, 훈련은 그렇게 해서는 안된다. 훈련시에는 label에 대한 정보를 hidden state에 담아 전달해야 한다. 만약 모델이 예측한 단어를 사용하게 되면 예측이 어긋나서 점점 다음 시점들의 예측이 산으로 갈 수도 있지만, label을 사용하게 되면 적어도 예측이 어긋나도 다음 시점에 전달되는 hidden state, 정보 자체는 믿을만하다고 판단할 수 있기 때문이다.

RNNLM의 구조

* RNNLM은 위와 같이 4개의 층(Input layer, Embedding layer, Hidden Layer, Output layer)으로 구성되어 잇다.

* output layer의 activation function은 softmax를 사용한다. 이를 통해 출력된 벡터와 one-hot encoding된 정답 label을 사용해 loss를 계산한다. 이 때 loss function은 cross entropy를 사용하게 된다.

* embedding layer를 통과한 one-hot vector는 embedding vector로 변환된다. 그리고 hidden layer를 거쳐 output layer의 softmax 함수에 의해 0~1사이의 값을 원소로 가지는 vector가 출력된다. 더 자세한 계산 과정은 NNLM과 동일하니 이전 포스팅을 참고하길 바란다.

* bptt를 통해 update되는 가중치들은 기존 RNN의 $W_h, W_x, W_y$외에도 embedding vector를 생성하는 embedding matrix E가 추가된다.

https://soki.tistory.com/42

 

피드포워드 신경망 언어 모델(NNLM)

NNLM(Neural Network Language Model) N-gram 언어 모델의 한계 * n-gram 언어 모델은 corpus에 충분한 양의 문장이 존재해야 예측도가 높아진다. 단순히 corpus에 있는 유사 문장들의 출현 빈도를 통해 단어를 예..

soki.tistory.com

참고자료

https://wikidocs.net/46496

 

5) RNN 언어 모델(Recurrent Neural Network Language Model, RNNLM)

이번 챕터에서는 RNN을 이용하여 언어 모델을 구현한 RNN 언어 모델에 대해서 배웁니다. ##**1. RNN 언어 모델(Recurrent Neural Network La ...

wikidocs.net