TellWorldAI 世界档案
问档案English

首页›原理

原理

词向量(词嵌入)

词嵌入(word embedding)把每个词表示为一组从文本中学得的数字,用法相近的词得到相近的数字组合。它是现代语言模型的基本组成部分之一。

时代 统计学习

是什么

词嵌入把每个词表示为一个由数字组成的稠密向量(dense vector),这些数字是从数据中学得的。用法相近的词,向量也彼此靠近。[1] 在此之前,许多语言系统只把每个词当作词表中的一个编号,系统并不知道「dog」和「cat」是相关的。[2]

怎么工作

举一个只有三个数字的玩具例子(真实系统用的数字多得多,而且不是人工填写的):假设「cat」是 [0.9, 0.1, 0.4],「dog」是 [0.8, 0.2, 0.5],「car」是 [0.1, 0.9, 0.7]。比较可知,cat 与 dog 的向量相近,car 则较远,系统于是可以把 cat 和 dog 视为相关的词。

向量通过在文本上训练模型得到,例如根据周围的词预测当前的词,那些让预测效果好的数字就成为词嵌入。学得的向量还能做简单的加减运算,反映词之间的关系。在 2013 年的 word2vec 论文中,vector('King') − vector('Man') + vector('Woman') 最接近 vector('Queen'),vector('Germany') + vector('capital') 接近 vector('Berlin')。[2]

从哪来

2003 年,Yoshua Bengio 与合作者在《Journal of Machine Learning Research》上发表了神经语言模型,为每个词学习一个特征向量,并与一个预测下一个词的网络一起训练。这些向量有 30、60 或 100 个特征,对应的词表约 1.7 万词。[1] 这一做法的主要优势是泛化:一个训练中从未见过的句子,只要其中的词向量与见过的句子中的词接近,仍能得到较高的概率。[1]

2013 年 1 月,Tomas Mikolov 等人在谷歌提出了两种更简单的结构:CBOW 根据上下文预测词,Skip-gram 则根据词预测上下文。它们能在不到一天的时间里,从 16 亿词的数据中学到高质量的向量。[2] 谷歌随后把训练代码开源,形成了 word2vec 项目。斯坦福大学的 GloVe 则通过全局的词共现计数来学习向量,在一项词类比任务上得分 75%。[4]

今天用在哪里

嵌入层已成为神经语言系统的标准输入层。例如,2014 年的序列到序列翻译模型使用了 1,000 维的词嵌入。[5] 今天的大语言模型延续了同样的思路:文本先被切分为词元(token),每个词元映射为学得的向量,之后才进行其他计算。

局限

经典词嵌入给每个词只分配一个向量,不管上下文如何,也忽略词序。word2vec 的作者指出,这种向量无法表示固定搭配:「Air」加上「Canada」并不会得到「Air Canada」。[3] 后来的模型让同一个词在不同句子中拥有不同的向量,但基本思路仍是在学得的空间中用位置来表示意义。

能力大语言模型

技术路线深度学习

历史研究史

注释与来源

  1. A Neural Probabilistic Language Modelhttps://www.jmlr.org/papers/v3/bengio03a.html
  2. Efficient Estimation of Word Representations in Vector Spacehttps://arxiv.org/abs/1301.3781
  3. Distributed Representations of Words and Phrases and their Compositionalityhttps://arxiv.org/abs/1310.4546
  4. GloVe: Global Vectors for Word Representation (D14-1162)https://aclanthology.org/D14-1162/
  5. Sequence to Sequence Learning with Neural Networkshttps://arxiv.org/abs/1409.3215

引用本页: 词向量(词嵌入). TellWorld, https://www.tellworld.net/zh/learn/word-embeddings. 更新于 2026-11-07