1. PV-DM

在我们的句(Paragraph)向量模型中,每一个句子都被映射成一个独立的向量,这个句向量作为矩阵 的一列;同时,每一个词也被映射成一个独立的向量,这个词向量作为矩阵 的一列。对这个句向量和这些词向量求平均或者首尾相连,用来预测文本中的下一个词。在本研究的试验中,我们选用首尾相连来组合这些矩阵。
严格的说,与公式1(Word2vec的公式)相比,唯一的不同点在于这里从 和 两个矩阵中构造 。
句子的标识(Token)被当做另外一个“词”看待。它扮演一个“Memory”的角色,用来记忆当前文本或文章主题中漏掉了什么。因此,我们把这个模型称为“句向量的分布记忆模型”(PV-DM: Distributed Memory Model of Paragraph Vectors)。
上下文是固定长度的,从句子的一个滑动窗口中取样。句向量被限制在一个句子的所有上下文里面,但不超越句子。但是词向量矩阵 是超越句子的。比如说,”powerful”的词向量也对所有的句子有效。
我们通过随机梯度下降法来训练这些句向量和词向量,在此过程中通过反向传播获得梯度。在随机梯度下降的每一步,都可以从一个随机的句子中抽取一个定长的上下文,如图2从网络中计算出梯度误差,然后更新模型的参数。
在预测阶段,需要执行一个“推断(inference)”步骤计算新句子的句向量。他也是通过梯度上升来获取。在这个阶段,其余的模型参数、词向量矩阵 和 softmax 权重是固定的。
假设语料库中有 个句子,字典里有 个词汇;我们试图将每一个句子映射到 维空间,每一个词映射到 维空间,于是这个模型就有总共    个参数(包括softmax参数)。即使句子的数量会随着 的增大而增大,训练中的更新还是稀疏且高效。

图2:这是一个句向量框架。这个框架类似于图1中的框架。唯一不同点在于增加了一个句子标识(Token),这个标识被映射到矩阵 的一个向量里。在这个模型里,通过对上下文三个词向量的首尾相接或求均值,来预测第四个词。这个句向量表示从当前上下文而来的缺失的信息,被当做一个关于句子主题的存储器。

经过训练,这些句向量就可以当做句子的特征使用。我们可以把这些特征直接用于传统的机器学习技术,比如逻辑回归、支持向量机或者K-means聚类。
总而言之,这个算法有两个关键阶段:1)通过训练获得词向量矩阵 , softmax权重 , b 以及 句向量 从已知的句子里;2)第二个阶段是推断阶段,用于取得一个新句子(没有出现过)的句向量 ,通过增加更多的列在矩阵 里,并保持 , , 不变的情况下在矩阵 上进行梯度下降。我们使用 通过一个基础的分类器给句子加上标签。
句向量的优点: 句向量的一个重要的优点在于,它的训练集是没有被加上标签的数据,因此它可以被用于一些训练样本标签不足的任务。
句向量也解决了词袋模型的一些关键的弱点。第一,它传承了词向量的一个重要特性——词和词之间的语义。在语义里,“强有力”比起“巴黎”来说,和“强壮”更接近。句向量的第二个优点在于它考虑到了“词序(word order)”,n-gram模型则需要设置一个较大的n才能做到。这一点很重要,因为n-gram模型保存了句子中大量的信息,包括词序。也就是说,我们的模型优于词袋n-gram模型因为后者会表现出一个极高的维度,这会影响效率。

2. PV-DBOW

上面的方法讨论了在一个文本窗口内,通过句向量和词向量的首尾相接来预测下一个词。另一种方法不把上下文中的词作为输入,而是强制这个模型在输出中从句子中随机抽取词汇来进行预测。实际上,其意义在于在每一个随机梯度下降的循环中,我们抽取一个文本窗口,然后从这个文本窗口中抽取一个词,然后通过一个分类任务得到句向量。这项技术如图3所示。我们把这个版本称为句向量的分布词袋(PV-DBOW: Distributed Bag of Words version of Paragraph Vector)版本,相比于上一节提到的PV-DM版本。

图3:句向量的分布词袋版本。在这个版本中,句向量被训练出来,用来预测在一个小窗口中的词汇。

除了在概念上简单以外,这个模型只需要存储少量的数据。相比于上一个模型需要存储softmax权重和词向量,这个模型只需要存储softmax权重。同样的,这个模型也近似于Skip-gram模型。
在我们的试验中,每一个句向量都是两个向量的组合:一个通过PV-DM训练,另一个通过PV-DBOW训练。PV-DM能够很好地执行多种任务,但是它结合PV-DBOW后,常常能够更加出色完成任务,此我们强烈推荐这种做法。

参考链接:

1.Doc2Vec的论文:

https://arxiv.org/pdf/1405.4053.pdf

2. 转载来源

https://blog.csdn.net/lihaitao000/article/details/52298922

Doc2Vec句向量模型PV-DM与PV-DBOW的理解相关推荐

  1. 深度学习--word2vec和doc2vec词向量模型

    今天在这两个模型的理解上出现了疑问,现在先贴上这些资料解释,后面把代码跑通了再来贴代码(biu~). word2vec&doc2vec词向量模型 Word2vec和Doc2vec原理理解并结合 ...

  2. 中文分词word2vec和doc2vec句向量的理解

    ** Doc2vec ** 1.Word2vec和Doc2vec做Word Embedding和Sentence/Document EMbedding. 2.NLP中最直观常用的一种词表示方法是one ...

  3. cnn 句向量_快速理解句向量模型,深度好文,一定要看

    微信文章排版好看一些,在这里:https://mp.weixin.qq.com/s?__biz=MzIyNTY1MDUwNQ==&mid=2247483961&idx=1&sn ...

  4. NLP词向量和句向量方法总结及实现

    目前各种词向量是很多的,很有必要做一个综合性的总结.在CSDN上一看已经有作者做过这部分的工作了.觉得写的非常棒,于是就转载过来了,原文地址:NLP词向量和句向量方法总结及实现,具体内容如下: 一.W ...

  5. CoSENT:比Sentence-BERT更有效的句向量方案

    ©PaperWeekly 原创 · 作者 | 苏剑林 单位 | 追一科技 研究方向 | NLP.神经网络 学习句向量的方案大致上可以分为无监督和有监督两大类,其中有监督句向量比较主流的方案是 Face ...

  6. 【NLP】11其它句向量生成方法——Tf-idf模型、腾讯AI实验室汉字词句嵌入语料库求平均生成句向量

    其它句向量生成方法 1. Tf-idf训练 2. 腾讯AI实验室汉字词句嵌入语料库求平均生成句向量 小结 Linux服务器复制后不能windows粘贴? 远程桌面无法复制粘贴传输文件解决办法:重启rd ...

  7. Bert模型学习之句向量的简单应用

    Bert模型学习之预训练模型的简单应用 上文讲到,让自己的机器可以同时安装两个版本的python3.x,下面我们就可以正式运行Bert模型. 一.框架安装 1.首先切换到版本3.6的文件夹下 2.安装 ...

  8. 文本深度表示模型——word2vecdoc2vec词向量模型(转)

    from: https://www.cnblogs.com/maybe2030/p/5427148.html 阅读目录 1. 词向量 2.Distributed representation词向量表示 ...

  9. 文本深度表示模型—word2vecdoc2vec词向量模型

    来源:http://www.dataguru.cn/article-9478-1.html 深度学习掀开了机器学习的新篇章,目前深度学习应用于图像和语音已经产生了突破性的研究进展.深度学习一直被人们推 ...

最新文章

  1. 【Keras】Linux一个shell脚本安装python、keras、tensorflow、anaconda等~
  2. linux降低屏幕亮度,降低屏幕亮度,减缓眼疲劳 (linux/windows/firefox/android)
  3. php的Traits属性以及基本用法
  4. oracle--表,用户,授权
  5. Exp3 免杀原理与实践 20164309
  6. oracle12c复制bdf,Oracle 备份与恢复学习笔记(12)
  7. QGraphicsView加入到布局,所在的窗口变大,视图和场景都变大,使场景中的矩形也变大
  8. 信号与系统 matlab实验报告,信号与系统 MATLAB实验报告
  9. vue rem移动端适配
  10. 整整240套Axure原型设计元件库 组件库 控件库分享
  11. Local-DPP论文阅读笔记
  12. 读书会 | 第一季读书会《蛤蟆先生去看心理医生》完美收官啦
  13. linux下rtc时间不准,Linux中系统时间和RTC时间的关系
  14. 写代码时切换insert键,用来解决光标小黑块问题
  15. 【数据结构与算法】前端JS实现栈
  16. 论文投稿指南——中文核心期刊推荐(新闻事业)
  17. 解决打开文件、文件夹、拖拽复制删除时鼠标卡顿
  18. 音响功放用R型变压器有什么好处?
  19. 2. Fortran的Hello world-开始Fortran的编程
  20. 设计模式之适配器模式 :外部系统接口的使用

热门文章

  1. Python类与对象最全总结大全(类、实例、属性方法、继承、派生、多态、内建函数)
  2. MacOS编译LibreCAD
  3. 基于Matlab遗传算法工具箱解决物流中心选址
  4. print list Reversely
  5. php网页弹出输入对话框,php和js实现弹出对话框实例分享
  6. 2.天猫商品数据爬虫(已模拟登录)
  7. hdu2094 集合set
  8. linux越狱amd卡代码,为Linux内核贡献27.5万行代码中:AMD意外泄漏下一代APU信息
  9. CDS视图的基本语法,函数以及数量,货币类型转换
  10. 什么是UI?就业前景如何?