Word2Vec

강민석·2024년 11월 15일

NLP

목록 보기
2/2
post-thumbnail

Word2Vec

단어의 벡터 표현을 학습함으로써, NLP에서 광범위하게 적용될 수 있는 강력한 도구이다.

  • one-hot encoding

단어를 벡터로 표현하는 가장 기본적인 방법 중 하나

각 단어는 각각의 고유한 벡터로 표현되며, 해당 단어를 나타내는 인덱스만 1이고 나머지는 0이다

  • I = [1,0,0,0]
  • love = [0,1,0,0]
  • pizza = [0,0,1,0]
  • 단점
  1. 단어 간의 관계나 유사성을 전혀 표현할 수 없다
  2. 단어의 집합이 커질 수록 벡터의 차원이 매우 커지며, 공간과 계산 효율성 문제를 야기한다.

임베딩을 통해 해결한다

  • embedding

단어를 낮은 차원의 실수 벡터로 표현하는 기법

  • 벡터 공간에서 단어 간의 유사성을 계산할 수 있다
  • 차원이 낮아져서 계산 효율성이 향상된다.

Word2Vec 모델

one-hot encodding의 크기는 n=4이기 때문에 입력층과 출력층의 차원은 4개의 노드로 구성되어 있다.

Word2Vec역시 신경망처럼 순전파 -> 손실 계산 -> 역전파의 과정은 동일하지만, Word2Vec은 단어 데이터셋을 훈련시키는 방법이 핵심이다.

  • Continuous Bag-of-words : CBOW
  • Skip-Gram

CBOW

전후 문맥을 고려하여 중간에 들어갈 단어를 학습하는 과정

학습과정

"I love pizza"라는 문장을 학습시킨다면, "I"와 "pizza"는 입력 값이 되고 "love"는 정답값이 되어야 한다.


"I"와 "pizza"의 one-hot encodding값을 합한 값인 [1, 0, 1, 0]이 입력 벡터가 되어야 하지만, 입력을 일종의 확률 분포로 본다면, 입력 벡터의 합은 1이 되어야 하므로 전체를 2로 나누어주어 [0.5, 0, 0.5, 0]이 된다.

  • 주의 사항
    Word2Vec은 은닉층에서 비선형 홀성화 함수(예를 들면 시그모이드 함수)를 사용하지 않는다.
    - 방대한 양의 단어 데이터를 처리하기 위한 효율성과 단순성
    - 단어와 단어들 사이에 불필요한 왜곡을 주지 않기 위함
  • 순전파
  1. 초기 가중치는 랜덤
  2. 최종 출력 값은 Softmax함수를 통해 확률로 변환
  • 손실 계산

Word2Vec에서 손실함수는 Cross-Entropy함수를 사용한다.
(Cross-Entropy와 Softmax는 자주 사용하는 조합)

  • 역전파

이러한 과정을 통해 문맥과 정답 단어 간의 관계성을 학습하게 된다.

CBOW의 결과

  1. 초기에는 가중치가 임의로 배치되었기 때문에 각 단어의 은닉층 값들은 무질서할 것이다.

  2. CBOW 학습이 지속될 경우 같은 패턴인 "I"와 "pizza"에 대해서 "love"와 "like"의 문맥상 용법이 유사하기 때문에 공간상 유사한 벡터가 되어가고 "I"와 "pizza"로부터는 멀어지는 경향성을 보이게 된다.

수많은 단어 데이터를 통해서 단어들이 문맥 안에서의 그들의 관계성을 스스로 학습해 나가는 알고리즘이 Word2Vec의 CBOW알고리즘이다

Skip-Gram

CBOW와 반대되는 방식으로, 하나의 단어를 주고 그 단어 주변에 나타난 여러 단어를 출력하도록 학습하는 방식

  • I의 주변은 love
  • love의 주변은 I와 pizza
  • pizza의 주변은 love

이처럼 Skip-Gram은 입력 단어와 그 입력단어의 주변에 해당하는 단어들의 관계를 학습한다.

CBOW때와 마찬가지로 입력 벡터와 정답 벡터가 있을 때 순전파, 손실 계산, 역전파를 통해 가중치를 업데이트해가며 학습한다.

학습을 통해 자연스럽게,
같은 문장에서 자주 쓰이는 표현들은 벡터 공간에서 가까워지게 되며 각 단어의 임베딩 벡터는 해당 단어의 의미와 문맥 context를 반영하게 되고,
벡터 공간에서 서로 가까운 임베딩은 의미적 유사성을 나타내게 된다.

출처 : '신박 AI' 유튜브
profile
많이 배우고 싶습니다

1개의 댓글

comment-user-thumbnail
2024년 11월 22일

이후 작성될 lstm, seq2seq, transformer 도 기대가 되네요.

  • 번창하고, 건간하고, 행복하세요 -
답글 달기