一、CBOW 模型参数的整体视角
CBOW(Continuous Bag of Words)模型的训练目标是最大化在给定上下文条件下中心词出现的概率:
maxlogP(wt∣wt−c,...,wt+c) \max \log P(w_t \mid w_{t-c}, \dots, w_{t+c}) maxlogP(wt∣wt−c,...,wt+c)
为实现该目标,模型在训练阶段显式学习两组词相关参数矩阵:
- 输入层词向量矩阵(Input Embedding Matrix)
- 输出层词向量矩阵(Output Embedding Matrix)
而所谓的"词表向量矩阵",并非模型训练时的独立参数,而是训练完成后从上述参数中派生出的表示。
二、输入矩阵(Input Embedding Matrix)
2.1 定义与符号表示
设:
- 词表大小为 (∣V∣)(|V|)(∣V∣)
- 词向量维度为 (d)(d)(d)
输入层词向量矩阵定义为:
Win∈R∣V∣×d \mathbf{W}_{in} \in \mathbb{R}^{|V| \times d} Win∈R∣V∣×d
其中:
- 第 (i)(i)(i) 行向量 (vwi∈Rd)(\mathbf{v}_{w_i} \in \mathbb{R}^d)(vwi∈Rd)
- 表示词 (wi)(w_i)(wi) 的输入向量(input embedding)
2.2 功能角色
输入向量的主要功能是:
作为上下文建模的基本表示单元,用于构造上下文的隐藏表示。
在 CBOW 中:
- 上下文窗口内的词对应的输入向量被查表取出
- 这些向量通过求和或求平均,形成隐藏层向量
h=1C∑w∈contextvw \mathbf{h} = \frac{1}{C} \sum_{w \in \text{context}} \mathbf{v}_w h=C1w∈context∑vw
2.3 更新特性
在一次训练样本中:
- 仅上下文词对应的输入向量会被更新
- 不参与当前上下文的词,其输入向量保持不变
因此,输入矩阵主要编码:
- 词作为上下文成员时的分布特征
三、输出矩阵(Output Embedding Matrix)
3.1 定义与符号表示
输出层词向量矩阵定义为:
Wout∈R∣V∣×d \mathbf{W}_{out} \in \mathbb{R}^{|V| \times d} Wout∈R∣V∣×d
其中:
- 第 (i) 行向量 (\mathbf{u}_{w_i} \in \mathbb{R}^d)
- 表示词 (w_i) 的输出向量(output embedding)
3.2 功能角色
输出向量的主要功能是:
刻画词作为"预测目标"时,与上下文隐藏表示之间的匹配关系。
在输出层中,对任意词 (w_i) 计算打分:
zi=uwi⊤h z_i = \mathbf{u}_{w_i}^\top \mathbf{h} zi=uwi⊤h
再经 Softmax 得到条件概率。
3.3 更新特性
在一次训练样本中:
- 中心词(以及负样本词)对应的输出向量会被更新
- 不作为预测目标的词,其输出向量不更新
因此,输出矩阵更偏向于:
- 判别上下文与中心词是否匹配的特征表示
四、输入矩阵与输出矩阵的本质差异
4.1 参数独立性
尽管:
Win,Wout∈R∣V∣×d \mathbf{W}{in}, \mathbf{W}{out} \in \mathbb{R}^{|V| \times d} Win,Wout∈R∣V∣×d
但二者满足:
Win≠Wout \mathbf{W}{in} \neq \mathbf{W}{out} Win=Wout
它们:
- 初始化不同
- 梯度来源不同
- 优化轨迹不同
4.2 语义角色差异
| 矩阵 | 语义角色 |
|---|---|
| (Win)(\mathbf{W}_{in})(Win) | 词作为上下文时的语义表示 |
| (Wout)(\mathbf{W}_{out})(Wout) | 词作为中心词时的判别表示 |
五、词表向量矩阵(Vocabulary Embedding Matrix)
5.1 概念澄清
所谓"词表向量矩阵"通常指:
为每个词提供一个统一、可用于下游任务的向量表示集合。
记为:
E∈R∣V∣×d \mathbf{E} \in \mathbb{R}^{|V| \times d} E∈R∣V∣×d
但必须强调:
(E)(\mathbf{E})(E) 不是 CBOW 模型训练过程中显式学习的参数矩阵。
5.2 构造方式
(E)(\mathbf{E})(E) 通常由以下方式之一构造:
-
直接取输入矩阵
E=Win \mathbf{E} = \mathbf{W}_{in} E=Win -
直接取输出矩阵
E=Wout \mathbf{E} = \mathbf{W}_{out} E=Wout -
输入与输出矩阵的组合
E=W∗in+W∗out或E=12(W∗in+W∗out) \mathbf{E} = \mathbf{W}*{in} + \mathbf{W}*{out} \quad \text{或} \quad \mathbf{E} = \frac{1}{2}(\mathbf{W}*{in} + \mathbf{W}*{out}) E=W∗in+W∗out或E=21(W∗in+W∗out)
5.3 实践中的默认选择
在多数实现中:
- 默认使用 (Win)(\mathbf{W}_{in})(Win) 作为词表向量矩阵
- (Wout)(\mathbf{W}_{out})(Wout) 不对外暴露
这是工程与经验选择,而非理论约束。
六、三类矩阵的关系总结
| 名称 | 是否训练参数 | 是否唯一 | 主要用途 |
|---|---|---|---|
| 输入矩阵 (Win)(\mathbf{W}_{in})(Win) | 是 | 否 | 构造上下文表示 |
| 输出矩阵 (Wout)(\mathbf{W}_{out})(Wout) | 是 | 否 | 条件概率建模 |
| 词表向量矩阵 (E)(\mathbf{E})(E) | 否 | 是 | 下游任务使用 |
七、规范总结性表述
CBOW 模型在训练阶段显式学习输入层与输出层两组词向量参数。二者虽共享相同的词表索引与向量维度,但在功能、更新方式及优化目标上均不相同。模型训练完成后,通常从这两组参数中选取或组合得到一组词表向量矩阵,用作词的最终分布式表示。