词向量模型W词向量模型Word2Vecord2Vec

前言

本文是之前学习自然语言处理课程CS224课程的笔记。首发于公众号"NLP学习者"

简介

想要处理文本首先就要将单词表示成计算机可以处理的格式,表示的方法一般有两种,一种是one-hot编码,另一种是分布式表示,分布式表示涉及从单词个数维度的空间到具有更低维度的连续向量空间的数学嵌入。本篇博文介绍的word2vec就是一种分布式表示,word2Vec尝试去做的是利用语言的意义理论,根据一个单词来预测预测其周围的词,或者根据一个单词周围的词来预测中心单词。

1.两种算法
Skip-grams(SG)
Continous Bag of Words(CBOW)
2.两种训练方法
Hierarchical softmax
Negative sampling
下面分别进行介绍。

Skip-Gram(SG)

在这里插入图片描述
上图就是SG算法的模型图,skip-gram算法的思想是在每一个估算步都取一个词作为中心词汇,这里选择的中心词是banking,接下来要做的是尝试去预测它一定范围内的上下文的词汇。给定一个中心词汇,模型预测某个单词在它上下文中出现的概率,让其周围词汇概率分布值最大化,需要注意的是给定一个中心词,模型只会输出一个概率分布,这个概率分布每个位置对应一个单词出现在中心词周围的概率。
首先定义周围词的半径为m,SG的目标函数如下:
在这里插入图片描述
这里的Θ是指模型中待优化的参数,可以看出模型目的是使中心词周围词汇的概率最大化,经过负对数似然函数将目标函数变成最小化如下公式
在这里插入图片描述
那么又有一个问题了,怎么计算P(o|c)呢?

答案就是和softmax一样的做法:
在这里插入图片描述
其中vc是指中心词对应的词向量,uo对应o单词对应的词向量.可以从上面公式看出,对于每一个中心词,都要计算其与其他所有单词的内积,这非常耗费时间,对于这个问题有两种解决办法我们在后面Hierarchical softmax和negative sampling介绍。下面是Skip-Gram模型图
在这里插入图片描述
输入是中心单词的one-hot编码,输出是每个单词是这个中心词的周围词的概率分布。模型由两层组成,第一层为一个嵌入矩阵,维度是(单词个数,词向量维度),这个嵌入矩阵就是最终想要得到的单词向量,再通过一个softmax便得到每个单词在这个中心词周围的概率。

Continous Bag of words

CBOW的思想与Skip-Gram的思想类似,CBOW是根据周围词预测中心词。CBOW模型图如下:
在这里插入图片描述
如果窗口大小是2的话,输入是4个向量,经过与嵌入矩阵相乘之后求平均与softmax之后得到中心词的概率分布。

Negative Sample

在训练神经网络时,每当接受一个训练样本,然后调整所有神经单元权重参数,来使神经网络预测更加准确。换句话说,每个训练样本都将会调整所有神经网络中的参数。negative sampling 每次让一个训练样本仅仅更新一小部分的权重参数,从而降低梯度下降过程中的计算量。

如果 vocabulary 大小为1万时, 当输入样本 ( “fox”, “quick”) 到神经网络时, “ fox” 经过 one-hot 编码,在输出层我们期望对应 “quick” 单词的那个神经元结点输出 1,其余 9999 个都应该输出 0。在这里,这9999个我们期望输出为0的神经元结点所对应的单词我们为 negative word. negative sampling 的想法也很直接 ,将随机选择一小部分的 negative words,比如选 10个 negative words 来更新对应的权重参数。

如果使用了 negative sampling 仅仅去更新positive word- “quick” 和选择的其他 10 个negative words 的结点对应的权重,共计 11 个输出神经元,相当于每次只更新 300 x 11 = 3300 个权重参数。对于 3百万 的权重来说,相当于只计算了千分之一的权重,这样计算效率就大幅度提高。

Hierarchical softmax

(这一部分感觉论文中写的有点晦涩难懂,参考了网上的一篇博客,传送门)Hierarchical softmax的思想是讲从隐含层到输出层的映射变为哈夫曼树结构。例如,以CBOW为例的Hierarchical softmax模型如下:
在这里插入图片描述
在这种网络结构下,如何定义条件概率函数p(w|Context(w))呢?

以上图中w="足球"为例,从根节点出发到达w要经历4次分支,每一个分支都可视为进行了一次二分类。既然是从二分类的角度来考虑问题,那么对于一个非叶子节点需要为其左右儿子指定类别,在word2vec中使用的是“Huffman编码为0的节点定位正类,编码为1的定义为负类”,即约定
在这里插入图片描述
根据逻辑回归,一个节点呗分为正类的概率是
在这里插入图片描述
反之,被分为父类的概率就等于
在这里插入图片描述
式中,Θ是待定参数,这里非叶节点对于的向量可以扮演Θ,从根节点出发到达“足球”这个叶子节点要经过4次二分类,每次分类结构写出来就是:
在这里插入图片描述
其中d就是huffman中的编码0/1.我们要求的是P(足球|Contex(足球)),与这4个概率值的关系是:
在这里插入图片描述
至此,Hierarchical Softmax的基本思想就介绍完了,总结一下:对于词典D中的任意词w,Huffman树中必存在一条从根节点到词w对应节点的路径p(这条路径是唯一的).路径p上存在p-1个分支,每个分支看作一次二分类,每一次分类就产生一个概率,将这些概率乘起来,就是所需的p(w|context(w))。
在这里插入图片描述

参考文献

[1]https://www.jianshu.com/p/ed15e

2adbfad


最后欢迎大家关注我的公众号NLP学习者
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值