Word2vec详解

Word2vec简介

当然,传统的one-hot 编码仅仅只是将词符号化,不包含任何语义信息。而且词的独热表示(one-hot representation)是高维的,且在高维向量中只有一个维度描述了词的语义。多高?词典有多大就有多少维,一般至少上万的维度。所以我们需要解决两个问题:1 需要赋予词语义信息,2 降低维度。

这就轮到Word2Vec出场了。

word2vec是Google研究团队里的Tomas Mikolov等人于2013年的《Distributed Representations ofWords and Phrases and their Compositionality》以及后续的《Efficient Estimation of Word Representations in Vector Space》两篇文章中提出的一种高效训练词向量的模型,基本出发点是上下文相似的两个词,它们的词向量也应该相似,比如香蕉和梨在句子中可能经常出现在相同的上下文中,因此这两个词的表示向量应该就比较相似。

实际上,大部分的有监督机器学习模型,都可以归结为:f(x)->y。

在有些NLP问题中,把 x 看做一个句子里的一个词语,y 是这个词语的上下文词语,那么这里的 f 便是上文中所谓的『语言模型』(language model),这个语言模型的目的就是判断 (x,y) 这个样本是否符合自然语言的法则,更通俗点说就是:有了语言模型之后,我们便可以判断出:词语x和词语y放在一起,是不是人话。

当然,前面也说了,这个语言模型还得到了一个副产品:词向量矩阵。

而对于Word2vec 而言,词向量矩阵的意义就不一样了,因为Word2Vec的最终目的不是为了得到一个语言模型,也不是要把 f 训练得多么完美,而是只关心模型训练完后的副产物:词向量矩阵。
我们来看个例子,如何用 Word2vec 寻找相似词:

对于一句话:
1.她们 夸 吴彦祖 帅 到 没朋友,如果输入 x 是吴彦祖,那么 y 可以是:“她们、夸、帅、没朋友”这些词
现有另一句话:
2.她们 夸 我 帅 到 没朋友,如果输入 x 是:我,那么不难发现,这里的上下文 y 跟上面一句话一样

从而 f(吴彦祖) = f(我) = y,所以大数据告诉我们:我 = 吴彦祖(完美的结论)。所以说,word2vec模型中比较重要的概念是词汇的上下文,说白了就是一个词周围的词,比如 w t w_t wt的范围为1的上下文就是 w t − 1 w_{t−1} wt1 w t + 1 w_{t+1} wt+1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

one-hot和SVD

在这里插入图片描述
在这里插入图片描述
如上图,like和enjoy跟i共同出现过。然后我们可以发现这个矩阵太稀疏了,于是我们要进行降维。
在这里插入图片描述
如上图,SVD分解可将X分解为三个V*V的矩阵,中间那个矩阵只有对角线上有值,且从小到大,对角线上的值就是第一个U矩阵里各个向量的特征值。我们可以只取前k个向量,这样就降维了。

在这里插入图片描述
N-gram可以用于大规模的数据集上。但是它在语音识别上表现不好,因为它取决于高质量的语音数据,但是高质量的语音数据规模较小。
在这里插入图片描述
在这里插入图片描述

储备知识

语言模型的概念

在这里插入图片描述
概率高的必须同时满足语义和语法。上图给0.01是因为训练的数据集对课程评价的样本几乎都是好,很少有一般,所以认为不符合语义。

在这里插入图片描述

基于专家语法规则的语言模型

在这里插入图片描述
上图表示语言千变万化,不要试图找到一套规则。

统计语言模型

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
如上图,第一种情况是这个句子再语料中,第二种为零是因为语料中没有叫张很帅的人,所以导致概率为零,但是就因为语料中没有叫张很帅的人就判定这不是一个句子,显然不合理;第三句话是预料中存在这些词,如张三的表哥的堂弟的媳妇很漂亮,那么模型可能会预测出这是个句子的概率为0,因为太长了。

平滑操作

在这里插入图片描述
上图计算参考下图的公式:
在这里插入图片描述
假设语料中只有张三很美,那么第一种情况的概率为0,第二种情况的概率也为零,经过拉普拉斯平滑后,二者的概率相同,但是张三很帅的概率明显是大于张三很桌子的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Skip-gram

在这里插入图片描述

在这里插入图片描述
W W W是中心词向量, W ∗ W^* W是周围词向量。对于最终结果1xV的这个矩阵,我们找到 W i − 1 W_{i-1} Wi1这个词对应的索引(下标),然后将这个下标所对应的概率通过反向传播,然后使其越大越好。
在这里插入图片描述

CBOW

在这里插入图片描述
注意上图是sum,并且该模型只有一个训练样本。
在这里插入图片描述
在这里插入图片描述

讨论复杂度

在这里插入图片描述
我们思考一下,如果用softmax,那么分子要做V次指数运算,而且求导数也不好求。下面介绍两种将softmax多分类简化sidmoid二分类问题:

层序softmax

在这里插入图片描述
我们要将softmax转换为若干sigmoid函数。
在这里插入图片描述
我们可以从上图看到,满二叉树就是 l o g 2 V log_2V log2V次了。如果我们搞成下图的哈夫曼树,速度就更快了
在这里插入图片描述
在这里插入图片描述
下图中,公式3的里的中括号表示,第 j + 1 j+1 j+1个节点是不是第 j j j个节点的右孩子。
在这里插入图片描述

负采样

skip-gram的负采样
在这里插入图片描述
我们在窗口中先择一个词与中心词组成正样本,然后选择窗口外的一个词与中心词组成负样本(当然这里负样本也有可能选择窗口内的词与中心词组成)。思想就是让正样本的概率尽可能大,负样本的概率尽可能小,这里负样本要取多个,因为正样本是真实的,负样本是采样的,有偏差。
在这里插入图片描述
CBOW的负采样
在这里插入图片描述

重采样

在这里插入图片描述
上图表示青蛙在文中出现的次数少,而什么是这三个字次数多,我们将青蛙的权重设高一些。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值