word2vec 中的数学原理详解

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

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

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

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

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

word2vec 中的数学原理详解_第1张图片word2vec 中的数学原理详解_第2张图片word2vec 中的数学原理详解_第3张图片word2vec 中的数学原理详解_第4张图片word2vec 中的数学原理详解_第5张图片word2vec 中的数学原理详解_第6张图片word2vec 中的数学原理详解_第7张图片word2vec 中的数学原理详解_第8张图片word2vec 中的数学原理详解_第9张图片word2vec 中的数学原理详解_第10张图片word2vec 中的数学原理详解_第11张图片word2vec 中的数学原理详解_第12张图片word2vec 中的数学原理详解_第13张图片word2vec 中的数学原理详解_第14张图片word2vec 中的数学原理详解_第15张图片word2vec 中的数学原理详解_第16张图片word2vec 中的数学原理详解_第17张图片word2vec 中的数学原理详解_第18张图片word2vec 中的数学原理详解_第19张图片word2vec 中的数学原理详解_第20张图片word2vec 中的数学原理详解_第21张图片word2vec 中的数学原理详解_第22张图片word2vec 中的数学原理详解_第23张图片word2vec 中的数学原理详解_第24张图片word2vec 中的数学原理详解_第25张图片word2vec 中的数学原理详解_第26张图片word2vec 中的数学原理详解_第27张图片word2vec 中的数学原理详解_第28张图片word2vec 中的数学原理详解_第29张图片word2vec 中的数学原理详解_第30张图片word2vec 中的数学原理详解_第31张图片word2vec 中的数学原理详解_第32张图片word2vec 中的数学原理详解_第33张图片word2vec 中的数学原理详解_第34张图片word2vec 中的数学原理详解_第35张图片word2vec 中的数学原理详解_第36张图片word2vec 中的数学原理详解_第37张图片word2vec 中的数学原理详解_第38张图片word2vec 中的数学原理详解_第39张图片word2vec 中的数学原理详解_第40张图片word2vec 中的数学原理详解_第41张图片word2vec 中的数学原理详解_第42张图片word2vec 中的数学原理详解_第43张图片

 

 

 

 

word2vec 中的数学原理详解_第44张图片word2vec 中的数学原理详解_第45张图片

 

作者:peghoty

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

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

你可能感兴趣的:(word2vec 中的数学原理详解)