이 포스트는 책 '한국어 임베딩(자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지, 이기창 저)'을 기반으로 작성되었습니다.
임베딩(embedding)이란?
자연어처리에서 임베딩(embedding)이란, 일반적으로 사람들이 쓰는 언어(자연어)를 기계가 알아들을 수 있게 수치화(벡터화)하는 것으로, 단어나 문장을 벡터 공간에 끼워 넣는다(embed)는 의미를 가지고 있다.
임베딩을 통해 가능해진 것
- 단어나 문장 사이의 유사도 계산
코사인 유사도가 가장 높은 단어를 구하는 등의 계산 가능
(+ t-SNE 차원 축소 기법으로 시각화 가능) - 단어들 사이의 의미/문법적 정보 도출
벡터 간 연산으로 단어 사이 문법적 관계 도출
(평가 방법으로는 단어 유추 평가(word analogy test)가 있음) - 전이 학습(transfer learning)
다른 딥러닝 모델의 입력값으로 사용
임베딩의 변천사
과거 | 현재 |
LSA(잠재 의미 분석, Latent Semantic Analysis) - tf-idf 등의 행렬을 특이값 분해 등을 통해 차원 축소 - corpus 통계량을 직접적으로 활용 |
Neural Network 기반 임베딩 기법 |
단어 수준 임베딩 모델 - NPLM, Word2Vec, GloVe, FastText, Swivel - 단점) 동음이의어 분간하기 어려움 |
문장 수준 임베딩 모델 - ELMo, BERT, GPT - 단어 sequence 전체의 문맥적 의미 함축 |
End-to-End 모델 - sequence-to-sequence 모델 |
Pretrain & Fine Tuning - corpus 통해 임베딩을 만들어 의미, 문법적 맥락이 포함되게 한 뒤(pretrain), 모델 업데이트(fine tuning) |
Downstream & Upstream Task
Downstream Task
- 일반적인 NLP task
- 품사 판별, 시맨틱 태깅(NER, NED)
Upstream Task
- 임베딩을 pretrain하는 작업
- 임베딩 품질이 좋아야 모델이 좋아짐
임베딩 종류
- 행렬 분해 기반 방법
행렬을 쪼개는 방식 (GloVe, Swivel) - 예측 기반 방법
특정 단어 예측 (Word2Vec, FastText, BERT, ELMo, GPT) - 토픽 기반 방법
문서가 내포하고 있는 주제를 추론하는 방식 (LDA)
정확도 측정 방법
Fine Tuning 모델 고정 후 각 임베딩 기법 transfer learning 시키며 비교
반응형
'DATA SCIENCE > NLP' 카테고리의 다른 글
[NLP] 한국어 형태소 분석 (0) | 2020.05.01 |
---|---|
[NLP] 임베딩(Embedding) 방식의 종류 (0) | 2020.05.01 |
[NLP] 토픽 모델링 (Topic Modeling : LSA & LDA) (0) | 2020.03.28 |
[NLP] 문서 유사도 (Document Similarity) (0) | 2020.03.28 |
[NLP] 횟수(count) 기반 단어 표현 방법 (0) | 2020.03.28 |