Word2Vec 学习计划 二

以 Word2Vec 作为神经网络的入门起点,是非常完美的决定!

Word2Vec 本质上是一个没有激活函数的浅层(单隐藏层)神经网络。它剥离了现代深度学习中复杂的多层网络堆叠,把核心直接指向了神经网络的本质:矩阵乘法、梯度下降和特征表示。如果你能吃透它,后续学习 CNN、RNN 甚至 Transformer 都会顺理成章。

从“数学原理”到“训练推理”的系统性学习方案如下:


阶段一:数学原理与网络架构 (The Theory)

Word2Vec 的核心思想基于语言学的分布式假设 (Distributional Hypothesis):“一个词的含义由它的上下文决定”。为了让神经网络学习这种上下文关系,它提出了两种经典的架构:

  1. CBOW (Continuous Bag-of-Words):通过上下文(周围的词)来预测中心词。
  2. Skip-gram:通过中心词来预测上下文。Skip-gram 在大型数据集上表现更好,能更精准地处理生僻词,这也是工业界最常用的版本。

神经网络的数学拆解 (以 Skip-gram 为例)

你可以把它的网络结构看作三个相连的部分:

  • 输入层 (\(x\)):一个大小为 \(V\)(词表大小,比如 10,000)的 One-hot 向量。目标词的位置是 1,其余全是 0。
  • 隐藏层权重矩阵 (\(W\)):大小为 \(V \times N\)(\(N\) 是你想要的词向量维度,比如 300)。因为输入是 One-hot 向量,这里的矩阵乘法实际上等同于查表,直接把矩阵的某一行抽出来作为隐藏状态:

\[h = W^T x \]

注意:这里没有任何激活函数(如 ReLU 或 Sigmoid),纯粹是线性映射。

  • 输出层权重矩阵 (\(W'\)):大小为 \(N \times V\)。隐藏层向量乘上这个矩阵后,通过 Softmax 函数转化为输出词汇表中每个词的概率:

\[y = \text{softmax}(W'^T h) \]

进阶数学必学:当词表 \(V\) 非常大(如 10 万)时,标准 Softmax 在输出层的计算量极高(每次都要算 10 万次指数求和)。为了解决这个工程灾难,你必须学习 Word2Vec 论文中提出的两个伟大 trick:负采样 (Negative Sampling)(把多分类转化为二分类问题)和 分层 Softmax (Hierarchical Softmax)。


阶段二:模型训练 (The Training)

神经网络的学习,本质上就是通过数据不断微调上面提到的 \(W\) 和 \(W'\) 两个矩阵。

  1. 构建滑动窗口 (Sliding Window):定义一个窗口大小(如 2),在文本语料上滑动。比如句子 "The quick brown fox jumps",假设中心词是 "brown",上下文就是 ["The", "quick", "fox", "jumps"]。通过滑动,生成海量用于训练的 (输入词, 目标上下文) 数据对。
  2. 前向传播 (Forward Pass):输入词进入网络,得出一个预测周围会出现哪些词的概率分布。
  3. 计算损失 (Loss Calculation):对比网络的预测结果和真实的上下文,通常使用交叉熵损失 (Cross-Entropy Loss)。如果是负采样,则退化为简单的二元交叉熵损失。
  4. 反向传播与优化 (Backpropagation & SGD):根据损失函数,利用链式法则对 \(W\) 和 \(W'\) 求偏导数,并通过随机梯度下降更新矩阵中的权重。让网络下一次遇到同样的词时,预测得更准。

阶段三:模型推理与评估 (The Inference)

这是 Word2Vec 最迷人的地方:训练完成后,我们会把庞大的输出层 (\(W'\)) 直接扔掉!

我们并不真的需要这个网络去预测下一个词,我们真正想要的是那个隐藏层的权重矩阵 \(W\)。由于输入是 One-hot 编码,输入词 \(i\) 对应的特征向量,刚好就是矩阵 \(W\) 的第 \(i\) 行。这个矩阵 \(W\) 就是所谓的 词向量查找表 (Word Embedding Table)。

拿到了词向量,就可以进行以下经典操作:

  • 计算相似度:万物皆可向量。使用余弦相似度 (Cosine Similarity) 来计算两个向量在空间中的夹角,夹角越小,词义越相近。
  • 向量线性平移:模型不仅学习到了词义,还学到了语法和语义关系。NLP 领域最经典的类比推理公式诞生于此:

\[\text{Vector}(\text{King}) - \text{Vector}(\text{Man}) + \text{Vector}(\text{Woman}) \approx \text{Vector}(\text{Queen}) \]


最佳学习资源推荐

为了不被海量碎片化教程淹没,强烈建议严格按照以下顺序和材料进行学习:

1. 数学推导 (必读神作)

  • 《word2vec Parameter Learning Explained》by Xin Rong: 这篇 2014 年的论文是公认的、全世界解释 Word2Vec 数学原理最清晰的材料。作者极其耐心地推导了前向传播、反向传播、负采样和分层 Softmax 的所有公式。建议把它打印下来,拿笔跟着推导一遍,你的神经网络底子就打牢了。

2. 直觉与动态可视化

  • The Illustrated Word2vec (图解 Word2Vec) by Jay Alammar: 作者用极其精美的动图和图解,解释了滑动窗口是如何生成训练数据的,以及高维向量空间是什么样的。

3. 代码实战 (从零手搓)

  • 不要一开始就用 Gensim:Gensim 库太好用了,一行代码 Word2Vec(sentences) 就能跑出结果,但你学不到神经网络细节。
  • PyTorch 官方教程 (Word Embeddings):用 PyTorch 构建 nn.Embedding 和简单的线性分类器,自己写一个简单的 Skip-gram 训练循环,看看 Loss 是如何下降的。
  • Stanford CS224n (Lecture 1 & 2):斯坦福深度学习 NLP 课程的前两讲完全专注于 Word2Vec,不仅讲模型架构,还从语言学直觉剖析了为什么它能起作用。
posted @ 2026-08-29 15:39  立体风  阅读(9)  评论(0)    收藏  举报