본문 바로가기

word2vec

(3)
[밑바닥부터 시작하는 딥러닝2] Chapter 4. Word2Vec 속도 개선 corpus = np.array([0, 1, 2, 3, 4, 1, 2, 3])power = 0.75sample_size = 2sampler = UnigramSampler(corpus, power, sample_size)target = np.array([1, 3, 0])negative_sample = sampler.get_negative_sample(target)print(negative_sample)# [[0 3]# [2 1]# [2 1]]앞서 CBOW 모델은 말뭉치에 포함된 어휘 수가 많아지면 계산량이 커져 계산 시간이 너무 오래 걸린다. 이번 장에서는 word2vec의 속도 개선을 Embedding 계층과 Negative Sampling loss로 개선할 예정이다.4.1 word2vec 개선 I ..
[밑바닥부터 시작하는 딥러닝2] Chapter 3. Word2Vec 3장은 '추론 기반 기법' 중 가장 유명한 Word2Vec을 소개하고, 그 구조를 구현하며 이해하는 장입니다. 3.1 추론 기반 기법과 신경망3.1.1 통계 기반 기법의 문제점대규모 말뭉치를 다룰 때(ex-100만개 이상의 단어들) 100만 x 100만 동시발생 행렬에 SVD를 적용하는 것은 현실적이지 않음. (SVD를 $n \times n$ 행렬에 적용하는 비용은 $O(n^3)$)추론 기반 기법(신경망)에서는 소량(미니배치)의 학습 샘플씩 반복해서 학습해가며 가중치를 갱신한다.통계 기반 기법은 학습 데이터를 한번에(배치로) 처리하지만, 추론 기반 기법은 학습 데이터의 일부를 사용해(미니배치) 순차적으로 학습한다. 따라서 계산량이 큰 작업을 처리하기도 용이하고, GPU를 이용한 병렬 계산도 가능해 학습 ..
[CS224N] Lecture 2: Word Vectors, Word Senses, and Neural Network Classifiers 본 게시글은 Stanford CS224N NLP with Deep Learning 강의를 들으면서 내용을 정리한 것입니다. Word2Vec 1. Review : Main Idea of word2vec 거대한 corpus가 존재하고, 각 corpus 내 단어 position으로부터 center word를 둘러싸고 있는 다른 word를 예측하는 방법. random word vector부터 시작해서 전체 corpus 내 모든 단어들을 대상으로 계산됨. word vector를 활용해서 주변 단어들을 예측하고자 함. $P(o|c) = \frac{exp(u_0^T v_c)}{\sum_{w \in V} exp(u)w^T v_c)}$ Learning : 주변의 단어들을 더 잘 예측할 수 있도록 vector를 업데이트...