ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[推荐系统]召回之引言

2022-06-16 10:35:27  阅读:186  来源: 互联网

标签:候选 多路 推荐 item 召回 排序 引言


引言

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

召回在推荐中的作用也十分重要,召回的商品准确与否直接决定了推荐的上限。召回的目标是从千万级甚至亿级的候选中召回几千个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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有