언어 모델(Languagel Model, LM)
- 단어 시퀀스(문장)에 확률을 할당하는 모델 - by 이전 단어들이 주어졌을 때 다음 단어 예측
- 가장 자연스러운 단어 시퀀스를 찾아내는 모델
- 만드는 방법 : 통계를 이용한 방법, 인공신경망
- 언어모델링 : 주어진 단어들로부터 아직 모르는 단어를 예측하는 작업
언어모델의 유형
- 이전 단어들이 주어졌을 때 다음 단어를 예측
- 주어진 양쪽의 단어들로부터 가운데 비어있는 단어를 예측(BERT)
언어모델은 확률을 통해 보다 적절한 문장을 판단한다!
- 기계 번역 ex) P(나는 버스를 탔다) > P(나는 버스를 태운다)
- 오타 교정 ex) 선생님이 교실로 부리나케 P(달려갔다) > P(잘려갔다)
- 음성 인식 ex) P(나는 메롱을 먹는다) < P(나는 메론을 먹는다)
하나의 단어 : w
단어 시퀀스 : W
n개의 단어가 등장하는 단어 시퀀스의 확률
조건부확률을 통해 n-1개의 단어가 나열된 상태에서 n번째 단어의 확률 계
전체 단어 시퀀스 W의 확률은 모든 단어가 예측되고 나서야 알 수 있다
언어모델의 약점
: 훈련에 사용된 도메인 코퍼스가 무엇이냐에 따라서 성능이 비약적으로 달라짐
통계적 언어모델(Statistical Language Model, SLM)
: 언어 모델의 전통적인 접근 방법
문장에 대한 확률
각 단어는 문맥이라는 관계로 인해 이전 단어의 영향을 받아 나옴
모든 단어로부터 하나의 문장 완성
통계적 언어모델 즉 SLM은 이전 단어로부터 다음 단어에 대한 확률을 어떻게 구할까?
: 카운트에 기반한 확률 계산
기계가 학습한 코퍼스 데이터에서 An adorable little boy가 100번 등장
그 다음에 is가 등장한 경우는 30번이라고 한다면
P(is|An adorable little boy) = 0.3
카운트에 기반한 확률 계산의 한계 : 희소 문제(Sparsity Problem)
-> 트렌드가 SLM에서 인공신경망으로 넘어감
희소문제
- 충분한 데이터를 관측하지 못하여 언어를 정확히 모델링하지 못하는 문제
언어 모델은 실생활에서 사용되는 언어의 확률 분포를 근사 모델링 한다!
실제로도 An adorable little boy가 나왔을 때 is가 나올 확률이라는 것이 존재함
기게에게 많은 코퍼스를 훈련시켜서 언어모델을 통해 현실에서의 확률 분포를 근사하는 것이 언어모델의 목표
P(is|An adorable little boy) 를 구할 때 훈련한 코퍼스에 An adorable little boy is라는 단어 시퀀스가 없었다면?
이 단어 시퀀스에 대한 확률은 0
현실에선 An adorable little boy is 라는 단어 시퀀스가 존재, 문법에도 적합하므로 정답일 가능성 또한 높음
: 희소 문제
한국어에서의 언어 모델
- 한국어는 어순이 중요하지 않음
: 의미가 통하기 때문에 다음 단어로 어떤 단어든 등장 가능. 확률에 기반한 언어모델이 다음 단어 예측하기 어려움.
- 한국어는 교착어
: 어절 단위(띄어쓰기)로 토큰화하면 단어 수 매우 늘어남. 한국어에는 조사가 있어서 단어가 다양한 형태로 존재.
: 한국어에서는 토큰화를 통해 접사, 조사 분리가 중요함
- 한국어는 띄어쓰기가 제대로 지켜지지 않음
: 띄어쓰기를 제대로 하지 않아도 의미 전달됨. 띄어쓰기 규칙도 까다로움.
: 토큰이 제대로 분리 되지 않았다면 언어모델은 제대로 동작 안함.
'Python > NLP' 카테고리의 다른 글
펄플렉서티(Perplexity, PPL) (0) | 2023.03.14 |
---|---|
N-gram 언어 모델 (0) | 2023.03.14 |
정제, 정규화 (0) | 2023.02.19 |
konlpy 사용 시 오류 (0) | 2023.02.18 |
토큰화(Tokenization) (0) | 2023.02.17 |