一.什么是个性化召回
召回是从全局的item库中选取和当前推荐被用户(根据用户属性,历史行为等信息)相关的一部分作为候选集。
举例说明:
如果某个推荐系统中,物品全集是如下左图中9个item,这里有两个用户A和B,他们分别对不同的item感兴趣。这里拿信息流产品举例,如果user A对体育类新闻感兴趣,user B对娱乐类新闻感兴趣,那就按照简单的类别召回,得到结果如下右图所示:
召回阶段的意义:
召回阶段是整个推荐,搜索中的第一步骤,它的输出作为后续步骤(排序,策略调整)的输入,最终展示给用户的item数据是这个集合的子集。召回太多,导致后续的排序精细化排序过程计算压力大,用户被“读懂”的幸福感降低;召回太少,用户看到的内容太少,不利于用户和平台发生转化。所以召回决定着推荐,搜索的天花板。
二.工业界召回常用的架构
1.离线方式:离线的model file算出推荐结果,这些推荐结果可以是用户喜欢哪些item,也可以是item之间的相似度文件,然后写入KV存储,在线的server recall部分直接调用这个结果,拿到ID之后访问detail server得到详情,再往rank部分传递。
2.半在线模式:将model file算出来的item embedding也存入KV,然后tf-server调用在线model 生成 user embedding,然后通过两个embedding做最近邻召回。
召回阶段多种算法如何实现多路召回:
如上图所示,每种算法按照各自的召回配比份额,进行召回对应数目的item,再进行去重merge;或者排序无性能压力的情况下,分别召回各自子召回域,再去重merge;亦或投票等等规则,得到我们推荐系统想要的召回域。
三.常用的算法概述
1.基于用户行为的:也就是用户基于推荐系统推荐给他的item点击或者没点。这一类的算法主要有CF以及矩阵分解,还有就是基于图的推荐,这一类的个性化召回算法总体来说就是推荐结果的可解释性较强,比较通俗易懂,但是缺少一些新颖性,具体包括一下各类:
1.1 item-CF是item根据user的贡献,得到item的相似度矩阵,用户根据点击过的item的相似item来完成推荐
1.2 user-CF是user根据item的贡献,得到user的相似度矩阵,用户将根据相似用户点击过的物品完成自己的推荐。
1.3 LFM是根据user-item矩阵,将矩阵分解,从而得到user与item的向量,将两个向量点乘得到的数值取top k 便完成了推荐。
1.4 psersonal rank是根据user与item的二分图,在这个二分图之间随机游走,便得到物品对固定用户的倾向度,把这个倾向度得分叫做PR值。那么取PR值得top k也就完成了用户的推荐
2.基于user profile的:经过用户的自然属性,也就是说经过用户的偏好统计,那么基于这个统计的类别去召回。推荐效果不错,但是可扩展性较差。也就是说一旦用户被标上了某一个类别或者某几个类别的标签之后,很难迁移到其余的一些标签,主要包括一下各类:
2.1 content-base 首先将item进行标签化,然后将user进行标签化,然后将user的标签化与item的标签化在线上推荐的时候进行匹配
3.基于隐语义的:主要指基于user,item的embedding的深度学习的方法,新颖性、创新性十足,但是可解释性不是那么强,主要指:
3.1 item2vec首先根据用户的行为得到由item得到的句柄,根据训练语料得到item embedding的向量,得到这个向量之后就能得到item的相似度矩阵。从而根据用户的历史点击推荐相似的item给用户,也就完成了推荐
四.召回的评测方法
在现有的个性化召回体系下,如果要新增一种个性化召回算法,需要知道这种个性化召回算法会对系统造成怎样的影响,是正向收益还是负向收益。所以经过离线和在线两个步骤的评测:
1.离线评测:是作为能否进入线上的标准,主要是通过历史数据,场景重现,看用户反馈的各项指标是否有所提升,指标包括模型指标(P值,r值,F1值等),业务指标(CTR,CVR)。
2.在线评测:主要是通过逐级增大流量的AB实验的方法,进行测试,观察各种业务的在线指标,比如CTR,CVR,GMV等。
五.数据集
因为推荐系统,除非读者各大厂的工程师,否则很难有操刀的场景,所以整理了下推荐系统方面的常用的数据集,个人学习可以在这些数据集上进行实验和测试算法效果
参考资料:
慕课网:个性化推荐算法实践(因为是在B站看到,所以无法知道该课程具体出处)
https://blog.csdn.net/weixin_41640583/article/details/89072762
https://blog.csdn.net/weixin_41640583/article/details/86935434
https://blog.csdn.net/somtian/article/details/78012749
以上内容为个人知识点整理,学习所用,如有涉及权益问题请联系 QQ:936754331