在学习word2vector的过程中,下面两位博主的总结及讲解给了我很大帮助。本文主要是记录在学习和理解他们的博客的过程中个人也有一些思考和理解。本人才学疏漏,有错误的地方请大家指正。
http://blog.csdn.net/itplus/article/details/37969519
http://blog.csdn.net/mytestmy/article/details/26969149?utm_source=tuicool&utm_medium=referral

1,word2vector中hierarchical softmax 为什么可行 !
在刚开始看博文的时候,不太清楚通过能量函数算出来的概率 一定和通过这种层次化得树结构算出来的概率一样吗?一直不能说服自己,后面细细想了下,下面的一个理解总算是把这点想通了。
按道理讲:
分成两类的话
全概率公式p(A│C)=p(A|G,C)p(G|C) +p(A│C)=p(A|H,C)p(H|C) 但由于二分类的缘故后面一项为0;
所以就有了下面的公式。
p(A│C)=p(A|G,C)p(G|C)

2,Hierarchical Softmax的目的
将原来不好求的问题p(A|context),可以用下面的公式算但是代价太大。至于为什么要算这个概率,通过算p(w|context)可以算出这一句话的概率,而优化的目标就是使这句话是自然语言的概率最大。

从复杂度O(V)变为O(log2V)(V为词典大小)

3,CBOX和skip-gram的区别。
CBOX是将上下文的vector累加起来作为树结构最开始的那个向量,然后在树结构中找出一条路径算P(w|context)
Skip-gram是将这个w作为树结构最开始的那个向量,然后在树结构中找出多条路径算P(context|w)(上下文中有多少个词就有多少条路径,然后连乘起来得到概率),也可以说目标函数不一样了,前面是最大化P(w|context),后面是最大化P(context|w),当然这么说不太确切。

4,negative sampling

1,采样,采样的时候根据词出现的频率分配一个权重,让出现次数越多的词越容易被采样到,具体做法是,将他们的词频作为长度拼接起来,然后生成一个random数,落到哪个区间就选谁,当然负采样是取负样本(一般取context个),所以如果采样到正样本,则跳过。
2, 优化的目标变了,但总体目的没变,就是让这个上下文生成w的概率变大,生成其他的概率变小。

知其然知其所以然之——word2vector相关推荐

  1. 知行合一:知其然知其所以然

    知行合一:知其然知其所以然. 一个事情做成了,并不意味着你知道做成这件事背后蕴藏的原理. 只有使用冥思.事上练的方法了,将背后的原理提取出来,才能说做到了执行合一. 这个过程是行对知的精进过程. 转载 ...

  2. 锁,知其然知其所以然

    ​ Taken by iCola 今天,从一个小问题聊起. 假设你账户上原来有100元钱,你用微信支付100元,与此同时你女票用支付宝给你转100元零花钱,你帐户的余额有没有可能变成200元或者0元? ...

  3. 算出当前系统后某个月的日期_Python3.7知其然知其所以然-第十八章 日期函数

    时光不可追,往事不可回.以往创建的数据,如若没有日期做标识,不堪回首.几乎任何一个产品都会用到日期,如登录日期.创建日期.修改日期等.正因如此,编程语言中,几乎都有内置日期函数. 18.1 当前日期 ...

  4. 字符串去掉两端的引号_Python3.7知其然知其所以然-第六章 字符串

    在开发过程中,经常会用到字符串来存储字符内容.在其他编程语言中用成对双引号" "声明字符串,用成对单引号' '声明单个字符,而Python没有这种区别,它无论单个或多个字符都用字符 ...

  5. redis zset转set 反序列化失败_关于Redis中的五种数据结构,要知其然知其所以然...

    Redis作为Nosql的代表,想必大家已经再熟悉不过了,除了作为缓存来使用,Redis还提供了其他很多有用的功能,例如可作为消息队列.分布式锁.不隆过滤器.限流等功能使用.今天先来说一说redis作 ...

  6. bootstraptable获取所有数据_关于Redis中的五种数据结构,要知其然知其所以然

    Redis作为Nosql的代表,想必大家已经再熟悉不过了,除了作为缓存来使用,Redis还提供了其他很多有用的功能,例如可作为消息队列.分布式锁.不隆过滤器.限流等功能使用.今天先来说一说redis作 ...

  7. Vue2.0源码解析 - 知其然知其所以然之Vue.use

    前言 小伙伴们大家好.用过Vue的小伙伴都知道,在我们进行Vue开发时,避免不了会使用一些第三方的库,比如说ElementUI组件库.当我们导入好这些组件库后会执行一个Vue.use函数,然后把导进来 ...

  8. Android转换位图BUG,知其然不知其所以然

    在开发某App的时候,发现了一个很奇怪的bug,前面我也发了关于bitmap的总结,但是这个问题恰恰出在BitmapFactory.decodeFile(pathName)这个函数上,使用这个函数在我 ...

  9. Pandas数据处理误区要知其然知其所以然

    背景 在Python里面处理数据,必然离不开Pandas,但目前网上的文章大部分都是介绍函数怎么使用,至于为什么有时数据处理结果是错误的,并没有深入研究,也可能是由于Pandas的一些BUG,没有人提 ...

  10. Vue2.0源码解析 - 知其然知其所以然之keep-alive

    前言 [一天一个小知识,每天进步一点点]小伙伴们大家好,今天将要给大家分享是Vue中关于组件缓存的一个内置组件 - keep-alive 不知道小伙伴们有没有遇到这样一种情况,在我们的项目开发中,有时 ...

最新文章

  1. ASP.Net中让网页“立即过时”
  2. 《从零开始学Swift》学习笔记(Day 7)——Swift 2.0中的print函数几种重载形式
  3. (chap2 简单的Http协议) 请求报文和响应报文
  4. hibernate3配置文件hibernate.cfg.xml的详细解释
  5. Perl语言入门14-17
  6. Adobe Dreamweaver的使用教程
  7. ssget 用法详解
  8. 失恋33天——我用57天考了一个5A
  9. HCIE Datacom考试-MAC 地址基础及漂移技术汇总!
  10. 给ESXi虚拟机硬盘瘦身
  11. 富有人情味的入住体验
  12. 运用matlab求解梁的变形例题,matlab与结构力学
  13. Open Judge 百练 1003 宿醉(C语言)
  14. android touch事件无反应,android的touch事件分发响应机制
  15. 3-1 改变色度空间—OpenCV-Python教程翻译
  16. linux nfs root无权限,nfs root 无权限_如何允许root用户访问NFS?
  17. 【FPGA】初探FPGA —— 入门书籍推荐
  18. 超大文件打开工具---10G的日志文件
  19. 关于直播网站的搭建--第一步:获取直播源
  20. dotnet core配置ssl https

热门文章

  1. 微信小程序快捷键和windows快捷键
  2. js 根据公历日期 算出农历_显示阴历(农历)日期的js代码
  3. 如何恢复SVN被删除文件、文件夹
  4. 如何使用U盘制作苹果系统启动盘
  5. MAC之U盘(制作U盘启动必须是在mac系统中)
  6. SEO和SEM的区别
  7. IPMI 服务器远程管理方法
  8. Android编程怎么打开,安卓手机如何开启开发者模式?简单三步骤教你解决!
  9. 数据库设计(一、二、三及BCNF范式)
  10. 农夫山泉下场当“烧水工”,熟水市场是“鸡肋”还是“机遇”?