Word2Vec - CBOW 原理介绍
1 课程概览
本课介绍 Word2Vec 稠密词向量表示法的核心原理,重点讲解 CBOW(Continuous Bag-of-Words,连续词袋)模式。Word2Vec 利用深度学习神经网络探索词与词之间的语义关联,用网络权重参数表示词向量。CBOW 的核心思想是"基于两端预测中间"。
2 核心概念与定义
- Word2Vec:一种将单词转化为词向量的 NLP 技术,利用深度学习神经网络探索单词间的语义关联,用网络权重参数表示词向量。
- CBOW(Continuous Bag-of-Words,连续词袋):Word2Vec 的一种训练模式,基于上下文周围的词预测当前词,即"基于两端预测中间"。
- Skip-Gram(跳字/跳词模式):Word2Vec 的另一种训练模式,基于当前词预测上下文中的周围词,即"基于中间预测两端"。
- 无监督语料构建有监督任务:将无监督的文本语料通过滑动窗口方式转化为有监督的预测任务。
3 模型与算法详解
Word2Vec 核心思想
用深度学习的网络权重参数表示词向量。
- 神经网络结构:输入层 → 隐藏层 → 输出层
- 权重矩阵有两类:
- 隐藏层的权重矩阵(对接输入层)
- 输出层的权重矩阵(对接隐藏层)
- 使用隐藏层的权重矩阵作为词向量表示
无监督语料 → 有监督任务
以 AI 歌词生成器为例:
原始语料:词1, 词2, 词3, 词4, 词5, 词6, ...
↓(滑动窗口)
有监督任务:
输入:词1, 词2, 词3, 词4, 词5 → 预测:词6
输入:词2, 词3, 词4, 词5, 词6 → 预测:词7
...
- 原始语料是无监督的(无标签)
- 通过滑动窗口构建有监督任务(基于红色预测绿色)
- 窗口向后移动一格,输入和输出都相应移动
CBOW 模式详解
核心思想:基于两端(上下文)预测中间(当前词)
输入:前文词 + 后文词 → 预测:中间词
处理流程:
- 将周围单词的词向量求和或平均,作为上下文表示
- 通过神经网络进行预测
- 用隐藏层的权重矩阵作为最终词向量
CBOW vs Skip-Gram 对比
| 对比项 | CBOW | Skip-Gram |
|---|---|---|
| 全称 | Continuous Bag-of-Words | Skip-Gram |
| 中文 | 连续词袋 | 跳字/跳词 |
| 预测方向 | 基于两端预测中间 | 基于中间预测两端 |
| 输入 | 上下文周围词 | 当前词 |
| 输出 | 当前词 | 上下文周围词 |
权重参数不会稀疏
- one-hot 编码:大量 0 和一个 1(稀疏)
- Word2Vec 权重参数:不会出现大量 0(稠密)
- 因此可以直接用作词向量表示
4 数学原理与推导
神经网络结构
$$\text{输入层} \xrightarrow{W_1} \text{隐藏层} \xrightarrow{W_2} \text{输出层}$$
- $W_1$:隐藏层权重矩阵(用于词向量表示)
- $W_2$:输出层权重矩阵
CBOW 预测过程
给定上下文词 ${w_{t-k}, ..., w_{t-1}, w_{t+1}, ..., w_{t+k}}$,预测中心词 $w_t$:
$$h = \frac{1}{2k} \sum_{i \neq 0} v(w_{t+i}) \cdot W_1$$
$$\hat{y} = \text{softmax}(h \cdot W_2)$$
其中 $v(w)$ 为词 $w$ 的 one-hot 向量,$h$ 为隐藏层输出,$\hat{y}$ 为预测概率。
词向量提取
训练完成后,隐藏层权重矩阵 $W_1$ 的每一行即为对应词的词向量:
$$\text{WordVector}(w_i) = W_1[i, :]$$
5 代码示例
本课为原理介绍,具体代码实现将在后续 FastText 课程中演示。
6 重难点与易错提醒
- ❗重点:Word2Vec 的核心是"用深度学习的网络权重参数表示词向量",具体使用隐藏层的权重矩阵。
- ❗重点:CBOW = 基于两端预测中间;Skip-Gram = 基于中间预测两端。
- ⚠️易错:Word2Vec 底层使用神经网络,因此 NLP 课程需要在深度学习之后学习。
- 💡深入理解:无监督语料通过滑动窗口可构建有监督任务,这是 Word2Vec 训练的基础。
- 💡深入理解:权重参数不会像 one-hot 那样出现大量 0,因此是稠密表示。
7 课堂问答精选
Q1:Word2Vec 的核心思想是什么?
A:Word2Vec 利用深度学习神经网络探索词与词之间的语义关联,用网络权重参数表示词向量。具体使用隐藏层的权重矩阵作为词向量。
Q2:CBOW 和 Skip-Gram 有什么区别?
A:CBOW(连续词袋)基于两端(上下文)预测中间(当前词),将周围词的词向量求和或平均作为输入。Skip-Gram(跳字)基于中间(当前词)预测两端(上下文),将当前词的词向量作为输入。
Q3:什么是无监督语料构建有监督任务?
A:原始文本语料没有标签(无监督),通过滑动窗口方式,将前 N 个词作为输入,第 N+1 个词作为预测目标,从而构建有监督的预测任务。窗口向后滑动,输入和输出相应移动。
Q4:为什么 Word2Vec 的权重参数不会稀疏?
A:神经网络权重通过训练得到,是连续的实数值,不会像 one-hot 那样出现大量 0 和一个 1 的情况,因此是稠密表示。
8 本课小结
- Word2Vec 核心:用神经网络权重参数(隐藏层权重矩阵)表示词向量。
- 两种模式:CBOW(两端预测中间)、Skip-Gram(中间预测两端)。
- 无监督语料通过滑动窗口构建有监督任务。
- 权重参数是稠密的,解决了 one-hot 的稀疏问题。
- 神经网络结构:输入层 → 隐藏层 → 输出层。
9 延伸思考
- CBOW 和 Skip-Gram 各自适用于什么场景?
- Word2Vec 如何建立词与词之间的语义联系?
- 隐藏层权重矩阵为什么能表示词的语义?