1. CBOW模型基础概念与核心架构
CBOW(Continuous Bag-of-Words)作为Word2Vec的两种经典实现之一,本质上是通过上下文词预测中心词的神经网络模型。与Skip-gram的"由词推上下文"不同,CBOW采用"由上下文推词"的逆向思路,这种设计使其在小型数据集上表现更优。模型的核心架构包含三个关键组件:
- 输入层:接收经过one-hot编码的上下文词向量,假设窗口大小为2,则输入为4个维度等于词表大小的稀疏向量
- 投影层(隐含层):通过输入矩阵W将one-hot向量降维映射到稠密向量空间,这一层没有激活函数,仅执行加权求和
- 输出层:经过输出矩阵W'将隐含层输出转换回词表空间,最后通过softmax计算目标词概率
关键细节:输入矩阵W的每一行对应一个词的输入向量表示,而输出矩阵W'的每一列对应一个词的输出向量表示。训练完成后,通常取W作为最终的词向量矩阵。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 三大核心矩阵的数学本质解析
2.1 输入矩阵W的物理意义
输入矩阵的维度为V×N(V是词表大小,N是嵌入维度),其数学本质是一个从高维稀疏空间到低维稠密空间的线性变换器。具体来看:
- 矩阵乘法实质:当one-hot向量x(第k维为1)与W相乘时,相当于提取W的第k行
- 向量运算示例:
python复制# 假设词表大小V=10000,嵌入维度N=300 W = np.random.randn(10000, 300) # 输入矩阵初始化 x = np.zeros(10000) # one-hot向量 x[25] = 1 # 第25个词 h = np.dot(x, W) # 等价于 h = W[25] - 训练动态:在反向传播时,只有被激活的词对应的行会得到梯度更新
2.2 输出矩阵W'的双重角色
输出矩阵的维度为N×V,在正向传播和反向传播中扮演不同角色:
-
预测阶段:将隐含层输出转换为词表空间的logits
math复制u_j = v'_{w_j}^T h其中v'_{w_j}是W'的第j列
-
**梯度
