推荐算法一般分为协同过滤、基于内容推荐、混合推荐三大基础大类,另外还有基于知识推荐、基于上下文推荐、深度学习推荐等,工程上几乎不会单独只用某一类,大多是多种组合。
一、协同过滤 CF(Collaborative Filtering)
核心思想:物以类聚,人以群分,不需要物品本身特征,只依赖用户行为(点击、收藏、购买)。
基于用户的协同过滤 User-CF 找兴趣相似的用户 A、B,把 A 喜欢但 B 没看过的物品推荐给 B。
优点:能挖掘长尾、发现新兴趣;
缺点:用户量大时计算相似度开销高;新用户冷启动问题。
基于物品的协同过滤 Item-CF 计算物品之间相似度,用户买 / 看过 A,就推荐和 A 相似的 B。
优点:物品相对稳定,离线可预计算;解释性强(“购买此商品的人还买了”);
缺点:物品量大时相似度矩阵爆炸;新物品冷启动。
模型化协同过滤:矩阵分解 MF 把用户 - 物品评分矩阵,分解成用户隐向量、物品隐向量(Embedding)。 经典:SVD、FunkSVD、ALS。
是早期工业界最主流的召回算法,把用户、物品压缩到低维向量空间做相似度计算。
二、基于内容的推荐 Content-Based
核心:用户喜欢什么属性,就推同属性物品,依赖物品标签 / 特征。
例子:喜欢科幻电影 → 推荐其他科幻片;喜欢 Java 技术文章 → 继续推 Java 内容。
步骤:物品特征提取(文本、标签、类别)→ 用户画像(用户喜欢的特征集合)→ 匹配打分。
优点:无新物品冷启动(只要物品有特征就能推),可解释强,不存在用户隐私问题;
缺点:容易推荐同质化内容(信息茧房);很难挖掘用户潜在兴趣;特征质量高度依赖人工打标。
三、混合推荐算法(工业最常用)
单一算法都有短板,实际平台基本都是混合,常见组合方式:
加权式:CF 打分 + Content 打分加权求和;
切换式:冷启动阶段用内容推荐,用户行为积累后切协同过滤;
特征组合式:把内容特征、用户行为特征一起喂给模型(现在深度推荐主流);
层叠式:召回 + 粗排 + 精排 + 重排(大厂标准推荐链路)
召回:多路召回(ItemCF、向量召回、热门召回、内容召回),从千万级物品粗筛千级候选;
粗排:轻量模型,快速过滤;
精排:复杂模型,预估 CTR/CVR;
重排:多样性、公平性、业务规则调整。
四、传统其他类型
基于知识的推荐 Knowledge-based 利用领域知识、规则、约束做推荐,不依赖历史行为。适合冷启动场景,比如家装、房产、汽车这类低频高价商品。
基于上下文推荐 Context-aware 把时间、地点、设备、场景作为特征。例如通勤时段推短视频,晚上推直播。
五、深度学习推荐模型(现在主流)
把用户、物品、行为、上下文全部转为 Embedding,学习高阶特征交叉,多用于精排阶段:
DNN:基础深度网络,学习非线性特征;
Wide&Deep(Google)
Wide:记忆能力(记住历史强关联,类似 CF)
Deep:泛化能力(挖掘新组合兴趣,类似内容推荐)
DeepFM:自动做一阶、二阶特征交叉,不用人工构造交叉特征;
xDeepFM:显式高阶特征交叉;
DIN(阿里深度兴趣网络):注意力机制,针对用户历史行为做兴趣激活(电商推荐经典);
DIEN:在 DIN 基础上建模兴趣演化,捕捉用户兴趣随时间变化;
SIM、DSIN:继续升级长序列用户兴趣建模;
向量召回模型(双塔模型 Two-Tower) 用户塔、物品塔分别输出 Embedding,向量相似度做召回,抖音、快手、小红书大量使用。
六、其他补充策略(不算核心算法,但非常重要)
热门 / 流行度推荐:新用户冷启动兜底,推荐爆款;
规则推荐:人工策略(新品、运营活动、过滤黑名单);
多目标优化:同时预估点击、停留、分享、转化;
强化学习推荐:把推荐当成序列决策,长期收益最大化;
大模型推荐:LLM 做用户理解、物品标签生成、召回、重排、推荐理由生成(近年新方向)。