推荐系统的召回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统的召回相关的知识,希望对你有一定的参考价值。

参考技术A

推荐系统是一个很大的话题,涉及到很多模块,这里主要是调研了一下推荐召回环节的主流做法。一般有如下几条线路。
所谓召回,在刚接触推荐系统的时候可能只看字面意思无法理解召回的意思,召回可以理解为向用户粗选一批待推荐的商品,相当于 粗排序 。之后会加一层CTR预估的rank模型,相当于 精排序
推荐系统的主要模块即为: 召回 => 排序(精排) => 过滤模块(对最终展示商品进行过滤,多样性排序等)

方法 :只使用内容信息,而不直接使用用户行为数据。通过分析内容,推荐与用户浏览历史相似的内容。因此,如何计算内容之间的相似性是问题的关键。一般分成“分词”,“词权重分析”,“降维”三个阶段,每个阶段都有很多可以优化的地方,不同的做法会带来不一样的推荐体验。

优点 :(一)不依赖用户行为数据,因此不存在新内容的冷启动问题。(二)基于内容的做法很容易在“降维”阶段引入用户行为,从而可以吸收一部分CF的优点。

缺点 :(一)需要精细优化的地方会很多,没有工匠精神,效果比较难出来。(二)最重要的模块是通过对用户session实时分析用户意图。

应用 : 在电商推荐中,如果基于内容计算商品相似度,内容相似度一般定义为(品牌+品类+价格+标题的内容相似度),大规模两两之间相似度计算非常困难,工程上实现需要LSH等方法

方法 :只使用用户行为数据,而不管内容信息。通过用户行为向量,使用item-base和user-base方法推荐相似内容或者相似人群喜欢的内容。

优点 :(一)当用户行为数据丰富的时候,itembase和userbase的协同过滤方法非常通用,很容易出效果。(二)用户行为关联可以推荐出偏topic属性的内容,而不会局限于关键词,因此相关性效果一般都很好。

缺点 :新内容的冷启动问题很严重,只能通过EE的方式缓解。

应用 :电商中基本是item-based CF,即对于一个用户,先取出用户过去的行为session商品(如点击,加购物车,下单等),根据规则向用户的召回集中选择商品,可以配置多个召回源,如相似、相关、偏好店铺热销等。因此重点是离线计算好多种相似度关系(比如商品与商品的相似度、相关度,店铺下商品的热门程度、店铺与店铺的相似程度等) ,注:商品和商品的相似度,一般通过用户的浏览行为,用频繁项集(基于共现次数+热门商品降权方法)来计算,这样不用引入22之间计算的笛卡尔积,计算效率得到保证。

如果是user-based CF,则首要任务是计算用户之间的相似度,同样计算量非常大,但这种方法推荐新颖性较好(网易云音乐好像适用类似方法)。微信的deepwalk(用户的相识关系是典型的图模型),deepwalk通过节点的游走可以算出每个节点的embedding,进而求节点的相似度。

方法 :不仅使用用户行为信息,而且还使用内容信息。一般是使用feature-based模型来进行推荐。

优点 :(一)理论完备,通过模型的推广能力来解决新内容的冷启动问题,而且在小数据集上离线指标往往比CF能取得更好的效果。(二)可以通过提高模型复杂度不断提高推荐效果。

缺点 :工程实现时难度比较大,需要解决用户和海量内容的打分服务,这方面可以参考以下Facebook的一篇文章 recommending-items-to-more-than-a-billion-people 。

推荐系统+召回

推荐系统+召回

 

与分类中的召回率的差异?

recall?

推荐系统中的召回(recall)是什么意思?如何理解推荐系统中的召回?

它和二元分类的召回是一个意思吗?

推荐系统中的精度(precision)和召回(recall)本质上和二元分类中的概念是一样的。

推荐系统往往只推荐有限个(如k个)物品给某个用户。真正相匹配的物品我们称之为相关物品(也就是二元分类中的阳性)。

以上是关于推荐系统的召回的主要内容,如果未能解决你的问题,请参考以下文章

推荐系统手把手带你学推荐系统 4 知识补充

推荐系统中召回策略

推荐系统[七]:推荐系统通用技术架构(Netfilx等)API服务接口

推荐系统主流召回方法综述

推荐系统召回策略—基于协同过滤召回

重磅整理!推荐系统之深度召回模型综述(PART II)