Word2Vec

news2025/7/20 13:20:54

Word2Vec

在自然语言发展的早期阶段,词的表示经历了不断地发展和改进,直到后来有一种word vector的思想被提出以及后续的实现,才极大地促进了NLP的发展。

word vector的核心思想:

为每个单词构建一个密集向量,选择后的向量与出现在类似上下文中的单词向量相似。

注:word vectors 也叫 word embeddings 或者 (neural) word representations,它们是分布式表示的。
在这里插入图片描述

这样的思想确实很好,可是如何实现是一个难点,实际上在2003年,Neural Probabilistic Language Model就实现了符合这种需求的词向量,不过它的本意是训练一个语言模型,词向量的生成只不过是一个附属物,并且鉴于此模型中只使用了有限的前文信息,并且计算量过大,在2013年 Mikolov等人提出一个改进模型,用于学习词向量的表示。该模型的核心技术包括以下几点 。

Skip-gram

实际上skip-gram源于n-gram的思想,n-gram是一种基于统计语言模型的算法,将给定的文本进行分片处理,具体几个词分为一片取决于n,比如常见的有2-gram、3-gram, 该模型基于这样一种假设,第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。

skip-gram是通过中心词来推断上下文一定窗口内的单词。

在这里插入图片描述

图中中心词为t位置的词,滑动窗口大小为5。

Skip-gram模型的训练目标是找到有助于预测句子或文档中周围单词的单词表示。其损失函数(目标函数)是由极大似然函数改写而来,首先简单了解下极大似然估计的原理。

极大似然估计

它是建立在极大似然原理的基础上的一个统计方法, 极大似然原理的直观想法是,一个随机试验如有若干个可能的结果A,B,C,… ,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现的概率P(A)较大。

极大似然原理的直观想法我们用下面例子说明。设甲箱中有99个白球,1个黑球;乙箱中有1个白球.99个黑球。现随机取出一箱,再从抽取的一箱中随机取出一球,结果是黑球,这一黑球从乙箱抽取的概率比从甲箱抽取的概率大得多,这时我们自然更多地相信这个黑球是取自乙箱的。

一般说来,事件A发生的概率与某一未知参数θ有关,θ取值不同,则事件A发生的概率P(A|θ)也不同,当我们在一次试验中事件A发生了,则认为此时的θ值应该是t的一切可能取值中使P(A|θ)达到最大的一个,极大似然估计法就是要选取这样的t值作为参数的估计值,使所选取的样本在被选的总体中出现的可能性最大。

极大似然函数的公式(离散型)

在这里插入图片描述

目标函数

Skip-gram的目标是,给定一个中心单词wt,最大化它周边的单词出现的概率,对每一个位置t=1、2、…、T,m为中心词往前或往后要预测的单词个数,概率通过极大似然函数来表示为:

在这里插入图片描述

这里θ是需要通过训练来进行优化的值,通过优化θ使得概率值最大,但是在深度学习训练任务中一般训练目标是不断优化以减小损失函数,所以这里通过取负值和加log改写了极大似然函数,生成了目标函数:

在这里插入图片描述

通过这样的转化,最小化目标函数就等价于最大化预测概率。

现在的问题是如何计算P(Wt+j|Wt; θ)?

在这里插入图片描述

这里是使用的softmax函数的公式,每个单词有两个向量,一个是当他是中心词时,另一个时当他是上下文单词时。V表示所有的单词(词表)。

在这里插入图片描述

CBOW

与Skip-gram相对应,CBOW是通过周边词预测中心词。

CBOW的任务比较简单,训练所需时间较短,skip-gram任务更难,训练所需时间更长。

CBOW可以学习到更好的语法关系,但是skip-gram可以学习到更好的语义关系

Hierarchical Softmax (分层softmax

因为上面的计算最后是一个词表大小的softmax,计算量非常大,原论文中在这里进行了优化。

在这里插入图片描述

其主要优点是,不需要评估神经网络中的W个输出节点以获得概率分布,只需要评估大约**log2(W)(log以2为底,W的对数)**个节点。

分层softmax使用二叉树表示输出层,W个words作为其叶子,并且对于每个节点,显式表示其子节点的相对概率。这些定义了一个随机游走,为单词分配概率。

Negative Sampling

简单理解就是引入一些错误数据(负样本)来作为干扰项,来提高模型的抗干扰能力。

Subsampling of Frequent Words (下采样)

在非常大的语料库中,最频繁的单词很容易出现数亿次(例如,“In”、“the”和“a”)。这些词通常比稀有词提供的信息价值要小。例如,虽然Skip-gram模型从观察“France”和“Paris”的共现中获益,但从观察“France”和“the”的频繁共现中获益要少得多,因为几乎每个单词在一个句子中都与“the”频繁共现。这个想法也可以反方向应用;在数百万个例子上进行训练后,频繁词的向量表示没有显著变化。

为了克服罕见词和频繁词之间的不平衡,我们使用了一种简单的子抽样方法:训练集中的某个词wi被丢弃的概率由公式计算:

在这里插入图片描述

其中f(wi)是单词wi的频率,t是选择的阈值,通常在10的-5次方左右。我们之所以选择这个下采样公式,是因为它积极地对频率大于t的单词进行子抽样,同时保留频率的排名。虽然这个二次抽样公式是试探性地选择的,但我们发现它在实践中运行良好。它加速了学习,甚至显著提高了稀有词学习向量的准确性。

超参数

最后,关于超参数的选取,很明显window size的大小对最终的效果应该有比较大的影响。经过实验表明,当窗口大小比较小时(215),两个相似度比较高的embedding所表示的单词之间是可以互相替换的,当窗口大小比较大时(1550),两个相似度比较高的embedding所表示的单词可能是无关的,gensim默认是5。

另外还有一个Negative samples的值(超参),gensim默认是5。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/37753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

傻白入门芯片设计,先进封装技术(五)

集成电路芯片与封装之间是不可分割的整体。没有一个芯片可以不用封装就能正常工作,封装对芯片来说是必不可少的,随着IC生产技术的进步,封装技术也不断更新换代,每一代IC都与新一代的IC封装技术紧密相连。 一、什么是封装&#xf…

什么蓝牙耳机颜值高音质好?颜值高音质好的蓝牙耳机推荐

朋友让我推荐蓝牙耳机的时候,总是喜欢问哪款蓝牙耳机的性能更强,想要直接入手那款性能更强的蓝牙耳机,以此节省对比的时间。但是用户自行进行对比的步骤,显然是不能省的,所以今天我给四款蓝牙耳机做了横向对比&#xf…

C语言tips-NULL指针和void指针

0.写在最前 最近因为工作需要开始重新学c语言,越学越发现c语言深不可测,当初用python轻轻松松处理的一些数据,但是c语言写起来却异常的复杂,这个板块就记录一下我的c语言复习之路 1. void指针 1.1 解释 void 用在函数定义中可以表…

身份安全风险分析

摘要 从勒索软件到 APT,身份风险是重要的攻击向量。 管理 Active Directory 的复杂性,导致所有组织都存在1/6的可利用的特权身份风险。 这些身份风险包括使用过时密码的本地管理员、具有不必要权限的错误配置用户、在终端上暴露的缓存凭据等。 当攻击者…

让学前端不再害怕英语单词(四)

|| 欢迎关注csdn前端领域博主: 前端小王hs || email: 337674757qq.com || 前端交流群: 598778642前三章直通车↓↓↓ 让学前端不再害怕英语单词(一) 让学前端不再害怕英语单词(二) 让学前端不再害怕英语单词&#xff0…

单目标应用:最有价值球员算法(Most Valuable Player Algorithm,MVPA)求解旅行商问题TSP

一、最有价值球员算法 最有价值球员算法(Most Valuable Player Algorithm,MVPA)由Bouchekara 等人于2017年提出,该算法受到体育比赛的启发,球员们为了赢得冠军而组成队伍进行队伍竞争,他们也为了赢得最有价…

使用VMware安装系统Window、Linux操作系统

使用VMware安装系统Window、Linux操作系统 下载镜像文件打开VMware 下载镜像文件地址或链接: Windows全家桶镜像文件下载网站:msdn.itellyou.cnWindows 10 种子文件 ed2k://|file|cn_windows_10_business_editions_version_1803_updated_aug_2019_x64_dv…

Js逆向教程-14反调试

Js逆向教程-14反调试 一、检测是否在调试 键盘监听(F12)检测浏览器的高度插值检测开发者人员工具变量是否为true利用console.log调用次数利用代码运行的时间差利用toString检测非浏览器 二、显性 2.1 debugger: function xx() {debugger;…

盘点re:Invent历年重磅创新:今年亚马逊云科技又将有哪些重磅发布?

“云计算春晚”re:Invent即将开幕,这一次亚马逊云科技会带来哪些重磅发布? 一年一度的亚马逊云科技re:Invent大会即将在下周开幕。作为云计算行业的顶级盛事,亚马逊云科技re:Invent大会看出云计算领域创新的风向标,也…

QQ小程序——无法正常创建项目与uniapp联动问题

目录 一、使用QQ小程序开发者工具无法创建项目 情境引入 检查原因 解决方法 总结: 二、QQ小程序开发者工具无法与uniapp联动 情境导入 问题排错 解决方法 三、QQ小程序开发者工具无法正常上传 情境导入 错误分析 解决方法 心得分享 分清工作和学习的区别…

运动耳机什么牌子的好,推荐几款排行靠前的耳机

骨传导耳机近些年在耳机界迅速燃起,其设计原理是由贝多芬含棍棒发声所启发,而佩戴骨传导耳机主要是为了防止细菌在耳道内的滋生,除此之外骨传导耳机的佩戴方式也是直接将耳机套在头骨处即可完成佩戴,不用进入耳道,能够…

【torch-sparse及pytorch-geometric 安装】

torch-sparse及pytorch-geometric 安装 pip安装完pytorch-geometric之后,报错No module named torch_sparse 然后安装pip安装torch-sparse,结果报错,百度一下怎么安装,无果,转战官方文档,成功! …

实验讲解-线程池停止执行任务 Executor.execute shutdown awaitTermination shutdownNow()

1 Executor.execute public interface Executor { 在将来的某个时间执行给定的可运行的任务。该可运行的任务可以在新线程、池线程或调用线程中执行,由Executor实现决定。 参数: command–可运行的任务 投掷: RejectedExecutionException–…

Kafka生产者之分区

一、分区好处 (1)便于合理使用存储资源,每个Partition在一个Broker上存储,可以把海量的数据按照分区切割成一块一块数据存储在多台Broker上。合理控制分区的任务,可以实现负载均衡的效果; (2&…

【畅购商城】购物车模块之查看购物车

目录 分析 接口 后端实现 前端实现:显示页面 前端实现:显示购物车信息 分析 用户如果没有登录,购物车存放在浏览器端的localStorage处,且以数组的方式进行存储。用户如果登录了,购物车存放在redis中&#xff0c…

项目实战——对战回放和排行榜

目录 一、天梯积分更新 二、实现对局列表页面 三、前端测试 四、实现查看录像功能 五、实现分页功能 六、后端实现查询排行耪 七、前端展示 八、限制Bot数量 一、天梯积分更新 可以自己定义一下规则 存之前算一下两名玩家的天梯积分 实现更新,实现后重启看一…

挂耳式蓝牙耳机性价比推荐,盘点五款性能高的耳机分享

众所周知,骨传导耳机之所以能够受到人们的喜欢,是因为其佩戴不需入耳,尤其是针对于运动爱好者来说,在户外运动的时候不但可以听见音乐,还可以听见外界的声音,进一步的将危险系数拉低,其次也是因…

音乐信息提取-1-音频表示

音频信号是声音的一种表示,它表示由振动引起的气压随时间的波动(数字信号处理-1-关于声音与波)。 1 波形与时域 音频信号在时域上的表示就是波形随时间的变化,可以将波形的幅度值理解为声压。 声音是连续的,但数字记…

Spring创建、Bean对象的存储和读取

文章目录1、创建Spring项目1.1 创建Maven项目1.2 添加 Spring 框架支持1.3 添加启动类并添加main(非必要步骤)2、存储Bean对象2.1 添加Spring配置文件(第一次添加)2.2 创建Bean对象2.3 将Bean对象注册到Spring容器中3、读取并使用…

秋招挂麻了,就差去送外卖了,10w字Java八股啃完,春招必拿下

最近看到一名前腾讯员工发的帖子,总结的近期面试结果,真的就是那三个字:挂麻了…… 一个毕业后就在腾讯的高级程序员,由于种种原因,离职出来了。趁着金九银十求职季,互联网大厂小厂面试了一圈,感…