用one-hot向量的方式表示词汇无法得到词语之间的相似性和联系性,这个不符合我们的语言习惯,我们很多词语都是有联系的。

比如:语义上,“橘子”和“苹果”,都是水果。“你”和“你们”只是复数的区别。“go”和“went”是时态的差异。但是都是具有某种相似性的。然鹅,one-hot向量一开始就把各个代词看成了各个类别,之间毫无关联性。除此之外,且维度很高,数据十分稀疏,不利于计算和存储。
因此我们需要一个更加合理的词汇表示方式。

一:Word Embedding
词嵌入最粗浅的理解,每个词被映射到低维连续向量,如下所示:
爷爷: (-0.065, -0.035, 0.019, -0.026, 0.085,…)
奶奶: (-0.019, -0.076, 0.044, 0.021,0.095,…)
珠江: (0.027, 0.013, 0.006, -0.023, 0.014, …)
这个低维度的空间有这样的特征,相似的词映射到相似方向 – 语义相似性被编码了,Cosine相似度衡量方向,相类似的词汇被映射到一个相近的向量位置。这样一来,我们不再使用稀疏且独立的one-hot向量了,而是换成了一个低维度稠密的,且可以表征词汇相似度的一个向量来表征一个词汇。

如上图所示,具有相似性质的词汇可以映射到相似位置的向量位置上,这样能表示出词汇之间的相似性,这就很符合语言习惯了,有利于后续的一些应用,打好基础,这个是很有用的,尤其是在语言词汇上下文中,相似的上下文是希望得到相似的预测结果的。

比如句子预测(语言模型):
句子A:I want one cup of orange juice.
句子B:I want one cup of apple ?.

怎么猜出这个横线的词语是啥?我们能看到上下文的句子是很类似的,如果我们能根据某个语言模型得出,“orange”和“apple”是很类似的向量,那么就可以通过学习第一句话,就能预测出第二句话的内容也是“juice”,因为是很相似的一句话。这个有些类似于小时候小学语文中学习的造词造句,通过类比和相似度进行学习。

再比如NER(命名实体识别)问题:
已知句子A:Tom is an orange farmer. –》Tom是一个人名实体
已知句子B:Mike is an apple farmer. –》Mike是一个人名实体
预测句子C:Robert is a pear cultivator. –》?是一个人名实体
我们能看出来句子的结构很相似,如果我们使用嵌入空间的向量来表示单词,我们会发现,“orange”和“apple”和“pear”是很相近的词语,“farmer”和“cultivator”是相似的词语,那么通过学习前俩句子的标记,我们也就能顺利成章的理解出待预测句子的命名实体了。

如上两个例子就是嵌入空间,词汇相似度带来的好处。

另一方面,假如,我们有词汇10000个,如果使用one-hot向量,这个向量就是10000维度的,整个词汇表就是10000X10000的矩阵V。现在我们想将他们映射到一个低维度稠密的空间,假如每个向量是300维度的,那么嵌入空间的词汇表的大小就是300X10000的矩阵E,大大减少了存储空间。也减少了计算量。这个300的空间维度是自定义的,你想多少就多少,一般是取100~500 之间比较常见了,达到了降维的效果(之前学习的人脸检测中,也是把一个高维度的人脸图像经过一个CNN映射到一个128维度的向量,用这个向量来表示人脸的距离相似度,呐,跟这个是很类似的概念了,都是把高维稀疏且独立的数据映射到低维稠密且具有相似度的空间上)。

从另一个角度来看,在V空间内,每一个原始的one-hot向量v_i都表示一个词汇,在E的低维度嵌入空间,每个e_i也表示同样一个词汇,怎么对应起来呢?由于我们定义他们的词汇的下标i是一样的。就是简单地根据下标look up词汇表的操作了。如果换成数学计算就是。
e_i = E * v_i。
通过上述式子就能简单的从one-hot向量转换到低维空间的表示向量。

词嵌入的好处是,不仅达到了降维的效果,还能表示词语之间的相似程度,因为予以相近的词汇在嵌入向量空间中更加距离接近(欧式距离或者是余弦距离)。

最后问题来了,怎么得到这个空间呢?注意到我们上述的数学计算公式了吧,输入可以是one-hot向量,参数矩阵是E,诶?参数?说到这里是不是有点眉目了,初始化参数,学习参数,梯度下降这些概念是不是就出来了。

我们给一下思路啊,我们得先定义一个语言模型,就是预测句子人话的概率,输入数据就是整个嵌入空间的向量,还要给定上下文,将输入的数据(嵌入空间的向量作为参数)进行模型学习,输出就是应该预测到的那个词语,通过这样的监督学习,最大化这个预测模型,求出参数。下面我们将学习神经网络模型,word2vec模型来学习如何得到这个词向量。具体做法且看后面的学习。

NLP《词汇表示方法(二)词嵌入表示》相关推荐

  1. 机器学习笔记之马尔可夫链蒙特卡洛方法(四)吉布斯采样

    机器学习笔记之马尔可夫链蒙特卡洛方法--吉布斯采样 引言 回顾:MH采样算法 基于马尔可夫链的采样方式 细致平衡原则与接收率 MH采样算法的弊端 吉布斯采样方法 吉布斯采样的采样过程 吉布斯采样的推导 ...

  2. NLP《词汇表示方法(三)word2vec》

    Word2Vec是2013年Google发布的工具,也可以说是一个产生词向量的一群模型组合,关于词向量,也就是嵌入词向量的解释之前也解释了,这里不赘述.该工具主要包含两个词向量的生成模型,跳字模型(s ...

  3. 深入理解深度学习——Word Embedding(六):负采样(Negative Sampling)优化

    分类目录:<深入理解深度学习>总目录 相关文章: · Word Embedding(一):word2vec · Word Embedding(二):连续词袋模型(CBOW, The Con ...

  4. 负采样Negative Sampling

    1.噪声对比估计(Noise contrastive estimation) 语言模型中,根据上下文c,在整个语料库V中预测某个单词w的概率,一般采用softmax形式,公式为: NCE:将softm ...

  5. 自然语言处理中的负采样

    目录 word2vec出现的背景 跳字模型(skip-gram) 连续词袋模型(CBOW) 小结 负采样 具体训练过程 word2vec出现的背景 我们都知道,自然语言处理需要对文本进行编码,将语言中 ...

  6. NLP《词汇表示方法(四)负采样》

    一:负采样 在CBOW和Skip-Gram模型中,最后输出的都是词汇的one-hot向量,假如我们的词汇表的数量是10000,嵌入空间的维度是300,再假设此时是以Skip-Gram模型只预测cont ...

  7. 花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)

    文章目录 0. 前言 1. 重要采样 2. 马尔可夫链蒙特卡罗 MCMC 3. 不同峰值之间的混合挑战 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习( ...

  8. 【NLP】word2vec负采样

    一.理解负采样之前,需要先回顾一下word2vec的训练流程: 1.初始化一个embedding权重矩阵W1(N*D)→2.根据输入单词直接挑出W1矩阵中对应的行向量→3.相加并求平均得一个向量(1* ...

  9. [nlp] 负采样 nce_loss

    论文:http://demo.clab.cs.cmu.edu/cdyer/nce_notes.pdf 参考:求通俗易懂解释下nce loss? - 知乎 参考:(三)通俗易懂理解--Skip-gram ...

  10. NLP-词向量(Word Embedding)-2013:Word2vec模型(CBOW、Skip-Gram)【对NNLM的简化】【层次Softmax、负采样、重采样】【静态表示;无法解决一词多义】

    一.文本的表示方法 (Representation) 文本是一种非结构化的数据信息,是不可以直接被计算的.因为文本不能够直接被模型计算,所以需要将其转化为向量. 文本表示的作用就是将这些非结构化的信息 ...

最新文章

  1. TDD可以驱动设计吗?
  2. 高速串行总线系列(1)8B/10B编码技术
  3. kotlin面向对象之接口、代理与委托、单例模式
  4. Mybatis的核心——SqlSession解读
  5. 【渝粤题库】广东开放大学 社交礼仪 形成性考核
  6. 根据时间戳生成编号_分布式系统的唯一ID生成算法对比
  7. vs2010调试-尝试调试dll源码。
  8. 如何从数据库中筛选出达成指定里程碑节点的项目_如何用共识算法构建区块链共识网络?...
  9. 算法小结——qsort函数
  10. 雷军亲曝小米 10 四大猛料!
  11. 洛谷——P1161 开灯
  12. html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形
  13. smartdns使用指南_SmartDNS配合某插件进阶上网使用教程(基于N1盒子Op系统)
  14. 盘点那些没用的上网小技巧-主流直播平台直播源的获取(适用potplayer)
  15. IT讲师韩顺平:我为什么辞去百万年薪,自己创业?
  16. dwg格式转换pdf
  17. Java程序与设计11_一些题目
  18. 小米十周年,雷军卖情怀
  19. 对不起,这5类人都不适合自学编程
  20. html5 canvas文字标签云3D旋转动画特效

热门文章

  1. 线段树 + 字符串Hash - Codeforces 580E Kefa and Watch
  2. U盘拒绝访问怎么办 快速方法解决U盘问题
  3. 关于中文 Word Simialrity 的一个新思路
  4. SQL2005 学记笔记(9)
  5. 你们公司还没使用HTTP3?赶紧来补一补,学习一下如何在Nginx上配置HTTP3。
  6. 6条shell小技巧,让脚本显得不再业余
  7. Nginx高并发系统内核优化
  8. Oracle/Mysql查看锁表与解锁表
  9. 更新mac系统中homebrew的源,更改为清华大学的源
  10. Dynamics 365中的应用程序介绍