Word2Vec

关注
义项:词向量训练模型
Word2Vec

Word2Vec是谷歌于2013年提出并开源的一套词向量训练工具,用于把词映射为低维稠密的实数向量。它包含连续词袋模型(CBOW)和跳字模型(Skip-gram)两种结构,并配合层次Softmax与负采样两种加速训练方法,使大规模语料上的词向量学习变得高效[1]。训练得到的向量能反映词与词之间的语义相似与类比关系,如向量运算可用于推断词对关系,因而成为自然语言处理中广泛使用的基础表示方法[2]。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Word2Vec是一类以浅层神经网络为基础、把词表示为低维稠密向量的模型与工具集的总称,常用于词嵌入(word embedding)任务。它由谷歌团队在2013年提出并开源,作者包括托马斯·米科洛夫、陈凯、格雷格·科拉多与杰弗里·迪恩,相关成果发表于论文《Efficient Estimation of Word Representations in Vector Space》,同年刊登在ICLR会议[1]。

该工具在接受文本语料输入后,先依据训练文本构建词表,再为词表中每个词学习一个向量,输出文件可直接作为各类自然语言处理与机器学习任务的特征。与传统的独热表示相比,它得到的向量维度较低且稠密,语义相近的词在向量空间中距离更近[3]。

原理

Word2Vec的理论出发点是分布式假设:词的含义由其周围的词决定,上下文相似的词往往语义相近。它包含两种网络结构:连续词袋模型(CBOW)根据上下文词预测中心词,连续跳字模型(Skip-gram)则由中心词预测窗口内的上下文词,两者互为逆向关系[2][3]。这两种结构都只有输入层、映射层与输出层,去掉了传统神经网络语言模型中的隐藏层,因而计算量明显减少[1]。

模型的目标是让正样本(真实上下文)的概率尽可能大。若直接对全部词表做Softmax归一化,分母需要对词汇表中所有词求和,词汇量大时计算难以承受。为此作者给出两种近似方案:层次Softmax借助哈夫曼树把一次多分类拆成若干次二分类,只需沿一条路径计算;负采样则每次只从噪声分布中抽若干个负样本参与更新,使代价不再随词表规模线性增长[4][3]。

以跳字模型为例,目标函数可写作最大化给定目标词时上下文词出现的对数概率,负采样版本进一步把该问题转化为区分真实上下文词与噪声词的二分类问题,其近似目标为:

$\ell(u,c)=\log \sigma(\mathbf{v}_u^{\top}\widetilde{\mathbf{v}}_c)+\sum_{i=1}^{g}\mathbb{E}_{u_n\sim P_n}\left[\log \sigma(-\mathbf{v}_{u_n}^{\top}\widetilde{\mathbf{v}}_c)\right]$[5]

训练时通常使用随机梯度下降,并配合对高频词的二次采样与对低频词的截断等技巧,以提升向量质量与训练速度[1]。生成的向量具有线性结构,可通过向量加减进行类比推断,例如由「巴黎」「法国」「意大利」三个向量可推得接近「罗马」的结果。

发展历程

在Word2Vec出现之前,词表示多采用独热编码,向量维度等于词表大小,词与词之间彼此孤立,也无法体现语义关联;此后的神经网络语言模型虽然能在训练中附带得到词向量,但计算代价高,难以胜任大规模语料[2]。

2013年,谷歌团队在论文《Efficient Estimation of Word Representations in Vector Space》中提出CBOW与Skip-gram两种结构,并设计了从语义与句法两个维度衡量词向量质量的测试集,实验结果显示这两种模型在多项相似度测试上优于此前的神经网络语言模型[1][2]。同年,团队在论文《Distributed Representations of Words and Phrases and their Compositionality》中提出负采样并对高频词二次采样,进一步提升了训练速度与向量质量,相关代码以开源项目形式发布[6][7]。

此后Word2Vec的思想被推广到更大粒度的文本表示,出现了短语向量、句向量与文档向量等方法,成为文本表示领域的常见起点[1]。2018年前后,为处理一词多义问题,能够随上下文变化的动态词向量模型(如ELMo)被提出,取代了Word2Vec这类固定向量在部分任务中的位置[8]。

应用

Word2Vec输出的词向量可作为特征用于多种自然语言处理任务,例如文本聚类、同义词查找与词性分析等。借助余弦相似度等度量,可以在向量空间中检索与给定词最接近的词,这一能力被用于相似词召回与语义匹配等场景。

在工程实践中,词向量常作为下游模型的初始化输入,例如在文本分类与情感分析中作为嵌入层的权重[9]。基于谷歌新闻语料预训练的300维词向量是流传较广的公开资源之一,其中包含约300万个词与短语的向量[10]。此外,其思路也被迁移到推荐等非文本场景,例如把用户下载的应用视为「词」来寻找相似项[2]。

局限

Word2Vec为每个词只生成一个固定向量,同一个词在不同语境下的多个义项会被压缩进同一个向量,难以有效区分一词多义[8]。在词义出现频率较高时,单向量中仍能部分保留各义项的信息,但义项数量较多时这种线性假设并不成立[11]。

该模型对未登录词处理能力有限,词表之外的词无法直接获得向量,后续的FastText通过引入子词与字符n-gram来缓解这一问题[3][12]。嵌入维度与训练语料规模也会影响效果:维度过小可能导致不同词的向量相互混淆,而向量质量高度依赖训练数据的数量与质量[9]。

此外,向量运算能够呈现类比关系这一现象仅对部分词对成立,并非所有情形都满足,其效果在一定程度上受到过度解读[13]。模型的质量还依赖词表与语料,对词典的依赖在部分纠错类任务中也被视为一种限制[14]。

参见

  • 词嵌入 —— Word2Vec所实现的文本表示形式,将词映射为低维稠密向量。

  • CBOW —— Word2Vec包含的两种模型结构之一,由上下文预测中心词。

  • Skip-gram —— Word2Vec包含的另一种模型结构,由中心词预测上下文。

  • 负采样 —— Word2Vec采用的加速训练方法,用少量噪声样本近似全词表Softmax。

  • GloVe —— 同期的另一类词向量方法,基于全局共现统计学习词表示。

  • FastText —— 在Word2Vec基础上引入子词信息,缓解未登录词问题。

参考资料

  1. PaperWeekly 第五期------从Word2Vec到FastText [引用日期2026-10-14]
  2. Efficient Estimation of Word Representations in Vector Space [引用日期2026-10-14]
  3. arxiv.org 上的网页 [引用日期2026-10-14]
  4. word2vec Parameter Learning Explained [引用日期2026-10-14]
  5. arxiv.org 上的网页 [引用日期2026-10-14]
  6. githubusercontent.com 上的网页 [引用日期2026-10-14]
  7. obspm.fr 上的网页 [引用日期2026-10-14]
  8. 学会原创 | 自然语言的语义表示学习方法与应用 [引用日期2026-10-14]
  9. convert-word-to-vector [引用日期2026-10-14]
  10. README.md · fse/word2vec-google-news-300 at main [引用日期2026-10-14]
  11. view [引用日期2026-10-14]
  12. TH2024LEFEBVREGUILLAUME(PDF) [引用日期2026-10-14]
  13. word2vec [引用日期2026-10-14]
  14. volume_complete_final(PDF) [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T21:55:28Z

历史版本

本条目引用的词条
词嵌入 CBOW Skip-gram 负采样 GloVe FastText