图例
Skip-gram 模型,假设句子中的每个词都决定了相邻词的选取,所以你可以看到Skip-gram模型的输入是 W t W_{t} Wt, 预测的输出是 W t W_t Wt 周边的词
也是说Skip-gram的目标是:给定一个中心词 W t W_t Wt, 预测其上下词 W t + j W_{t+j} Wt+j(j 在窗口大小c内)
例如,句子’I love machine learing’ 中,若中心词为"machine", 则上下文词为"love" 和 “learing”
Skip Gram 模型结构
Skip-Gram 模型的目标是通过中心词预测其上下文。其结构分为三个部分: 输入层 -> 隐藏层 -> 输出层
权重矩阵
权重矩阵的定义
在Skip-Gram 模型中,存在两个权重矩阵。输入层到隐藏层的矩阵W和隐藏层到输出层的矩阵W’. 这个两个矩阵分别对应词向量的输入和输出表示
权重矩阵初始化的方法
在 Word2Vec Skip-Gram 模型中, 权重矩阵的初始化是模型训练的起点
目的是为每个词分配一个初始向量表示。常见的初始化方法包括均匀分布初始化
和 正态分布初始化
均匀分布初始化
均匀分布初始化从 固定区间
[-a, a] 内随机采样数值,通常选择较小的范围(如[-0.1,0.1]), 以避免初始值过大导致梯度爆炸,所有值出现的概率相等
示例设定
- 词汇表:
["猫", "狗", "抓"]
,词向量纬度 d = 2, 词汇表大小 V = 3 - 均匀分布区间: [-0.1, 0.1]
初始化步骤
- 输入矩阵W
-
设置区间为[-0.1,0.1], 词向量纬度 d = 2, 词汇表大小 V = 3
-
初始化输入矩阵 W ∈ R 3 ∗ 2 W \in R^{3 * 2} W∈R3∗2
-
每个元素均从[-0.1, 0.1] 中独立随机采样
- 输出矩阵W’
每个输出向量同样从[-0.1, 0.1] 中采样,生成一个 2 * 3 的矩阵
物理意义
- 输入向量和输出向量初始时均为随机小数值,无明确语义
- 例如: "猫"的输入向量为[0.05, -0.03], "狗"的输出向量为[-0.04, 0.08]
均匀分布初始化的特点
- 优点: 简单易实现,避免初始值过大或过小导致梯度问题
- 缺点: 在有限区间内分布均匀,可能缺乏对数据分布的适应性
正态分布初始化
正态分布初始化从 均值0、标准差为 σ
的正态分布中采样 ( μ \mu μ = 0, σ \sigma σ = 0.01),使初始值集中在0附近
示例设定:
- 词汇表同上(
["猫", "狗", "抓"]
), d = 2, V = 3 - 正态分布参数: μ \mu μ = 0, σ \sigma σ = 0.01
示例:
-
设定 μ \mu μ = 0, σ \sigma σ = 0.01。 词向量纬度 d = 2, 词汇表大小 V = 3
-
初始化输入矩阵 W ∈ R 3 ∗ 2 W \in R^{3 * 2} W∈R3∗2
-
每个元素均从 η \eta η (0,0.01) 中独立采样
初始化后的前向传播示例
以均匀分布初始化后的输入矩阵W和输出W‘为例,假设中心词为"猫"(对应 one-hot 向量 x = [ 1 , 0 , 0 ] T [1,0,0]^{T} [1,0,0]T):
-
输入层 -> 隐藏层
:
-
隐藏层 -> 输出层
:
计算每个词的得分 u j = h T u j u_{j}=h^{T}u_{j} uj=hTuj:
通过Softmax 计算概率
目标函数
假设上下文词 “抓”, 对应的one-hot 标签为: [0,1,0]
交叉嫡损失函数L为:
L = − ( 0 ∗ log ( 0.33 ) + 1 ∗ log ( 0.33 ) + 0 ∗ log ( 0.33 ) ) -(0 * \log(0.33) + 1 * \log(0.33) + 0 * \log(0.33)) −(0∗log(0.33)+1∗log(0.33)+0∗log(0.33))
参考资料
- Word2Vec原理与公式详细推导