공부정리/NLP

[NLP] 한국어 임베딩 1장 - 서론

sillon 2022. 9. 30. 16:50
728x90
반응형

 

한국어 임베딩

자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지

이기창 저/NAVER Chatbot Model 감수
에이콘출판사
 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)

전이학습이란, 임베딩을 다른 딥러닝 모델의 입력값으로 쓰는 기법을 말한다.  이때 단어 임베딩이 잘 되어 있을 수록 문서 분류 정확도나 학습 속도가 올라간다.

 

사람이 학습을 "무"에서 시작하지 않듯, 전이 학습 모델 또한 대규모 말뭉치를 이용해서 임베딩을 미리 만들어 놓는다. 이 임베딩에는 의미적, 문법적 정보 등이 녹아 있다. 이 임베딩을 입력값으로 쓰는 전이 학습 모델은 문서 분류를 잘 할 수 있게 된다.

출처: https://nobase2dev.tistory.com/21

 

 

728x90
반응형