N-gram LM은 주위 단어들을 통해 다음에 나올 단어나 중간에 들어갈 단어를 예측합니다.
이러다보니 문제점이 하나 발생합니다. 바로 예측하려는 단어와 멀리 떨어져 있는 단어들은 고려 하지 못한다는 겁니다.
나는 오늘 학교를 갔어, 그리고 축구를 했는데 내가 공을 잡는 순간 __이 끝났어
답)
나는 오늘 학교를 갔어, 그리고 축구를 했는데 내가 공을 잡는 순간 수업이 끝났어
라고 할 때 N=2 이라면 잡는 순간 , 끝났어 라는 단어를 통해 __에 들어갈 단어를 예측하는데 사실 이 단어를 예측하기 위해서 중요한건
앞에 학교라는 단어일 것이다. 이처럼 예측하려는 단어와 연관이 있는것이 문장 앞에 있을 경우 N-gram의 경우는 예측성능이 떨어질 것 이다. 즉 long-term dependency가 발생하게 되는데, 이를 극복하기 위해 RNN 모델이 사용되었다.
-
RNN
RNN은 Recurrent Neural Network)로 쉽게 말해 메모리를 저장하는 네트워크 입니다.
Hidden state라는걸 가지고 있어 여태까지 들어 왔떤 인풋에대한 정보를 저장하고 있습니다.
워드 임베딩을 통해 Nx1 사이즈의 벡터로 만든이후 각각 RNN을 통해 아웃풋 벡터로 나오게 됩니다.
이렇게 sentence을 예측하고자 할 때, RNN은 앞의 문장을 다 고려하여 예측하게 됩니다. 그 이유는 hidden state에 여태까지 본 단어의 정보가 압축되어 있기 때문입니다.
이 때 중요하게 나오는 개념은 Vocabulary 입니다. 단어를 예측하는데 모든 단어를 예측할 수 없고, 결국 학습 데이터에 존재 하는 단어들을 중에 예측합니다. 하지만, 학습데이터에 존재하는 모든 단어들을 대상으로 예측하는건 어렵기 때문에 일반적으로 빈도수가 어느정도 되는 단어들을 대상으로 예측합니다,
-
LSTM
LSTM모델은 Long Short Term Memory로 기존읜 RNN의 문제점, 예를 들어 기억해야 할 것들을 메모리(hidden state)에 잘 저장하지 못해 성능이 좋지 않다는 문제점을 해결하기 위해 나왔습니다.
다른점은 LSTM은 input gate, output gate, forget gate, update gate 가 추가되어 어떤 정보를 받아들이고, 내보내고, 잊어버리고, 저장할지를 학습도록 구성하였습니다.
'AI > NLP' 카테고리의 다른 글
NLP-RAG : 검색 증강 생성 모델 (0) | 2024.03.13 |
---|---|
NLP - seq2seq (1) | 2023.12.27 |
NLP- LM(N-gram) (0) | 2023.12.21 |
NLP - word embedding (0) | 2023.12.20 |
NLP - BoW , N-gram, TF-IDF (0) | 2023.12.20 |