word2vec (一) 简介与训练过程概要
摘自:http://blog.csdn.net/thriving_fcl/article/details/51404655
词的向量化与word2vec简介
word2vec最初是Tomas Mikolov发表的一篇文章[1],同时开源了相应的代码,作用是将所有词语投影到K维的向量空间,每个词语都可以用一个K维向量表示。
为什么要将词用向量来表示呢?这样可以给词语一个数学上的表示,使之可以适用于某些算法或数学模型。通常将词语表示成向量有如下两种方法。
一、one-hot 表示法
假如语料库里一共有N个词,one-hot表示即是为每个词分配一个唯一的索引,并且将每个词表示为N维的向量,在该词索引对应的维度值为1,其余维度均为0。如一共有三个词:今天、天气、真好,那么三个词的词向量分别可以是[1,0,0],[0,1,0],[0,0,1]。这种简单的表示方法已经可以解决相当一部分NLP的问题,不过仍然存在不足,即词向量与词向量之间都是相互独立的,我们无法通过这种词向量得知两个词在语义上是否相似,并且如果N非常大,这种高维稀疏的表示也有可能引发维度灾难。为了解决上述问题,就有了词向量的第二种表示方法。
二、Distributed 表示法
word2vec就是通过这种方法将词表示为向量,即通过训练将词表示为限定维度K的实数向量,这种非稀疏表示的向量很容易求它们之间的距离(欧式、余弦等),从而判断词与词语义上的相似性。如K=3时,我们得到的实数向量可以是[0.5,0.22,0.7]这样。
不过Distributed表示法并不是word2vec诞生才有的,这种方法早在1986年Hinton就提出了[2]。word2vec之所以 会产生这么大的影响,是因为它采用了简化的模型,使得训练速度大为提升,让word embedding这项技术(也就是词的distributed表示)变得较为实用。
概率语言模型
在详细介绍word2vec的原理之前还需要简单的提一下概率语言模型。概率语言模型就是表示语言的基本单位(通常为句子)的概率分布函数。有了语言模型我们可以判断一句话是自然语言的概率,或者让机器开口说话(根据语言模型生成一句话)。
见原文!
word2vec训练过程
见原文!
word2vec用的是神经网络模型,分为两种,cbow与skip-gram,每个模型的训练方法又分别有两种,hierarchical sofmax与negative sampling。
Reference
[1] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient Estimation of Word Representations in Vector Space. In Proceedings of Workshop at ICLR, 2013.
[2] A. Mnih and G. Hinton. Three new graphical models for statistical language modelling. Proceedings of the 24th international conference on Machine learning,pages 641–648, 2007
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」