데이터분석 공부/DSBA 4기
딥러닝 언어 모델 (순방향/역방향 언어 모델, Masked Language Model, Skip-Gram Model)
이삼오
2024. 4. 30. 16:06
미리 학습된 언어 모델
https://ratsgo.github.io/nlpbook/docs/lm
BERT, GPT가 주목받는 이유 -> 이전에 있었던 모델보다 성능이 좋기 때문
공통점 : 미리 학습된 언어 모델(pretrained language model) -> 전이학습
언어 모델
- 단어 시퀀스에 확률을 부여하는 모델
- 단어 시퀀스를 입력받아 해당 시퀀스가 얼마나 그럴듯한지 확률을 출력하는 모델
순방향 언어 모델
- 임의의 단어 시퀀스가 해당 언어에서 얼마나 자연스러운지 이해하고 있는 모델 구축
- 조건부 확률에따라 언어 모델의 계산 로직을 이전 단어들(context)가 주어졌을 때 다음 단어 맞추기로 정해도 목표 달성 가능
- 문장 앞부터 뒤로, 사람이 이해하는 순서대로 계산하는 모델
- GPT가 이같은 방식으로 pretrain 수행
- GPT : 문장 생성 모델. 종료 시퀀스가 나올 때까지 다음 단어를 예측을 반복, 출력하는 모델. 잘못된 내용도 출력할 수 있음
역방향 언어 모델
- 문장 뒤부터 앞으로 계산
- ELMo
넓은 의미의 언어 모델
- P(w|context)
- 컨텍스트가 전제된 상태에서 특정 단어 w가 나타날 조건부 확률
- 컨텍스트와 맞힐 언어를 어떻게 설정하느냐에 따라 다양하게 변형할 수 있다
마스크 언어 모델(Masked Language Model)
- BERT가 대표적
- 특정 단어를 맞출 때, 중간이 뚫린 단어를 맞출 때 잘 작동함
- 뉴스 긍부정 분류 등 분류 모델에 효율적
- 학습 과정 : 학습 대상 문장에 빈칸을 만들어놓고 해당 빈칸에 올 단어로 적절한 단어가 무엇일지 분류
- 맞힐 대상에 MASK를 씌워두고 문장 전체 맥락을 참고해서 맞힘
- 양방향(Bidirectional) 성질이 있음
스킵-그램 모델(Skip-Gram Model)
- 어떤 단어 앞뒤에 특정 범위를 정해두고 이 범위 내에 어떤 단어들이 올지 분류
- Conv1D가 학습하는 과정과 비슷
- context로 설정한 단어 주변에 어떤 단어들이 분포해있는지 학습
언어 모델이 주목받는 이유
- 데이터 제작비용 때문
- Transfer Learning
- 대량의 말뭉치로 pretrain한 언어모델을 문서 분류, 개체명 인식 등 다운스트림 태스크에 적용하면 적은 양의 데이터로도 성능을 큰 폭으로 개선할 수 있다
- 업스트림 태스크-pretrain model / 다운스트림 태스크-모델을 수정해 사용하는 부분