一、CBOW 模型概述
CBOW(Continuous Bag of Words)模型是 Word2Vec 提出的两种核心模型之一,其基本思想是:利用上下文词(context words)来预测中心词(target word) 。
与 Skip-gram 模型"由中心词预测上下文词"不同,CBOW 模型将多个上下文词的信息进行汇聚,形成一个整体表示,再用于预测中心词。
在 CBOW 模型中,输入层的设计直接决定了上下文信息如何被表示与融合,因此对输入层的理解是掌握该模型的关键。
二、CBOW 输入层的基本组成
CBOW 模型的输入层主要包含以下三个核心要素:
- 词表(Vocabulary)及其规模
- 上下文词的独热表示(One-Hot Encoding)
- 输入层到隐藏层的权重矩阵(词向量矩阵)
下面逐一展开说明。
三、词表与输入维度的确定
3.1 词表定义
设训练语料中共有 (∣V∣)( |V| )(∣V∣) 个不同的词,构成词表:
V=w1,w2,...,w∣V∣\]\[ V = {w_1, w_2, \\dots, w_{\|V\|}} \]\[V=w1,w2,...,w∣V∣
词表大小 (∣V∣)( |V| )(∣V∣) 决定了:
- 输入层向量的维度
- 权重矩阵的行数
- 模型的参数规模
在 CBOW 中,每一个词在输入层均以一个 (∣V∣)( |V| )(∣V∣) 维向量表示。
3.2 上下文窗口的设定
设定窗口大小为 (c)( c )(c),即:
- 中心词左右各取 (c)( c )(c) 个上下文词
- 上下文词总数为 (2c)( 2c )(2c)
例如,对于句子:
"深度 学习 改变 了 自然 语言 处理"
若中心词为"改变",窗口大小 ( c = 2 ),则上下文词为:
学习,了,自然,语言 {\text{学习}, \text{了}, \text{自然}, \text{语言}} 学习,了,自然,语言
这些上下文词将共同作为 CBOW 模型的输入。
四、输入层的词表示方式:独热编码
4.1 独热向量的定义
在 CBOW 模型中,每个上下文词首先被表示为一个 独热向量(One-Hot Vector):
xi∈R∣V∣ \mathbf{x}_i \in \mathbb{R}^{|V|} xi∈R∣V∣
其特点为:
- 向量中只有一个位置为 1
- 该位置对应词在词表中的索引
- 其余位置均为 0
例如,若词表大小为 10,"学习"在词表中的索引为 3,则其独热向量为:
x学习=(0,0,1,0,0,0,0,0,0,0)⊤ \mathbf{x}_{\text{学习}} = (0,0,1,0,0,0,0,0,0,0)^\top x学习=(0,0,1,0,0,0,0,0,0,0)⊤
4.2 多个上下文词的输入形式
对于 CBOW 模型而言,输入并非单个词,而是 多个上下文词的集合:
x1,x∗2,...,x∗2c {\mathbf{x}_1, \mathbf{x}*2, \dots, \mathbf{x}*{2c}} x1,x∗2,...,x∗2c
需要注意的是:
- 输入层并不是将这些向量简单拼接
- 而是分别映射后再进行聚合(通常为求和或取平均)
这一设计保证了模型对上下文词顺序不敏感,符合 "Bag of Words" 的假设。
五、输入层到隐藏层的线性映射
5.1 权重矩阵的定义
CBOW 输入层与隐藏层之间存在一个共享的权重矩阵:
W∈R∣V∣×d \mathbf{W} \in \mathbb{R}^{|V| \times d} W∈R∣V∣×d
其中:
- (∣V∣)( |V| )(∣V∣):词表大小
- (d)( d )(d):词向量维度(embedding size)
该矩阵的每一行对应一个词的向量表示:
v∗w=W∗w,: \mathbf{v}*w = \mathbf{W}*{w,:} v∗w=W∗w,:
5.2 独热向量到词向量的映射机制
当独热向量 (xi)( \mathbf{x}_i )(xi) 与权重矩阵相乘时:
hi=xi⊤W \mathbf{h}_i = \mathbf{x}_i^\top \mathbf{W} hi=xi⊤W
由于 (xi)( \mathbf{x}_i )(xi) 只有一个位置为 1,该运算等价于:
从矩阵 (W)( \mathbf{W} )(W) 中直接查找对应词的词向量
这也是 Word2Vec 被称为"Embedding Lookup"的原因之一。
六、输入层的向量聚合(Aggregation)
6.1 聚合的必要性
CBOW 模型需要将多个上下文词的信息融合为一个固定维度的表示,以作为隐藏层的输入。
因此,需要对各上下文词向量进行聚合操作。
6.2 常见的聚合方式
最常见的两种方式为:
(1)向量求和
h=∑i=12chi \mathbf{h} = \sum_{i=1}^{2c} \mathbf{h}_i h=i=1∑2chi
(2)向量平均(更常用)
h=12c∑i=12chi \mathbf{h} = \frac{1}{2c} \sum_{i=1}^{2c} \mathbf{h}_i h=2c1i=1∑2chi
平均操作可以避免上下文窗口大小变化导致向量尺度不一致的问题。
6.3 输入层的最终输出
经过聚合后,输入层向隐藏层传递的是:
h∈Rd \mathbf{h} \in \mathbb{R}^{d} h∈Rd
该向量是 上下文词语义信息的综合表示,后续将用于预测中心词。
七、输入层设计的关键特点总结
-
输入维度高但稀疏
独热向量维度为 (∣V∣)( |V| )(∣V∣),但仅一个非零元素。
-
参数共享机制
所有上下文词共用同一权重矩阵 (W)( \mathbf{W} )(W)。
-
顺序无关性
输入层不区分上下文词顺序,符合 Bag-of-Words 假设。
-
本质为词向量查表与求平均
输入层的主要计算并非矩阵乘法,而是高效的向量索引与聚合。
八、小结
CBOW 模型的输入层通过独热编码 → 词向量查表 → 向量聚合的方式,将多个上下文词映射为一个低维、稠密、语义集中的表示。这一设计在保证模型表达能力的同时,极大降低了计算复杂度,为 Word2Vec 在大规模语料上的高效训练奠定了基础。