한국어 임베딩자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지에이콘출판사 2019년 09월 26일 |
1장 서론
1.1 임베딩이란
1.2 임베딩의 역할
1.3 임베딩 기법의 역사와 종류
1.1 임베딩이란
임베딩
- 사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자의 나열 혹은 일련의 과정을 벡터로 바꾼 결과
- 단어나 문장을 각각 벡터로 변환해 벡터 공간으로 끼워 넣음
단어-문서 행렬[Term-Document-Matrix]
메밀꽃 필 무렵 | 운수 좋은 날 | 사랑 손님과 어머니 | 삼포 가는 길 | |
기차 | 0 | 1 | 9 | 8 |
막걸리 | 1 | 2 | 3 | 5 |
선술집 | 2 | 8 | 0 | 3 |
위의 표에서 [운수 좋은 날]의 임베딩은 [ 1, 2, 8 ] 이다. [막걸리]라는 단어의 임베딩은 [ 1, 2 , 3, 5] 이다
임베딩의 역할
- 단어, 문장간 관련도 계산 (ex. Word2Vec)
- 코사인 유사도
- 의미적 / 문법적 정보 함축
- 아들 - 딸 + 소녀 = 소년
- 전이 학습
단어, 문장간 관련도 계산
Word2Vec으로 단어 임베딩하기
앞서 본 단어-문서 행렬은 가장 단순한 형태의 임베딩이고 실제로 많이 쓰이는 단어 임베딩은 Word2Vec 이라는 임베딩 기법이다. 예를 들어 한국어 위키 백과 등을 "은전한닢"으로 형태소 분석을 한 뒤 100차원으로 학습했을때 "희망"이라는 단어는 [ -0.00209, -0.03918, 0.02419 ..... 0.01715, -0.04975, 0.09300 ] 와 같은 벡터로 임베딩이 된다고 한다.
이러한 100차원의 벡터는 사람이 봤을때는 그 의미를 당연히 이해할 수 없다. 컴퓨터가 계산하기 좋도록 "희망"이라는 단어를 벡터로 바꾸어 놓았을 뿐이다. 단어가 벡터로 바뀌는 순간 벡터들 사이의 유사도 측정 기법의 일종인 코사인 유사도를 구할 수 있고 결국은 코사인 유사도를 기반을 단어의 유사도를 판단할 수 있다.
또한 100차원 벡터들이지만 t-SNE 차원 축소 기법을 이용하여 보기 좋은 2차원으로 시각화 할 수도 있다. 이 경우 관련성이 높은 단어들이 주변에 몰려 있음을 확인할 수 있다.
의미/문법 정보 함축
벡터들은 당연히 덧셈/뺄셈에 대해서 닫혀있다. 따라서 단어를 임베딩을 하면 사칙연산이 가능하게 되는데
이때 ["아들"의 임베딩 벡터 - "딸"의 임베딩 벡터 + "소녀"의 임베딩 벡터 의 결과 벡터]와 ["소년"의 임베딩 벡터]의 "코사인 유사도" 가 높다면 품질이 좋은 임베딩이라고 할 수 있다. 이러한 방법을 단어 유추 평가(word analogy test)라고 한다
전이학습(Transfer Learning)
전이학습이란, 임베딩을 다른 딥러닝 모델의 입력값으로 쓰는 기법을 말한다. 이때 단어 임베딩이 잘 되어 있을 수록 문서 분류 정확도나 학습 속도가 올라간다.
사람이 학습을 "무"에서 시작하지 않듯, 전이 학습 모델 또한 대규모 말뭉치를 이용해서 임베딩을 미리 만들어 놓는다. 이 임베딩에는 의미적, 문법적 정보 등이 녹아 있다. 이 임베딩을 입력값으로 쓰는 전이 학습 모델은 문서 분류를 잘 할 수 있게 된다.
'공부정리 > NLP' 카테고리의 다른 글
[NLP] 한국어 임베딩 2장 벡터가 어떻게 의미를 가지고 되는가 (0) | 2022.10.07 |
---|---|
[NLP] TF - IDF (0) | 2022.10.07 |
[NLP] 한국어 전처리 기법 모음 (0) | 2022.09.29 |
[NLP] 노가다 없는 텍스트 분석을 위한 한국어 NLP (0) | 2022.09.29 |
[NLP] 캐글 영화 리뷰 분석 튜토리얼 3 - (1) K-means로 군집화(Clustering) 하고 학습, 예측하기 - 강의 정리 (0) | 2022.08.29 |