Intro
Word2Vec 是一种将词语(Word)映射为连续向量(Vector)的高效建模技术,由 Google 的 Tomas Mikolov 团队于 2013 年提出。通过在大规模文本语料中自动学习,Word2Vec 将每个词表示为一个低维、稠密、连续的向量(Embedding),这种向量能够捕捉词语之间的语义和句法关系。与传统将词视为离散 ID 的方法(如 N-gram)不同,Word2Vec 将词嵌入到连续空间中,相似意义的词在向量空间中距离更近,为后续复杂模型(如 Transformer)奠定了基础。
Word2Vec 的底层是一个浅层神经网络,采用 Skip-gram 或 Continuous Bag-of-Words(CBOW)两种架构进行训练。训练后得到的词向量(Word Embedding)被广泛应用于自然语言处理(NLP)任务中,包括机器翻译(Machine Translation)、信息检索(Information Retrieval)、文本分类(Text Classification)和情感分析(Sentiment Analysis)等,成为当前 NLP 领域的重要基础方法之一。
历史背景
Word2Vec 由 Tomas Mikolov 及其团队于 2013 年在 Google Research 提出。Tomas Mikolov 在布尔诺理工大学(Brno University of Technology)完成了神经网络语言建模的博士研究后,加入 Google后,与 Kai Chen、Greg Corrado 和 Jeffrey Dean 等人合作,致力于大规模数据下的词表示学习问题。面对传统方法在大规模语料处理上的局限,Mikolov 团队提出了两种简洁高效的浅层神经网络架构,即 Continuous Bag-of-Words(CBOW)和 Continuous Skip-gram,统称为 Word2Vec。Word2Vec 实现了在数十亿词级别的数据上快速训练高质量词向量的目标,一经发布便在NLP领域引起了广泛关注和应用。
潜在语义分析(Latent Semantic Analysis, LSA)
1990 年提出的 LSA 是最早试图从统计信息中抽取语义结构的方法。旨在从大规模文本数据中自动抽取潜在的语义结构。LSA 的核心思想是:词语的含义可以通过它们在不同文档中的共现模式来推断。具体来说,LSA 首先构建一个词-文档共现矩阵,矩阵中的每一行对应一个词,每一列对应一篇文档,矩阵元素表示词在文档中出现的频率或加权频率。为了从这种高维稀疏矩阵中提取有用的语义信息,LSA 采用了奇异值分解(Singular Value Decomposition, SVD)技术,将原始矩阵分解为三个矩阵的乘积,并截断只保留最大的若干个奇异值。这一降维过程使得词语和文档可以被映射到一个低维连续空间,在这个空间中,语义上相似的词和文档会被映射到彼此接近的位置。
LSA 的优势在于它能在一定程度上缓解词义多样性(polysemy)和同义性(synonymy)问题,揭示出词语之间的隐含关联关系。特别是在小到中等规模的语料库上,LSA 能够有效提取出有意义的语义结构,并在文档检索、文本分类等早期应用中取得了良好的效果。然而,LSA 也存在显著的局限性。首先,LSA 是一种无监督统计方法,它不区分不同类型的语义关系,容易混合不相关的信息。其次,由于 SVD 分解需要对整个共现矩阵进行全局运算,当词表规模和文档数量巨大时(如百万级、十亿级词量),计算成本极高且内存占用极大,在大规模语料上难以实际应用。
神经网络语言模型(Neural Network Language Model, NNLM)
进入 2000 年代,随着神经网络方法的发展,Yoshua Bengio 等人在 2003 年提出了神经网络语言模型(Neural Network Language Model, NNLM),这是第一个显式将词语表示为连续向量并联合训练语言建模任务的框架。在传统的 N-gram 语言模型中,词语被作为离散的符号处理,缺乏内部结构,无法体现词语之间的语义联系。而 NNLM 首次提出将每个词映射为一个低维稠密向量,并通过神经网络在端到端训练中自动优化这些词向量,能够有效捕捉词序和上下文信息。其基本结构包括一个输入层,将上下文词以 one-hot 向量形式编码;一个嵌入层,将稀疏编码映射到连续空间形成词向量;一个非线性隐藏层,建模上下文特征;以及一个输出层,生成词表中下一个词的概率分布。通过这种方式,NNLM 不仅提升了语言模型的预测性能,还首次引入了“词嵌入”(Word Embedding)这一重要概念,为后续自然语言处理方法的发展奠定了基础。但NNLM 由于模型包含复杂的非线性变换,同时输出层需计算整个词表大小的概率分布,使得训练过程在大规模语料上极为缓慢,计算开销和内存需求极高。此外,NNLM通常只能处理固定长度的上下文,限制了对长程依赖的建模能力。
- Word2Vec 的影响和后续发展
技术原理
基本概念
- 词嵌入(Word Embedding)的定义
- 分布式假设(Distributional Hypothesis)
- 向量空间模型
模型架构
- 连续词袋模型(CBOW, Continuous Bag of Words)
- 原理:通过上下文预测目标词
- 结构:输入层、隐藏层、输出层
- Skip-gram 模型
- 原理:通过目标词预测上下文
- 与 CBOW 的对比
训练方法
- 负采样(Negative Sampling)
- 层次 Softmax(Hierarchical Softmax)
- 优化算法(如随机梯度下降)
应用领域
- 自然语言处理(语义分析、机器翻译、文本分类)
- 推荐系统
- 信息检索
- 其他领域(如生物信息学、社会科学)
优缺点
优点
- 计算高效
- 能捕捉语义和语法关系
- 适用于大规模语料库
局限性
- 无法处理多义词(Polysemy)
- 依赖局部上下文,忽略全局信息
- 需要大量训练数据
相关技术与扩展
- GloVe(Global Vectors for Word Representation)
- FastText
- BERT 和 Transformer 模型
- 动态词嵌入(如 ELMo)
开源实现与工具
- Gensim 库
- TensorFlow / PyTorch 实现
- 原始 C 语言实现(Google Code)