引言:让机器理解语言的几何学

自然语言处理(NLP)的核心挑战是如何让计算机理解人类语言的意义。在深度学习革命之前,这个问题困扰了研究者数十年。而词向量(Word Embeddings)的出现,为这个领域带来了一场范式转变——它将词语映射为高维空间中的向量,使得"意义"变成了可以计算、比较和推理的几何对象。

一、离散时代的语言表示

1.1 One-hot编码的局限

在词向量出现之前,NLP中最常用的表示方法是one-hot编码。每个词被表示为一个高维向量,维度等于词表大小,只有对应位置为1,其余为0。例如,在一个包含10,000个词的词表中,"猫"可能表示为[1,0,0,...,0],而"狗"表示为[0,1,0,...,0]。

这种表示方法有两个致命缺陷:

  • 维度灾难:词表通常包含数万甚至数十万词,导致向量极其稀疏
  • 语义鸿沟:所有向量彼此正交,无法表达词与词之间的语义关系——"猫"和"狗"作为动物的相似度,与"猫"和"火箭"完全相同

1.2 N-gram与统计语言模型

在词向量之前,N-gram模型是统计语言模型的主流方法。它基于马尔可夫假设,用前面N-1个词来预测下一个词的概率。例如,在"I love to eat ___"中,模型根据统计频率预测下一个词可能是"food"、"pizza"等。

N-gram模型虽然实用,但仍无法捕捉长距离依赖关系,且面临数据稀疏问题——很多N-gram组合在训练数据中从未出现。

二、词向量的诞生:分布式假设

2.1 Firth的分布式假设

1957年,英国语言学家J.R. Firth提出了一个革命性的观点:一个词的义项取决于它所处的上下文(You shall know a word by the company it keeps)。这就是著名的分布式假设(Distributional Hypothesis),也是词向量方法的理论基础。

分布式假设的核心思想是:语义相似的词会出现在相似的上下文中。如果我们能统计每个词在不同上下文中出现的频率模式,就可以用这些模式的相似度来衡量词语义的相似度。

2.2 潜在语义分析(LSA)

20世纪90年代,潜在语义分析(Latent Semantic Analysis, LSA)首次将分布式假设付诸实践。LSA构建词-文档矩阵,然后使用奇异值分解(SVD)将高维稀疏矩阵压缩为低维稠密表示。

LSA的数学原理:

  1. 构建词-文档矩阵 X(m×n,m为词数,n为文档数)
  2. 对X进行截断SVD分解:X ≈ U_k Σ_k V_k^T
  3. 词向量由 U_k Σ_k 的行给出,维度通常为50-300维

但LSA计算复杂度较高,且难以融入新词,限制了其在大规模数据集上的应用。

三、神经词向量时代

3.1 Word2Vec:Bengio的神经网络语言模型

2003年,Yoshua Bengio等人提出了神经概率语言模型(NPLM),首次用神经网络来学习词向量。模型通过训练预测词的上下文任务,自然地将词语义编码进隐藏层权重中。

然而,真正让词向量普及的是2013年Mikolov等人提出的Word2Vec。Word2Vec包含两种架构:

  • CBOW(Continuous Bag of Words):用上下文词预测中心词,适合高频词训练
  • Skip-gram:用中心词预测上下文词,对低频词表现更好

3.2 Word2Vec的训练技巧

Word2Vec的成功不仅在于模型架构,更在于其训练效率的优化:

  • 负采样(Negative Sampling):将softmax分类问题转化为二分类问题,大幅降低计算复杂度
  • 层次Softmax(Hierarchical Softmax):用Huffman树减少softmax计算量
  • Subsampling高频词:随机丢弃高频词(如"the"、"a"),加速训练并提升低频词表示质量

3.3 词向量的惊人特性

Word2Vec最迷人的发现是词向量空间中存在线性子结构。Mikolov等人发现:

  • vec("King") - vec("Man") + vec("Woman") ≈ vec("Queen")
  • vec("Paris") - vec("France") + vec("Italy") ≈ vec("Rome")
  • vec("brother") - vec("man") + vec("woman") ≈ vec("sister")

这意味着词向量空间中的方向编码了特定的语义关系(如性别关系、首都关系),这种几何可解释性为语义理解提供了数学基础。

四、GloVe与全局统计信息

2014年,斯坦福大学Pennington等人提出了GloVe(Global Vectors)模型,结合了LSA的全局统计和Word2Vec的上下文窗口的优势。

GloVe的核心思想是:词与词共现概率的比值能反映词语义关系。例如:

  • 如果词k是"ice",那么P(solid | ice)很大,P(gas | ice)很小
  • 如果词k是"steam",那么P(solid | steam)很小,P(gas | steam)很大
  • 如果词k是"water",那么P(solid | water)和P(gas | water)都适中

GloVe通过最小化词向量对数与共现概率对数的差值来训练:

J = Σ_ij f(X_ij)(w_i^T w̃_j + b_i + b̃_j - log X_ij)²

其中X_ij是词i和词j的共现次数,f是加权函数以防止高频共现对主导损失。

五、上下文词向量时代:从静态到动态

5.1 静态词向量的局限

Word2Vec和GloVe都学习静态词向量——每个词只有一个固定的向量表示。这无法处理一词多义问题:

  • "bank"在"river bank"(河岸)和"bank account"(银行账户)中含义完全不同
  • "苹果"可以指水果,也可以指科技公司

5.2 ELMo:第一个上下文词向量

2018年,Peters等人提出了ELMo(Embeddings from Language Models),首次实现动态上下文词向量。ELMo使用双向LSTM预训练语言模型,在下游任务中根据当前上下文动态调整词的表示。

ELMo的核心思想是堆叠多层LSTM的输出,高层捕获语义特征(如情感、主题),低层捕获句法特征(如词性、句法结构)。

5.3 BERT:双向Transformer的突破

同年,Google提出了BERT(Bidirectional Encoder Representations from Transformers),彻底改变了NLP格局。BERT的关键创新在于:

  • 掩码语言模型(MLM):随机掩盖输入中15%的词,让模型预测被掩盖的词,实现真正的双向编码
  • 下一句预测(NSP):判断两个句子是否是连续的,学习句子间关系
  • 预训练-微调范式:大规模无监督预训练 + 下游任务微调

BERT的成功催生了预训练语言模型的大爆发,为后来GPT系列、T5等模型奠定了基础。

六、词向量的应用与影响

6.1 迁移学习的基石

预训练词向量开启了NLP的迁移学习时代。在几乎每个NLP任务中,使用预训练词向量作为初始表示都能显著提升性能,有时甚至超过随机初始化训练几个百分点的效果。

6.2 跨语言词向量

词向量还被扩展到跨语言场景。Mikolov发现不同语言的词向量空间具有相似的几何结构,可以通过学习旋转映射实现跨语言词翻译。Conneau等人提出的MUSE框架利用对抗训练学习无监督跨语言词向量对齐。

6.3 可解释性与公平性

词向量并非完美无缺。Caliskan等人(2017)发现词向量会编码训练数据中的性别和种族偏见——例如vec("programmer") - vec("man") + vec("woman")更接近vec("homemaker")而非vec("engineer")。这引发了对AI系统公平性的广泛讨论和研究。

七、从词向量到大语言模型

词向量的思想——用稠密向量表示语义单元——直接延续到了大语言模型中。现代大语言模型如GPT-4、Claude等,本质上都是通过大规模预训练学习上下文相关的token表示。

所不同的是:

  • 词向量学习的是词的静态/动态语义表示
  • 大语言模型学习的是整个语言序列的生成规律
  • 大语言模型的表示能力远超传统词向量,能够捕捉抽象推理、逻辑关系和常识知识

但词向量的核心思想——分布式表示、语义空间几何、预训练迁移——仍然是现代NLP和LLM的理论根基。

结语

从one-hot到Word2Vec,从BERT到大语言模型,词向量的三十年演进是NLP发展史上最精彩的篇章之一。它不仅解决了词语义的表示问题,更启发了整个深度学习在自然语言处理中的应用范式。

今天,当我们与大型语言模型交互时,背后依然是那个简单而深刻的原理:用向量表示意义,用几何捕捉关系。词向量的故事告诉我们,好的科学思想往往源于一个简洁的假设——理解一个词,就要看它与谁同行。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部