定义:Match基于当前user(profile、history)和context,快速在全库里找到TopN最相关的item。
通常做法: 用各种算法做召回,比如user/item/model-based CF Content-based,Demographic-based,DNN-Embedding-based等March策略,做粗排后交由后面的Rank层做更精细的排序,最终展现TopK item
没有一个算法能覆盖所有信息,一个模型总是从一个角度去优化相关性,可能会忽略其他信息,做算法融合能提高召回率。
1)协同过滤算法 CF算法
usercf代码实现
itemcf代码实现 (最后生成个倒排表)
2)Item CF 最新实践
Item2Item :解决热门物品推荐越热问题,热门户降权、热门Item降权
实时I2I(腾讯2015) 更新item列表,当
3) Hybrid i2i: 算法的好坏体现在点击上,比如10种i2i,根据每个场景训练每个小模型,设置不同的权重。paper : Learning to Rank for Information Retrieval,Tie-Yan L
买了还推怎么解决
推荐过于同质化(当看了一个物品后,推荐的都是这个物品相似的物品) listwise
搭配推荐算法
svd算法进行矩阵补全,但是缺点是计算代价大,不是非常好。没有正则项,容易过拟合。
MF(user-based CF):用UserId来表示用户
FISM(item-based CF): 用用户评价的item来表示用户
SVD++混合了两种paper: Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model,(Koren, KDD’08)
因为svd++只应用了userid/item两种信息,如何融入更多的信息,将user/item属性 和上下文怎么融合进去
FM:Factorization Machines Steffen Rendle Rendle ICDM’
Top-N Recommendation的效果->pairwise ranking loss (排序关系)
paper:Known as the Bayesian Personalized Ranking loss (Rendle,
UAI’09
工业界: 在大数据情况下,将模型并行,采用分布式的。tensorflow训练/在线服务。
常用的结构:Spark/MPI(分布式)+tensorflow(小模型的计算)