这节课主要介绍Word Embedding,有2种方法
Word Embedding
Count based
这种方法和LSA类似:
如果
w
i
w_i
wi和
w
j
w_j
wj经常成对出现,那么用一个向量表示的
V
(
w
i
)
V(w_i)
V(wi)和
V
(
w
j
)
V(w_j)
V(wj)内积的值就会比较大。所以和LSA类似,可以用GD求隐含向量表示。
Prediction based
这个方法思想很巧妙,利用文章中句子的词语顺序作为标签,训练一个神经网络,大致训练过程如下:
那么这个网络我们并不是要网络的输出,而是用第一个隐藏层的输出作为一个词语的隐含向量表示:
上面就只有1个词语
w
i
−
1
w_{i-1}
wi−1,监督标签是
w
i
w_{i}
wi:
上面就只有2个词语
w
i
−
2
w_{i-2}
wi−2、
w
i
−
1
w_{i-1}
wi−1,监督标签是
w
i
w_{i}
wi,当然也可以用>2个词输入,但是一般不会超过10个。
参数进行共享,1. 这样可以避免参数过多 2. 这样不会考虑顺序:
确保
w
i
w_i
wi和
w
j
w_j
wj一样,参数更新:
w
i
←
w
i
−
η
∂
C
∂
w
i
−
η
∂
C
∂
w
j
w
j
←
w
j
−
η
∂
C
∂
w
j
−
η
∂
C
∂
w
i
\begin{array}{l} w_{i} \leftarrow w_{i}-\eta \frac{\partial C}{\partial w_{i}}-\eta \frac{\partial C}{\partial w_{j}} \\ w_{j} \leftarrow w_{j}-\eta \frac{\partial C}{\partial w_{j}}-\eta \frac{\partial C}{\partial w_{i}} \end{array}
wi←wi−η∂wi∂C−η∂wj∂Cwj←wj−η∂wj∂C−η∂wi∂C
还有其他变种,各有优势:
做完Word Embedding后,在2D上可视化显示我们会得到一些关系:
会有这种关系:
因为:
在cv领域也是可以利用Embedding方法。如果用CNN分类器,再推理时,只能推理到指定的类上。
而使用Embedding,我们可以知道距离哪些类是比较近的。
以上参考李宏毅老师视频和ppt,仅作为学习笔记交流使用