Word2Vec Tutorial 2017. 9. 6 박 영택 숭실대학교
Introduction Main idea of word2vec NLP research devised to convert words into computer-understandable forms Use translate words into numerical form to machine learning Make a numeric word into a vector of hundreds of dimensions , Predict the next word through operations on each word, Context aware or inferable. EX) Word analogy using vector operation Words embedded in a multidimensional space
Word2Vec Word Embedding Word2Vec 자연어 처리에서 deep learning의 성공을 뒷받침하는 주요 동력 중 하나 Text를 구성하는 하나의 word를 수치화 하여 다차원 공간의 vector로 mapping Word2Vec 2013년 Google에서 Tomas Mikolov가 발표한 Word Embedding 학습 모형 기존 방법에 비해 계산량이 적어 몇 배 이상 빠른 학습이 가능 Word embedding을 위한 두 가지 방법을 제공 Skip-gram CBOW
Word2vec Word2vec Flow word2vec Word Word Word One-Hot encodding Vector output RawData Indexing NN RNN LSTM seq2seq Preprocessing to vectorize word Make Input Vector For Model Using Model’s output, calc Probability distribution and Context aware or inferable
Skip-Gram Model Neural Network 학습을 위해 word pair 형태로 feeding window size = 2
Skip-Gram Model Word 하나를 사용해서 주변 word들의 발생을 유추 Sentence : “Rush Hour, a comedy with Jackie Chan and Chris Tucker as well as Die Hard, an action movie with Bruce Willis”
Skip-Gram Model Training Input Vector Text의 String을 neural network의 input으로 사용할 수 없음 word를 one-hot vector로 표현
Architecture of Neural Network 1X10,000 1X300
The Hidden Layer Hidden layer를 matrix로 표현 300개의 feature를 사용하여 학습하고 10,000개의 word가 존재 Hidden layer의 weight matrix
The Hidden Layer Hidden layer의 weight matrix를 학습하는 것이 목적 One-hot vector를 사용하는 이유 1x10,000인 one-hot vector와 10,000x300 matrix를 곱하면, 효과적으로 matching되는 row를 얻어낼 수 있음 학습된 모델의 hidden layer는 lookup table로 사용할 수 있음 Hidden layer의 output이 input word의 “word vector”
Lookup (Column Vector 로 가정) Vectorization of words Corpus: Matrix multiplication : (m x n) x (n x 1) = (m x 1) One-hot(harry) 𝑊(random initialization) Vector(harry) 0.4, -0.4, 0.21, … 0.37, … 1.0 0.37 0.17 0.88 0.31 -0.6, 0.2, 0.39, … 0.17, … 0.99 200 … 200 … X 50,000 = 0.1, -0.9, 0.47, … 0.88, … -1.0 0.9, 1.0, 0.33, … 0.31, … -0.7 (200 x 50,000) (200 x 1) 102 (50,000 x 1)
Word2vec Vectorization of words … … Corpus: 𝑊 𝑇 (Transpose W) = output Predict(Potter) 0.4, -0.6, …, 0.1, 0.9 -0.4, 0.2, …, -0.9, 0.2 Vector(Harry) -0.21, 0.39, …, 0.47, 0.33 0.37 0.17 0.88 0.31 50,000 … X = … 200 50,000 -0.37, 0.17, …, 0.88, 0.31 … (200 x 1) 0.28, 0.99, …, -1.0, -0.7 (50000 x 1) (50000 x 1) (50000 x 200)
Word2vec Vectorization of words 000 1 000 1 … … … … Predict Label(Potter) 000 1 000 1 50,000 … … 50,000 Prediction 과 Label 예측 … … (50000 x 1) (50000 x 1)
Word2vec Vectorization of words 2.72 000 -9.1 5.92 2.17 1 9.02 … … … … Predict Label(Potter) 2.72 -9.1 5.92 2.17 9.02 000 1 … 50,000 … 50,000 𝑪𝒐𝒔𝒕𝑭𝒖𝒏𝒄𝒕𝒊𝒐𝒏(Predict, Label) … … (50000 x 1) (50000 x 1)
Word2vec Vectorization of words w w’ x x One-hot(102) Predict Label(807) Training-set (Input) w x w’ x (200 x 50,000) (50,000 x 200) (200 x 1) (50,000 x 1) (50,000 x 1) (50,000 x 1) update Cost(predict, Label) Loss minimal (Gradiet-Decent)
감사합니다. 참고자료 강의 http://web.stanford.edu/class/cs224n/ - 스탠포드 word2vec 강의 논문 Distributed Representations of Words and Pharases and their Compositionality EfficientEstimationofWordRepresentationsin VectorSpace