对学习/理解 Word2Vec 有帮助的材料

update

最近看到几篇微信上的文章,感觉写得很透彻啊,相见恨晚。是达观数据的公号。
fastText原理及实践
https://mp.weixin.qq.com/s/EM1d9Jn4RcghSZe-qptdqA
涉及了 word2vec

技术干货 | 漫谈Word2vec之skip-gram模型
https://mp.weixin.qq.com/s?__biz=MzA5NzY0MDg1NA==&mid=2706953858&idx=1&sn=cb83cb61330cdb77275e846bec6e7433&scene=21#wechat_redirect
这篇把 sg 模型讲得非常清楚了。


之前面试被面到了,加上一直不是很理解词嵌入的工作方式,所以这段时间找了不少相关的资料想把这玩意儿搞明白。理解还是有限,就不自不量力自己写一篇了(就算写也是把已有的文章揉一揉,不敢说是自己的理解),把看过觉得比较有用的材料整理出来,作为一则记录。

一篇英文的博客也做了类似的整理(http://textprocessing.org/getting-started-with-word2vec)。
本篇则主要记录中文的资料和必要的英文资料。

理解 Word2Vec 主要是理解一些概念和实践技巧:
概念包括词的分布式表示、词嵌入、神经网络的语言模型,这些内容网上解析 W2V 的几乎都涉及到了,找个靠谱的看一遍即可;Word2Vec 的主要贡献不在算法,而在于对以上方法做了一定的简化和速度上的改进,就像原文中说的现在单机可在一天内训练亿级语料,这就是 CBOW 和 Skip-Gram、Hierarchical Softmax、Negative Sampling 等等内容了。

  1. 作者的论文:
    https://arxiv.org/pdf/1301.3781.pdf
    https://arxiv.org/pdf/1310.4546.pdf
    源码下载:
    https://code.google.com/archive/p/word2vec/

  2. [NLP] 秒懂词向量Word2vec的本质
    适合对重要概念建立一点印象。
    https://zhuanlan.zhihu.com/p/26306795
    口气很大,但写得着实不错。文中整理的材料我也会在下方重复。也推荐自己挑选阅读。
    我觉得作为博文而非论文来说,最重要的甚至不是“不出错”,而是“说人话”。只看学术论文,很多关键细节都淹没在公式里了,但对于一些问题来说,重要的可能不是这些公式。深度学习领域的“let data talk”尤其体现了这一点。

  3. Rong Xin 的工作
    讲解视频:https://www.youtube.com/watch?v=D-ekE-Wlcds
    文章:word2vec Parameter Learning Explained(https://arxiv.org/abs/1411.2738)
    PPT:https://docs.google.com/presentation/d/1yQWN1CDWLzxGeIAvnGgDsIJr5xmy4dB0VmHFKkLiibo/edit#slide=id.ge79682746_0_438
    Demo:https://ronxin.github.io/wevi/
    推荐先看视频,然后把论文理解一遍。

  4. 有道的 Deep Learning Word2Vec 笔记
    这篇可能更适合开发人员学习,我看得比较费劲……

  5. 来斯为的博客和博士论文
    http://licstar.net/archives/category/自然语言处理

  6. 计算所某直博大佬的博文,源码解析
    http://www.cnblogs.com/neopenx/p/4571996.html

  7. 词向量的来龙去脉:http://ruder.io/word-embeddings-1/
    Ruder 的系列博文,非常清晰。

有了比较充足的认识以后,接下来可以看看代码或者自己用一下 Tensorflow 或 Gensim 的训练版本了。

实践方面,可参考来斯为的博士论文。

魔鬼在细节中,果然不假。尤其是[6]指出的皮果提文章中的问题,我反复读源码才稍微有了点体会,依然不敢说看懂。所以代码才是硬道理啊……

你可能感兴趣的:(机器学习/深度学习)