Word2Vec模型总结
1.Huffman树的构造
解析:给定n个权值作为n个叶子节点,构造一棵二叉树,若它的带权路径长度达到最小,则称这样的二叉树为最优二叉树,也称Huffman树。数的带权路径长度规定为所有叶子节点的带权路径长度之和。Huffman树构造,如下所示:
(1)将看成是有n颗树的森林;
(2)在森林中选出两个根节点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根节点权值为其左、右子树根节点权值之和;
(3)从森林中删除选取的两颗树,并将新树加入森林;
(4)重复(2)(3)步,直到森林中只剩一棵树为止,该树即为所求的Huffman树。
说明:利用Huffman树设计的二进制前缀编码,称为Huffman编码,它既能满足前缀编码条件,又能保证报文编码总长最短。
2.基于Hierarchical Softmax的模型(CBOW模型)
解析:

其中参数的物理意义,如下所示:
(1)
(2)表示路径中第结点对应的编码(根结点不对应编码)
(3)表示路径中第非叶子结点对应的向量
(4)表示从根结点出发到达对应叶子结点的路径。
(5)表示路径中包含结点的个数。
Hierarchical Softmax基本思想,如下所示:
对于word2vec中基于Hierarchical Softmax的CBOW模型,优化的目标函数,如下所示:
这样得到对数似然函数,如下所示:
将花括号中的内容简记为,如下所示:
使用随机梯度上升法对求偏导,如下所示:
的更新方程,如下所示:
使用随机梯度上升法对求偏导,如下所示:
对于词典中每个词的词向量更新方程,如下所示:
3.基于Hierarchical Softmax的模型(Skip-Gram模型)
解析:
其中,表示当前样本的中心词的词向量。
对于word2vec中基于Hierarchical Softmax的Skip-Gram模型,优化的目标函数,如下所示:
Skip-Gram模型中条件概率函数,如下所示:
这样得到对数似然函数,如下所示:
将花括号中的内容简记为,如下所示:
4.基于Negative Sampling的模型(CBOW模型)
Negative Sampling不再使用Huffman树,而是使用随机负采样,能大幅度提高性能。假定已经选好的负样本子集,定义词的标签[正样本为1,负样本为0],如下所示:
对于给定的正样本,最大化,如下所示:
其中,表示中各词的词向量之和,表示词对应的一个辅助向量,为待训练的参数。简化方程,如下所示:
其中,表示当上下文为时,预测中心词为的概率,同样表示当上下文为时,预测中心词为的概率。
对于给定的语料库,目标函数如下所示:
记,使用随机梯度上升法对求偏导,如下所示:
参数的更新方程,如下所示:
使用随机梯度上升法对求偏导,如下所示:
参数的更新方程,如下所示:
5.基于Negative Sampling的模型(Skip-Gram模型)
对于给定的语料库,目标函数如下所示:
对每一个样本,需要针对中的每一个词进行负采样,但是word2vec源码中只是针对进行了次负采样。它本质上用的还是CBOW模型,只是将原来通过求和累加做整体用的上下文拆成一个一个来考虑。对于给定的语料库,目标函数如下所示:
记。使用随机梯度上升法,对求偏导,如下所示:
的更新方程,如下所示:
使用随机梯度上升法,对求偏导,如下所示:
参数的更新,如下所示:
其中,表示处理词时生成的负样本子集。
6.Negative Sampling算法
(1)带权采样原理
设词典中的每一个词对应一个线段,长度如下所示:
这里表示一个词在语料中出现的次数。现在将这些线段首尾相连地拼接在一起,形成一个长度为1的单位线段。如果随机地往这个单位线段上打点,那么其中长度越长的线段(对应高频词)被打中的概率就越大。
(2)word2vec负采样
记,,这里表示词典中第个词,则以为剖分结点可得到区间上的一个非等距剖分,为其个剖分区间。进一步引入区间上的一个等距离剖分,剖分结点为,其中,具体示意图如下所示:

将内部剖分结点投影到非等距剖分上,则可建立与区间(或)的映射关系,如下所示:
根据映射每次生成一个间的随机整数,就是一个样本。当对进行负采样时,如果采样为,那么就跳过去。
参考文献:
[1]word2vec中的数学原理详解
Word2Vec模型总结的更多相关文章
- word2vec模型原理与实现
word2vec是Google在2013年开源的一款将词表征为实数值向量的高效工具. gensim包提供了word2vec的python接口. word2vec采用了CBOW(Continuous B ...
- wiki中文语料的word2vec模型构建
一.利用wiki中文语料进行word2vec模型构建 1)数据获取 到wiki官网下载中文语料,下载完成后会得到命名为zhwiki-latest-pages-articles.xml.bz2的文件,里 ...
- word2vec模型评估方案
1.word2vec参数详解 · sentences:可以是一个·ist,对于大语料集,建议使用BrownCorpus,Text8Corpus或·ineSentence构建.· sg: 用于设置训练算 ...
- Word2Vec模型参数 详解
用gensim函数库训练Word2Vec模型有很多配置参数.这里对gensim文档的Word2Vec函数的参数说明进行翻译,以便不时之需. class gensim.models.word2vec.W ...
- 【新人赛】阿里云恶意程序检测 -- 实践记录 11.24 - word2vec模型 + xgboost
使用word2vec训练词向量 使用word2vec无监督学习训练词向量,输入的是训练数据和测试数据,输出的是每个词的词向量,总共三百个词左右. 求和:然后再将每行数据中的每个词的词向量加和,得到每行 ...
- 无所不能的Embedding 1 - Word2vec模型详解&代码实现
word2vec是google 2013年提出的,从大规模语料中训练词向量的模型,在许多场景中都有应用,信息提取相似度计算等等.也是从word2vec开始,embedding在各个领域的应用开始流行, ...
- NLP学习(4)----word2vec模型
一. 原理 哈弗曼树推导: https://www.cnblogs.com/peghoty/p/3857839.html 负采样推导: http://www.hankcs.com/nlp/word2v ...
- Word2vec 模型载入(tensorflow)
opts = Options() with tf.Graph().as_default(), tf.Session() as session: model = Word2Vec(opts, sessi ...
- word2vec模型cbow与skip-gram的比较
cbow和skip-gram都是在word2vec中用于将文本进行向量表示的实现方法,具体的算法实现细节可以去看word2vec的原理介绍文章.我们这里大体讲下两者的区别,尤其注意在使用当中的不同特点 ...
- word2vec + transE 知识表示模型
本文主要工作是将文本方法 (word2vec) 和知识库方法 (transE) 相融合作知识表示,即将外部知识库信息(三元组)加入word2vec语言模型,作为正则项指导词向量的学习,将得到的词向量用 ...
随机推荐
- C、C++函数和类库详解(GCC版)(2014-4-23更新)
C.C++函数和类库详解(GCC版)(未完成) 整理者:高压锅 QQ:280604597 Email:280604597@qq.com 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认 ...
- 【Java集合】了解集合的框架体系结构及常用实现类,从入门到精通!
前言 通过Java基础的学习,我们掌握了主要的Java语言基本的语法,同时了解学习了Java语言的核心-面向对象编程思想. 从集合框架开始,也就是进入了java这些基础知识及面向对象思想进入实际应用编 ...
- 飞码LowCode前端技术:如何便捷配置出页面
简介 飞码是京东科技平台研发部研发的低代码产品,可使营销运营域下web页面快速搭建.本文将从三个方面来讲解如何便捷配置出页面,第一部分从数据.事件.业务支持三个方面进行分析,第二部分从模板与页面收藏与 ...
- LabVIEW基于机器视觉的实验室设备管理系统(1)
目录 MySQL数据库 建表 表格转换格式 导入数据库 效果演示 今天,我们就来把慢蜗牛在大二时期做的大创来复现一遍.后续会逐渐更新,带着大家一步一步做出属于自己的管理系统. MySQL数据库 在开始 ...
- 音色逼真、韵律自然的AI人声克隆限时福利!
声音,为数字人注入灵魂. 2023云栖大会上,阿里云视频云接受了CCTV-2财经频道的采访,分享并演示了如何利用云端智能剪辑,一站式完成数字人渲染及视频精编二创. 正如视频开头所呈现的AI重现演员&q ...
- java 405_Http状态405-方法不允许
解决方法: 删除下列代码. super.doGet(req.resp); super.doPost(req.resp); 分析: 405错误一般指请求method not allowed 错误. 请求 ...
- SpringMvc集成开源流量监控、限流、熔断降级、负载保护组件Sentinel
前言:作者查阅了Sentinel官网.51CTO.CSDN.码农家园.博客园等很多技术文章都没有很准确的springmvc集成Sentinel的示例,因此整理了本文,主要介绍SpringMvc集成Se ...
- [ABC262C] Min Max Pair
Problem Statement You are given a sequence $a = (a_1, \dots, a_N)$ of length $N$ consisting of integ ...
- ROW_NUMBER 开窗函数优化方案(Oracle && PostgreSQL 性能比对)
帮朋友优化一条很简单的窗口函数 ROW_NUMBER() OVER() , Oracle 迁移 PostgreSQL项目. 原始SQL和执行计划 STUDENT_BAK 表我模拟的数据,3千万行数据. ...
- .net 温故知新【16】:Asp.Net Core WebAPI 筛选器
一.筛选器 通过使用筛选器可在请求处理管道中的特定阶段之前或之后运行代码. 这即是我们经常听到的面向切面编程AOP(Aspect Oriented Programming)技术,AOP通过预编译方式和 ...