언어모델
[패스트 캠퍼스] 김기현의 딥러닝을 활용한 자연어생성 올인원 패키지 Online.
Ch 02. Language Modeling
01. 들어가며
02. 언어모델 수식
강의를 듣고 작성하였다.
(혹시 본 포스팅이 저작권 등의 문제가 있다면 알려주세요. 바로 내리도록 하겠습니다.
개인 공부 후 언제든지 다시 찾아볼 용도로 작성하고 있습니다.)
언어모델(Language Model, LM)
문장의 확률을 나타낸 모델이다.
- 문장 자체의 출현 확률을 예측하거나,
- 이전 단어들이 주어졌을 때 다음 단어를 예측하기 위한 모델
위의 둘은 수학적으로 같다.
👉 예를 들어, '버스 정류장에서 방금 버스를 OOO.' 빈칸에 들어갈 말을 골라보자.
|
이 예시를 보고 우리는 바로 3번을 선택할 것이다. 우리 머릿속에는 단어와 단어 사이의 확률이 우리도 모르게 학습되어 있다. 즉, 머리 안에 언어 모델이 있는 것! 잠시 소음이 나서 잘 안들려도 우리는 알아들을 수 있다.
이런식으로 언어 모델은 단어와 단어 사이의 확률을 학습한 모델이다. 이를 통해 이전 단어들이 주어졌을 때 다음 단어를 예측하거나 문장 자체의 출현 확률을 예측할 수 있다.
위의 예시로 다시 돌아가보면, 우리는 '버스 정류장에서 방금 버스를 놓쳤다.' 라는 말을 가장 많이 사용하고 들어왔다. 그래서 빈칸에는 '놓쳤다'가 들어갈 확률이 가장 높기 때문에 우린 3번을 고른 것이다. 다른 선택지가 들어가도 문장이 완성이 안되는 것은 아니다. 하지만 우리가 거의 사용하지 않고 그렇게 문장이 구성될 확률이 낮기 때문에 선택을 안하는 것이다.
이처럼 언어 모델을 구성하는 가장 쉬운 방법으로는 많은 문장들을 수집하여, 단어와 단어 사이의 출현 빈도를 세어 확률을 계산하는 것이다.
언어모델의 궁극적인 목표는 우리가 일상생활에서 사용하는 언어의 문장 분포를 정확하게 모델링 하는 것이다.
수식
이렇게 LM을 만들면 뭐가 좋을까? 어디에 쓸 수 있을까??
- 더 좋은 문장을 선택할 수 있다.
- 문장이 $x^1$과 $x^2$ 가 있다고 했을 때, $p(x^1) > p(x^2)$ 이면 더 말이 되는 말이다 라고 할 것이다.
- 단어가 주어졌을 때 다음 단어를 만드는 분포와 같다.
Summary
언어모델은 주어진 코퍼스 문장들의 likelihood를 최대화하는 파라미터($\theta$)를 찾아내, 주어진 코퍼스를 기반으로 언어의 분포를 학습한다.
즉, 코퍼스 기반으로 문장들에 대한 확률 분포 함수를 근사한다.
문장의 확률은 단어가 주어졌을 때, 다음 단어를 예측하는 확률을 차례대로 곱한 것과 같다.
따라서 언어모델링은 주어진 단어가 있을 때, 다음 단어의 likelihood를 최대화하는 파라미터를 찾는 과정이라고도 볼 수 있다.
주어진 단어들이 있을 때, 다음 단어에 대한 확률 분포 함수를 근사하는 과정
'Deep Learning > NLP' 카테고리의 다른 글
[패캠] (Seq2Seq) seq2seq 모델 (0) | 2022.02.06 |
---|---|
[패캠] (LM) Neural LM (0) | 2022.02.05 |
[패캠] (LM) 기존의 언어 모델 (0) | 2022.02.05 |
[패캠] 자연어 생성이란 (0) | 2022.02.05 |
[패캠] tokenization (0) | 2021.10.08 |
댓글