skip-gram负采样

自然语言处理领域中,判断两个单词是不是一对上下文词(context)与目标词(target),如果是一对,则是正样本,如果不是一对,则是负样本。

采样得到一个上下文词和一个目标词,生成一个正样本(positive example),生成一个负样本(negative example),则是用与正样本相同的上下文词,再在字典中随机选择一个单词,这就是负采样(negative sampling)。

下图为cbow和skip-gram模型:

skip-gram模型输入:
举个例子:
我们知道对于每个input word来说,有多个output word(上下文)。例如我们的输入是【熟悉】,上下文是[熟练掌握, java, python, shell],那么【熟悉】这一个batch中就有四个训练样本[熟悉, 熟练掌握], [熟悉, java], [熟悉, python], [熟悉, shell]。
但是神经网络模型只能接受数值输入,所以必须进行one-hot编码,假设我们在训练数据中只能取出10000个不重复的单词作为词汇表,那么我们对每个单词编码都是1 *10000的向量。

模型的输入是10000维的向量,那么输出也是10000维(词汇表的大小)向量,它包含了10000个概率,每一个概率代表着当前词是输入样本中output word的概率大小。如下图,神经网络架构:

对于输出层用softmax,计算量很大,通常用“nagative sampling"(负采样)计算,这样,每个训练样本 只能更新一小部分模型权重,从而减轻计算负担。

当我们用训练样本(input word:“fox”, output word:“quick”)来训练我们的神经网络时,“fox”和“quick”都是经过one-hot编码的。如果我们的vocabulary大小为10000时,在输出层,我们希望“quick”单词那个位置输出1,其余都是0。这些其余我们期望输出0的位置所对应的单词我们成为“negative” word。
当使用负采样时,我们将随机选择一小部分的negative words(比如选5个negative words)来更新对应的权重。我们也会对我们的positive word进行权重更新(上面的例子指的是"quick")

在论文中,作者指出指出对于小规模数据集,选择5-20个negative words会比较好,对于大规模数据集可以仅选择2-5个negative words。

skip-gram负采样原理相关推荐

  1. KDD 2020 | 理解图表示学习中的负采样

    今天给大家介绍的是清华大学的Zhen Yang等人在KDD 2020发表的文章"Understanding Negative Sampling in Graph Representation ...

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

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

  3. tensorflow --batch内负采样

    class NegativeCosineLayer():""" 自定义batch内负采样并做cosine相似度的层 """"&qu ...

  4. Tensorflow之负采样函数Sampled softmax loss

    Tensorflow之负采样函数Sampled softmax loss 谷歌16年出的论文<Deep Neural Networks for Youtube Recommendation> ...

  5. 背景区域为负样本什么意思_词向量-skipgram与负采样

    大纲: 1. onehot vs 分布式表示 2. 分布式表示的全局泛化能力 3. how to learn word2vec - intuition 4. SkipGram 5. SkipGram ...

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

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

  7. 《自然语言处理学习之路》02 词向量模型Word2Vec,CBOW,Skip Gram

    本文主要是学习参考莫烦老师的教学,对老师课程的学习,记忆笔记. 原文链接 文章目录 书山有路勤为径,学海无涯苦作舟. 零.吃水不忘挖井人 一.计算机如何实现对于词语的理解 1.1 万物数字化 1.2 ...

  8. 词向量模型skip-gram以及负采样技术图解

    一.前言 请勿全文复制转载!尊重劳动成果! 在使用词向量之前,我们往往用one-hot向量来表示一个字词,这样有两个缺点: ① 维度过大.使用one-hot向量来表示字词,那么一个字词就需要一个词表大 ...

  9. 基于高频词抽样+负采样的CBOW模型

    深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删. ✨word2vector系列展示✨ 一.CBOW 1.朴素CBOW模型 word2ve ...

最新文章

  1. Ioc 控制反转 实例
  2. call、apply、bind
  3. Unix toolbox注解2之Linux系统状态用户和限制
  4. 区块链BaaS云服务(30) 字节方舟 ByteArk
  5. [转载]js复制内容加版权声明代码
  6. shell中的>/dev/null 2>1(转载)
  7. python apscheduler执行_Python下定时任务框架APScheduler的使用
  8. 1.springboot:入门程序
  9. Qt/C++工作笔记-对vector与QVector中erase操作的进一步认识(区别与联系)
  10. 程序员常用字体(vs2008配色方案)
  11. Fiddler抓包7-post请求(json)
  12. 如何使用ABBYY软件编辑PDF文本
  13. 为什么现在很多人想读博了?
  14. 【林林js笔记】克隆数组的几种方法以及浅克隆深克隆误区
  15. 【Lerna 基本使用】
  16. CPU乱序执行基础 —— Tomasulo算法及执行过程
  17. centos7安装OTRS开源工单管理平台
  18. java 机机接口定义_【JAVA】接口
  19. Android Studio 提示:更新 TKK 失败,请检查网络连接
  20. Android----一个完整的小项目(医疗app)

热门文章

  1. git指令大全git生成压缩包git生成某次commit的补丁(见九)
  2. 基于PMO的企业项目管理组织结构
  3. 03 【PMP】组织结构类型的优缺点和适用范围包括哪些
  4. 使用gdb分析coredump文件排查流媒体服务srs偶发内存泄漏问题
  5. 哈夫曼树的递归实现方法
  6. 10036.简评多媒体协议H.323和SIP
  7. Always look on the bright side of life
  8. 原生js对Ajax封装
  9. chrome浏览器无法登陆问题
  10. [渝粤教育] 盐城工学院 电路 参考 资料