word2vec

Word2Vec中文语料实战 1、环境配置             本人使用的是MacBook +Python2.7.11             首先,安装NLP工具包gensim,这里包含了今天的主角:Word2Vec pip install--upgrade gensim             其次,安装中文分词工具包jieba pip installjieba 2、语料库说明 阅读详情

word2vec简介

Word2vec是Google实现word embedding的一种具体的方式。因为速度快效果好,而广为人知。 而Word embedding是一个普适的概念或者任务,即用向量来表示字或词,一般也称为词嵌入。

核心公式:

简单来说,Word2Vec就是“两个训练方案+两个提速手段”,两个训练方案见下表,两个提速手段分别为HS(Hierarchical Softmax )、负采样(Negative Sampling)。 我们设置一个大小为 t 的窗口,在数据集里随机抽取一个中心词Wt,这个词的前c个和后 c个单词构成该词的上下文,即:
c o n t e x t ( W ) = ( W t − c , . . . , W t − 2 , W t − 1 ; W t + 1 , W t + 2 , . . . , W t + c ) context(W)=(Wt−c ,...,Wt−2,Wt−1;Wt+1,Wt+2,...,Wt+c) context(W)=(Wt−c,...,Wt−2,Wt−1;Wt+1,Wt+2,...,Wt+c)

model训练方法说明目标函数
skip-gram神经网络最大化 p ( w / c o n t e x t ( w ) ) p(w/context(w)) p(w/context(w)),即用中心词w的上下文去预测 w最大化均值“对数似然概率” 见式①、式② ,式①中两个词之间的 skip-gram 概率 p ( w t + j / w t ) p(wt+j/wt) p(wt+j/wt) 可以定义为式②,式②分子是把w对应的词向量和 context(w) 里的某个词对应的词向量做内积,分母是把 w对应的词向量和词汇表中的所有词向量做内积
CBOW神经网络最大化 p ( c o n t e x t ( w ) / w ) p(context(w)/w) p(context(w)/w),即用中心词w去预测其上下文与skip-gram类似, 调换Wt+j和Wt的位置即可

①
在这里插入图片描述

②
在这里插入图片描述

算法十问

  1. 在小数据集中,Skip-gram和CBOW哪种表现更好?

Skip-gram是用一个center word预测其context里的word;而CBOW是用context里的所有word去预测一个center word。显然,前者对训练数据的利用更高效(构造的数据集多),因此,对于较小的语料库,Skip-gram是更好的选择。

  1. 为什么要使用HS(Hierarchical Softmax )和负采样(Negative Sampling)?

两个模型的原始做法都是做内积,经过 Softmax 后得到概率,因此复杂度很高。假设我们拥有一个百万量级的词典,每一步训练都需要计算上百万次词向量的内积,显然这是无法容忍的。因此人们提出了两种较为实用的训练技巧,即HS和Negative Sampling。

  1. 介绍一下HS(Hierarchical Softmax )

HS 是试图用词频建立一棵哈夫曼树,那么经常出现的词路径会比较短。树的叶子节点表示词,共词典大小多个,而非叶子结点是模型的参数,比词典个数少一个。要预测的词,转化成预测从根节点到该词所在叶子节点的路径,是多个二分类问题。本质是把 N 分类问题变成 log(N)次二分类

  1. 介绍一下负采样(Negative Sampling)

把原来的 Softmax 多分类问题,直接转化成一个正例和多个负例的二分类问题。让正例预测 1,负例预测 0,这样子更新局部的参数。

  1. 负采样为什么要用词频来做采样概率?

可以让频率高的词先学习,然后带动其他词的学习。

  1. 对比 Skip-gram 和 CBOW

CBOW 会比Skip-gram训练速度更快,因为前者每次会更新 context(w) 的词向量,而 Skip-gram 只更新核心词的词向量。 Skip-gram 对低频词效果比 CBOW好,因为Skip-gram 是尝试用当前词去预测上下文,当前词是低频词还是高频词没有区别。但是 CBOW 相当于是完形填空,会选择最常见或者说概率最大的词来补全,因此不太会选择低频词。

  1. 对比字向量和词向量

字向量可以解决未登录词的问题,以及可以避免分词;词向量包含的语义空间更大,更加丰富,如果语料足够的情况下,词向量是能够学到更多的语义信息。

  1. 如何衡量word2vec得出的词/字向量的质量?

在实际工程中一般以word embedding对于实际任务的收益为评价标准,包括词汇类比任务(如king – queen = man - woman)以及NLP中常见的应用任务,比如命名实体识别(NER),关系抽取(RE)等。

  1. 神经网络框架里的Embedding层和word-embedding有什么关系?

Embedding层就是以one hot为输入(实际一般输入字或词的id)、中间层节点为字向量维数的全连接层。而这个全连接层的参数,就是一个“字向量表”,即word-embedding。

  1. word2vec的缺点?

没有考虑词序,因为它假设了词的上下文无关(把概率变为连乘);没有考虑全局的统计信息。

面试真题

  1. 为什么训练得到的字词向量会有如下一些性质,比如向量的夹角余弦、向量的欧氏距离都能在一定程度上反应字词之间的相似性?

我们在用语言模型无监督训练时,是开了窗口的,通过前n个字预测下一个字的概率,这个n就是窗口的大小,同一个窗口内的词语,会有相似的更新,这些更新会累积,而具有相似模式的词语就会把这些相似更新累积到可观的程度。

  1. word2vec跟Glove的异同?
  2. word2vec 相比之前的 Word Embedding 方法好在什么地方

参考资料

  1. https://blog.youkuaiyun.com/zhangxb35/article/details/74716245
  2. https://spaces.ac.cn/archives/4122
word2vec原理及实现 word2vec,字词的向量空间模型依靠将语意相近的词语聚在一起来提高自然语言处理的表现。 阅读详情

相关推荐

gensim中word2vec API参数说明

在gensim中,word2vec相关的API都在gensim.models.word2vec中,与算法相关的参数在gensim.models.word2vec.Word2Vec中。其具体参数说明如下:(个人翻译,如有出入欢迎指正) class Word2Vec(BaseWordEmbeddingsModel): """训练, 使用和评估https://code.google.com...

xiaoQL520的博客 5365

Word2Vec学习笔记(二)

二、语言模型    语言模型可以分为文法型模型和统计语言模型。在实际应用中语言识别、手写体文字识别、机器翻译、键盘输入、信息检索等研究领域都用到了语言模型。文法型语言模型是人工编制的语言学文法,文法规则来源于语言学家掌握的语言学知识和领域知识,但这种语言模型不能处理大规模真实文本。因此,统计语言模型出现了,并且得到了广泛的应用,统计语言模型是基于概率的,包括了N元文法模型(N-gram Model)

chunyun0716的专栏 949

word2vec模型

(一)简介 1、传统的词向量一般用one-hot表示,通常面临两个问题:(1)高维稀疏的向量带来计算成本;(2)不同的词向量彼此正交,无法衡量词之间的相似度。而distributed representation通过训练,可以得到每个词的低维稠密向量,不仅计算成本低,而且可以通过向量的距离计算来表示词与词之间的相似度。word2vector就是一个将词进行低维稠密向量化的工具。 2、wor...

zakexu的专栏 1万+

word2vec简介、原理、缺陷及应用。

一、什么是word2vec? word2vec及word to vector,翻译过来就是从单词到向量,它是将自然语言中的单词转化为向量的一种方法。为什么要把单词转化为向量呢?这是由于在进行自然语言处理时,我们有可能要比较两个短语或者语句的相似性,比较他们的语义信息,而让机器理解句子就比较困难,所以要转化成计算机能看懂的语言——数字,从而我们就能进行后面的一系列操作。这种方法更像是自然语言处理的一个前序工作、一个桥梁,有了这种方法,文本与后面的研究就被连接了起来。 它是一种语...

qq_43160348的博客 1万+

Word2Vec 简介

Word2Vec 简介 Word2vec是一个用于处理文本的双层神经网络。它的输入是文本语料,输出则是一组向量:该语料中词语的特征向量。虽然Word2vec并不是深度神经网络,但它可以将文本转换为深度神经网络能够理解的数值形式 Word2vec的目的和功用是在向量空间内将词的向量按相似性进行分组。它能够识别出数学上的相似性。Word2vec能生成向量,以分布式的数值形式来表示词的上下文...

随笔记录代码本 2668

word2vec 笔记

word2vec 是 Google 于 2013年开源的一个用于获取词向量的工具包,作者是 Tomas Mikolov,不过现在他已经从 Google Brain 跳槽到了 Facebook Research,后来还参与了 fasttext 项目的研究。下面是我读博客 word2vec 中的数学原理 的一些笔记和总结。Language Model (语言模型)统计语言模型(statistical l

张小彬的专栏 5159

Word2vec简介,入门

word2vec构建的过程: https://www.cnblogs.com/Newsteinwell/p/6034747.html https://blog.youkuaiyun.com/zhaoxinfan/article/details/11069485 Word2vec,是用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输...

飘过的春风 1万+

word2vec、doc2vec的使用

word2vec

静心净气的博客 6173

如何通俗理解Word2Vec (23年修订版)

在继续聊 Word2vec 之前,先聊聊 NLP (自然语言处理)。NLP 里面,最细粒度的是词语,词语组成句子,句子再组成段落、篇章、文档。所以处理 NLP 的问题,首先就要拿词语开刀。咱们居住在各个国家的人们通过各自的语言进行交流,但机器无法直接理解人类的语言,所以需要先把人类的语言“计算机化”,那如何变成计算机可以理解的语言呢?我们可以从另外一个角度上考虑。举个例子,对于计算机,它是如何判断一个词的词性,是动词还是名词的呢?

结构之法 算法之道 15万+

Pycharm环境配置完整教程

本文主要介绍python解释器安装、Pycharm环境配置以及运行第一个程序的零基础的教程,即使是python小白也能正确配置相应的python学习环境哦!

悠眠小虫的博客 2万+

DDR内存条选购避坑指南:单Rank vs 双Rank性能实测对比(附2024年颗粒推荐)

本文深入解析了内存条中单Rank与双Rank设计的原理与性能差异。通过实战测试对比,揭示了双Rank内存在高负载场景(如3D渲染、视频剪辑)中凭借Rank Interleaving技术带来的显著性能优势,并提供了2024年针对不同用户需求的DDR4/DDR5内存选购策略与避坑指南。

ik678901的博客 1132

一篇文章入门Word2Vec

一篇文章入门Word2Vec

julac的博客 9602

单片机技术入门与实战:从零基础到项目开发

单片机(MCU)作为嵌入式系统的核心组件,集成了CPU、内存和各种接口电路,广泛应用于智能家居、工业控制和汽车电子等领域。其工作原理基于实时控制和低功耗设计,通过定时器、中断系统和通信接口等功能模块实现各种控制任务。在物联网和智能硬件快速发展的背景下,掌握单片机开发技术成为电子工程师的重要技能。本文以STM32和PIC系列为例,详细解析单片机的基本概念、功能模块和选型指南,并分享从入门到项目实战的系统学习方法,帮助开发者在3-6个月内快速掌握这一关键技术。

weixin_35753291的博客 653

Word2Vec解释

Word2Vec解释 一、Word2Vec梗概 字面意思:即Word to Vector,由词到向量的方法。 专业解释:Word2Vec使用一层神经网络将one-hot(独热编码)形式的词向量映射到分布式形式的词向量。使用了Hierarchical softmax, negative sampling等技巧进行训练速度上的优化1。 作用:我们日常生活中使用的自然语言不能够直接被计算机所...

大戴的博客 2万+

华大HC32F460串口超时中断+DMA收发实战:从STM32迁移的避坑指南

本文为从STM32迁移至华大HC32F460的开发者提供了串口DMA收发的实战避坑指南。核心在于理解HC32F460以串口接收超时中断替代空闲中断的机制,并调整DMA配置策略:DMA应设置为由串口接收事件持续触发搬运,超时中断仅负责通知和重置DMA,从而实现高效可靠的数据收发。

weixin_29175469的博客 114

21、博弈中的对抗搜索算法解析

本文深入解析了博弈中的对抗搜索算法,涵盖极小极大算法、阿尔法-贝塔剪枝、移动排序与换位表等核心技术。文章分析了算法的数学基础与实现机制,探讨了其在国际象棋、围棋等复杂游戏中的应用,并扩展至多人游戏中的联盟与合作行为。通过对比不同类型策略的优劣,展示了对抗搜索在实际博弈系统中的演进方向与优化路径,为人工智能决策提供了理论支持与实践指导。

rust6ferris的博客 129

Word2vec原理浅析及gensim中word2vec使用

本文转载于以下博客链接:Word2vec原理浅析:https://blog.youkuaiyun.com/u010700066/article/details/83070102; gensim中word2vec使用:https://www.jianshu.com/p/b779f8219f74 如有冒犯,还望谅解! Word2vec原理浅析及tensorflow实现 Word2Vec是由Google的M...

luoxuexiong的博客 1万+

ESP32 DW1000 UWB 室内定位系统

详细介绍ESP32 DW1000 UWB 室内定位系统的设计演示demo。

DT程序员的博客 1662

Spark MLlib — Word2Vec

Word2vec 是 Google 在 2013 年开源的一款将词表征为实数值向量的高效工具。能够将单词映射到K维向量空间,同时由于算法考虑了每个单词的上下文环境,因此词向量表示同时具有语义特性。本文对Word2Vec的算法原理以及其在spark MLlib中的实现进行了对应分析。1.背景知识1.1 词向量NLP中词向量通常有两种表示方式: One-hot Representaion 把每个单词按

Alice 5017

基于Python的新闻聚合与推荐系统:抓取多新闻网站内容并根据用户兴趣进行个性化推荐

本文介绍了如何使用Python构建一个新闻聚合与推荐系统,涵盖了从新闻数据抓取、用户兴趣建模到推荐算法实现的全过程。通过爬虫技术抓取新闻网站内容,使用TF-IDF、Word2Vec等算法进行内容分析,并通过推荐算法向用户推送个性化的新闻,最终帮助用户快速获取自己感兴趣的信息。你可以根据具体需求,进一步扩展和优化系统。例如,加入更多的推荐算法、优化爬虫的抓取效率、增强前端展示的互动性等。通过本文的指导,您应该能够构建一个完整的新闻聚合与推荐系统,并为用户提供个性化的新闻推荐服务。

2201_76125261的博客 1514

KEPServerEX 6 之 EX 6.11.718.0 发布说明

KEPServerEX 6.11.718.0 发布说明

-雲飛兄-博客 2882

详解word2vec

1.嵌入是用向量表示一个物体2.用数值表示标识符,在机器学习领域称为词嵌入,也称分布式表示3.词嵌入通常有两种方法——基于平台的Embedding学习,基于预训练模型4.word2vec是...

咔咔响 4519

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

经典的Embedding方法Word2vec

提起Embedding,就不得不提Word2vec,它不仅让词向量在自然语言处理领域再度流行,更为关键的是,自2013年谷歌提出Word2vec以来,Embedding 技术从自然语言处理领域推广到广告、搜索、图像、推荐等深度学习应用领域, 成了深度学习知识框架中不可或缺的技术点。作为经典的Embedding方法,熟悉 Word2vec对于理解之后所有的Embedding相关技术和概念至关重要。 什么是Word2vec? Word2vec是“word to vector”的简称,顾名思义,Word2vec是

星辰的博客 3608

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Word2Vec

在聊 Word2vec 之前,先聊聊 NLP。NLP里面,最细粒度的是词语,词语组成句子,句子再组成段落、篇章、文档。所以处理 NLP 的问题,首先就要拿词语开刀。 举个简单例子,判断一个词的词性,是动词还是名词。用机器学习的思路,我们有一系列样本(x,y)(x,y)(x,y),这里 xxx 是词语,yyy 是它们的词性,我们要构建 f(x)−>yf(x)->yf(x)−>y 的映射,但这里的数学模型 fff(比如神经网络、SVM)只接受数值型输入,而NLP里的词语,是人类的抽象总结,是符

猫敷雪 2478

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 做独一无二的自己,颜宁西湖大学问答全记录
下一篇: Datawhale入选DataFountain优秀组织
Datawhale
Datawhale 领域专家: 物联网技术领域 领域专家: 物联网技术领域
博客等级 码龄8年 8901粉丝 1079原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值