推导 Skip-gram 和 CBOW 模型的数学原理,包括损失函数和优化算法。

Skip-gram 模型

Skip-gram 模型是一种用于自然语言处理的神经网络模型,用于学习词向量表示。该模型的数学原理如下:

损失函数

Skip-gram 模型的损失函数通常采用负对数似然损失函数。给定一个中心词 w 和其上下文单词 c,模型的目标是最大化 P(c|w),即预测上下文单词 c 出现的概率。损失函数可以表示为:

L(θ)=−log⁡P(c∣w)=−∑c∈C(log⁡σ(vcT⋅vw)+∑k=1k′(log⁡σ(−vkT⋅vw)))L(\theta) = -\log P(c|w) = -\sum\limits_{c\in C}(\log\sigma(v_c^T \cdot v_w) + \sum\limits_{k=1}^{k'}(\log\sigma(-v_k^T \cdot v_w)))

其中,vcv_c 为上下文单词 c 的词向量,vwv_w 为中心词 w 的词向量,k′k' 为负样本个数,heta heta 表示模型参数。

优化算法

Skip-gram 模型通常使用梯度下降算法进行优化,其中的参数更新规则为:

vc′=vc−η∂L∂vcv_c' = v_c - \eta\frac{\partial L}{\partial v_c}

vw′=vw−η∂L∂vwv_w' = v_w - \eta\frac{\partial L}{\partial v_w}

其中,η\eta 是学习率,∂L∂vc\frac{\partial L}{\partial v_c} 和 ∂L∂vw\frac{\partial L}{\partial v_w} 分别是损失函数对 vcv_c 和 vwv_w 的梯度。

CBOW 模型

CBOW 模型是另一种用于学习词向量表示的神经网络模型,其数学原理如下:

损失函数

CBOW 模型的损失函数也采用负对数似然损失函数,目标是最大化 P(w|c)。损失函数可以表示为:

L(θ)=−log⁡P(w∣c)=−∑w∈W(ywlog⁡y^w)L(\theta) = -\log P(w|c) = -\sum\limits_{w\in W}(y_w\log\hat{y}_w)

其中,w 表示单词,c 表示上下文单词,ywy_w 是实际标签,y^w\hat{y}_w 是预测标签。

优化算法

CBOW 模型同样使用梯度下降算法进行优化,参数更新规则与 Skip-gram 模型类似。

以上是 Skip-gram 和 CBOW 模型的数学原理及优化算法。