推荐系统三十六式
刑无刀
“贝壳找房”资深算法专家,8 年推荐系统工程师
43607 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
开篇词 (1讲)
原理篇 · 深度学习 (2讲)
原理篇 · 其他应用算法 (3讲)
推荐系统三十六式
15
15
1.0x
00:00/00:00
登录|注册

22 | 实用的加权采样算法

加权蓄水池采样
蓄水池采样
指数分布
等概率采样方法
无限数据集
有限数据集
总结
加权采样
一些场景
加权采样算法

该思维导图由 AI 生成,仅供参考

今天来讲一个非常轻松的话题,这个话题看似和推荐系统没什么关系,但肯定有用,只是在别的推荐系统相关话题里都没人会提。

一些场景

还记得前面讲到的用户画像吗?想象一个场景:你经过辛辛苦苦抓数据,清洗数据,收集用户行为,目的就是给用户计算兴趣标签。
这时候你可能会遇到一个两难的问题:如果给用户计算出兴趣标签的权重了,那应该保留多少标签呢?
保留太多的话,每次召回候选集时,计算复杂度可不低,只保留少部分吧,那真是手心手背都是肉,生怕丢弃的标签才是用户的真爱。
怎么办?这时候,你需要的一个简单的加权采样算法,每次召回时并不使用全部用户标签,而是按照权重采样一部分标签来使用,这样做的好处当然很明显:
大大减少召回时的计算复杂度;
可以保留更多的用户标签;
每次召回计算时还能有所变化;
虽然有变化,但是依然受标签的权重相对大小约束。
加权采样的应用不只这一个地方,比如在热门排行榜展示时,也可以用加权采样,而不仅仅按照排行榜分数顺序展示,采用加权采样的展示方法,会让排行榜每次刷新都略有变化,人民群众也会更加喜闻乐见。
下面介绍几种常用的加权采样算法及其原理,供你日常随手拿来使用。

加权采样

加权采样有两种情况,一种是能够已知全部样本的个数。这需要遍历整个样本,比如说用户标签采样输出,那么每次采样时仍然需要遍历所有的标签,来依次决定每一个标签输出的概率。
另一种是不知道总量样本是多大,或者总量很大,以至于你不愿意全部遍历之后再输出采样结果,这样的数据就是数据流,对应的就是流采样。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

加权采样算法在推荐系统中具有广泛的应用价值。该算法通过对样本的权重进行加权处理,实现了采样概率与权重成正比的关系,从而在推荐系统中实现了降低计算复杂度、保留更多用户标签、增加推荐多样性等功能。文章介绍了两种加权采样情况:有限数据集和无限数据集。 对于有限数据集,文章提出了两种加权采样方法。一种是利用公式$S_{i}=R^{\frac{1}{w_{i}}}$,通过遍历样本并按照采样分数排序,输出前k个结果来实现加权采样;另一种是利用指数分布,根据标签权重构造指数分布随机数,再输出随机数最大的k个标签作为采样结果。这两种方法都能很好地符合样本权重的相对大小。 针对无限数据集,文章介绍了蓄水池采样和加权蓄水池采样。蓄水池采样通过随机替换样本来实现采样,而加权蓄水池采样则结合了加权采样的思想,为每个样本生成一个分数,并根据分数进行替换,从而实现了从大数据集中采样k个样本的目的。 总的来说,加权采样算法简单易懂,但在推荐系统中具有重要的应用价值。尤其是在面对需要采样、需要有所变化的数据时,加权采样算法能够很好地实现权重影响采样概率的功能。此外,文章还提出了一个问题,即如果样本权重有正有负,该如何加权采样,值得进一步讨论。 通过本文的介绍,读者可以快速了解加权采样算法的原理和应用场景,以及在推荐系统中的重要作用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《推荐系统三十六式》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • slvher
    加权采样算法 Weighted Random Sampling Without Replacement,可简写为WRS 本文给出的算法出自 Pavlos S. Efraimidis 论文: https://utopia.duth.gr/~pefraimi/research/data/2007EncOfAlg.pdf 也可通过蓄水池采样算法的wikipedia条目了解: https://en.wikipedia.org/wiki/Reservoir_sampling
    2018-10-02
    4
  • felixdae
    第一个例子中k其实是1对吧,如果k是2或者3模拟出来的结果还会保持与权重一样的比例关系吗?
    2018-07-11
    1
  • 林彦
    负权重的例子我其实还是不太理解的。原始的WRS算法就是要求权重是非负数。我能想到的是按权重的绝对值算采样分数,然后负的得出一个最差排名,正的得出一个最好排名。
    2018-04-25
    1
  • 行行行
    s=r^1/w的原理是什么呢老师,或者有什么参考资料,或者这个算法叫什么名字。谢谢老师
    2018-04-23
    1
  • zzz
    蓄水池采样中大于k的替换概率应该为1/i(表示第几个样本),不是k/n
    2021-12-29
  • Geek_de6c32
    理解采样方法一中w和R正相关,但是经过非线性变形后,采样结果和w很相近,这点上有点不理解
    2021-08-25
  • 光彩照人
    指数分布这个,是不是应该取出随机数最小的k个进行采样呢,因为越小,说明时间间隔越短,说明权重越大呢。
    2019-07-23
  • miaomiaomiao
    请问,在推荐算法召回阶段,蓄水池采样权重是什么?是本身推荐物品与该用户的匹配概率吗? 模型融合阶段的权重又是什么?这个时候各个召回模块的推荐的物品的评价标准并不一致
    2019-06-12
  • shangqiu86
    指数分布采样的时候,随机数选取应该在(1 - 5)之间,当大于5之后,lambd = 0.1得到的值将远远大于lambd = 0.4和0.5 ,这样若随机数选取在(1-10)之间得到的数据并不满足权重的关系,我的实验结果是这样的,老师您说对吗?
    2019-05-06
  • felixdae
    把权重除以权重之和得到标签上的离散分布,不是就可以直接用来采样了么,采样频率也跟权重成正比
    2018-06-04
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部