电商环境下的个性化推荐,主要包含三大维度的模块,针对用户的候选召回(Match),候选商品的精排(Rank),以及线上的策略调控(Re-rank)。而Match(召回)和Rank(排序)是推荐流程非常关键的两步。
一、Match
Match即有效和丰富的召回,从全量商品(还包括feed和视频等)集合中根据用户行为和属性信息触发尽可能多正确的结果,并将结果返回给Rank。
推荐不同与搜索,在没有明确Query触达的情况下,用户的Match召回就显得尤为重要,希望相关性的信息尽可能的丰富。
因此Match面对的是整个商品库集合,需要保留尽可能多的相关结果,剔除相关性较弱的结果,降低对后面链路的压力。
由此需综合利用多种信息,比如用户信息(年龄、性能、购买力等)、类目信息、店铺信息、文本信息等。从而既保证高召回率,又要保证高的准确率。Match结果的好坏,对整个结果有重要的影响。
Match召回策略主要包含两大类:基于内容匹配的召回和基于协同过滤的召回。
前者主要是基于用户的画像信息和商品的内容信息进行匹配召回。这种方式召回率较高,但精度较差,比较适用于冷启动的语义环境。
后者主要是基于用户和商品之间的行为矩阵,通过一系列策略得到用户和候选商品之间的相关性;这种方式精度较高,但存在一定程度的冷启动问题。协同过滤是当前推荐依赖的基础策略。
二、Rank
Rank即精排,通过一个准确的预估模型对Match阶段海选的商品进行精准打分,并根据打分结果进行排序截断,决定最终向用户展示的结果顺序。
Rank模型两大要素为特征抽取和打分模型学习训练。
特征抽取的第一步也是最为重要的一步就是清洗日志,曝光日志可以通过日志埋点进行过滤,并结合更准确的搜索、点击、收藏等用户行为日志,进行User_id和Item_id维度的聚合,最终将两份日志Join在一起构造为用户特征样本。
特征抽取除了基本属性特征,如user_id,item_id,user的年龄性别等人群特征,有小时级或分钟级回流的准实时反馈特征,还包括user端和item端双向交叉特征,如user在不同类目下的偏好程度,item在不同性别年龄购买力人群下的ctr等。
除了用户实时特征外,还会进行离线模型的日志及特征的接入、预处理以及离线特征的统计工作,作为实时特征的补充,这里处理长期兴趣的统计类特征的准备以及各种平滑过滤逻辑,在数据侧提供了保障。
打分模型主要分为CTR与CVR预估模型,在展示商品前,结合用户历史行为&商品&场景信息,预估展示商品之后用户是否会点,或点击之后是否会购买,从而在Rank时有不同的CTR与CVR倾向。
目前,成熟的排序模型都是多维度分数融合排序,获取多个维度的预估分,包括CTR预估,CVR预估,笔单价和商品毛利润,根据业务指标进行调控,计算最终的RankScore。
三、End
推荐算法是Match与Rank的联动协同。当用户Match模型,召回的内容较少时,Rank排序则无较大的发挥空间。当用户的行为丰富,更容易获取召回了,Rank排序则能发挥更大的效用。