Basics¶
Meaning¶
- Definition Webster dictionary: Idea represented by a word
- WordNet
- Encode meaning for computer
- Synonym/hypernym set
- Hand-crafted
- Problem:
- Subjective
- Missing new meanings
- Idea: Represent words as vectors
Word vectors¶
- One-hot vectors:
- Vector over complete vocabulary
- Problem: Orthogonal vectors / no natural similarity
- No context
- Solution: Encode similarity in vectors/add context
- Context:
- Words meaning given by the word co-occurring with it (J. R. Firth)
- Use word vector/word embedding/word representation
Word2Vec¶
- Mikolov et al., 2013
- Idea:
- Use context/surrounding words for word vectors
- Use similarity of center word and context words
- Calculate probability of context word given a center word
- Maximize probability (on large text corpus)
- \( P(w_{t+1}\mid w_t) \)
- Model variants
- Skip-gram (predict context outside words with center word, independent of order)
- Continuous Bag-of-words (CBOW, predict center word from bag-of-words)
Objective function¶
- Skip-gram model
- Likelihood: \( L(\theta) =\Pi_{t=1}^T \Pi_{-m \leq j \leq m, j \neq 0} P(w_{t+j}\mid w_t;\theta) \)
- Objective function:
- Minimize average negative log likelihood
- \( J(\theta) = - \frac{1}{T} \log L(\theta) \)
- \( \Theta \): Model parameter
- \( \theta \in \mathbb{R}^{2\cdot d \cdot V} \)
- Each word has two vectors
Calculation¶
- Skip-gram model, naive softmax
- Each word gets two vectors (as context and center word)
- Use \( v_w \) if \( w \) is center word
- Use \( u_w \) if \( w \) is context word
- Reason: Simpler computation
- Additional efficiency: Negative sampling
- Naïve softmax simpler, but expensive
- Binary logistic regression
- Sample negative words
- Minimize objective function / maximize probability
- Probability
- \( P(o\mid c) = \frac{exp(u_o^T v_c)}{\sum_{w\in V} exp(u_w^T v_c)} \)
- \( o \): Context word (outside)
- \( c \): Center word
- Probability distribution (example of softmax function)
- Gradient derivation
- \( \frac{\partial}{\partial v_c} \log P(o\mid c)= u_o - \sum_{x\in V} P(x\mid c) \cdot u_x \)
Optimization¶
- Gradient descent: Move into direction of negative gradient
- \( \theta_{\text{new}} = \theta_{\text{old}} - \alpha \nabla_\theta J(\theta) \)
- Stochastic Gradient Descent:
- Evaluate over sample window instead of complete corpus
- Faster
- Why?
- \( \theta \) has \( 2m+1 \) vectors (therefore, very sparse)