언어 모델
언어모델이라는 것은, 짧게 요약해서 말하자면, 문장 즉 단어의 시퀀스를 예측하는 모델이다. 그래서 언어모델은 자연어 생성에 기반이 되는데, 기본적으로 자연어 생성과 관련된 건 모두 언어모델과 관련된다고 보면 된다. 음석 인식, 기계 번역, 검색어 자동 완성 모두 언어모델을 사용하고 있다.
언어 모델을 만드는 방법은 크게 통계를 이용한 방법과 인공 신경망을 이용한 방법으로 구분할 수 있다. 최근 자연어 처리에서 언어 모델에 대한 이야기를 빼놓을 수 없는데, 최근 핫한 딥러닝 자연어 처리의 기술인 GPT나 BERT가 전부 언어 모델의 개념을 사용해서 만들어졌다.
통계 기반 언어모델
여기 예시를 하나 보시면, the children play -> 빈칸이 있다.
여기서, 이 앞에 문장이 주어졌을 때 다음에 뭐가 들어올지를 단어 시퀀스에 확률을 할당하는 일을 하는게 언어모델이다. 직관적으로 생각하면 이해하기 편하다.
나는 오늘 늦잠을 자서, 학교에 [빈칸]. 이라고 되어 있을 때, 이 빈칸에는 ‘늦었다’가 다음으로 올 거라고 쉽게 예상을 할 수 있다. 이건 우리가, 여러 단어들을 후보에 놓고서도 ‘늦었다’라는 단어의 확률이 가장 높다고 판단했기 때문이다.
또 다른 예시를 볼까,
이 역시 문장의 확률을 예측해두고 있는데, 첫번째 [나는] [버스를]이라고 줬을 때 뒤에 올 동사가 태운다가 아니라 탔다일 확률이 더 높다고 판단하는거고 두번째도, 교실로 부리나케 달려갔다고 판단하는거고, 세번째로 메롱이 아니라 메론을 먹는다를 선택한 것 처럼 더 적절한 문장을 선택하는 일에 확률을 쓰고 있는 것이다.
언어모델을 방향에 따라서 나눌 수 있는데
1) 일방향적= 단방향 언어모델 : 이전 단어들이 주어졌을 때 다음 단어를 예측
2) 양방향 모델 : 양쪽의 단어가 주어졌을 때 가운데 단어를 예측 예) bert
이때 다음 단어의 확률분포를 알기 위해서는, 앞 단어가 주어졌을 때 => 다음 단어가 나올 확률을 구해야하는 개념이니까 조건부확률을 쓴다는 건 다들 쉽게 생각할 수 있을 것이다.
따라서 위 식을 보시면, 단어의 시퀀스인 전체문장을 W라고 했을 때, 문장 W의 확률은, 하나의 단어인 소문자w가 순서대로 다 나올 확률이다.
이걸 또 다르게 표현을 해보자면, n-1개의 단어가 나열된 상태에서 n번째 단어의 확률을 우리는 조건부확률로 나타낼 수 있다. 이를 조건부확률에 chain rule를 적용시켜서 전체 문장에 대한 확률을 각 단어들이 이전 단어가 주어졌을 때 다음 단어로 등장할 확률의 곱으로 구성하게 된다. 따라서 예시로, an adorable little boy is spreading smiles라고 했을 때, 이렇게 체인룰로 각 단어에 대한 예측 확률을 곱해줄 수 있다.
통계적 언어모델 (SLM)
이 원리를 일단 기억하면서, SLM 통계적 언어모델을 살펴보겠다.
이 모델은 이전 단어로부터 다음 단어에 대한 확률을 구할때 카운트에 기반하여 확률을 계산한다.
그래서 예시를 보면, an An adorable little boy가 나왔을 때, is가 나올 확률인 P(is|An adorable little boy)를 구해보면 다음 식처럼 쓸 수 있다. 이때 우리가 갖고 있는 데이터에서 An adorable little boy가 100번 등장했는데 그 다음에 is가 등장한 경우는 30번이라고 할때 이 경우에는 예측 확률이 30%다라고 하는 것이다.
SLM의 한계
하지만, 이때 카운트 기반으로 접근하려고 한다면, 훈련 데이터로 방대한 양이 필요하게 된다.
예를 들어서 아까 봤던 an adorable little boy 다음에 is가 나올 확률을 구하고 싶은데, 우리가 갖고 있는 말뭉치에서 An adorable little boy is라는 단어 시퀀스가 없었다면 이 단어 시퀀스에 대한 확률은 0이 된다.
또는 반대로 분모가 An adorable little boy라는 단어 시퀀스가 없었다면 분모가 0이 되어 확률은 정의되지 않는 문제가 발생한다.
=> 즉 확률이 0이되거나, 아예 정의되지 않는 상황이 발생할 수 있다.
=> 이처럼 충분한 데이터를 관측하지 못해서 생기는 언어 모델링의 한계를 '희소 문제' 라고 표현한다.
따라서 우리가 갖고 있는 훈련 문장들을 적절히 선택해서 모델링을 어떻게 보완할 수 있을까하는 고민이 떠오르는 게 되고, 적절히 단어 개수를 선택하는 N-gram 기법이 등장하게 된다.
'데이터 스터디 > DL' 카테고리의 다른 글
TF-IDF (0) | 2022.07.17 |
---|---|
N-gram 언어 모델 (0) | 2022.07.16 |
자연어 처리 - 통계 기반 기법 (0) | 2022.07.16 |
자연어처리 입문 (0) | 2022.07.16 |
06. 옵티마이저 (optimizer) (0) | 2022.07.16 |