词表征 2:word2vec、CBoW、Skip-Gram、Negative Sampling、Hierarchical Softmax
原文地址:https://www.jianshu.com/p/5a896955abf0
2)基于迭代的方法直接学
相较于基于SVD的方法直接捕获所有共现值的做法,基于迭代的方法一次只捕获一个窗口内的词间共现值。
好的语言模型中,有意义的句子高概率,无意义的句子即使语法正确也低概率。
在得到输入词向量和输出词向量后如何得到最终词向量?常取输入词向量(word2vec)、拼接、相加(GloVe)等。
主要有以下3种模型算法:
- word2vec
- GloVe
- fastText
(三)word2vec
基本设计:1层隐藏层的神经网络结构,隐藏层使用线性激活函数。why?
一是因为快;二是因为训练词向量可以被认为是提取特征,后续可能会使用deep结构,现阶段没有必要deep。
1、Continuous Bag of Words(CBoW)
根据上下文词预测中心词。
1)前向过程
希望\(\hat{y}\)与\(y\)即\(x_c\)尽可能相同。
2)反向过程
2、Skip-Gram
根据中心词预测上下文词。
引入strong/naive条件独立假设:给定中心词,所有输出词间完全独立。
1)前向过程
2)反向过程
CBoW和Skip-Gram都存在着的问题:代价函数中的softmax需要对\(|V|\)进行求和,时间复杂度为\(O(|V|)\),当\(|V|\)很大时,代价很高。
解决方式:Negative Sampling和Hierarchical Softmax。
3、Negative Sampling
负采样的基本思想是用采样一些负例的方式近似代替遍历整个词汇。以\(P_n(w)\)的概率分布进行采样,\(P_n(w)\)与词汇词频相匹配。目前看,最佳\(P_n(w)=\frac{count(w)^{\frac{3}{4}}}{\sum_{w\in V}count(w)^{\frac{3}{4}}}\),实现了低频词被采样概率的上升比例高于高频词。采样前,将长度为1的线段分成\(M\)等份,其中,\(M>>|V|\)。这样子可以保证每个词对应的线段都会被划分成不同的小块,\(M\)份的每一份都会落在某一个词对应的线段上。每个词对应的线段长度为\(len(w)=P_n(w)\)。采样时,从\(M\)个未知
中采样出\(Neg\)个位置即可,对应线段所属词即为负例词。word2vec中\(M\)默认为\(10^8\),与Skip-Gram合作时,采样到中心词就跳过。
1)目标函数
2)反向过程
(1)CBoW
(2)Skip-Gram
4、Hierarchical Softmax
Hierarchical Softmax中无词的输出表示,词为输出词的概率等于从根节点走到词叶子节点的概率,代价由\(O(|V|)\)变为\(O(log_2|V|)\)。Hierarchical Softmax中不更新每个词的输出词向量,更新的是二叉树上节点对应的向量。这个方法的速度由二叉树的构建方式以及词到叶子节点的分配方式决定。其中,Huffman树尤其适合,因为其分配给高频词短路径,使其花费更短时间被找到。
1)目标函数
2)反向过程
(1)CBoW
(2)Skip-Gram
5、word2vec小结
1)CBoW vs Skip-Gram
- CBoW更快一些。CBoW对于高频词效果较好,低频词常受到较少注意。窗口大小常5左右。
- Skip-Gram更慢一些。Skip-Gram对于低频词效果更好,小数据下表现依旧好。窗口大小常10左右。
对于"Yesterday was really a ____ day.":
CBoW认为最可能是beautiful/nice,delightful受到较少注意;Skip-Gram则不会将delightful与beautiful/nice比较,而是作为一组新观测值。
2)Hierarchical Softmax vs Negative Sampling
- Hierarchical Softmax
优点是对低频词的效果更好。因为表示低频词的叶子节点会不可避免地继承祖先节点的向量表示,这个祖先节点可能会受到其他高频词的影响。
缺点是如果所需要的输出词很生僻,得一直往下走很久。 - Negative Sampling
对高频词效果更好。向量维度较低时效果更好,维度高时近似误差会比较大。
word2vec对句子进行处理时还采用了高频词亚采样的trick,其能够带来2~10倍的性能提升,并且能够提升低频词的表示精度。具体来说,\(w_i\)被丢弃的概率\(P(w_i)=1-\sqrt{\frac{sample}{freq(w_i)}}\)。\(sample\)常取值\(10^{-5}\)~\(10^{-3}\),\(sample\)越小,达到相同的丢弃率所需的\(frequency\)则越小,即更多词会被丢弃。高频词亚采样的目的是以一定的概率拒绝高频词,使得低频词有更多的出境率。低频词被丢弃的概率低,高频词被丢弃的概率高。
词表征 2:word2vec、CBoW、Skip-Gram、Negative Sampling、Hierarchical Softmax的更多相关文章
- word2vec原理(三) 基于Negative Sampling的模型
word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...
- word2vec原理(二) 基于Hierarchical Softmax的模型
word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...
- DL4NLP——词表示模型(三)word2vec(CBOW/Skip-gram)的加速:Hierarchical Softmax与Negative Sampling
上篇博文提到,原始的CBOW / Skip-gram模型虽然去掉了NPLM中的隐藏层从而减少了耗时,但由于输出层仍然是softmax(),所以实际上依然“impractical”.所以接下来就介绍一下 ...
- NLP从词袋到Word2Vec的文本表示
在NLP(自然语言处理)领域,文本表示是第一步,也是很重要的一步,通俗来说就是把人类的语言符号转化为机器能够进行计算的数字,因为普通的文本语言机器是看不懂的,必须通过转化来表征对应文本.早期是基于规则 ...
- 学习笔记CB009:人工神经网络模型、手写数字识别、多层卷积网络、词向量、word2vec
人工神经网络,借鉴生物神经网络工作原理数学模型. 由n个输入特征得出与输入特征几乎相同的n个结果,训练隐藏层得到意想不到信息.信息检索领域,模型训练合理排序模型,输入特征,文档质量.文档点击历史.文档 ...
- word2vec改进之Negative Sampling
训练网络时往往会对全部的神经元参数进行微调,从而让训练结果更加准确.但在这个网络中,训练参数很多,每次微调上百万的数据是很浪费计算资源的.那么Negative Sampling方法可以通过每次调整很小 ...
- 词表征 3:GloVe、fastText、评价词向量、重新训练词向量
原文地址:https://www.jianshu.com/p/ca2272addeb0 (四)GloVe GloVe本质是加权最小二乘回归模型,引入了共现概率矩阵. 1.基本思想 GloVe模型的目标 ...
- 词嵌入之Word2Vec
词嵌入要解决什么问题 在自然语言系统中,词被看作最为基本的单元,如何将词进行向量化表示是一个很基本的问题,词嵌入(word embedding)就是把词映射为低维实数域向量的技术. 下面先介绍几种词的 ...
- word2vec 中的数学原理具体解释(五)基于 Negative Sampling 的模型
word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注. 因为 word2vec 的作者 Tomas ...
随机推荐
- 【阿里云IoT+YF3300】3. Alink物模型之属性上传和下发
[名词解释]属性:设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等.属性支持 GET 和 SET 请求方式.应用系统可发起对属性的读取和设置请求. 在上一篇文章& ...
- Postman系列五:Postman中电商网站cookie、token检验与参数传递实战
一:Postman中电商网站cookie实战 Postman接口请求使用cookie两种方式: 1.直接在header(头域)中添加cookie,适用于已知请求cookie头域的情况 2.使用Post ...
- HTML连载33-背景定位
一.背景定位 同一个标签可以同时设置背景颜色和背景图片,如果颜色和图片同时存在,那么图片会覆盖颜色 1.在CSS中有一个叫做background-position:属性,就是专门用来控制背景图片的位置 ...
- MyBatis 封装Map,返回不同实体的集合对象
现在有一个需求,就是从100个表中获得任意表中的数据,按照正常的思维模式和处理方式, 我们首先会创建100个实体类(累死!),然后通过resultType一一对应实体类,这种方式简直... 那么我们 ...
- ZAO 换脸不安全?用 python 轻松实现 AI
最近两天一款名为 「ZAO」 的 App 刷爆了朋友圈,它的主打功能是 AI 换脸,宣称「只需一张照片,就能出演天下好戏」 : 现实中不能实现当明星的梦,在这个 App 里你可以,想演谁演谁.新鲜.好 ...
- Java中指令重排
/** * 指令重排:代码执行顺序与预期不一致 (发生在前后行代码无联系时) * 目的:提高性能 * */ public class HappenBefore { private static int ...
- 2019DX#2
Solved Pro.ID Title Ratio(Accepted / Submitted) 1001 Another Chess Problem 8.33%(1/12) 1002 Beau ...
- CF EDU - E. Lomsat gelral 树上启发式合并
学习:http://codeforces.com/blog/entry/44351 E. Lomsat gelral 题意: 给定一个以1为根节点的树,每个节点都有一个颜色,问每个节点的子树中,颜色最 ...
- codeforces 572 C. Lengthening Sticks(数学)
题目链接:http://codeforces.com/contest/572/problem/C 题意:给出a,b,c,l要求a+x,b+y,c+z构成三角形,x+y+z<=l,成立的x,y,z ...
- CodeForces 779D. String Game(二分答案)
题目链接:http://codeforces.com/problemset/problem/779/D 题意:有两个字符串一个初始串一个目标串,有t次机会删除初始串的字符问最多操作几次后刚好凑不成目标 ...