官网地址:https://code.google.com/archive/p/word2vec/

我觉得原理讲的比较好的:https://www.cnblogs.com/pinard/p/7160330.html

最近发现学习知识还是尽量找官网的解释,比较全,别人讲过的会帮助你理解,但是会漏掉一些知识

word2vec是训练词向量的一款非常好用的工具,由谷歌发明,主要有:

1.2种模型: cbow(连续词袋模型)和skip-gram(跳字模型)

2.2种近似训练的方法:层次softmax和nagative_sampling(负采样)

一:2种模型 CBOW vs Skip-Gram

CBOW:输入特定词的上下文向量,输出是所有词的softmax的概率,训练的目标是使得特定词的softmax概率最大

Skip-Gram:输入特定词,输出是所有词的softmax概率,训练目标是使得特定词上下文的对应的词的出现概率最大

二:二种训练技巧

Word2vec实际上是一个浅层的神经网络,由输入层-隐藏层-输出层构成,输出层本来的目标是特定次的softmax概率,如果不加以优化,复杂度是V(词汇表大小),复杂度相当高,所以Word2vec提出了2种近似的训练办法,用以提升训练速度

1.Hierarchical Softmax

输入层到隐藏层,使用的是所有输入向量求和并取平均。而在隐藏层-输出层,则是构建了一颗霍夫曼树来替代隐层到输出层的映射,根节点的词向量对应着我们投影后的词向量,树的内部节点就相当于是所有隐藏层的神经元,而树的叶子节点就相当于是softmax输出层的神经元,树的叶子节点的大小就是词汇表的大小。

映射不是一下子完成的,而是沿着树节点一步步完成的,所以也叫做层次softmax。

具体是使用逻辑回归,用词向量和树的内部节点的参数,计算出往左还是往右走的概率,目标就是找到合适的所有节点的词向量和所有内部节点θ, 使训练样本达到最大似然

使用梯度上升进行优化

优点:将复杂度从V降低到了log2(V),且满足贪心的优化思想,越常出现的词汇,越靠近根节点

cbow:对2c个输入进行迭代

skip-gram:对2c个输出进行迭代

2.Nagative Sampling

hs的缺点是:虽然极大地提升了效率,但是如果是一个生僻词,那么需要向下走很久,所以采用ns来求解

取一个中心词作为正例,neg个采样出来的词作为负例,通过二元逻辑回归,得到每个词的词向量和对应的参数

如何采样?

按照每个词出现的频次,取四分之三次幂,得到每个词的出现的概率,按照这个概率来采样。(其实是概率*M,其中 M>>V,将1等分成M个线段,每个词汇根据自己的概率得到对应的长度,采样的到哪段就取对应段的词汇作为负例)

三、表现和适用情况:

1.结构:skip-gram (慢,但对罕见词效果更好) vs CBOW (fast)

2.训练方法:hierarchical softmax (对罕见词效果更好) vs negative sampling (对常见词效果更好,对低维度的词效果更好)

3.sub-sampling(下采样):在大数据集上,可以提升准确度和训练速度,1e-3 to 1e-5

4.维度:一般是越大越好,(也有可能会有反例)

5.窗口大小:skip-gram:10左右,cbow:5左右

所以如果要追求速度的话:CBOW+nagative sampling

要追求罕见词的表现的话:skip-gram+ hierarchical softmax

四、其他:

预训练的词向量

GoogleNews-vectors-negative300.bin.gz.

https://drive.google.com/file/d/0B7XkCwpI5KDYNlNUTTlSS21pQmM/edit?usp=sharing

如何衡量准确率:

./demo-word-accuracy.sh

词聚类:

./demo-classes.sh

从词到词汇(我理解是组合词)

./demo-phrases.sh

词的类比关系:

demo-analogy.sh

Word2vec原理+常见优化手段相关推荐

  1. mysql哪些优化手段_mysql explain 及常见优化手段

    在工作中如果遇到慢sql通常都可以用explain进行解析. 先列一下各个列名以及含义 列名 描述 id 在一个大的查询中每一个查询关键字都对应一个id select type select关键字对应 ...

  2. MySQL中order by语句的实现原理以及优化手段

    相信很多人在面试过程中,总被问到有没有 SQL 调优经验,对于工作经验年限较少的求职者,通常都是在面试之前从网上百度一些答案,提前背熟,然后面试的时候直接将提前背好的答案说出来.笔者作为一名菜鸟,在刚 ...

  3. 【重要】MySQL中order by语句的实现原理以及优化手段

    写在前面 filesort排序算法参考 :https://blog.csdn.net/lijingkuan/article/details/70341176 双路排序:是首先根据相应的条件取出相应的排 ...

  4. 现代移动端网络短连接的优化手段总结:请求速度、弱网适应、安全保障

    1.前言 众所周之,通常我们开发一个移动端应用,会直接调用系统提供的网络请求接口去服务端请求数据,再针对返回的数据进行一些处理,或者使用iOS中的开源AFNetworking/OKHttp这样的网络库 ...

  5. Nginx 是如何实现高并发?常见的优化手段有哪些?

    点击关注公众号,实用技术文章及时了解 来源:toutiao.com/i6698255904053133827 这是一位读者带回来的面试题 Nginx 是如何实现并发的?为什么 Nginx 不使用多线程 ...

  6. 网络品牌推广带大家了解网站中有哪些常见的URL优化手段?

    网络品牌推广中网站想要获得更高的排名和权重,自然是离不开优化人员的努力,坚持做好优化工作,巧用优化手段,探索新的优化技巧等帮助网站欧爱明更好,其中对于URL优化要怎么做才能帮助网站发挥更大的价值呢?下 ...

  7. mysql 优化关键字_Mysql之Explain关键字及常见的优化手段

    Explain关键字字段描述: Explain关键字字段详情描述 id 我们写的查询语句一般都以SELECT关键字开头,比较简单的查询语句里只有一个SELECT关键字,但是下边两种情况下在一条查询语句 ...

  8. ASO优化优缺点各是什么?带你学会常见的优化手段

    ASO优化优缺点各是什么? 优点:获客精准,投入金钱较低 缺点:优化时间长,因为优化标题和关键词修改时,需要应用市场审核. 安卓一般需要一到两天时间. 苹果如果审核被拒的话,有可能需要一周或者更长时间 ...

  9. MySQL 常见的数据库查询性能优化手段

    简单介绍了一些常见MySQL数据库优化手段,比如减少数据访问.使用索引.使用关联查询等等. 文章目录 1 优化数据访问 2 重构查询 2.1 优化子查询 2.2 优化GROUP BY和DISTINCT ...

最新文章

  1. 服务器mysql数据库安装教程视频教程_MySQL数据库管理系统安装实际操作_MySQL教程视频 - 动力节点...
  2. Excel中将时间格式转化成时间戳格式
  3. 【遥感物候】Hants NDVI时间序列谐波分析法数据重构,植被生长季曲线效果可佳(附Hants软件下载)
  4. 阿里P8亲自讲解!java实例变量和类变量
  5. ORA-01552 :非系统表空间 'xxxx'不能使用系统回退段
  6. Hibernate→ORM、简介、第一个Hibernate实现、核心XML配置、Hibernate执行流程、操作数据库对象session、事务、映射XML配置、单例CRUD、get与load
  7. POST的Response数据问题
  8. mysql查询表记录总数sql_SQL Server-快速查询表中的记录总数
  9. 【博弈论】耶鲁大学公开课--博弈论Problem Set 1--Solution
  10. matlab复化梯形公式误差,数值分析复化梯形公式,复化Simpson公式MATLAB程序
  11. 微信小程序 实现拨打电话
  12. 使用 代码 读取 build.gradle 中的自定义配置信息
  13. 对于电脑命令你了解多少?电脑命令大全
  14. C语言学习经典书籍推荐
  15. asp毕业设计——基于asp+access的校园网上购物平台设计与实现(毕业论文+程序源码)——网上购物平台
  16. 中文地址的英文翻译方法
  17. C语言经典100题——求一个二维数组的鞍点
  18. 陌生QQ号聊天,QQ咨询对话框,QQ临时对话框链接代码
  19. [附源码]计算机毕业设计springboot南通大学福利发放管理系统
  20. js对当前表格各列数据的求和

热门文章

  1. C语言实现双色球案例
  2. 洪涝灾害风险评估(持续更新)
  3. speedtest 测速工具具体的上传下载时间段 和 对应 tcp流 定位
  4. Android滑块拼图验证码控件
  5. 数据库前台界面设计html,简单Web界面开发(数据库)
  6. 51c语言 上升沿检测,51上升沿检测电路怎么做
  7. 池建强:如何学习一门编程语言
  8. 【转】程序员的职业生涯该如何过——前锤子科技研发总监池建强
  9. 【毕业季】我们的时光,是最好的时光
  10. 深度学习笔记 5 卷积、池化