CBOW 模型中输入矩阵、输出矩阵与词表向量矩阵深入解析

一、CBOW 模型参数的整体视角

CBOW(Continuous Bag of Words)模型的训练目标是最大化在给定上下文条件下中心词出现的概率:

max⁡log⁡P(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) 通常由以下方式之一构造:

  1. 直接取输入矩阵
    E=Win \mathbf{E} = \mathbf{W}_{in} E=Win

  2. 直接取输出矩阵
    E=Wout \mathbf{E} = \mathbf{W}_{out} E=Wout

  3. 输入与输出矩阵的组合
    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 模型在训练阶段显式学习输入层与输出层两组词向量参数。二者虽共享相同的词表索引与向量维度,但在功能、更新方式及优化目标上均不相同。模型训练完成后,通常从这两组参数中选取或组合得到一组词表向量矩阵,用作词的最终分布式表示。

相关推荐
HIT_Weston30 分钟前
45、【Agent】【OpenCode】本地代理分析(请求&接收回调)
人工智能·agent·opencode
逻辑君1 小时前
认知神经科学研究报告【20260010】
人工智能·深度学习·神经网络·机器学习
星河耀银海1 小时前
远控体验分享:安全与实用性参考
人工智能·安全·微服务
企业架构师老王1 小时前
2026企业架构演进:科普Agent(龙虾)如何从“极客玩具”走向实在Agent规模化落地?
人工智能·ai·架构
GreenTea1 小时前
一文搞懂Harness Engineering与Meta-Harness
前端·人工智能·后端
鬼先生_sir2 小时前
Spring AI Alibaba 1.1.2.2 完整知识点库
人工智能·ai·agent·源码解析·springai
深念Y2 小时前
豆包AI能力集成方案:基于会话管理的API网关设计
人工智能
龙文浩_2 小时前
Attention Mechanism: From Theory to Code
人工智能·深度学习·神经网络·学习·自然语言处理
ulimate_2 小时前
八卡算力、三个Baseline算法(WALLOSS、pi0、DreamZero)
人工智能
6Hzlia2 小时前
【Hot 100 刷题计划】 LeetCode 48. 旋转图像 | C++ 矩阵变换题解
c++·leetcode·矩阵