推荐系统 召回排序过滤

推荐系统

召回

排序

过滤

1、召回:

理想情况下,除去计算承受能力和计算速度的约束,那么我们可以直接略过召回层,直接对百万量级的商品进行排序,然后反馈给用户。

但这是不现实的,因此召回层的意义在于缩小对商品的计算范围,将用户感兴趣的商品从百万量级的商品中进行粗选,通过简单的模型和算法将百万量级缩小至几百甚至几十量级。这样用户才能有机会在毫秒的延迟下,得到迅速的商品反馈。

召回层的特点是:数据量大、速度响应快、模型简单、特征较少。

2、排序:

排序层的目的是得到精确的排序结果,也是推荐系统产生效果的重点,更是深度学习等应用的核心。从召回层召回的几百个物品,进行精准排序,根据规则对每个商品赋予不同的得分,由高至低来排序。由于精确度的要求,排序层的模型一般比较复杂,所需要的特征会更多。

排序层的特点是:数据量少、排序精准、模型复杂、特征较多。

1、基于用户的协同过滤(UserCF)

首先,UserCF基于这样一个前提假设:喜欢相似物品的用户之间,存在着相似的兴趣偏好。

以商品为例,假设商品库存中有a、b、c、d四件商品,平台上一共有A、B、C、D、E五位用户,根据用户在平台上的行为和动作,我们基本能够获取到每位用户对于a、b、c、d四件商品大致的偏好程度。

如何衡量偏好程度呢?可以采用打分的方式,根据用户对于物品的显示反馈或隐式反馈,来综合得出对于物品的打分,比如对商品点赞加1分,踩一下减1分,浏览商品加1分,收藏加2分,购买加3分(这里的打分方式只是用于说明问题,实际可能会略复杂一些),这样就可以得出每个用户对于每个物品的综合打分。

但这里一定会存在用户与某个物品尚未产生交互行为的情况,那么对应的分值就为“空”,也可以取0分或者是取纵向的平均分来代替空值。

2、基于物品的协同过滤(ItemCF)

首先,ItemCF基于这样一个前提假设:用户对于不同物品间的偏好相似,那么物品间也是相似的。

它的原理与UserCF类似,还是上面那张图,可以看作是UserCF的另一面。ItemCF采用纵向的向量,作为物品的表示向量,可以通过物品向量间余弦相似度的方式来寻找最相似的k个物品,夹角越小,两个物品就越相似。

得到相似度之后,相似度就可以作为置信权重来综合k个相似物品的打分,得到最终预测打分。

ItemCF的应用场景和优缺点:

因为UserCF有一些明显的缺点,所以Amazon和Netflix最早应用的都是ItemCF,它相比用户向量,物品的向量变化要更为稳定,因此广泛用于电商和视频推荐的领域,当用户对某一类商品或某一类电影产生兴趣时,此时给Ta推荐同类型的商品或电影是一个可靠的选择。

ItemCF不具备很强的泛化能力。当一个热门商品出现后,它容易和大量的商品都具有相似性,导致推荐商品时,热门商品的出现概率会非常高,形成了“头部效应”,同样也致使处于长尾的商品较难被挖掘,因为长尾商品的特征向量会非常稀疏。所以要想解决这个问题,需要后期添加一些干预策略在里面。

你可能感兴趣的:(数据挖掘,推荐算法)