文章目录

  • 一、多路召回是什么?
  • 二、召回路径
  • 1.I2I
  • 2.矩阵分解 - U2I
  • 3.聚类推荐 - U2U2I
  • 4.实时召回 - U2I2I
  • 5.基于内容 - U2Tag2I
  • 6.基于图的算法:U2***2I
  • 三、融合排序
  • 四、融合策略
  • 1、按顺序展示
  • 2、平均法
  • 3、加权平均
  • 4、动态加权法
  • 5、机器学习权重法
  • 小结
  • 参考
  • 未完待续



一、多路召回是什么?

“多路召回”策略,指的是采用不同的策略、特征或简单模型,分别召回一部分候选集,然后再把候选集混合在一起供后续排序模型使用。

在设计召回层的时候,“计算速度”与“召回率”这两个指标是相互矛盾的,即要想有比较高的计算速度,就需要简化召回策略,这样就使得召回率达不到我们的要求;同样的,如果要有比较高的召回率,就必须将召回策略复杂化,此时计算速度就会相应的降低。

而“多路召回”策略,是在“计算速度”和“召回率”之间进行权衡的结果。通过各种简单策略保证候选集的快速召回,从不同角度设计的策略保证召回率达到理想化,不至于损伤排序结果。在多路召回中,每个策略之间毫不相关,所以一般可以写并发多线程同时进行,这样可以更高效。

在选择召回策略时,要根据相关任务的特点,考虑合适的召回规则。就比如新闻推荐,召回规则可以是“热门新闻”、“新闻类型”、“新闻类容”、“作者召回”等等。

深度学习提高召回率的方法 怎么提高召回率_多路


如上图所示,每一层的召回中都需要选取前K个候选集,而每一层的K的大小是超参数,可以是不同的。K的大小一般需要通过线上线下评估来选取合适的值。


二、召回路径

深度学习提高召回率的方法 怎么提高召回率_权重_02

1.I2I

I2I是指从一个物品到达另外一个物品。

根据物品的相似性,当用户查看一个物品,就给他推荐另一个物品。

2.矩阵分解 - U2I

U2l是指从一个用户到达一个物品。

根据用户的直接行为,计算User和Item的tag(标签)矩阵,然后进行向量积,然后提前存储好进行推荐。

我的理解:当用户点击了某个商品,就会再次给他推荐这个商品。

3.聚类推荐 - U2U2I

U2U2I是指从一个用户,到达另一个用户,再到达一个物品。

根据用户信息(可以根据用户本身的属性,也可以根据用户的浏览内容),对用户进行聚类,找到最相似的用户,根据最相似用户喜欢的物品进行推荐。

4.实时召回 - U2I2I

U2I2I是指从一个用户,通过一个物品,到达另一个物品。

根据用户点击查看的物品,实时为用户更新推荐列表,将与物品相似或相关的物品推荐给用户。

5.基于内容 - U2Tag2I

先计算用户的偏好标签,然后对偏好标签进行相似度计算,获取可能感兴趣的物品。

6.基于图的算法:U2***2I

起始于U(用户),结束于I(物品),通过中间跨越多个U和I,最后得到为用户推荐的物品。


三、融合排序

多种召回策略的内容,取TOPN合并成一个新的列表。这个新的列表,可以直接返回给前端,进行展示;也可以发给精排,进行排序。

精排模型非常耗时,所以召回的内容,会经过粗排之后,把少量的数据给精排进行排序。


四、融合策略

召回策略

召回item列表(Item-Id:权重)

召回item列表(Item-Id:权重)

召回item列表(Item-Id:权重)

召回策略1

A:0.9

B:0.8

C:0.7

召回策略2

B:0.6

C:0.5

D:0.4

召回策略3

C:0.3

D:0.2

E:0.1

1、按顺序展示

比如说按召回策略1 > 召回策略2 > 召回策略3,则直接展示A、B、C、D、E

2、平均法

  • 分子:权重和。
  • 分母:在网上有看到两种结果,一种是所有召回策略中包含所计算物品召回策略的个数,另一种是召回策略总数。

按第一种说法,D为(0.4+0.2)/2
按第二种说法,D为(0.4+0.2)/3

小白我也不知道哪种是对的,希望大佬们指点嘻嘻。

3、加权平均

这一种方式需要人为指定每种策略的权重。

假定将上面三种策略的权重指定为0.4、0.3、0.2,则B的权重为(0.4 *0.8 + 0.6 *0.3 + 0 *0.2)/ (0.4+0.3+0.2)

通过这里,小白觉得上面的平均法的分母应该是召回策略总数。

4、动态加权法

计算每种召回策略的CTR(点击率),作为更新的动态加权。

这种方法只考虑了点击率,并不全面。

召回源CTR计算方法:
展现日志-带召回源:1,2,3,3,1,2,3
点击日志-带召回源:点击1
召回源的CTR = 点击数/展现数

5、机器学习权重法

利用机器学习的方法来设置权重,比如说,使用逻辑回归LR分类模型预先离线算好各种召回的权重,然后做加权召回。
这种方法考虑更多的特征以及环境因素,会更准确。

以上融合排序的方法,成本逐渐增大,效果依次变好。


小结

虽然现在工业界普遍采用多路召回的策略,但是多路召回仍存在一些不可避免的缺陷。比如说,从策略选择到候选集大小参数的调整都需要人工进行,另外不同策略之间的信息也是割裂的,无法综合考虑不同策略对同一个物品的影响。
而基于Embedding的召回,对这些缺陷已经有了较好的解决方法。



未完待续

由于faiss包一直安装失败,代码还没跑通。
对于Embedding召回,还没有理解透彻,未完待续!