본문 바로가기
자연언어처리 (NLP)

(Word2Vec) 1. 개념

by 꼰대코더 2023. 12. 17.

자연언어처리(Natural Language Processing)에 있어서 word embeddings 을 생성하기 위한 알고리즘이다.

이름 그대로 풀어보면 Word to Vector 로 단어를 벡터로 변환이다.  컴퓨터영역에서 워드 스트링 그대로 처리하기 보다는 숫자로 표현을 해서 처리를 하면 더욱 효율적이다.  이 숫자로 표현을 Embedding 이라 하고 벡터영역에서 숫자를 배치하면 워드간의 거리와 유사도(similarity)를 측정할 수 있다.

 

가장 유용하게 씌이는 분야는 검색이다.  검색을 하면 단어 단위로 매칭을 하는 것이 아니라 Embeddings 에 의한 벡터 영역에서의 유사도 거리를 측정하여 유사도가 높은 결과부터 화면에 뿌려준다.  

 

아래는 https://jalammar.github.io/illustrated-word2vec/ 의 이미지를 사용해서 간단하게 설명하겠다.

 

Word Embeddings

단어나 문장을 숫자로 변환(Embedddings)하는 작업을 하는 여러 학습된 모델들이 있다. 

여기에 Word2Vec 도 포함되고 위의 모델들은 유사도를 자신이 계산해야 하지만, Word2Vec는 특정 단어와 비슷한 단어들을 결과물로서 얻을 수 있다.

 

아래는 "king" 을 Wikipedia 내용을 GloVe 모델로 Embedding 한 결과이다. 

[ 0.50451 , 0.68607 , -0.59517 , -0.022801, 0.60046 , -0.13498 , -0.08813 , 0.47377 , -0.61798 , -0.31012 , -0.076666, 1.493 , -0.034189, -0.98173 , 0.68229 , 0.81722 , -0.51874 , -0.31503 , -0.55809 , 0.66421 , 0.1961 , -0.13495 , -0.11476 , -0.30344 , 0.41177 , -2.223 , -1.0756 , -1.0783 , -0.34354 , 0.33505 , 1.9927 , -0.04234 , -0.64319 , 0.71125 , 0.49159 , 0.16754 , 0.34344 , -0.25663 , -0.8523 , 0.1661 , 0.40102 , 1.1685 , -1.0137 , -0.21585 , -0.15155 , 0.78321 , -0.91241 , -1.6106 , -0.64426 , -0.51042 ]

 

50 배열로 되어 있다.

 

비주얼로 표현하면 아래와 같다. 2에 가까우면 빨간색, -2에 가까우면 파란색이 강하다.

"king", "Man" , "Woman" 를 비교하기 쉽게 비주얼로 나열하면 아래와 같다.

"Man" 과 "Woman"의 유사도가 "king" 보다도 높다는걸 알 수 있다. 이는  이 모델이 정보/이미/연관성을 좀 더 캡쳐했다는 결 알려 준다. 

 

다른 샘플을 보자.

위와 같이 Embeddings 로 변환해서 알 수 있는 포인트는:

  • 공통적으로 빨간색의 수직 라인이 있다. ( 특정은 할 수 없지만 공통적인 점이 있다는 것이다. )
  • "girl"과 "woman", "boy"와 "man" 이 유사하다는걸 알 수 있다.
  • 하지만 "boy"와 "girl" 은 유사점이 있지만, "man"과 "woman" 은 없다. 이는 젊음이라는 컨셉이 많이 반영되었을 수 도 있다.
  • "water" 이외에는 사람을 대표하는데 중간에 파란색이 "water"에 있어서는 나타나지 않는다. 
  • "king"과 "queen"은 유사한데 이는 충성의 컨셉이 들어가 있을 지도 모른다.

 

Analogies (비교)

Embeddings로 할 수 있는 유명한게 단어간 더하기 빼기이다. 
아래와 같이 "king" - "man" + "woman" = "queen" ...

 

'자연언어처리 (NLP)' 카테고리의 다른 글

stopwords  (0) 2024.03.13
워드 토큰화  (0) 2024.03.13
(Word2Vec) model training  (1) 2023.12.21
(Word2Vec) training  (1) 2023.12.17
(Word2Vec) 2. 자연언어처리 모델  (1) 2023.12.17