Word2Vec模型总结

word2vec,模型,总结 · 浏览次数 : 31

小编点评

**1. Huffman树构造解析** * 将n个权值作为n个叶子节点构造一棵二叉树。 * 遍历森林,选择两个权值最小的树并合并成新树。 * 重复步骤2,直到森林只剩一棵树为止,即为Huffman树。 **2. 基于Hierarchical Softmax的模型(CBOW模型)解析** * 优化目标函数:对数似然函数。 * 随机梯度上升法求偏导,更新参数。 **3. 基于Hierarchical Softmax的模型(Skip-Gram模型)解析** * 优化目标函数:条件概率函数。 * 随机梯度上升法求偏导,更新参数。 **4. 基于Negative Sampling的模型(CBOW模型)Negative Sampling 解析** * 使用随机负采样方法,替代Huffman树的负采样。 * 训练过程中,只针对负样本进行负采样。 **5. 基于Negative Sampling的模型(Skip-Gram模型)解析** * 优化目标函数:对数似然函数。 * 随机梯度上升法求偏导,更新参数。 **6. 基于Negative Sampling的模型(Skip-Gram模型)解析** * 针对每个样本,对词进行负采样。 * 使用随机梯度上升法求偏导,更新参数。

正文

1.Huffman树的构造
解析:给定n个权值作为n个叶子节点,构造一棵二叉树,若它的带权路径长度达到最小,则称这样的二叉树为最优二叉树,也称Huffman树。数的带权路径长度规定为所有叶子节点的带权路径长度之和。Huffman树构造,如下所示:
(1)将看成是有n颗树的森林;
(2)在森林中选出两个根节点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根节点权值为其左、右子树根节点权值之和;
(3)从森林中删除选取的两颗树,并将新树加入森林;
(4)重复(2)(3)步,直到森林中只剩一棵树为止,该树即为所求的Huffman树。
说明:利用Huffman树设计的二进制前缀编码,称为Huffman编码,它既能满足前缀编码条件,又能保证报文编码总长最短。

2.基于Hierarchical Softmax的模型(CBOW模型)
解析: 在这里插入图片描述 其中参数的物理意义,如下所示:
(1)

(2)表示路径中第结点对应的编码(根结点不对应编码)

(3)表示路径中第非叶子结点对应的向量

(4)表示从根结点出发到达对应叶子结点的路径。

(5)表示路径中包含结点的个数。
Hierarchical Softmax基本思想,如下所示:

对于word2vec中基于Hierarchical Softmax的CBOW模型,优化的目标函数,如下所示:

这样得到对数似然函数,如下所示:

将花括号中的内容简记为,如下所示:

使用随机梯度上升法对求偏导,如下所示:

的更新方程,如下所示:

使用随机梯度上升法对求偏导,如下所示:

对于词典中每个词的词向量更新方程,如下所示:

3.基于Hierarchical Softmax的模型(Skip-Gram模型)
解析: 这里写图片描述 其中,表示当前样本的中心词的词向量。 对于word2vec中基于Hierarchical Softmax的Skip-Gram模型,优化的目标函数,如下所示:

Skip-Gram模型中条件概率函数,如下所示:

这样得到对数似然函数,如下所示:

将花括号中的内容简记为,如下所示:

4.基于Negative Sampling的模型(CBOW模型)
Negative Sampling不再使用Huffman树,而是使用随机负采样,能大幅度提高性能。假定已经选好的负样本子集,定义词的标签[正样本为1,负样本为0],如下所示:

对于给定的正样本,最大化,如下所示:

其中,表示中各词的词向量之和,表示词对应的一个辅助向量,为待训练的参数。简化方程,如下所示:

其中,表示当上下文为时,预测中心词为的概率,同样表示当上下文为时,预测中心词为的概率。 对于给定的语料库,目标函数如下所示:

,使用随机梯度上升法对求偏导,如下所示:

参数的更新方程,如下所示:

使用随机梯度上升法对求偏导,如下所示:

参数的更新方程,如下所示:

5.基于Negative Sampling的模型(Skip-Gram模型)
对于给定的语料库,目标函数如下所示:

对每一个样本,需要针对中的每一个词进行负采样,但是word2vec源码中只是针对进行了次负采样。它本质上用的还是CBOW模型,只是将原来通过求和累加做整体用的上下文拆成一个一个来考虑。对于给定的语料库,目标函数如下所示:

。使用随机梯度上升法,对求偏导,如下所示:

的更新方程,如下所示:

使用随机梯度上升法,对求偏导,如下所示:

参数的更新,如下所示:

其中,表示处理词时生成的负样本子集。

6.Negative Sampling算法
(1)带权采样原理 设词典中的每一个词对应一个线段,长度如下所示:

这里表示一个词在语料中出现的次数。现在将这些线段首尾相连地拼接在一起,形成一个长度为1的单位线段。如果随机地往这个单位线段上打点,那么其中长度越长的线段(对应高频词)被打中的概率就越大。
(2)word2vec负采样 记,这里表示词典中第个词,则以为剖分结点可得到区间上的一个非等距剖分,为其个剖分区间。进一步引入区间上的一个等距离剖分,剖分结点为,其中,具体示意图如下所示: 在这里插入图片描述 将内部剖分结点投影到非等距剖分上,则可建立与区间(或)的映射关系,如下所示:

根据映射每次生成一个间的随机整数就是一个样本。当对进行负采样时,如果采样为,那么就跳过去。

参考文献:
[1]word2vec中的数学原理详解

与Word2Vec模型总结相似的内容: