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

word2vec原理(一) CBOW与Skip-Gram模型基础

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

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

    在上一篇中我们讲到了基于Hierarchical Softmax的word2vec模型,本文我们我们再来看看另一种求解word2vec模型的方法:Negative Sampling。

1. Hierarchical Softmax的缺点与改进

    在讲基于Negative Sampling的word2vec模型前,我们先看看Hierarchical Softmax的的缺点。的确,使用霍夫曼树来代替传统的神经网络,可以提高模型训练的效率。但是如果我们的训练样本里的中心词$w$是一个很生僻的词,那么就得在霍夫曼树中辛苦的向下走很久了。能不能不用搞这么复杂的一颗霍夫曼树,将模型变的更加简单呢?

    Negative Sampling就是这么一种求解word2vec模型的方法,它摒弃了霍夫曼树,采用了Negative Sampling(负采样)的方法来求解,下面我们就来看看Negative Sampling的求解思路。

2. 基于Negative Sampling的模型概述

3. 基于Negative Sampling的模型梯度计算

    

4. Negative Sampling负采样方法

    现在我们来看看如何进行负采样,得到neg个负例。word2vec采样的方法并不复杂,如果词汇表的大小为$V$,那么我们就将一段长度为1的线段分成$V$份,每份对应词汇表中的一个词。当然每个词对应的线段长度是不一样的,高频词对应的线段长,低频词对应的线段短。每个词$w$的线段长度由下式决定:

  

    在采样前,我们将这段长度为1的线段划分成$M$等份,这里$M >> V$,这样可以保证每个词对应的线段都会划分成对应的小块。而M份中的每一份都会落在某一个词对应的线段上。在采样的时候,我们只需要从$M$个位置中采样出$neg$个位置就行,此时采样到的每一个位置对应到的线段所属的词就是我们的负例词。

    在word2vec中,$M$取值默认为$10^8$。

5.  基于Negative Sampling的CBOW模型

6.  基于Negative Sampling的Skip-Gram模型

7.  Negative Sampling的模型源码和算法的对应  

 (欢迎转载,转载请注明出处。欢迎沟通交流: liujianping-ok@163.com) 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

资源 | 机器学习、NLP、Python和Math最好的150余个教程(建议收藏)

编辑 | MingMing 尽管机器学习的历史可以追溯到1959年,但目前,这个领域正以前所未有的速度发展。最近,我一直在网上寻找关于机器学习和NLP各方面的好...

3396
来自专栏文武兼修ing——机器学习与IC设计

基于Python的Rosenblatt感知器模型Rosenblatt感知器Python实现结果

Rosenblatt感知器 Rosenblatt感知器是一种最简单的感知器模型,即输出值为输入与对应权值相乘后取和再累加并加上偏置后通过符号函数的结果,即:Ou...

3409
来自专栏机器之心

入门 | 这是一份文科生都能看懂的线性代数简介

选自Medium 作者:Niklas Donges 机器之心编译 参与:Tianci LIU、思源 线性代数的概念对于理解机器学习背后的原理非常重要,尤其是在深...

3349

在Python中用一个长短期记忆网络来演示记忆

长期短期记忆(LSTM)网络是一种能够在长序列上学习的递归神经网络。

67411
来自专栏专知

深度学习TensorFlow实现集合

【导读】该项目使用Tensflow实现了一些一些深度学习的算法,帮助新手更快的上手。

1702
来自专栏机器学习实践二三事

一个验证码破解的完整演示

这篇博客主要讲如何去破解一个验证码,for demo我会使用一个完整的工程来做,从原始图片到最终的识别结果,但是破解大部分的验证码其实是个很费力的活,对技术要求...

9438
来自专栏CDA数据分析师

收藏 | 机器学习、NLP、Python和Math最好的150余个教程

? 尽管机器学习的历史可以追溯到1959年,但目前,这个领域正以前所未有的速度发展。最近,我一直在网上寻找关于机器学习和NLP各方面的好资源,为了帮助到和我有...

2315
来自专栏IT派

TensorFlow快餐教程:程序员快速入门深度学习五步法

作为一个程序员,我们可以像学习编程一样学习深度学习模型开发。我们以 Keras 为例来说明。

1445
来自专栏数说工作室

文本分析 | 常用距离/相似度 一览

这个系列打算以文本相似度为切入点,逐步介绍一些文本分析的干货,包括分词、词频、词频向量、TF-IDF、文本匹配等等。 第一篇中,介绍了文本相似度是干什么的; 第...

4734
来自专栏人工智能头条

TensorFlow Wide And Deep 模型详解与应用

1.1K3

扫码关注云+社区

领取腾讯云代金券