转:word2vec 中的数学原理详解 word2vec 中的数学原理详解

1,目录和前言

https://blog.csdn.net/itplus/article/details/37969519html

2,预备知识:逻辑回归、贝叶斯公式、霍夫曼树

https://blog.csdn.net/itplus/article/details/37969635算法

3,背景知识:统计语言模型、假设及n-gram、神经几率语言模型、词向量的意义、字向量句子向量文章向量

https://blog.csdn.net/itplus/article/details/37969817编程

4,基于Hierarchical Softmax方法的CBOW和Skip-gram

https://blog.csdn.net/itplus/article/details/37969979多线程

5,基于 Negative Sampling方法的CBOW和Skip-gram

https://blog.csdn.net/itplus/article/details/37998797工具

6,源代码以及细节:sigmoid近似、词典的存储、换行符、低频词和高频词、窗口和上下文、学习率、初始化和训练、多线程并行、再思考

https://blog.csdn.net/itplus/article/details/37999613post

 

word2vec 中的数学原理详解

     word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,所以引发了不少人的关注。因为 word2vec 的做者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并无谈及太多算法细节,于是在必定程度上增长了这个工具包的神秘感。一些按捺不住的人因而选择了经过解剖源代码的方式来一窥究竟。学习

     第一次接触 word2vec 是 2013 年的 10 月份,当时读了复旦大学郑骁庆老师发表的论文[7],其主要工做是将 SENNA 的那套算法([8])搬到中文场景。以为挺有意思,因而作了一个实现(可参见[20]),但苦于其中字向量的训练时间太长,便选择使用 word2vec 来提供字向量,没想到中文分词效果还不错,立马对 word2vec 另眼相看了一把,好奇心也随之增加。url

     后来,陆陆续续看到了 word2vec 的一些具体应用,而 Tomas Mikolov 团队自己也将其推广到了句子和文档([6]),所以以为确实有必要对 word2vec 里的算法原理作个了解,以便对他们的后续研究进行追踪。因而,沉下心来,仔细读了一回代码,算是基本搞明白里面的作法了。第一个感受就是,“明明是个很简单的浅层结构,为何会被那么多人沸沸扬扬地说成是 Deep Learning 呢?”spa

     解剖 word2vec 源代码的过程当中,除了算法层面的收获,其实编程技巧方面的收获也颇多。既然花了功夫来读代码,仍是把理解到的东西整理成文,给有须要的朋友提供点参考吧。.net

     在整理本文的过程当中, 和深度学习群的群友@北流浪子([15,16])进行了屡次有益的讨论,在此表示感谢。另外,也参考了其余人的一些资料,都列在参考文献了,在此对他们的工做也一并表示感谢。

 

 

 

 

 

做者:peghoty

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

相关文章
相关标签/搜索