Word2Vec은 단어를 의미 관계가 반영된 숫자 벡터로 바꾸는 자연어 처리 기법입니다.
one-hot encoding은 단어를 구분할 수는 있지만 단어 사이의 유사도를 표현하기 어렵습니다. Word2Vec은 주변 단어와의 관계를 학습해 비슷한 맥락에서 쓰이는 단어가 가까운 벡터가 되도록 만듭니다.
핵심 정리
Word2Vec은 단어를 의미 관계가 반영된 숫자 벡터로 바꾸는 자연어 처리 기법입니다. one-hot encoding과 달리 주변 단어와 함께 등장하는 패턴을 학습해 비슷한 맥락의 단어가 가까운 벡터가 되도록 만듭니다.
- one-hot vector는 단어를 구분할 수는 있지만 단어 간 의미적 거리를 직접 표현하지 못합니다.
- CBOW는 주변 단어들을 입력으로 받아 가운데 단어를 예측하는 방식입니다.
- Skip-gram은 가운데 단어를 입력으로 받아 주변 단어들을 예측하는 방식입니다.
- 학습된 hidden layer 표현을 단어 임베딩 벡터로 볼 수 있습니다.
- 단어 임베딩은 검색, 추천, 분류 같은 텍스트 모델의 입력 표현으로 자주 쓰입니다.
Word2Vec은 신경망 구조 자체보다 학습 목표를 먼저 잡는 것이 좋습니다. CBOW는 문맥에서 단어를 맞히고, Skip-gram은 단어에서 문맥을 맞히는 방향으로 이해하면 차이가 분명해집니다.
이어서 볼 글
- CountVectorizer 사용법: 문자열을 Document-Term Matrix로 변환 - 단어 등장 횟수 기반의 기본 텍스트 벡터화 방식이다.
- TfidfVectorizer 사용법: 문자열을 TF-IDF 벡터로 변환 - 단어 빈도와 문서 내 희소성을 함께 반영하는 텍스트 벡터화 방식이다.
참고한 링크는 여기
Word2Vec이란 무엇인가
말 그대로 단어를 벡터로 바꿔주는 알고리즘. 뉴럴 네트워크를 사용함.
단어를 벡터로 바꾸는 가장 간단한 방법은 ont-hot encoding 인데, 이걸로 하면 단어간 유사성을 계산할 수 없는 단점이 존재.
CBOW, Skip-gram
2가징 방법론이 있는데
CBOW(Continuous Bag of Words)는 주변에 있는 단어들을 가지고, 중간에 있는 단어들을 예측하는 방법.
Skip-gram은 반대로 중간에 있는 단어로 주변 단어들을 예측하는 방법
CBOW
Word2Vec의 입력은 모두 one-hot vector가 되어야 한다. 아래 그림 두 장을 보면 대체로 이해가 된다.
하나의 hidden layer만 사용하기 때문에 deep하지 않음에 주목.
hidden layer의 노드 개수가 결과적으로 인코딩 되는 벡터의 차원수가 된다.
'AI, ML > ML' 카테고리의 다른 글
| Bayesian Online Changepoint Detection: run length와 변화점 탐지 (0) | 2019.08.21 |
|---|---|
| Boosting 개념: Bagging과 차이, 약한 분류기 앙상블 (0) | 2019.05.28 |
| Weka 머신러닝 GUI 도구와 ARFF 실습 메모 (0) | 2019.02.28 |
| 1D CNN 개념: 시계열 센서 데이터 convolution (1) | 2019.02.26 |
| 의사결정나무 Decision Tree 개념과 분기 기준 (0) | 2019.02.07 |
