Word2Vec
简介
相比Onehotting编码方式:
- 不能展示语义关系(不同词之间的点积为0)
修正方法:
分布相似性,通过理解上下文理解单词的含义(predict between every word and its context words)
- 构建dense vector来预测上下文
算法:
- skip-gram
- CBOW(待扩充)
所有模型都是not convex,不初始化就都会陷入局部最优化
训练优化方法:
- Hierarchical softmax(待扩充)
- Negative sampling
Skip-gram
定义
基于中心词( w t w_t wt)去预测上下文( w t − s w_{t-s} wt−s, w t + s w_{t+s} wt+s,领域是radius=s)的概率分布
损失函数:
m a x J ( θ ) = ∏ t = 1 T ∏ − m ≤ j ≤ m , j ≠ 0 P ( w t + j ∣ w t ; θ ) max J(\theta)=\prod_{t=1}^T \prod_{-m \leq j \leq m, j\neq 0}P(w_{t+j}|w_t;\theta) maxJ(θ)=t=1∏T−m≤j≤m,j=0∏P(wt+j∣wt;θ)
可以转化为:
m i n J ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m , j ≠ 0 log P ( w t + j ∣ w t ) min J(\theta) = - \frac{1}{T}\sum_{t=1}^T\sum_{-m \leq j \leq m, j \neq 0} \log P(w_{t+j}|w_t) minJ(θ)=−T1t=1∑T−m≤j≤m,j=0∑logP(wt+j∣wt)
其中,
P ( w t + j ∣ w t ) = P ( O ∣ C ) = e u o T v c ∑ w = j v e ( u w T v c ) P(w_{t+j}|w_t)=P(O|C)=\frac{e^{u_o^Tv_c}}{\sum_{w=j}^v e^{(u_w^Tv_c)}} P(wt+j∣wt)=P(O∣C)=