推荐系统中的召回算法大致梳理(非完整)
定义
推荐策略中的两个关键问题分别是“召回”和“排序”。
“召回match”是指从全量信息中触发尽可能多的正确结果,并将正确结果返回给“排序”
来源
全量商品与用户进行匹配排序,计算力无法支持,需要召回获得较小的商品候选集,在进行复杂模型的排序。
指标
召回率(recall)、准确率(precision)
召回类型
1.基于内容匹配的召回(content-based)
2.基于协同过滤的召回 (collaborative filtering)
协同过滤分为:
a. 基于共现关系 neighborhood ( user-based ,item-based)
b.基于模型 model-based
模型协同过滤细分为:
i.传统svd,FM
ii, 深度网络 DNN (deepmatch)、embedding (w2v、graph embedding)
base 算法
item-based CF (i2i)
商品根据用户浏览表示成向量,例如 商品A 被 用户a和用户b浏览,没有被用户c浏览,可以表示为(1,1,0)
计算两个商品的余弦相似度 similarity(A,B)=cos(A,B)=AB / (||A||*||B||)
实际应用中,采用一个session 内的用户行为来计算 两个商品的pair对
最终产生的离线数据为左i, 和相似的右i,按照相似度来从高到低 ,线上使用时,右i要进行截断。
modified 算法
余弦相似度过于粗暴,容易出现哈利波特效应,改良版将会降低热门用户对商品的权重
1. wbcos i2i (weighted bin)
2. swing i2i
3. expectaion i2i
ranki2i
背景:上面都是基于统计产生的i2i,实际展示的时候不是要最相似原商品的,还有考虑该商品的ctr 和 cvr 等综合产出
过程:利用模型,离线训练和离线预测,右i的点击率,并进行重排。
1.分别预测ctr,cvr
类似于线上rank,这里采用左i的feature和右i的feature,模型可采用现有rank模型,(gbdt,lr,dnn皆可)
2.一步到位
利用pairwise或者listwise 作为损失函数
将gmv或者点击率转化为预测目标,label为多分类,指标为ndcg.
embedding 实践
word2vec,graph embedding