일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- merge
- SQL on 하둡
- 분포
- 유사도
- 다중공선성
- 딕셔너리
- Sawzall
- pig
- p-value
- pca
- DataFrame
- SPLIT
- 교차검증
- 분산분석
- 하둡
- distribution
- cross validation
- k-means
- Python
- join
- 데이터프레임
- 밀도기반
- T-검정
- 결정계수
- 병렬 쿼리 시스템
- DBSCAN
- list
- hive
- 가설검정
- dict
- Today
- Total
one of a kind scene
word2vec에 대해서 본문
Word2Vec의 장점
1) word2vec은 word를 다차원 벡터(vector)공간에 표현하여 벡터간의 유사도를 계산할 수 있게함
2) 앞뒤 단어를 고려하여 임베딩을 하기 때문에 단어의 문맥상의 의미까지 정량화된 벡터로 표현 가능
희소표현과 분산표현
1. 희소표현(sparse representation)
: one-hot encoding은 희소표현
: 벡터 또는 행렬(matrix)의 값이 대부분이 0으로 표현되는 방법을 희소 표현 이라고 함
: 원-핫 벡터는 희소 벡터(sparse vector)
: 원-핫 벡터 단어간의 유사도를 계산할 수 없다는 단점이 있음
: 예를 들어서 늑대, 호랑이, 강아지, 고양이라는 4개의 단어에 대해서 원-핫 인코딩을 해서 각각, [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]이라는 원-핫 벡터를 부여받았다고 합시다. 이 때 원-핫 벡터로는 강아지와 늑대가 유사하고, 호랑이와 고양이가 유사하다는 것을 표현할 수가 없습니다. 좀 더 극단적으로는 강아지, 개, 냉장고라는 단어가 있을 때 강아지라는 단어가 개와 냉장고라는 단어 중 어떤 단어와 더 유사한지도 알 수 없습니다.
2. 분산표현(distributed representation)
: word2vec은 분산표현임
: 분산 표현 방법은 기본적으로 분포 가설(distributional hypothesis)이라는 가정 하에 만들어진 표현 방법
: '비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다'라는 가정
Word2Vec의 2가지 방식 : CBOW(Continuous Bag of Words)와 Skip-Gram
1. CBOW(Continuous Bag of Words)
: CBOW는 주변에 있는 단어들을 가지고, 중간에 있는 단어들을 예측하는 방법
: 주변단어로 중심단어를 예측하는 CBOW는 한번의 업데이트 기회만 주어짐
2. Skip-Gram
: Skip-Gram은 중간에 있는 단어로 주변 단어들을 예측하는 방법
: Skip-gram의 경우 업데이트 기회 4번이나 확보
3. 성능 비교
: 주변단어로 중심단어를 예측하는 CBOW에 비해 Skip-Gram의 성능이 좋음
: 언뜻 생각하기에는 주변의 네 개 단어(윈도우=2인 경우)를 가지고 중심단어를 맞추는 것이 성능이 좋아보일 수 있지만(변수가 많으면 성능이 좋아질 것 같다는 생각) 업데이트 횟수 차이로 인해 Skip-Gram의 성능이 더 좋음
: 윈도우 크기가 2일때, CBOW의 경우 주변단어 4개로 단 한번의 중심단어 업데이트를 함
: 하지만, Skip-gram의 경우 업데이트 기회를 4번이나 확보할 수 있음. 말뭉치 크기가 동일하더라도 학습량이 네 배 차이가 난다는 의미.
: 위 그림 3을 보면 quick 단어가 4번의 과정 모두에서 업데이트 됨을 확인할 수 있음
(참고url)
https://datascienceschool.net/view-notebook/6927b0906f884a67b0da9310d3a581ee/
https://ratsgo.github.io/from%20frequency%20to%20semantics/2017/03/30/word2vec/
'데이터 분석 이론 > 데이터 사이언스' 카테고리의 다른 글
k-fold cross validation에 대해서 (0) | 2020.02.02 |
---|---|
[용어] 배치 작업 vs 실시간 작업 (0) | 2020.01.10 |
[용어 차이] regression에서 prediction vs forecast 차이 (0) | 2020.01.05 |
[유사도] 거리 기반 유사도(유클리디안 거리) vs 각도 기반 유사도(코사인 유사도) (1) | 2019.12.12 |
[알고리즘] PCA는 언제? 왜? 쓸까? (0) | 2019.10.14 |