原文地址: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的更多相关文章

  1. word2vec原理(三) 基于Negative Sampling的模型

    word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...

  2. word2vec原理(二) 基于Hierarchical Softmax的模型

    word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...

  3. DL4NLP——词表示模型(三)word2vec(CBOW/Skip-gram)的加速:Hierarchical Softmax与Negative Sampling

    上篇博文提到,原始的CBOW / Skip-gram模型虽然去掉了NPLM中的隐藏层从而减少了耗时,但由于输出层仍然是softmax(),所以实际上依然“impractical”.所以接下来就介绍一下 ...

  4. NLP从词袋到Word2Vec的文本表示

    在NLP(自然语言处理)领域,文本表示是第一步,也是很重要的一步,通俗来说就是把人类的语言符号转化为机器能够进行计算的数字,因为普通的文本语言机器是看不懂的,必须通过转化来表征对应文本.早期是基于规则 ...

  5. 学习笔记CB009:人工神经网络模型、手写数字识别、多层卷积网络、词向量、word2vec

    人工神经网络,借鉴生物神经网络工作原理数学模型. 由n个输入特征得出与输入特征几乎相同的n个结果,训练隐藏层得到意想不到信息.信息检索领域,模型训练合理排序模型,输入特征,文档质量.文档点击历史.文档 ...

  6. word2vec改进之Negative Sampling

    训练网络时往往会对全部的神经元参数进行微调,从而让训练结果更加准确.但在这个网络中,训练参数很多,每次微调上百万的数据是很浪费计算资源的.那么Negative Sampling方法可以通过每次调整很小 ...

  7. 词表征 3:GloVe、fastText、评价词向量、重新训练词向量

    原文地址:https://www.jianshu.com/p/ca2272addeb0 (四)GloVe GloVe本质是加权最小二乘回归模型,引入了共现概率矩阵. 1.基本思想 GloVe模型的目标 ...

  8. 词嵌入之Word2Vec

    词嵌入要解决什么问题 在自然语言系统中,词被看作最为基本的单元,如何将词进行向量化表示是一个很基本的问题,词嵌入(word embedding)就是把词映射为低维实数域向量的技术. 下面先介绍几种词的 ...

  9. word2vec 中的数学原理具体解释(五)基于 Negative Sampling 的模型

      word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注. 因为 word2vec 的作者 Tomas ...

随机推荐

  1. JSON格式提取相同属性的某个值

    [ {UID:"222",value:"111"}, {UID:"222",value:"103"}, {UID:&qu ...

  2. python 25 类的成员

    目录 1. 类的私有成员 -- __ 1.1 类的私有静态属性 1.2 类的私有方法 1.3 对象的私有方法 2. 类的其他方法 2.1 类方法 @classmethod 2.2 静态方法 @stat ...

  3. 你绝对不知道的head标签

    先来梳理一下本文的目录结构 现在我将详解head标签和它六个子标签的属性和作用,请耐心看完,会有很大的收获哦! 一.head标签 可选属性: 属性 值 描述 profile URL 一个由空格分隔的 ...

  4. JS核心之DOM操作 下

    目录: 1.节点类型之Document类型 2.节点类型之Element类型 3.节点类型之Text类型 4.综合小示例 -- 动态添加外部样式文件 5.查找元素的扩展方法 接上篇,我们先来看常用的三 ...

  5. maven构建springmvc过程中遇到的一些问题

    1.spring的配置文件,xsd不要配版本号 2.spring配置datasource的三种方式 3.springmvc与spring扫描注解的冲突 4.NoClassDefFoundError: ...

  6. SyntaxError: invalid syntax : if not 0 <= time_low < 1<<32L:

    报错 Traceback (most recent call last): File "D:/PyCharm 5.0.3/WorkSpace/2.NLP/8.高阶实践/1.PipelineQ ...

  7. 【HDU5409】CRB and Graph 边双联通 子树最值

    HDU # 题意 有一个简单图,n个点,m条边.对于每条割边,求出删去这条边后,在两个联通块中各取一个u,v.使得u<v,并且u尽量大而v尽量小. # 思路 求出边双联通是肯定的. 答案的限制条 ...

  8. BZOJ4034 [HAOI2015]树上操作+DFS序+线段树

    参考:https://www.cnblogs.com/liyinggang/p/5965981.html 题意:是一个数据结构题,树上的,用dfs序,变成线性的: 思路:对于每一个节点x,记录其DFS ...

  9. ZOJ -2112 Dynamic Rankings 主席树 待修改的区间第K大

    Dynamic Rankings 带修改的区间第K大其实就是先和静态区间第K大的操作一样.先建立一颗主席树, 然后再在树状数组的每一个节点开线段树(其实也是主席树,共用节点), 每次修改的时候都按照树 ...

  10. 天梯杯 L2-010. 排座位

    L2-010. 排座位 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位. ...