其他分享
首页 > 其他分享> > [推荐系统]召回之引言

[推荐系统]召回之引言

作者:互联网

引言

其实最开始推荐系统根本就没召回,直接基于物料池进行排序就行,但是如果物料池变得超大,为了技术和业务发展,每个样本的特征越来越复杂,如果直接精排是没法工程的,所以增加召回,即用更简单的模型更少的特征或者直接规则对候选集快速筛选,减少排序阶段的耗时;同时召回的加入也能让业务更加丰富,如想对这个人增加热点物料,广告主重点推荐物料等等;

召回在推荐中的作用也十分重要,召回的商品准确与否直接决定了推荐的上限。召回的目标是从千万级甚至亿级的候选中召回几千个item,很老的资料中都是诸如相似商品召回,协同过滤召回,买了又买召回等,但是以单路形式呈现,随着发展,现在召回基本都是由多路组成,每一路会有不同的侧重点(优化目标)。在推荐系统,不同路可能代表了不同的优化目标,如喜欢、关注、观看时长、评论这些都可以分不同的路召回。每一路的召回都会拉取前K个候选集,对于每一路的K的大小可以不同。K的大小一般需要通过离线评估加上线上A/B测试的方式确定合理的取值范围。

  • 召回:候选集规模大,模型和特征简单,速度快,尽可能增加多路业务性质的召回;
  • 排序: 候选集不大,目标是保证排序的精准,模型和特征都更复杂;

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

而现在都是多路召回:

目前召回常用的方法有:

  • 传统召回:规则召回;userCF;itemCF;CF;协同召回;fpGrowth;SVD;SVD++;MF;DeepMF;
  • 基于FM的召回:FM;FFM;DeepFM;
  • 图召回:DeepWalk;Node2Vec;EGES;GCN;GraphSAGE;LINE;SDNE;
  • 内容语义i2i召回:word2vec;FastText;Bert;
  • embedding召回(也是现在发展的趋势):Item2vec;DSSM;YouTubeDnn;Airbnb Embedding;MIND;NCF;CrossTag;EGES;GAT;SDM;NIRSA;TDM;

ps:在实际使用中,往往不是如论文一样单一实现,如工业界常常会用FM、双塔模型等先学习user embedding、和 item embedding,然后用ball tree、fast ball tree 等近似最近邻算法进行检索,加快效率;

多路召回融合

在每个召回策略后都得到了一些候选集后,那么如何融合这些结果呢,这个可参考文章中的介绍

简单来讲,如针对上述3路召回结果,可有:

  • 直接融合排序法:即按照权重排序即可;
  • 加权法:通过设定的规则对商品进行统计学加权,或者对整路进行加权;
  • 自适应加权:如利用机器学习方法对不同路算权值;

常见术语解释

如I2I、U2I、U2U2I、U2I2I、U2TAG2I,如下图所示,其中“2”代表的是下图中的边,“U”与“I”代表的事下图中的节点。

  • I2I:计算item-item相似度,用于相似推荐、相关推荐、关联推荐;
  • U2I:基于矩阵分解、协同过滤的结果、直接给u推荐i;
  • U2U2I:基于用户的协同过滤,先找相似用户,再推荐相似用户喜欢的item;
  • U2I2I:基于物品的协同过滤,先统计用户喜爱的物品,再推荐他喜欢的物品;
  • U2TAG2I:基于标签的泛化推荐,先统计用户偏好的tag向量,然后匹配所有的item,这个tag一般是item的标签、分类、关键词等tag。

而大部分情况下,用的最多的还是i2i和u2i,下图是embedding召回中的模型列举

规则召回

即运营等基于人直接拍脑袋想到的规则

  • 基础属性召回:简单来讲就是人主观觉得有效的策略,比如热门召回、地域召回、家乡召回、标题召回,季节性召回等
  • 产品&运营策略召回:比如节日、活动等定制场景

参考文献:
【总结】推荐系统——召回篇【1】
推荐系统召回策略之多路召回与Embedding召回
推荐系统主流召回方法综述

标签:候选,多路,推荐,item,召回,排序,引言
来源: https://www.cnblogs.com/shouhuxianjian/p/16379580.html