또르르's 개발 Story

[Stage 2 - 이론] 자연어 단어 임베딩 본문

[P Stage 2] KLUE/이론

[Stage 2 - 이론] 자연어 단어 임베딩

또르르21 2021. 4. 12. 15:24

1️⃣ Word2Vec

1) Word2Vec 의미

  • 단어가 가지는 의미 자체를 다차원 공간에 '벡터화'하는 것

  • 중심 단어의 주변 단어들을 이용해 중심 단어를 추론하는 방식으로 학습

 

https://www.edwith.org/bcaitech1

 

2) 장점

  • 단어간의 유사도 측정에 용이

  • 단어간의 관계 파악에 용이

  • 벡터 연산을 통해 추론이 가능 (e.g. 한국 - 서울 + 도쿄 =?)

 

3) 단점

  • 단어의 subword information 무시 (e.g. 서울 vs 서울시 vs 고양시)

    서울 vs 서울시는 '서울'이라는 subword로 추론을 할 수 있는데 Word2Vec은 추론 불가

  • Out of vocabulary (OOV)에서 적용 불가능

    vocabulary에 등록되어있지 않은 단어는 Word2Vec이 추론 불가

 

2️⃣ FastText

 

FastText는 Subword Information에 포커스를 두고 만든 라이브러리입니다.

 

https://www.edwith.org/bcaitech1

 

1) Training

  • 기존의 Word2Vec과 유사(입력이 된 중심단어에서 주변단어를 예측하는 방식)하나, 단어를 n-gram으로 나누어 학습을 진행

  • n-gram의 범위가 2-5일 때, 단어를 다음과 같이 분리하여 학습함

    "assumption" = {as, ss, su, ...., ass, ssu, sum, ump, mpt, ....., ption, assumption}

  • 이때, n-gram으로 나눠진 단어는 사전에 들어가지 않으며, 별도의 n-gram vector를 형성함

 

아래 그림과 같이 Orange를 2,3,4,5 - gram으로 나눈 단어이며, 꺽쇠 ('<', '>')가 들어가는 이유는 단어의 시작에 있는 n-gram인지 단어의 끝에 있는 n-gram인지를 비교해주기 위함입니다.

 

https://www.edwith.org/bcaitech1

 

Orange에 S를 붙인다 하더라도 FastText는 OOV라 하더라도, 이전 Orange에서 학습한 n-gram을 토대로 얻을 수 있습니다.

 

 

2) 단어 임베딩 방식의 한계점

  • Word2Vec이나 FastText와 같은 word embedding 방식은 동형어, 다의어에 대해서는 embedding 성능이 좋지 못함

  • 주변 단어를 통해 학습이 이루어지기 때문에 '문맥'을 고려할 수 없음
Comments