美文网首页
推荐系统22:加权采样算法

推荐系统22:加权采样算法

作者: 勇于自信 | 来源:发表于2021-06-11 23:45 被阅读0次

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

场景

还记得前面讲到的用户画像吗?想象一个场景:你经过辛辛苦苦抓数据,清洗数据,收集用户行为,目的就是给用户计算兴趣标签。

这时候你可能会遇到一个两难的问题:如果给用户计算出兴趣标签的权重了,那应该保留多少标签呢?

保留太多的话,每次召回候选集时,计算复杂度可不低,只保留少部分吧,那真是手心手背都是肉,生怕丢弃的标签才是用户的真爱。

怎么办?这时候,你需要的一个简单的加权采样算法,每次召回时并不使用全部用户标签,而是按照权重采样一部分标签来使用,这样做的好处当然很明显:

  1. 大大减少召回时的计算复杂度;
  2. 可以保留更多的用户标签;
  3. 每次召回计算时还能有所变化;
  4. 虽然有变化,但是依然受标签的权重相对大小约束。

加权采样的应用不只这一个地方,比如在热门排行榜展示时,也可以用加权采样,而不仅仅按照排行榜分数顺序展示,采用加权采样的展示方法,会让排行榜每次刷新都略有变化,人民群众也会更加喜闻乐见。

下面介绍几种常用的加权采样算法及其原理,供你日常随手拿来使用。

加权采样

加权采样有两种情况,一种是能够已知全部样本的个数。这需要遍历整个样本,比如说用户标签采样输出,那么每次采样时仍然需要遍历所有的标签,来依次决定每一个标签输出的概率。

另一种是不知道总量样本是多大,或者总量很大,以至于你不愿意全部遍历之后再输出采样结果,这样的数据就是数据流,对应的就是流采样。

下面分别讲这两种采样方法。

1. 有限数据集

等概率采样的方法非常简单,任意编程语言中都有伪随机数实现,就不在本文讨论范围内了。

现在假设你有用户标签若干,每一个标签都有个权重 w,权重高低反映了用户对这个标签的感兴趣程度高低。你希望每次输出一部分标签用于召回推荐候选集,每次输出时都不一样,但是又能反映用户标签的权重,输出的概率和权重成正比。

这时候你需要一个公式:



解释一下这个公式:

  1. wi 是每个样本的权重,比如用户标签权重;
  2. R 是遍历每个样本时产生的 0 到 1 之间的随机数;
  3. Si 就是每个样本的采样分数

遍历之后,按照采样分数排序,输出前 k 个结果就是你得到的采样结果。可以编程简单做个模拟,比如下面有这样几个简单样本。



模拟 10000 次后,三个样本被采样次数如下:


相关文章

  • 推荐系统22:加权采样算法

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

  • Arxiv网络科学论文摘要4篇(2019-01-17)

    州际战争的频率和严重程度; 超越均匀反向采样:一种用于预防错误信息的混合采样技术; 基于局部边度的加权标签传播算法...

  • Re:从零开始的加权采样算法

    所有人都非常擅长均匀抽样,因为几乎所有的编程语言都内置了均匀分布中生成一个0到1的实数的方法,本文中我们将此方法记...

  • 《算法》笔记 12 - 最短路径

    加权有向图 数据结构加权有向边加权有向图最短路径 边的松弛 Dijkstra算法 地图或者导航系统是最短路径的典型...

  • 推荐系统

    推荐系统基础 推荐系统简介 了解推荐相关常用概念 知道推荐系统的工程架构和算法架构 知道推荐系统的常用算法 知道协...

  • spark实现加权采样(不放回)

    加权采样就是按照选定的权重列,根据权重值采样,如权重值是1.2和1.0;则value=1.2所属样本的被采样的概率...

  • 推荐系统陈开江 - C9 其他算法

    1 排行榜 考虑时间因素考虑投反对票考虑好评率防止水军:用户投票准入,一人一票,用户投票加权 2 采样算法 有限数...

  • 😆 机器学习采样方法大全

    ? Index 数据采样的原因 常见的采样算法 失衡样本的采样 采样的Python实现 ? 数据采样的原因 其实我...

  • 推荐算法综述(1)

    推荐系统在各种系统中广泛使用,推荐算法则是其中最核心的技术点,为推荐系统选择正确的推荐算法是非常重要的决定。目前为...

  • 推荐系统基础

    推荐系统基础 个性化推荐概述 1.1 推荐系统概述 首先,需要申明一点的就是推荐系统!=推荐算法。推荐系统是一套完...

网友评论

      本文标题:推荐系统22:加权采样算法

      本文链接:https://www.haomeiwen.com/subject/mydbeltx.html