【深度学习】负采样技术(1)

回顾以下word2vec,负采样的思想更加直观:为了解决数量太过庞大的输出向量的更新问题(word2vec这里要预测是哪个单词,而单词库上万),我们就不更新全部向量,而只更新他们的一个样本。

显然正确的输出单词(也就是正样本)应该出现在我们的样本中,另外,我们需要采集几个单词作为负样本(因此该技术被称为“负采样”)。采样的过程需要指定总体的概率分布,我们可以任意选择一个分布。我们把这个分布叫做噪声分布,标记为 P_n(w) 。可以凭经验选择一个好的分布。

在word2vec中,作者称用简化的训练目标取代用一个定义好的后多项分布的负采样形式

  •  W_o 是输出单词(即,正样本), (w_o)^' 是它的词向量;
  • h 是隐藏层的输出:在CBOW中,h = 1/C\sum_{c=1}^{C}v_{w_{c}} ,在skip-gram中,h=v_{w_{i}}  ; 
  • W_{neg} = \{w_j|j=1,...,K\} 是从  P_n(w) 中采样得到的单词集合,也就是负样本

 

再回到推荐的场景中,

推荐系统正负样本的划分和采样,如何做更合理?

Q1:负样本应该如何采样更合理?
A1:可以尝试使用一定的规则筛选负样本:

base策略:随机抽取一定比例
策略1:在用户未点击的部分,选择流行度高的作为负样本(更有代表性)
策略2:在用户未点击的部分,删除用户近期已发生观看行为的电影
策略3:在用户未点击的部分,统计相应的曝光数据,取Top作为负样本(多次曝光仍无转化)

Q2:正负比例有个大致的主流数值吗?1?5?10?
A2:建议交叉验证后选择合适的数值

Q3:测试集是否需要和训练集保持相同的正负样本比例?
A4:这个问题是不成立的,首先基于一个策略生成全部的样本,再根据时间轴人为切分成训练集和测试集,并不是先生成训练集,再生成测试集。

 

推荐系统传统召回是怎么实现热门item的打压? - 石塔西的回答 - 知乎

负样本为王:评Facebook的向量化召回算法 - 石塔西的文章 - 知乎

推荐系统中的痛点(个人工作经验) - 漱石的文章 - 知乎 

 

 

word2vec详解(CBOW,skip-gram,负采样,分层Softmax) - 孙孙的文章 - 知乎

Word2Vec介绍: 为什么使用负采样(negtive sample)? - 刘博的文章 - 知乎

word2vec中的负采样与分层softmax - TianMin的文章 - 知乎

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值