推荐系统打散算法--轮询(分类桶)

  打散作为推荐系统比较重要的数据处理逻辑,是推荐系统避免数据扎堆最重要的实现手段,本次介绍推荐算法中最简单的轮询算法。

轮询算法一般分为单维度、双维度轮询,所以本文主要介绍,单维度轮询双维度轮询两种。

单维度轮询:

单维度轮询主要是把数据按照某一个角度进行分类,比如推荐业务中,相同品牌的商品不能相邻出现,这里可以对数据集作以下处理,具体流程如下

注:不同的形状代表不同的品牌

按照品牌分类前的结果集如下图:

按照品牌分类后的结构如下图(形状):

针对以上结构,可轮询每个分类,每次取分类中某个位置的一个元素,最终轮询结果如下:

根据上面结果可见,当某个分类比较多时(如图中的三角形有5个),容易导致尾部扎堆现象出现,这也是分类轮询比较大的缺点。

双维度轮询:

双维度轮询即在单维度轮询的基础上,再次对单维度分类结果进行第二个分类去分类,然后对第二个维度分类结果轮询,再轮询第一个结果分类,比如推荐业务中按照四级商品组(形状),品牌(字体颜色)轮询,大体流程如下

  分类:原始结果集 -》 维度一分类 -》 维度二分类

  轮询:维度二分类结果轮询 -》 维度一分类结果轮询 -》 最终轮询结果集

原始结果集

分类结果

维度二轮询

维度一轮询(最终结果)

这种情况会打的更散,但是依旧无法解决维度扎堆的情况,只能相对缩小扎堆的可能性(9、10依旧扎堆,一般来说,标准差越大,越不适合用这种打散方式)

原文地址:https://www.cnblogs.com/id-tangrenhui/p/14378843.html