多种策略混合,快而全
# 策略
召回阶段需要从海量的标的物中选取,通常使用不同的召回策略满足内容的多样性,新颖性等要求。
# 基于规则的召回
比如热门内容等。
# 基于人口统计信息
比如按人群特征推荐不同内容。
# 基于内容的召回
也叫做标签召回,这类召回的核心是基于item自身的属性,表达为tag,cate,也可以用来表达用户ID,用户类型,更可以通过交叉验证的方式,对内容提取向量,将内容表达为连续向量的方式进行召回。
核心思想是推荐操作过的物品相似的物品,或者推荐相似用户喜欢的物品。优点是不需要其他用户的数据,捕获用户的特定兴趣。缺点是item特征工程需要手工设计,并且用户兴趣过窄。通常可用于冷启动。
# 协同过滤
协同过滤依赖大量用户的行为,核心思想是推荐操作过物品的相似物品(ItemCF),或者推荐相似用户喜欢的物品(UserCF),以及基于模型(Model-Based)。和基于内容的召回的区别是,基于内容的召回的相似性基于物品和用户自身的属性,协同过滤基于用户和物品的行为矩阵。
- 关联算法,Apriori, FP Tree, PrefixSpan
- 聚类算法,KMeans,BIRCH,DBSCAN,谱聚类
- 分类算法,Logistic Regression,朴素贝叶斯
- 回归算法,Linear Regression,DT,SVM
- 矩阵分解,SVD
- 神经网络
- 图模型
- 隐语义模型
# 向量召回
通过Embedding计算相似度,分为深度学习u2i,内容语义i2i,图表征i2i。
- 内容语义i2i通常基于文本,经典算法包括Word2Vec,FastText,Bert。
- 图表征i2i基于行为序列,经典算法包括Deep Walk,EGES,Node2Vec,GCN,GrapSAGE。
- 深度学习u2i常用算法包括DSSM双塔,YouTube,Airbnb。
# 工程
# 查表
离线将i2i或u2i关系计算并存到数据源,在线服务从数据源读取。数据源是数据库,比如MySQL,PostgreSQL,Redis,HBase等。
对于新商品或新用户需要有兜底方案,比如热门商品。
# 向量召回
离线或在线计算item embedding和user embedding间距离最近的embedding,通常不直接计算相似度,而是通过向量召回引擎如faiss28。
局部敏感哈希。
- [1] 基于协同的推荐算法
- [2] 推荐系统之LFM算法详解
- [3] 矩阵分解(MF,SVD)和协同过滤(CF)
- [4] 矩阵分解 - 维基百科
- [5] 推荐系统面试题之机器学习(一)树模型
- [6] 决策树的进化史 - 知乎
- [7] 1.10. Decision Trees — scikit-learn 0.24.2 documentation
- [8] 机器学习实战教程(二):决策树基础篇之让我们从相亲说起
- [9] 决策树常见的面试点整理
- [10] l2的最优回归_机器学习(七):数据预处理–特征选择-L1、L2正则化
- [11] 机器学习中正则化项L1和L2的直观理解
- [12] 降低过拟合风险的方法
- [13] 决策树的剪枝:REP/PEP/CCP算法
- [14] AI 知识库
- [15] 树算法对比:RF、GBDT、XGBoost
- [16] RF、GBDT、XGBoost常见面试题整理
- [17] GBDT理解难点------拟合负梯度
- [18] 从零开始学推荐系统一:基于邻域的算法
- [19] 深入理解推荐系统:召回
- [20] 基于内容的推荐算法
- [21] work2vec的实战应用
- [22] word2vec是如何工作的?
- [23] models.doc2vec – Doc2vec paragraph embeddings — gensim
- [24] 协同过滤推荐算法
- [25] 协同过滤推荐算法总结
- [26] 嵌套 (Embedding):协同过滤的目的
- [27] 谈谈推荐场景中召回模型的演化过程
- [28] facebookresearch/faiss: A library for efficient similarity search and clustering of dense vectors.