1.CBOW 模型

CBOW模型包括输入层、投影层、输出层。模型是根据上下文来预测当前词,由输入层到投影层的示意图如下:

这里是对输入层的4个上下文词向量求和得到的当前词向量,实际应用中,上下文窗口大小可以设置。

输出层是一颗哈夫曼树,从向量W(t)到哈夫曼树的转化过程是这样的:以训练语料中出现的词当叶子结点,以各词在语料中出现的次数当权值来构造,这样不仅可以保证出现频率更高的词可以被更快地搜索到,而且为使用Hierarchical softmax铺平了道路。

对于词典中的任意词w,必然存在一条从根节点到这个词的路径,哈夫曼树是一颗二叉树,我们可以将根节点到叶子结点(词)的过程视为一个不断进行二分类(这里选择逻辑回归)的过程,那么每一次分类都会涉及到以一个概率选择一个分支,那么最后选择某个叶子结点(词)的概率就是从根节点到叶子结点过程中所有节点选择概率的连乘。表达式为:

为什么要得到选择每个词对应的概率呢?因为这涉及到了我们的最优化方法。我们使用同神经概率语言模型相同的对数似然函数来优化参数,对数似然函数如下:

然后就可以使用随机梯度下降法来求解相关参数。

2.Skip-gram模型

Skip-gram模型已知的是当前词,需要对其上下文词汇进行预测,因此,其条件概率的形式为:

其中

后面的过程与CBow模型类似。

word2vec 的理解的更多相关文章

  1. 对word2vec的理解及资料整理

    对word2vec的理解及资料整理 无他,在网上看到好多对word2vec的介绍,当然也有写的比较认真的,但是自己学习过程中还是看了好多才明白,这里按照自己整理梳理一下资料,形成提纲以便学习. 介绍较 ...

  2. word2vec参数理解

    之前写了对word2vec的一些简单理解,实践过程中需要对其参数有较深的了解: class gensim.models.word2vec.Word2Vec(sentences=None,size=10 ...

  3. word2vec的理解

    在学习LSTM的时候,了解了word2vec,简单的理解就是把词变成向量.看了很多书,也搜索了很多博客,大多数都是在word2vec的实现原理.数学公式,和一堆怎么样重新写一个word2vec的pyt ...

  4. 对Word2Vec的理解

    1. word embedding 在NLP领域,首先要把文字或者语言转化为计算机能处理的形式.一般来说计算机只能处理数值型的数据,所以,在NLP的开始,有一个很重要的工作,就是将文字转化为数字,把这 ...

  5. word2vec入门理解的博客整理

    深度学习word2vec笔记之基础篇 https://blog.csdn.net/mytestmy/article/details/26961315 深度学习word2vec笔记之算法篇 https: ...

  6. 文本分布式表示(二):用tensorflow和word2vec训练词向量

    看了几天word2vec的理论,终于是懂了一些.理论部分我推荐以下几篇教程,有博客也有视频: 1.<word2vec中的数学原理>:http://www.cnblogs.com/pegho ...

  7. word2vec之tensorflow(skip-gram)实现

    关于word2vec的理解,推荐文章https://www.cnblogs.com/guoyaohua/p/9240336.html 代码参考https://github.com/eecrazy/wo ...

  8. Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树

    Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树 目录 Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树 0x00 摘要 0x01 背景概念 1.1 词向量基础 ...

  9. Alink漫谈(十七) :Word2Vec源码分析 之 迭代训练

    Alink漫谈(十七) :Word2Vec源码分析 之 迭代训练 目录 Alink漫谈(十七) :Word2Vec源码分析 之 迭代训练 0x00 摘要 0x01 前文回顾 1.1 上文总体流程图 1 ...

随机推荐

  1. pl/sql中误删表中数据并提交恢复办法

    最近在操作表中数据时,删除了表中数据,但是又想恢复,后来查到了官方的一篇文档,发现还蛮有用的,如下: 在pl/sql中运行,select * from A as of TIMESTAMP to_tim ...

  2. ue使用

    快捷键CTRL+V:输入代码提示自动补全 编辑器Ultraedit快捷键    说到编辑器的快捷键,VIM是无与伦比的.要反对,也得是带脚踏板的EmaCS.UE还是有差距的,很大差距.注意:VIM是开 ...

  3. screen 命令 http://man.linuxde.net/screen

    http://man.linuxde.net/screen -A 将所有的视窗都调整为目前终端机的大小. -d <作业名称> 将指定的screen作业离线. -h <行数> 指 ...

  4. Mac 下配置php环境

    Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例.主要内容包括: 启动Apache 运行PHP 安装MySQL 使用phpMyAdmin ...

  5. SIM800C Couldn't pair with xxx because of an incorrect PIN or passkey

    /******************************************************************************* * SIM800C Couldn't ...

  6. Windows 7 SP1 多国语言包(MUI language packs)官方下载

      为了装一款 Gal Game (为毛不是装 H-Game?),使用 APP 还是太辛苦了,反正相信童鞋们也都用上“瘟妻”了嘛,装个日文的语言包基本上就可以解决问题了.大家都知道只有旗舰版(Wind ...

  7. Spring整合struts的配置文件存放问题

    只使用Spring的时候,我把applicationContext.xml是放在项目的src路径下的,这样使用ClassPathXmlApplicationContext很方便嘛 整合了struts之 ...

  8. filesystems\configfs\configfs.txt 翻译Android下的

    configfs - 用户空间驱动的内核对象配置. Joel Becker <joel.becker@oracle.com>Updated: 31 March 2005Copyright ...

  9. leetcode:Minimum Depth of Binary Tree【Python版】

    1.类中递归调用添加self: 2.root为None,返回0 3.root不为None,root左右孩子为None,返回1 4.返回l和r最小深度,l和r初始为极大值: # Definition f ...

  10. 使用过的bug跟踪系统

    MantisBT jira