#TIL
언어 모델의 목표는 문장이 일어날 확률을 구하는 것! 이라고 할 수 있다.
이게 무슨 뜻이냐...
Please turn your homework ___
위의 문장이 있을 때, homework 다음에 올 단어로 'in' 과 'the' 무엇이 맞을까?
두 단어 중 위 문장에 더 적합한 단어의 확률을 구하는 것이다.
이런 언어 모델은 왜 필요할까?
우리는 이런 언어 모델을 여러 분야에서 활용 할 수 있다.
(물론 기계 번역에서 활용될 때 문맥도 고려한 번역이 되어야 하는건 당연하다!)
이렇게 언어모델은 sequenctial 한 데이터에 확률을 부여하는 모델이라고 보면 되는데, 연속적인 단어들이 주어졌을 때 그 다음 단어의 확률을 구하는 조건부 확률이라고 보면 된다.
이런 확률을 구할 때 우리는 Chain Rule
을 사용할 수 있다.
조건부 확률만을 사용할때의 문제점이 있기 때문이다.
주어진 말뭉치 안에서 정확하게 구성된 문장이 나타날 가능성은 적다.
그렇기 때문에 대부분의 경우 조건부 확률이 0이 되거나 0에 가까워진다.
여기서 등장하는 Markov Assumption!
이것은 다음의 가정을 가지고 있다.
한 단어의 확률은 그 단어 앞에 나타나는 몇 개의 단어들에만 의존한다.
이것이 무슨 말인고하면,
위 확률에서는 that에만 의존한다면
여기서는 transparent that에 의존한다는 의미이다. 이외의 앞 단어는 영향을 크게 주지 않는다고 가정한다.
즉, 긴 문장에 대한 빈도수를 구하지 않아도 되는 것이다!
예시를 못들었지만, unigram 모델보다 조금 더 자연스럽게 문장이 생성된다.
이것을 trigrams, 4-grams, 5-grams로 확장할 수 있다.
(조건에 들어가는 단어의 개수를 늘릴 수 있다는 의미이다.)
그러나 멀리 떨어진 단어들간의 관계를 완벽하게 모델링하지는 못한다.
그래도 많은 경우 n-gram 만으로도 좋은 결과를 얻을 수 있다고 한다.
seq2seq 논문을 준비하면서 이전 언어모델들에 대해서 찾아보게 되었다.
기존의 전통적인 통계학적 언어모델에서의 한계는 희소문제가 있었는데,
1. 데이터의 양이 방대하게 필요하거나
2. 입력으로 넣으려는 단어가 훈련데이터에 없는 경우
에 발생할 수 있는 문제점들이였다.
이런 문제점들을 보완하기 위해서 n-gram
이나 일반화 기법
등이 사용되었다고 했었는데, n-gram 에 대해서는 가볍게 알고 넘어갔었던 것을 이렇게 자세히 알아볼 수 있어서 이해하기 더 좋았다.
물론 이런 방식들도 희소문제를 완전히 보완하지는 못해서 신경망 언어모델로 넘어갔다고 보았는데, 강사님이 n-gram 만으로도 좋은 결과를 얻을 수 있다고 하신점이 인상깊다. \😳