Artificial Intelligence/NLP
Text Representation - 2
테리는당근을좋아해
2024. 8. 20. 23:43
1. Word2Vec
- Word2Vec은 단어를 고정된 차원의 벡터 공간에 매핑해서 유사한 의미를 가진 단어들이 벡터 공간에 가깝게 위치하도록 학습한다.
- 단순히 단어의 빈도나 위치 정보를 넘어 단어 간의 의미적 관계를 벡터 연산을 통해 직접 반영할 수 있다.
1) 아이디어
- 단어의 의미가 문맥에 의해 결정
- 특정 단어가 어떤 단어들과 자주 함께 등장하는지 학습해 단어 간의 의미적 유사성을 반영하는 벡터를 학습한다.
2) Word2Vec 모델
- Word2Vec은 대규모 Corpus를 사용해 학습하고, 이 과정에서 각 단어는 고정된 차원의 실수 벡터(Embedding Vector)로 표현된다.
- 임베딩 벡터는 학습을 통해 조정되며, 단어의 의미를 내포해 유사한 의미를 가진 단어들은 벡터 공간에서 가깝게 위치한다.
- Word2Vec에는 두 가지 주요 아키텍처(CBOW 모델, Skip-gram 모델)가 있다.
(1) CBOW(Continuous Bag of Words) 모델
- 주어진 문맥(주변 단어들)으로부터 중심 단어를 예측
- 중심 단어를 기준으로 앞뒤에 등장하는 단어들의 벡터를 평균내어 이 벡터로 중심 단어를 예측한다.
- 예를 들어, "I love machine Learning"에서, ["I", "love", "learning"]로 "machine"을 예측한다.
(2) Skip-gram 모델
- 주어진 단어를 기준으로 주변 단어들을 예측
- 중심 단어를 입력으로 받아, 함께 자주 등장하는 주변 단어들을 예측하도록 학습한다.
- 예를 들어, "I love machine Learning"에서, "machine"으로 ["I", "love", "learning"]을 예측한다.
3) 활용
- 단어 유사도 계산
- 벡터 공간에서 두 단어의 코사인 유사도를 계산해, 의미적 유사성을 측정할 수 있다.
- 단어 관계 표현
- 단어 간의 관계를 벡터 연산으로 표현할 수 있다.
- 예를 들어 "King - Man + Woman = Queen"과 같은 관계가 성립할 수 있다.
- 텍스트 분류 및 군집화
- 문서의 단어들을 Word2Vec 벡터로 변환 후, 문서 간의 유사도를 계산하거나 분류할 수 있다.
4) 한계와 대안
- 문맥 의존성 부족
- 고정된 크기의 벡터로 단어를 표현하기 때문에, 문맥에 따른 단어의 의미 변화를 반영하지 못한다.
- 예를 들어, "bank"가 "river back"와 "financial back"에서 다른 의미를 가지는 것을 구분하지 못한다.
- Out-of-Vocabulary 문제
- 학습 과정에서 등장하지 않은 단어에 대해서는 벡터를 생성할 수 없다.
- 차원의 저주
- 고차원 벡터 공간에서 유사한 단어들을 표현하기 위해 대규모 데이터셋이 필요하며, 학습과 계산에 많은 비용이 필요하다.