更改

跳到导航 跳到搜索
添加3字节 、 2025年6月6日 (五) 14:53
小
第118行: 第118行:     
负采样的核心思想在于将原始问题转换成一个二分类问题,让模型只区分正样本和负样本,例如在Skip-gram中,对于一个中心词 <math>w_t</math> 和一个正确的上下文词 <math>w_o</math>,正确的上下文词被称为正样本。同时人为给出错误的上下文文本 <math>w'_{o_i}</math>,也就是负样本。负样本的采样一般按照词频<math>U</math>的<math>3/4</math>次方作为采样概率,即:
 
负采样的核心思想在于将原始问题转换成一个二分类问题,让模型只区分正样本和负样本,例如在Skip-gram中,对于一个中心词 <math>w_t</math> 和一个正确的上下文词 <math>w_o</math>,正确的上下文词被称为正样本。同时人为给出错误的上下文文本 <math>w'_{o_i}</math>,也就是负样本。负样本的采样一般按照词频<math>U</math>的<math>3/4</math>次方作为采样概率,即:
 +
 
<math>
 
<math>
 
P(w'_{o_i}) \propto U(w'_{o_i})^0.75
 
P(w'_{o_i}) \propto U(w'_{o_i})^0.75
 
</math>
 
</math>
 +
 
负采样目的在于最小化负样本与中心词一起出现的概率,同时最大化正样本与中心词一起出现的概率,将softmax替换为sigmoid函数,得到新的损失函数:
 
负采样目的在于最小化负样本与中心词一起出现的概率,同时最大化正样本与中心词一起出现的概率,将softmax替换为sigmoid函数,得到新的损失函数:
   第128行: 第130行:     
其中,<math>\sigma</math> 是sigmoid函数,<math>k</math> 为负样本个数。同样,该方法也能应用在CBOW模型中,只是负样本变成了中心词:
 
其中,<math>\sigma</math> 是sigmoid函数,<math>k</math> 为负样本个数。同样,该方法也能应用在CBOW模型中,只是负样本变成了中心词:
 +
 
<math>
 
<math>
 
\mathcal{L}_{CBOW} = log\sigma(\mathbf{v}^\top_{w_t} \mathbf{h}) + \sum^{k}_{i=1}log\sigma(-\mathbf{v}^\top_{w'_{o_i}} \mathbf{h})
 
\mathcal{L}_{CBOW} = log\sigma(\mathbf{v}^\top_{w_t} \mathbf{h}) + \sum^{k}_{i=1}log\sigma(-\mathbf{v}^\top_{w'_{o_i}} \mathbf{h})
 
</math>
 
</math>
 +
 
不过在实际应用中大多数时候使用Skip-gram,因此负采样在CBOW中的应用很少。
 
不过在实际应用中大多数时候使用Skip-gram,因此负采样在CBOW中的应用很少。
   第136行: 第140行:     
层次softmax的核心思路是构建一个霍夫曼树,每个叶节点代表一个词汇,而预测一个词汇就是沿着树走的一条路径,对应的也就是一个不断重复的二分类问题,目标函数就可以变化为:
 
层次softmax的核心思路是构建一个霍夫曼树,每个叶节点代表一个词汇,而预测一个词汇就是沿着树走的一条路径,对应的也就是一个不断重复的二分类问题,目标函数就可以变化为:
−
      
=='''应用领域'''==
 
=='''应用领域'''==
130

个编辑

导航菜单