专栏名称: 机器学习研究会
机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。
目录
相关文章推荐
爱可可-爱生活  ·  //@爱可可-爱生活:后天开奖,欢迎参与~- ... ·  昨天  
爱可可-爱生活  ·  【Real-IAD ... ·  2 天前  
黄建同学  ·  即梦 AI 最近开放了 Seaweed ... ·  2 天前  
宝玉xp  ·  如何让 AI ... ·  4 天前  
51好读  ›  专栏  ›  机器学习研究会

【干货】机器学习算法实现解析——word2vec源码解析

机器学习研究会  · 公众号  · AI  · 2017-03-18 18:54

正文



点击上方“机器学习研究会”可以订阅哦
摘要
 

转自:zhiyong_will

目录

  1. 预处理

  2. 构建词库

    1. 1构建词库的过程

    2. 2对词的哈希处理

    3. 3对低频词的处理

    4. 4根据词频对词库中的词排序

  3. 初始化网络结构

    1. 1初始化网络参数

    2. 2Huffman树的构建

    3. 3负样本选中表的初始化

  4. 多线程模型训练

    1. 1多线程的处理

    2. 2CBOW模型

      1. 31从输入层到映射层

      2. 32Hierarchical Softmax

      3. 33Negative Sampling

    3. 3Skip-gram模型

      1. 31Hierarchical Softmax

      2. 32Negative Sampling

  5. 参考文献


在阅读本文之前,建议首先阅读“简单易学的机器学习算法——word2vec的算法原理”(目前还没发布),掌握如下的几个概念:

  • 什么是统计语言模型

  • 神经概率语言模型的网络结构

  • CBOW模型和Skip-gram模型的网络结构

  • Hierarchical Softmax和Negative Sampling的训练方法

  • Hierarchical Softmax与Huffman树的关系

有了如上的一些概念,接下来就可以去读word2vec的源码。在源码的解析过程中,对于基础知识部分只会做简单的介绍,而不会做太多的推导,原理部分会给出相应的参考地址。


在wrod2vec工具中,有如下的几个比较重要的概念:

  • CBOW

  • Skip-Gram

  • Hierarchical Softmax

  • Negative Sampling

其中CBOW和Skip-Gram是word2vec工具中使用到的两种不同的语言模型,而Hierarchical Softmax和Negative Sampling是对以上的两种模型的具体的优化方法。


在word2vec工具中,主要的工作包括:

  • 预处理。即变量的声明,全局变量的定义等;

  • 构建词库。即包含文本的处理,以及是否需要有指定词库等;

  • 初始化网络结构。即包含CBOW模型和Skip-Gram模型的参数初始化,Huffman编码的生成等;

  • 多线程模型训练。即利用Hierarchical Softmax或者Negative Sampling方法对网络中的参数进行求解;

  • 最终结果的处理。即是否保存和以何种形式保存。


对于以上的过程,可以由下图表示:

在接下来的内容中,将针对以上的五个部分,详细分析下在源代码中的实现技巧,以及简单介绍我在读代码的过程中对部分代码的一些思考。


原文链接:

http://blog.csdn.net/google19890102/article/details/51887344#

“完整内容”请点击【阅读原文】
↓↓↓