word2vec简要教程

本文是word2vec的简要教程,介绍了one-hot编码的不足,以及word2vec的Skip-grams和CBOW模型。重点讲解了Hierarchical softmax和Negative sampling两种训练算法,其中Hierarchical softmax利用哈夫曼树结构来计算词概率,而Negative sampling通过随机采样负样本加速训练。
摘要由CSDN通过智能技术生成

一、 Word2Vec Tutorial

1.discrete representation(one-hot)的缺点

one-hot vector 不能够表示词之间的相似性,例子如下,motel和hotel是意思相近的两个词,可是两个词的one-hot vector却是正交的。



所以我们考虑使用一种维度较低并且有递推关系的向量来表示词,相似的词具有相似的向量。比如语料库有1W个词,如果用one-hot来表示,那么我们就用1w维的向量来表示它们,但是如果用了word2vec下面这种方法,我们只需要几百维就可以表示所有的词。
 



2.word2vec的简介

两种算法
1.Skip-grams (SG)
给定某个位置的单词,预测左右两边的词

2.Continuous Bag of Words (CBOW)
从该单词左右两边的词预测中间的词

两种训练的算法(为了加快训练速度)
1.Hierarchical softmax
2.Negative sampling

3. Skip-grams与Continuous Bag of Words (CBOW)

下面是Skip-grams 的演示图,CBOW应该也很容易想出来



$
Figure 1. Skip-grams 的演示图

4.以CBOW为例介绍Hierarchical softmax算法

接下来介绍一下Hierarchical softmax算法

  Hierarchical softmax就是以词表中的所有单词,例如维基百科中所有出现的词,以词频为权重来构建哈夫曼树,不懂哈夫曼树的可以百度或者看这篇文章。叶子节点就代表每一个词,而非叶子节点代表了一类词(有点抽象,后面会看到每个词在经过非叶子节点时都做了类似逻辑归回的分类,把词归类于左右子节点可以看做是归于不同类, 如下图中的9结点可以代表关于足球的一类词,14结点代表一种人的状态)。

  从根节点出发,到达指定叶子节点的路径是唯一的。Hierarchical Softmax正是利用这条路径来计算指定词的概率,而非用softmax来计算。



Figure 2. 哈弗曼树图 图片来源[1]

  图中的叶子节点假如有V个,那么非叶子节点肯定是|V|-1个。以足球为例,从根节点到该叶子节点要经过的路径长度为 L(西)=4 , 各个节点标记为 n(w2,1),n(w2,2),n(w2,3),n(w2,L(西)) 其中的每个 n(w,j) 非叶子结点都要表示成一个向量。

  每经过一次非叶子结点,就相当于对词进行一次分类,所以从根节点出发,要到达巴西叶子节点,需要经过 L(西)1 词分类。我们在这里做一个定义,当词被归于左孩子节点就说词属于负类,被归于右孩子节点就说词属于正类。当然你也可以翻过来,不过好像google的文档是按照前者分类的。

  整个模型分三层,首先输入层是所有其他附近的词向量,记为 v̂ t</

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值