知识点3.3.1 word2vec
-
word2vec包含两个模型,即连续词袋模型(CBOW)和跳元模型(skip-gram),CBOW是使用周围词预测核心词,skip-gram是使用核心词预测周围词
-
对于NNLM模型的优化(以CBOW为例)
- 有隐藏层→无隐藏层,神经网络结构为输入层、投影层、输出层
- 输入层前文窗口→前后文窗口
- 投影层按顺序首尾相连拼接→求和(平均)
- 输出层线性结构→树型结构(层次Softmax)
- 输出层全样本→负采样
知识点3.3.2 哈夫曼树
-
哈夫曼树(最优二叉树)是指带权路径长度( WPL) 最小的二叉树
-
结点的带权路径长度是指从该结点到根结点之间的路径长度与该结点权值的乘积
-
树的带权路径长度是指所有结点的带权路径长度之和
-
在哈夫曼树中,权值越大的结点离根结点越近
知识点3.3.3 层次Softmax
-
输出层对应一棵哈夫曼树
-
Logistic回归 h θ ( x ) = σ ( θ T x ) = 1 1 + e − θ T x h_{\theta}(x)=\sigma(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=σ(θTx)=1+e−θTx1
-
例:预测 w w w="足球"的概率,设定往左走为负类(记为1,概率为 1 − σ ( θ T x ) 1-\sigma(\theta^Tx) 1−σ(θTx)),往右走为正类(记为0,概率为 σ ( θ T x ) \sigma(\theta^Tx) σ(θTx))
-
对于词典中任意一个词 w w w,哈夫曼树中必存在一条且唯一一条从根结点到词 w w w对应结点的路径 p w p^w pw,路径 p w p^w pw上存在 l w − 1 l^w-1 lw−1个分支( l w l^w lw表示该路径包含的结点数),将每个分支看成做一次二分类,每做一次二分类就产生一个概率,将这些概率相乘即是所需求解的 P ( w ∣ C o n t e x t ( w ) ) P(w |Context(w)) P(w∣Context(w))
知识点3.3.4 负采样
-
P ( w ∣ C o n t e x t ( w ) ) P(w |Context(w)) P(w∣Context(w)):一个正样本, V − 1 V-1 V−1个负样本
-
P ( w ∣ C o n t e x t ( w ) ) ≈ σ ( x w T θ w ) ∏ u ∈ N E G ( w ) [ 1 − σ ( x w T θ u ) ] P(w |Context(w))≈\sigma(x_{w}^T\theta^w)\prod_{u \in NEG(w)}[1-\sigma(x_{w}^T\theta^u)] P(w∣Context(w))≈σ(xwTθw)∏u∈NEG(w)[1−σ(xwTθu)]
σ ( x w T θ w ) \sigma(x_{w}^T\theta^w) σ(xwTθw)表示当前后文为 C o n t e x t ( w ) Context(w) Context(w)时,预测中心词为 w w w的概率
1 − σ ( x w T θ u ) 1-\sigma(x_{w}^T\theta^u) 1−σ(xwTθu)表示当前后文为 C o n t e x t ( w ) Context(w) Context(w)时,预测中心词为 u u u的概率
-
将[0,1]划分为 M = 1 0 8 M=10^8 M=108等分
词典中的每一个词对应[0,1]间某几个等分, l e n ( w ) = c o u n t e r ( w ) ∑ u ∈ D c o u n t e r ( u ) × 1 0 8 len(w)=\frac{counter(w)}{\sum_{u\in{D}}counter(u)}\times{10^8} len(w)=∑u∈Dcounter(u)counter(w)×108,实际使用中取 c o u n t e r ( w ) 3 / 4 counter(w)^{3/4} counter(w)3/4
每次随机生成一个[1,M-1]间的整数,看落在哪个词对应的区域内就取该词为一个负样本
欢迎关注微信公众号“Trihub数据社”