1. 输出层在 CBOW 模型中的功能定位
在 CBOW(Continuous Bag of Words)模型中,输出层位于隐藏层之后,其主要功能是:
基于隐藏层所编码的上下文语义表示,对中心词进行条件概率建模。
从建模角度看,输出层完成了从连续向量空间 到离散词表空间的映射,是损失函数定义和参数优化的直接对象。
2. 输出层的直观理解(概念层面)
2.1 隐藏层向量的语义含义
隐藏层输出一个向量:
h∈RD \mathbf{h} \in \mathbb{R}^{D} h∈RD
该向量可被视为:
由上下文词共同决定的语义表示,反映当前上下文的整体语义信息。
2.2 输出层的核心操作:词级打分
CBOW 输出层并不直接生成一个离散词,而是:
对词表中的每一个词,计算其作为中心词的匹配程度。
这一匹配程度通过向量内积来度量。
2.3 向量内积作为相似性度量
设词 (wi)(w_i)(wi) 在输出层中对应的向量为 (Wi′)(W'_i)(Wi′),则其得分定义为:
ui=Wi′⋅h u_i = W'_i \cdot \mathbf{h} ui=Wi′⋅h
向量内积刻画了词向量与上下文向量在同一语义空间中的相容性。
3. 输出层的形式化建模
3.1 输出层参数结构
设:
- 词表大小为 (V)(V)(V)
- 隐藏层维度为 (D)(D)(D)
CBOW 输出层包含一个参数矩阵:
W′∈RV×D W' \in \mathbb{R}^{V \times D} W′∈RV×D
其中:
- 第 (i)(i)(i) 行 (Wi′)(W'_i)(Wi′) 表示词 (wi)(w_i)(wi) 的输出向量
- 输出向量与输入 embedding 向量在参数上相互独立
该设计源自 Word2Vec 的双向量表示机制。
3.2 线性打分函数
对于隐藏层向量 (h)(\mathbf{h})(h),输出层对词 (wi)(w_i)(wi) 的打分函数为:
ui=f(wi,h)=Wi′⋅h u_i = f(w_i, \mathbf{h}) = W'_i \cdot \mathbf{h} ui=f(wi,h)=Wi′⋅h
该函数是线性的,不包含非线性变换。
4. 基于 Softmax 的输出层建模(理论完整形式)
4.1 条件概率定义
CBOW 使用 softmax 函数对打分结果进行归一化,从而定义中心词的条件概率:
p(wt∣context)=exp(W′∗t⋅h)∑∗i=1Vexp(Wi′⋅h) p(w_t \mid \text{context}) = \frac{\exp(W'*t \cdot \mathbf{h})} {\sum*{i=1}^{V} \exp(W'_i \cdot \mathbf{h})} p(wt∣context)=∑∗i=1Vexp(Wi′⋅h)exp(W′∗t⋅h)
该概率分布覆盖整个词表。
4.2 损失函数
训练目标通过最小化负对数似然实现:
L=−logp(wt∣context) \mathcal{L} = - \log p(w_t \mid \text{context}) L=−logp(wt∣context)
该损失函数直接驱动输出向量与输入 embedding 的联合学习。
4.3 计算复杂度分析
softmax 输出层的主要缺陷在于:
- 分母涉及对全部 (V)(V)(V) 个词的求和
- 单次前向与反向传播的时间复杂度为 (O(V))(O(V))(O(V))
在大规模词表条件下,该方法在工程上难以直接应用。
5. Negative Sampling 输出层(工程可行方案)
5.1 设计动机
Negative Sampling 通过重新定义训练目标,避免对整个词表进行归一化计算。其基本思想是:
将多分类问题转化为若干二分类判别问题。
5.2 概率建模形式
对于任意词 (w)(w)(w),定义其为中心词的概率为:
p(D=1∣w,h)=σ(Ww′⋅h) p(D=1 \mid w, \mathbf{h}) = \sigma(W'_w \cdot \mathbf{h}) p(D=1∣w,h)=σ(Ww′⋅h)
其中:
- (D=1)(D=1)(D=1) 表示"词 (w)(w)(w) 与上下文匹配"
- (σ(⋅))(\sigma(\cdot))(σ(⋅)) 为 sigmoid 函数
5.3 Negative Sampling 的目标函数
给定真实中心词 (wt)(w_t)(wt) 和 (K)(K)(K) 个负样本词 (wn1,...,wnK)({w_{n_1}, \dots, w_{n_K}})(wn1,...,wnK),损失函数定义为:
L=logσ(Wt′⋅h)∑k=1Klogσ(−Wnk′⋅h) \mathcal{L} = \log \sigma(W't \cdot \mathbf{h}) \sum{k=1}^{K} \log \sigma(- W'_{n_k} \cdot \mathbf{h}) L=logσ(Wt′⋅h)k=1∑Klogσ(−Wnk′⋅h)
该目标函数仅涉及有限数量的词向量,显著降低了计算复杂度。
6. 输出层对词向量学习的影响
6.1 梯度传播机制
输出层损失函数对隐藏层向量的梯度为:
∂L∂h \frac{\partial \mathcal{L}}{\partial \mathbf{h}} ∂h∂L
该梯度进一步反向传播至隐藏层与输入 embedding 层,从而更新上下文词的输入向量。
6.2 语义空间结构的形成
通过反复优化上述目标函数:
- 真实中心词的输出向量被拉近上下文向量
- 负样本词的输出向量被推离上下文向量
最终在向量空间中形成具有语义结构的词表示。
7. 输入向量与输出向量的关系
| 向量类型 | 符号 | 主要用途 |
|---|---|---|
| 输入向量 | (W)(W)(W) | 构造上下文表示 |
| 输出向量 | (W′)(W')(W′) | 建模预测目标 |
在实际应用中,通常选用输入向量,或输入向量与输出向量的组合,作为最终词向量表示。
8. 总结
CBOW 模型的输出层具有以下关键特征:
- 通过向量内积对词进行线性打分
- 理论上采用 softmax 建立完整条件概率模型
- 工程实践中常以 Negative Sampling 替代 softmax
- 同时学习输入向量与输出向量两套参数
从本质上看,CBOW 的输出层:
通过对上下文与词之间匹配关系的建模,在向量空间中塑造词语的语义结构。