八、推荐系统多路召回融合排序
多路召回与融合排序
多路召回
推荐服务一般有多个环节(召回、粗排序、精排序),一般会使用多个召回策略,互相弥补不足,效果更好。比如说:
- 实时召回- U2I2I,
- 几秒之内根据行为更新推荐列表。
- 用U2I得到你实时的行为对象列表,再根据I2I得到可能喜欢的其他的物品
- 这个是实时召回,剩下3个是提前算好的
- 基于内容 - U2Tag2I
- 先算好用户的偏好tag,然后对tag计算相似度,获取可能感兴趣的item
- 矩阵分解 - U2I
- 先算好User和Item的tag矩阵,然后叉乘,给每个user推荐item
- 提前存储好进行推荐
- 聚类推荐 - U2U2I
- 根据用户信息对用户进行聚类,然后找到最相似的user,推荐最相似user喜欢的物品;或者找到聚类中大家喜欢的物品,进行推荐
写程序时,每个策略之间毫不相关,所以:
1、一般可以编写并发多线程同时执行
2、每一种策略输出结果,都有一个顺序,但最后要的结果只有一个列表,这就需要融合排序
融合排序
多种召回策略的内容,取TOPN合并成一个新的列表。这个新的列表,可以直接返回给前端,进行展示;也可以发给精排,进行排序。