【word2vec】篇一:理解词向量、CBOW与Skip-Gram等知识

【AI理论学习】理解词向量、CBOW与Skip-Gram模型 word2vec是google在2013年推出的一个NLP工具,它的特点是**将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系**。在正式讲解 word2vec 前,还需要对一些基本概念有所了解。CBOW模型,Skip-gram模型 阅读详情


系列文章:

  1. 【word2vec】篇一:理解词向量、CBOW与Skip-Gram等知识
  2. 【word2vec】篇二:基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模型
  3. 【word2vec】篇三:基于Negative Sampling 的 CBOW 模型和 Skip-gram 模型

由于计算机不能直接对各种字符进行运算,为此需要将词的表示进行一些转换。因此,在自然语言处理中,通常需要对输入的语料进行一些预处理:

在这里插入图片描述

其中,如何对词汇进行表示是很关键的问题,糟糕的表示方法容易导致所谓的 “Garbage in, garbage out”。

词向量基础

对词汇的表示,常见的有One-hot represention 和 Distributed Representation 两种形式。

One-hot represention

One-hot represention 将词汇用二进制向量表示,这个向量表示的词汇,仅仅在词汇表中的索引位置处为1,其他地方都为0。例子如下图所示:

在这里插入图片描述

这样的方式表示词汇虽然简单,但是也有如下缺点:

  • 单词的上下文丢失了。
  • 没有考虑频率信息。
  • 词汇量大的情况下,向量维度高且稀疏,占用内存。

Distributed Representation

Distributed Representation 也可以理解为Word Embedding,具体形式为:

在这里插入图片描述

注意到,使用Word Embedding得到的向量维度远小于词汇表的个数。如果将上面的向量在空间中表示,可以得到:

在这里插入图片描述

上图告诉我们,通过词向量之间的距离可以度量他们之间的关系,意思相近的词在空间中的距离比较近。出现这种现象的原因是,我们最后得到的词向量在训练过程中学习到了词的上下文。

那么,Distributed Representation 要如何得到?

  1. 之前介绍的神经网络语言模型可以得到。

  2. 接下来要介绍的 word2vec 就是另一种更受欢迎的方法。

word2vec 基础知识

word2vec 是 Google 于 2013 年推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。在正式讲解 word2vec 前,还需要对一些基本概念有所了解。

CBOW 和 Skip-gram

CBOW 的思想是输入是某一个词 w t w_t wt​的上下文相关的词对应的词向量,而输出就是 w t w_t wt​的词向量。如下图所示:

在这里插入图片描述

可以看到,模型对输入的上下文词汇进行了求和运算,使用求和后的向量表示上下文的信息,然后学习 w t w_t wt​的向量表示。

Skip-Gram 的思想是和 CBOW 的思路是反着来的,即输入是特定的一个词 w t w_t wt​的词向量,而输出是特定词对应的上下文词向量。

在这里插入图片描述

word2vec 根据输入输出形式的不同,可以分为CBOW (Continuous Bag-of-Words) 与Skip-Gram两种模型。

霍夫曼树

一般情况下,词汇表中词汇的数量是非常多的,如果用传统的DNN+Softmax的方式来训练词向量,计算量太大了。于是,word2vec 使用的数据结构是用霍夫曼树来代替隐藏层和输出层的神经元。霍夫曼树的叶子节点起到输出层神经元的作用,叶子节点的个数即为词汇表的小大, 而内部节点则起到隐藏层神经元的作用。具体的内容,我们在之后会讲解。这里首先需要了解下霍夫曼树。

从实际的例子出发,看看如何构造霍夫曼树:

假设有(a,b,c,d,e,f)共6个词汇,词汇的权值用词频表示: w a = 16 , w b = 4 , w c = 8 , w d = 6 , w e = 20 , w f = 3 w_a=16,w_b=4,w_c=8,w_d=6,w_e=20,w_f=3 wa​=16,wb​=4,wc​=8,wd​=6,we​=20,wf​=3,我们假设这6个词汇是6棵只要根节点的森林集合。于是构造步骤如下:

首先是权值最小的b和f合并,得到的新树,根节点权重是7。将b于f这两个树从列表中删除,并且添加刚刚得到的合并的树。此时森林里共有5棵树,根节点权重分别是16,8,6,20,7。此时根节点权重最小的6,7对应的树合并,得到新子树,依次类推,最终得到下面的霍夫曼树:

在这里插入图片描述

如何编码呢?

一般对于一个霍夫曼树的节点(根节点除外),可以约定左子树编码为0,右子树编码为1.如上图,则可以得到c的编码是00。

注意,在word2vec中,约定编码方式和上面的例子相反,即约定左子树编码为1,右子树编码为0,同时约定左子树的权重不小于右子树的权重。

那么霍夫曼树有什么好处呢?

一般得到霍夫曼树后我们会对叶子节点进行霍夫曼编码,由于权重高的叶子节点越靠近根节点,而权重低的叶子节点会远离根节点。这样我们的高权重节点编码值较短,而低权重值编码值较长。这保证的树的带权路径最短,即我们希望越常用的词拥有更短的编码。

有了上面的基础知识,就可以对word2vec进行讲解了。相比于用传统的神经网络的方法来训练词向量,于word2vec提出了有两种改进方法:一种是基于 Hierarchical Softmax 算法的,另一种是基于 Negative Sampling 算法的。

参考文章:

word2vec模型

word2vec 中的数学原理详解

word2vec(一)——skip-gram原理理解 1 什么是word2vec word2vec顾名思义,就是将词(word)映射到(to)实向量(vector),用一一实数向量表示一个词,也被叫做词嵌入(word embedding),也可以认为词向量是词的特征向量。通过这种词嵌入的方式可以将词语映射为可以计算的数学形式,使计算机对自然的语言的计算变得更加可行,同时也赋予了它一定的数学性质,例如可以用向量的相似度来表示两个词的相似度等等。word2vec可以参考这篇文章中有提到https://blog.csdn.net/qq_31267769/artic 阅读详情

相关推荐

关于word2vec词向量化

word2vec最主要的目的就是进行文本向量化 词向量维度通常是50-300维,goole官方提供的一般是用300维,有了词向量就可以用各种方法进行相似度计算;一般维度越高,提供的信息越多,计算结果可靠性也更值得信赖。 普通的向量空间模型没有考虑语义、语法以及上下文联系等信息,忽略了中文文本一词多义的现象,容易造成信息遗漏。而基于词语分布式表达的方法( Word2vec)则能够很好地解决上述问题,将每一个特征词转化为固定维度的向量,再选择适当的方法进行加权,便可得到每一条文本对应的向量。同时很好地解决了

ASS-ASH的博客 6944

【自然语言处理之文本分类】——词嵌入Word2Vec之Skip-Gram

主要介绍自认语言处理之文本分类,词嵌入word2vec常用的skip-gram方法。

weixin_40892064的博客 205

Pytorch实现word2vec(Skip-gram训练方式)

简易版本的word2vec实现 skip-gram原理简述 skip-gram是word2vec的一种训练方法,是核心思想是用中心词预测周围词,相比起用周围词预测中心词的CBOW训练方法,skip-gram训练的“难度更大”,因此训练出来的词向量往往也要比CBOW的要好一些。 从理论到代码最重要的一步就是要认识到在用中心词预测周围词的时候,比如当我们指定窗口为2,那么左右的周围词共有四个,skip-gram的训练过程不是一次性用中心词预测四个词,而是中心词和一个周围词组成一个训练样本,有4个周围词的话

Delusional的博客 6767

【学习笔记】word2vec之skip-gram

计算机要处理一个非结构化的数据,第一步就是要用数学方法描述出这个数据,比如在图像领域,一副图像就是一个的矩阵,但在文本领域呢,如何数学建模描述这个数据呢?一个很容易想到的方法是,用ont-hot编码,向量维度为词汇表的词语个数。无法表示不同单词之间的关联性和相似性;稀疏表示维度过高,造成计算灾难。也就是说,一个单词的意思是由经常出现在它旁边的其他单词决定的!在这种思想的指导下,我们可以为一个单词构建一个稠密向量,具有相似上下文的单词用word vector表示后也是相似的。

女神sha手的博客 492

word2vec: 理解nnlm, cbow, skip-gram

word2vec 论文笔记 1 word rep 怎么表示词的意思? 传统的想法有查字典. 近义词,缺点:主观,费人力, 难记算相似性 one-hot 缺点:维度灾难,正交,无法计算similarity. 那么,通过借鉴近义词,学习将similarity编码到词向量中去. 1.1 one-hot n-gram language model见我之前写的csdn Blog: 1...

nemo的博客 7250

CBOW 和 Skip-gram

根据源码分析 COBW 和 skip-gram 的区别与联系。

weixin_52147110的博客 1553

skip-gram word2vec代码实现

word2vec词向量模型,skip-gram方法

HJ_blog 805

Word2vec之skip-gram模型理解

一、Word2vec背景 传统的词向量一般使用one-hot表示,但会面临两个问题: (1)高维稀疏的向量带来计算成本 (2)不同的词向量无法正交,无法衡量词之间的相似度。 word2vec是一个将词进行低维稠密向量化的工具,可以通过词向量的方式来表征词的语义信息,即通过一个嵌入空间使语义上相似的单词在该空间内距离很近。Embedding就是一个映射,将单词从原先所属的空间中映射到新的多维空间中。word2vec的训练过程可以看成是单隐层的网络结构: 该网络结构输入层是一个one-hot向量,隐层是一个N维

Niceloyoo的博客 3032

word2vec原理(一): 词向量、CBOW与Skip-Gram模型基础

word2vec原理(一): CBOW与Skip-Gram模型基础 word2vec原理(二):基于Hierarchical Softmax的模型 word2vec原理(三): 基于Negative Sampling的模型 目录 1. 词向量基础 1.1One-Hot 编码(独热编码) 1.2 分布式表示:词向量/词嵌入 1.3 词向量可视化 1.4 用词嵌入做迁移学习 2. ...

满腹的小不甘 1万+

一文弄懂Word2Vec之skip-gram(含详细代码)

目录 前言 一、什么是Skip-gram算法 二、目标是什么 三、定义表示法 3.1 one-hot向量 3.2 词向量(word vector) 3.3 单词矩阵 3.4 单词相似度 3.5 softmax函数 3.6算法过程 3.7 求softmax 四、skipgram代码实现 4.1 如何把词转换为向量 4.2 CBOW和Skip-gram的算法实现 Skip-gram的理想实现 Skip-gram的实际实现 4.3 使用Pytorch实现Skip-gram .

Python,数据分析,机器学习,深度学习 1万+

AutoCAD矢量数据导出全攻略:GIS4CAD插件一键转shp/mdb/kml(附安装包)

本文详细介绍了GIS4CAD插件如何高效解决AutoCAD矢量数据向GIS格式转换的难题。通过一键操作,用户可将CAD中的规划图、地形图等无损转换为行业标准的shp、mdb、kml等多种格式,并确保属性完整与坐标准确。文章提供了从插件安装、数据准备到实战导出的全流程指南,是城市规划、测绘等领域专业人士提升数据互操作效率的必备攻略。

a2b3c4d5e的博客 282

Word2vec(CBOW和Skip-Gram)原理理解及模型训练过程推理

word2vec理解 学习nlp最先了解的概念应该就是词嵌入(word embedding)吧,Word2vec是谷歌于2013年提出的一种有效的词嵌入的方法,采用了两种模型(CBOW与skip-gram模型)与两种优化方法(负采样与层次softmax方法)的组合。现在使用Word2vec获得词的向量表达,并将其应用于各种nlp任务中已经非常常见。由于我们要用计算机来完成各种自然语言理解的任务,而...

本体编辑、知识推理与检索 1万+

别再只会用官网例子了!Vxe-Table过滤功能深度自定义:从下拉框到服务端筛选的完整配置流程

本文深入解析Vxe-Table表格组件的过滤功能,从基础UI定制到服务端筛选的完整实现流程。通过实战案例演示如何超越官方示例,实现下拉框、日期范围等复杂过滤交互,并详细讲解混合过滤策略与性能优化技巧,帮助开发者应对大数据量场景下的表格筛选需求。

weixin_42526353的博客 205

Word2vec之CBOW和Skip-gram

通过公式(51)可知,采用分层softmax后,计算输出层的时间复杂度从O(V)变为了O(L(w)),即O(log(V))。CBOW 算法根据上下文单词来预测目标单词,Skip - gram 算法则根据目标单词来预测上下文单词,它们都能够有效地利用文本中的上下文信息来学习单词的表示,从而更好地理解单词在不同语境中的语义。假设词汇表中的单词量为V,当V数量很大时,会极大增加开销、复杂度、降低模型的训练效率,此时的算法复杂度为O(V)。是W的一行,也是W的唯一一个导数不为0的行,是上下文单词的输入向量。

wangxiaobin1314的博客 1301

双三相电机控制避坑指南:为什么你的SVPWM谐波大?四矢量调制实战解析

本文深入解析双三相电机控制中SVPWM谐波大的问题,并提供四矢量调制实战方案。通过分析谐波来源、四矢量调制原理及工程实现步骤,显著降低电流THD至3-5%,提升系统效率2.3个百分点。特别适合需要优化电机控制的工程师参考。

weixin_30645617的博客 397

SAP批量程序(一)-静态批量EX,FX和期间批量MB,WB和TB

SAP批量程序(一)-静态批量和区间批量

weixin_38974136的博客 5476

NLP经典论文:Word2vec、CBOW、Skip-gram 笔记

《Bag of Tricks for Efficient Text Classification》

sinat_39448069的博客 3477

Auto.js实战:从解锁手机到自动阅读的全流程避坑指南(MIUI系统适配版)

本文详细介绍了Auto.js在MIUI系统下的自动化操作全流程优化指南,包括设备唤醒、应用启动、界面交互等关键环节的实战技巧。特别针对MIUI系统的变速检测机制和电源管理策略,提供了有效的避坑方案和性能优化建议,帮助开发者实现从解锁手机到自动阅读的稳定运行。

醉三国 245

NNLM、Word2Vec(CBOW、Skip-gram) 与 BERT:神经网络语言模型的演进与对比

本文系统梳理了语言模型的演进历程:从2003年NNLM首次用神经网络替代统计模型,到2013年Word2Vec通过简化架构实现效率突破(CBOW聚合上下文预测中心词,Skip-gram中心词预测上下文),再到2018年BERT采用深层Transformer实现动态语境建模。模型发展呈现从静态词向量到动态上下文表示、从局部窗口到全局双向理解的趋势。不同模型在计算效率、语义捕捉、一词多义处理等方面各具特点,适用于不同应用场景。这一演进过程反映了自然语言处理从"词预测"到"语言理解&

Frost_Descent的博客 5178

innovus:Patch Wire(补丁线)

1)选中wire ,shift+A使用Edit Route功能,F3打开edit route对话框。线道Create Patch Wire,设置好层次和宽度。在修补一些min area的drc时,会有一些danling wire的drc冒出来,为了避免这些假错,可以使用工具patch wire功能。2)沿着选中的wire画线即可。如下图,patch wire和regular wire是能看出区别的。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1962

【Frida Android】实战篇4:SSL Pinning 证书绑定绕过 Hook 教程(一)

在前两章中,我们学习了中间人抓包与 Hook 抓包的基础方法,这些方法在理想环境下能够有效获取网络请求数据。但在实际的企业级应用中,出于安全防护需求,很多 APP 会启用证书绑定(SSL Pinning)机制。这种机制会让客户端对服务器证书的校验更为严格,导致常规的抓包方法(即使将 BurpSuite/Charles 证书安装到系统信任区)也无法生效。因此,从本章开始,我们将系统学习 SSL Pinning 机制的绕过技术。SSL Pinning(证书绑定)是客户端校验服务器身份的进阶安全机制。

水滴石穿 1610

【自然语言处理(NLP)】Word2Vec 原理及模型架构(Skip-Gram、CBOW)

**Word2Vec** 是一种广泛应用于自然语言处理(NLP)的算法,用于生成**词向量**(Word Embeddings),即将词语映射到一个连续的向量空间中。这些词向量能够捕捉词语之间的语义关系,使得语义相近的词语在向量空间中的位置也相近。Word2Vec 由 Google 的研究团队(Tomas Mikolov 等人)于 2013 年提出。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

【Claude】API Error 通用错误:错误码含义与标准排查流程 bug报错已解决

Claude API 各类错误码速查与标准排查流程。

博客 8243

TensorFlow实现word2vec(Skip-Gram、CBOW)代码记录

最近学习word2vec,发现一些文章写的有点,略。。(>﹏<),而且有些代码有错误,这里记录一些学习代码过程中的问题,这里构建的方式是Skip-Gram,代码不全部写出,只写一些觉得重要的地方。 首先,如果想要了解详细的数学原理,可以移步word2vec中的数学原理,文档中写的非常非常详细,推荐度max。 文章目录1.删除高频停用词2.构建数据集3.生成batch数据4.负采样计算5.关于词向量...

MirrorN的博客 3248

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Word2vec:CBOW和Skip-Gram算法简介

本文主要来自于斯坦福大学CS224d课程笔记note1,文后给出的范例来自于该课程作业assignment1。在完成该作业的时候参考了如下链接中的代码: http://blog.csdn.net/han_xiaoyang/article/details/51760923 参考的意思是,在有些无法理解的地方会阅读这个代码,理解之后自己再实现。 这个文档网上流传很广,但其中是有些笔误的,譬如:nega...

foreseerwang的博客 5982

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

大模型 | 搞懂Embedding - Word2Vec(Skip-Gram和CBOW)

它能够将单词表示为高维空间中的密集向量,从而捕捉单词之间的语义和语法关系。Word2Vec主要包含两种模型:Skip-Gram(跳字模型)和CBOW(Continuous Bag of Words,连续词袋模型)。通过中心词预测上下文词汇,类似于“由点及面”的扩展;而CBOW则是利用上下文词汇预测中心词,类似于“由面定点”的填充。前者注重于从局部到整体的推理,后者则强调整体对局部的反映。

Androiddddd的博客 3506

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: NLP基础:n-gram语言模型和神经网络语言模型
下一篇: 【word2vec】篇二:基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模型
VariableX
博客等级 码龄7年 142粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值