word2vec 中的数学原理详解(四)基于 Hierarchical Softmax 的模型

      
    word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。由于 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上增加了这个工具包的神秘感。一些按捺不住的人于是选择了通过解剖源代码的方式来一窥究竟,出于好奇,我也成为了他们中的一员。读完代码后,觉得收获颇多,整理成文,给有需要的朋友参考。


相关链接


(一)目录和前言

(二)预备知识

(三)背景知识

(四)基于 Hierarchical Softmax 的模型

(五)基于 Negative Sampling 的模型

(六)若干源码细节







作者: peghoty 

出处: http://blog.csdn.net/itplus/article/details/37969979

欢迎转载/分享, 但请务必声明文章出处.

  • 151
    点赞
  • 303
    收藏
    觉得还不错? 一键收藏
  • 123
    评论
Word2vec 是一种基于神经网络的自然语言处理技术,它通过将单词映射成向量的方式来实现文本语义的表示。其基本原理可以概括为以下两个步骤: 1. 建立词向量空间模型 Word2vec 通过训练神经网络来构建一个词向量空间模型,其每个单词都会被表示成一个向量。这个模型通常由两个不同的神经网络架构实现,即 CBOWSkip-gramCBOW(Continuous Bag of Words)模型的训练过程是:给定一个上下文窗口内的单词,预测间那个单词。例如,对于句子“the cat sat on the mat”,CBOW 模型会根据上下文单词“the,cat,on,the,mat”来预测间的单词“sat”。 Skip-gram 模型的训练过程则是反过来的:给定一个心单词,预测它周围的上下文单词。例如,对于句子“the cat sat on the mat”,Skip-gram 模型会根据心单词“sat”来预测它周围的上下文单词“the,cat,on,the,mat”。 在 CBOWSkip-gram 模型,每个单词都会被表示成一个向量,这个向量的维度一般是几百到几千,这些向量可以被看作是该单词在词向量空间的位置,它们的相对位置反映了单词之间的语义关系。 2. 通过词向量计算获取语义信息 Word2vec 利用词向量之间的余弦相似度计算单词之间的语义相似度,从而实现文本语义的表示。具体来说,对于两个单词 w1 和 w2,它们的语义相似度可以通过它们的词向量计算: similarity(w1, w2) = cos(θ) = (w1·w2) / (||w1|| ||w2||) 其,w1·w2 表示两个向量的点积,||w1|| 和 ||w2|| 分别表示两个向量的模长。余弦相似度的取值范围为 [-1, 1],值越接近 1 表示两个单词的语义相似度越高,反之则越低。 通过向量计算,Word2vec 可以实现对单词之间语义关系的刻画,例如可以计算出“king - man + woman = queen”的结果,表示女王这个词的向量可以由“国王”、“男人”、“女人”三个词的向量相加减得到。 总的来说,Word2vec 利用神经网络和向量空间模型实现了对文本语义的表示,为自然语言处理领域带来了很多创新。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值