Word2Vec
Word2Vec 是 NLP 中一种通过语料库预训练[[Word Embedding]] 的方法。常见实现形式:
-
[[CBOW]] :<-> 根据上下文来预测下一个单词。
-
[[Skip-Gram]] :<-> 根据一个单词来预测上下文。
CBoW 和 skip 对比 -
训练速度 :-> Cbow 训练速度快
-
训练效果(准确率):-> skip 准确率和生僻字预测效果好,每一词会经过 C 次调整,模型的训练机制会对向量的预测能力要求更高(1 predict n)
参数更新 -
,即网络第 c 个输出的第 j 个分量对应于第 c 个真实的输出单词 $${word_{j^*_c}}$$时,它为 1;否则为0。定义:
-
-
-
-
-
优化
-
[[Hierarchical Softmax]]本质是把 N 分类问题变成 log(N)次二分类
-
从 Word2Vec 中可以看到,更新一个样本时需要计算词表每个单词的概率。计算量大。
-
HS 使用树结构能在 $${\log(V)}$$ 的时间内计算出给定单词的概率。
-
二叉树的每条边代表分裂:
-
向左的边:表示选择左子节点,边的权重为选择左子节点的概率
-
向右的边:表示选择右子节点,边的权重为选择右子节点的概率
-
-
对于任意一个中间节点 t,有一个向量 $$\overrightarrow{\mathbf{v}_t}^{\prime}$$。从求解 $$\overrightarrow{\mathbf{w}}^{\prime}$$ 问题转化到 V-1 个二叉树的中间节点向量表达(下图灰色的节点)。
-
左子节点的概率:$$p(t, l e f t)=\sigma\left(\overrightarrow{\mathbf{v}}_{t}^{\prime} \cdot \overrightarrow{\mathbf{h}}\right)$$
-
右子节点的概率:$$p(t, right)=1 - \sigma\left(\overrightarrow{\mathbf{v}}_{t}^{\prime} \cdot \overrightarrow{\mathbf{h}}\right)$$
-
左右节点的概率和为 1
-
当需要计算某个单词的概率时,找到从根到这个单词所在叶节点的路径。然后按上面的方法计算概率,一直将概率相乘,得到这个单词的概率。
-
-
表示如果这个单词属于当前节点的左子树,为 1,反之为 -1。和上面的节点概率有关。
-
词频高的节点离根节点较远,距离远参数数量就多,在训练过程中,低频词的路径上的参数能够得到更多的训练。
问题
-
为什么在计算word similarity的时候,我们要用cosine distance,我们能够用其他距离吗?
- 欧拉距离也可以,cos 自带归一化。
-
在word2vec的目标函数中,两个词 $${w_i,w_j}$$ 的词向量 $${v_i,v_j}$$ 其实分别来自输入权重矩阵和输出权重矩阵,那么在实际使用时,我们需要分别存储输入矩阵和输出矩阵吗?还是直接用输入矩阵当作word2vec计算similarity就好了?
-
两个向量来自不同的空间
-
输出权重矩阵 encodes the meanings of words as context
-
^需要选择那个矩阵?^
-
-
隐层的激活函数是什么?是sigmoid吗?
推荐系统中使用 embedding 的方法
-
有监督学习 wide&deep 之类,embedding 作为优化变量,随机初始化,在优化最终的 logloss 的过程中, embedding 是模型副产品。
-
无监督学习
-
套用 word2vec 的方法,预训练 embedding
-
上面学习得到的 emb 可以用来做召回,或者放到其他模型中作为参数输入。
-
-
embedding 使特征向量化,从而实现计算相似度
[[Ref]]
-
[[Word2Vect tf 实现]]
-
稀疏词向量,用skip-gram还是cbow训练好? - 知乎
-
使用 Skip-gram :一句话可能产生多个训练样本,对罕见词和罕见搭配更加友好
-
cbow 避免训练集膨胀,训练结果偏向常用词
-
-
[NLP] 秒懂词向量Word2vec的本质
-
Distributed Representations of Sentences and Documents
- 贡献:在前人基础上提出更精简的语言模型(language model)框架并用于生成词向量,这个框架就是 Word2vec
-
Efficient estimation of word representations in vector space
-
贡献:专门讲训练 Word2vec 中的两个trick:hierarchical softmax 和 negative sampling
-
优点:Word2vec 开山之作,两篇论文均值得一读
-
缺点:只见树木,不见森林和树叶,读完不得要义。
- 这里『森林』指 word2vec 模型的理论基础——即 以神经网络形式表示的语言模型,『树叶』指具体的神经网络形式、理论推导、hierarchical softmax 的实现细节等等
-
-
Xin Rong word2vec Parameter Learning Explained
-