Skip-gram预习

自用。nlp课程预习。待补充

数学原理概述

假设词汇表有 V 个词,而词向量的维度为 d 。Skip-gram的基本目标是通过优化一个目标函数来训练词向量,使得模型能够从中心词预测上下文词。

1. 词向量表示

在Skip-gram模型中,我们有两个矩阵:

  • 词嵌入矩阵 E:维度为 V \times d,其中每一行是一个词的词向量。
  • 输出矩阵 W_{\text{out}}:维度为 d \times V,表示词的输出向量。

在训练过程中,首先通过词嵌入矩阵 E 查找中心词的向量,然后通过矩阵 W_{\text{out}}来计算预测上下文词的概率。

2. 目标函数(优化目标)

给定一个中心词 w_t​ 和一个上下文词 w_c,希望通过 w_t 来预测 w_c。通过计算条件概率来实现:

P(w_c | w_t) = \frac{\exp(v_c^\top v_t)}{\sum_{w=1}^V \exp(v_w^\top v_t)}P

其中:

  • v_t 是中心词 w_t 的词向量。
  • v_c 是上下文词 w_c​ 的词向量。
  • 分母是归一化项,表示所有词的概率分布。

为了优化模型,我们使用 交叉熵损失 作为目标函数:

J(\theta) = - \sum_{t=1}^T \sum_{c \in C(w_t)} \log P(w_c | w_t)

其中 C(w_t) 是词 w_t 的上下文词集合,T 是语料库中所有词的总数。优化这个目标函数可以通过梯度下降法来实现。

3. 训练过程
  1. 从语料中随机选择一个中心词 w_t​ 和其上下文词 w_c
  2. 计算 w_t 的词向量 v_t和上下文词 w_c 的词向量 v_c
  3. 计算目标函数(交叉熵损失)。
  4. 使用梯度下降算法更新词向量矩阵 E  和 W_{\text{out}}
4. 近似计算

在实际训练过程中,由于词汇表可能非常大,直接计算归一化项(分母)会非常耗时。因此,通常采用 负采样(Negative Sampling)层次Softmax(Hierarchical Softmax) 方法来近似优化。

  • 负采样:通过仅随机选择一些负样本(不是上下文词的词)来简化优化。
  • 层次Softmax:利用霍夫曼树对词汇进行编码,从而加速计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值