word2vec原理概述

word2vec原理概述最近阅读了Mikolov两篇关于word2vec的论文,结合Goldberg对这两篇论文的解读,作如下概述。概述在较早的论文“EfficientEstimationofWordRepresentationsinVectorSpace”中,Mikolov讨论了FeedforwardNeuralNetLanguageModel(NNLM)、RecurrentNeural

大家好,又见面了,我是你们的朋友全栈君。

  • 最近阅读了Mikolov两篇关于word2vec的论文,结合Goldberg对这两篇论文的解读,作如下概述。
  • 概述

在较早的论文“Efficient Estimation of Word Representations in Vector Space”中,Mikolov讨论了Feedforward Neural Net Language Model (NNLM)、Recurrent Neural Net Language Model (RNNLM)以及论文中描述的两个新模型Continuous Bag-of-Words Model (CBOW)和Continuous Skip-gram Model (Skip-gram). 

 
NNLM是最早提出的前馈神经网络模型,模型由输入层(input)、映射层(projection)、隐藏层(hidden)和输出层(output)构成,其中主要的计算瓶颈是映射曾到隐藏层的转换;RNNLM克服了NNLM的部分局限性,比如无需指定语境的长度。RNN没有映射层,只有输入、隐藏、输出三层。至此,神经网络语言模型的性能瓶颈集中在了非线性的隐藏层中。
 
 为了提升计算效率,作者提出了CBOW和Skip-gram。其中CBWM去除了隐藏层,并让输入层的所有单词共享映射层。从图一左可以看到,CBOW使用围绕目标单词的其他单词(语境)作为输入,在映射层做加权处理后输出目标单词。
word2vec原理概述
区别于CBOW根据语境预测目标单词,Skip-gram根据当前单词预测语境,如图一右所示。在“

Distributed Representations of Words and Phrases and their Compositionality
”中,作者对Skip-gram做了进一步的论述和扩展。本文详细描述Skip-gram的原理及扩展。

  • 定义及符号

 
  
  
  
文本集合(Text):
T

单词(word):
w,使用长度为d的列向量表示
语境(context):以单词
w
为中心,向前k个单词,向后k个单词所形成的短语中包含的单词
模型参数:
θ
条件概率p(
c
|
w
):当
w
出现时,某一语境
c
出现的概率
C(
w
):在文本集合
T
中,单词
w
出现过的语境包含的单词的集合
语境中的单词
c,使用长度为d的列向量表示 
c
∈
C(
w
)
c和
w
均表示单词,但作者认为,即使对于同一个单词,比如apple,它作为普通单词和作为语境中的单词是的向量表示是不同的,因此使用不同的符号来表示语境中的单词和普通单词。
V:文本集合对应的词汇表
D:所有单词
w
和它的语境
C(
w
)
构成的组合的集合
  • Skip-gram

Skip-gram的目标是寻找参数集合
θ来最大化如下条件概率的乘积:

word2vec原理概述
等同于下式:
word2vec原理概述
作者使用了逻辑回归的扩展Softmax [4] 对
θ
进行形式化处理,使得条件概率转化为下式:
word2vec原理概述
其中vc和vw分别是
c
和
w
的列向量,维度为d。
C
是所有语境中的单词构成的集合,等同于词汇表V。参数
θ
就是vc和vw中每一维度的具体取值,参数的总数为|C|
×|V|×
d
。将式3代入式2,并于等式两边取对数可得:
word2vec原理概述
作者认为,通过训练得到的单词的向量表示vw能够使得条件概率p(c|w)最大化,则vw是w的好的表示。这里潜在的基本假设是:相似的单词拥有相似的语境。换言之,特定的语境只有确定的语义才能够与之匹配。通过最大化条件概率,使得单词和语境之间的对应关系最大化,进而满足了基本假设:相似的单词拥有相似的语境。而满足条件概率最大化的单词矢量,也就成为了单词语义的合理表示。
从式3可以发现,由于条件概率
p(
c
|
w
)的分母计算需要很大代价,作者使用hierarchical softmax来近似softmax,并用霍夫曼树来构建hierachical softmax.
  • Negative Sampling

另一种降低计算代价的方法是改变目标函数。对于一个单词、语境组合(
w,
c
),使用p(D=1|
w,
c
)来表示这个组合存在于
T
中的概率,对应的
p(D=0|
w,
c
) = 1-
p(D=1|
w,
c
)
,表示
(
w,
c
)不在
T
中的概率。与前文类似,假设集合
θ是控制
p(D=1|
w,
c
)分布的参数,那么此时的目标是寻找参数集合θ来最大化
(
w,
c
)存在于
T
中的概率:

word2vec原理概述
同样,使用softmax来量化p(D=1|
w,
c;
θ
):
word2vec原理概述
因此,最终的目标函数为:
word2vec原理概述
为了使目标函数最大化,有一个很简单的方法,即使得vc=vw,且vc·vw=K。当K足够大时,可以得到
p(D=1|
w,
c
)=1,从而达到目标函数最大化。因此,为了所有的矢量有相同的值,作者生成了一个数据集D’,D’中的所有单词、语境组合都不存在于
T
中,这些样例被称之为反例(negative examples),而获得反例的采样方法被称之为反例采集(negative-sampling)。引进了反例之后的目标函数演变为:
word2vec原理概述
假设σ(x)=1/(1+e-x),则:
word2vec原理概述
和式4进行比较,可以明显的看到累加嵌套的消除。两者最大的区别是式4根据条件概率
p(
c
|
w
)进行建模而此处根据联合概率
p(D=1|
w,
c
)进行建模


  • 参考文献
  1. Efficient Estimation of Word Representations in Vector Space
  2. Distributed Representations of Words and Phrases and their Compositionality
  3. word2Vec Explained: Deriving Mikolov et al.’s Negative-Sampling Word-Embedding Method
  4. Softmax Regression, www.cnblogs.com/tornadomeet/archive/2013/03/22/2975978.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145479.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 大数据挖掘有哪些技术

    大数据挖掘有哪些技术  数据挖掘技术虽是一项新兴的数据处理技术,但其发展速度十分迅猛,至今已经形成了决策树、神经网络、统计学习、聚类分析、关联规则等多项数据挖掘技术,极大的满足了用户的需求。  1、决策树算法  决策树算法是分类和预测的常用技术之一,可用于深入分析分类问题,使用时,决策树能够利用预测理论对多个变量中进行分析,从而预测处任一变量的发展趋势和变化关系;除此以外,还能对变量发展趋势进行双向预测,既能进行正向预测,也能进行反向预测,因此具有方便灵活的优势。  2、神经网络算法  神经网络是将计算机技术与

    2022年6月29日
  • 通过Nginx日志–检测异常访问ip进行封禁

    通过Nginx日志–检测异常访问ip进行封禁

    2021年6月4日
  • ora-00984列在此处不允许_嵌套定义和嵌套调用

    ora-00984列在此处不允许_嵌套定义和嵌套调用嵌套循环中要求每一列都有唯一的列名**,特别注意:空字符串一定要起别名,不然会被当做是相同列明处理.**错误示范:正确示范:

    2022年10月4日
  • python读取图像的几种方法_python图像识别教程

    python读取图像的几种方法_python图像识别教程python读取图像的几种方式本文介绍几种基于python的图像读取方式:基于PIL库的图像读取、保存和显示基于opencv-python的图像读取、保存和显示基于matplotlib的图像读取、保存和显示基于scikit-image的图像读取、保存和显示基于imageio的图像读取、保存和显示安装方式基本使用pip即可:pipinstallpillowpipinstallscikit-imagepipinstallmatplotlibpipinstallopen

    2022年9月12日
  • 子网划分介绍以及如何划分子网(例题详解)

    子网划分介绍以及如何划分子网(例题详解)子网划分这项技术用来把一个单一的IP网络地址划分成多个更小的子网(subnet)。这种技术可使一个较大的分类IP地址能够被进一步划分为几个子网。这样就可以让使用一个大的分类地址(classfuladdress)的企业能给该企业中处于不同地理位置的分公司分配不同的子网,对外整个企业是一个网络地址,而在内部,不同分公司则有不同的子网地址,因而不需要为每个站点都分别申请一个网络地址。子网划分通常是把IP地址中主机标识部分划出一定的位数用作本网的各个子网,剩余的主机标识作为相应子网的主机标识部分。

    2022年6月27日
  • 精雕软件怎么把图片转成灰度图_怎么把普通的照片变成浮雕用的灰度图 精雕图 灰度图 浮雕图之间怎么能联系起来使用…

    精雕软件怎么把图片转成灰度图_怎么把普通的照片变成浮雕用的灰度图 精雕图 灰度图 浮雕图之间怎么能联系起来使用…怎么把普通的照片变成浮雕用的灰度图用PS啊,里面有这种效果的,若需要帮忙的话,可以加发给我一份啊,尽量帮你哈,呵呵用photoshop把照片变成灰度图,用PS做有很多方法,介绍两种:方法1:简单一步到位,直接在图像,模式里选择灰度即可。方法2:设置黑白照片,比“灰度”命令稍复杂,但可以保留更多照片细节。适合专业人士。怎样把普通图片做成浮雕用的的BMP灰度图?:使用工具:photoshop软件1、…

    2022年6月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号