返回

千人千面推荐算法原理:从协同过滤到深度学习

通智云团队 ·
技术方案 推荐系统 电商
千人千面推荐算法原理:从协同过滤到深度学习

摘要:千人千面推荐算法经历四代演进:第一代协同过滤用群体行为相似度推荐(user-based 按邻居、item-based 按物品相似度表),缺陷是稀疏、冷启动与头部偏置;第二代矩阵分解把交互矩阵压缩为 k=32–128 维隐向量,用内积预测得分,解决稀疏与泛化;第三代基于内容与混合用物品属性补冷启动与可解释性;第四代深度学习用双塔向量召回承接冷启动、DeepFM 类结构做特征交叉、DIN/Transformer 做序列建模、MMoE/PLE 做多目标。2003 年 IEEE Internet Computing 论文给出的工程约束是数千万客户、数百万商品、0.5 秒内返回。某跨境服饰独立站 16 周三阶段演进后,推荐位 CTR 从 2.1% 升至 3.4%,新 SKU 进推荐列表从 21 天缩至 1.5 天,长尾曝光占比从 7.8% 升至 18.6%。

千人千面推荐算法的主线是:协同过滤用相似度找同类用户,矩阵分解把稀疏行为压成隐向量,深度学习再用向量与序列模型直接建模每个人的兴趣。

关键要点

千人千面推荐算法的定义

千人千面(Personalized Recommendation)指在同一时间、同一展示位上,系统依据用户的行为、属性与上下文,为不同用户输出不同内容排序结果的技术体系。它要解决的不是「找不找得到」,而是「在几百万个都算相关的候选里,给这个人先看哪一个」。

它与搜索的分界线是有没有显式查询词。搜索是「人找信息」,用户用关键词表达意图;推荐是「信息找人」,系统只能从历史行为反推意图。两者底层共享相关性计算、索引结构与排序模型,因此常被放进同一套技术栈(电商搜索+推荐一体化:从数据打通到协同优化)。更完整的系统分层可参考什么是推荐系统?召回、排序、重排三层架构解析。

目标函数的三次迁移

理解算法演进,先看优化目标怎么变的:

  1. 评分预测阶段:预测用户会给物品打几分,用 RMSE / MAE 衡量。问题是用打分反推排序,误差方向与业务收益不一致。
  2. Top-K 排序阶段:直接优化列表顺序,用 NDCG、MAP、Recall@K 衡量。更贴近「首页前 20 个坑位放什么」。
  3. 行为概率与多目标阶段:同时预估点击率 pCTR、转化率 pCVR、观看时长、GMV,再按业务权重融合。这是深度学习时代的主流形态。

每一次目标函数的迁移,都会淘汰一批算法,也决定了本文的代际划分方式。

第一代:协同过滤(Collaborative Filtering)

协同过滤的核心假设很朴素:过去行为相似的人,未来兴趣也相似。它不需要理解物品内容,只依赖用户—物品的交互矩阵。

按 Google 官方机器学习课程的定义,协同过滤是一类「根据用户之间的相似性,推荐相似用户喜欢的物品」的方法,其输入是用户与物品的交互矩阵(协同过滤基础)。

两种基本形态

相似度怎么算:常用余弦相似度(Cosine Similarity)与皮尔逊相关系数(Pearson Correlation),工程上还要做热度惩罚——热门物品与几乎所有物品都相似,会污染相似度表。

三个绕不开的缺陷

  1. 稀疏性:用户只与极少量物品交互,交互矩阵 99% 以上是空的,两个用户的行为几乎没有交集。
  2. 冷启动:新物品没有任何交互记录,永远进不了推荐列表;新用户同理。
  3. 头部偏置:相似度天然向热门物品倾斜,长尾物品难以获得曝光。

2003 年发表于 IEEE Internet Computing 的经典论文(作者来自某全球电商企业)给出的量级至今仍具代表性:大型零售商通常有数千万客户与数百万在售商品,推荐结果必须在 0.5 秒以内返回(Item-to-Item Collaborative Filtering,2003)。0.5 秒的延迟预算,决定了算法必须能在离线阶段完成绝大部分计算。

第二代:矩阵分解(Matrix Factorization)

矩阵分解解决的是稀疏性。它把高维、稀疏的用户—物品交互矩阵,分解为两个低维稠密矩阵的乘积:每个用户得到一个隐向量(Embedding),每个物品也得到一个隐向量,用户向量与物品向量的内积即预测得分。

Google 课程将这一族方法归在协同过滤之下,并指出矩阵分解可通过奇异值分解(SVD)等手段把交互矩阵压缩为低维表示,从而捕捉用户与物品的潜在结构(矩阵分解)。

为什么它比传统协同过滤强

问题 传统协同过滤 矩阵分解
稀疏性 依赖行为交集,交集为空即失效 隐向量由全局拟合得到,无交集也可算出相似度
泛化能力 只能推荐「见过共现」的物品 隐向量可外推到未共现但结构相似的物品
存储与计算 相似度表随物品数平方增长 只需存 k 维向量,k 常取 32–128
可解释性 高(「跟你买过 A 的人也买了 B」) 低(隐向量维度无语义)

主流方法:显式反馈用 SVD、SVD++;隐式反馈(点击、加购、观看)用 ALS(交替最小二乘)与 BPR(贝叶斯个性化排序)。工业界绝大多数场景是隐式反馈,BPR 的成对排序损失更贴近「排序」这一真实目标。

矩阵分解的短板是只做线性内积,无法建模「用户刚看了三款跑鞋,现在该推运动袜」这类高阶交叉与时序关系,也没有用到物品内容、上下文等侧信息(Side Information)。

第三代:基于内容与混合推荐

既然行为数据稀疏,就把物品自身的信息补进来。基于内容的过滤(Content-based Filtering)不依赖其他用户的行为,只用物品属性与用户已消费物品的属性做匹配(基于内容的过滤基础)。

它带来两个直接价值:

代价是推荐结果容易收敛在用户已有的兴趣圈内,新颖性与跨类目发现能力弱。因此工业界从不单用内容过滤,而是做混合:内容过滤保证冷启动覆盖与多样性,协同类方法负责精准度。

混合效果的强弱,很大程度取决于标签与属性体系的质量——类目粒度、属性完整率、同义词归一、时效标签,直接决定内容特征的上限(构建精细化用户画像:用户标签体系设计指南)。跨端身份打通同样关键:同一用户在 App、小程序、Web 的行为若无法合并,行为序列会被切碎,任何算法都拿不到完整输入(OneID 跨平台身份打通实践)。

第四代:深度学习(Deep Learning)

深度学习不是推翻前三代,而是把它们统一进同一个可微分的框架:用 Embedding 承接矩阵分解,用神经网络承接特征交叉,用序列模型承接行为时序。

4.1 向量召回:双塔模型 + 近似最近邻

双塔模型(Two-Tower)把用户侧特征与物品侧特征分别喂入两个独立的神经网络,各自输出一个向量,线上用向量检索引擎(ANN,如 HNSW、ScaNN)取 Top-K。

它相对矩阵分解的实质提升在于:物品侧塔可以输入内容特征,因此新品一入库就能算出向量,冷启动问题在召回层被大幅缓解。Google 课程明确指出,深度召回模型的候选来源可以是用户特征、物品内容、上下文等多路信号,再由统一模型打分(DNN 推荐:召回)。

4.2 特征交叉:从 Wide & Deep 到 DeepFM

排序层要解决的是「如何把几十组特征组合起来估准概率」。三代代表性结构:

4.3 序列建模:从 DIN 到 Transformer

用户的兴趣不是静态画像,而是不断变化的行为序列。序列类模型按「目标物品与历史行为的关联度」动态加权:

4.4 多目标学习与统一打分

真实业务不只要点击。ESMM、MMoE、PLE 一类的多目标结构,把 pCTR、pCVR、停留时长、互动率放在同一模型中联合训练,缓解「点击率高但转化差」的目标错配。Google 课程强调,用单一模型为不同召回源统一打分,比直接比较各召回源自己的分数更可比,也更容易引入上下文(DNN 推荐:打分排序)。

开源生态已把上述结构标准化,工程团队不必从零实现(Microsoft Recommenders 开源算法库)。

四代算法对比表

代际 代表算法 核心思想 解决的关键问题 主要局限 典型适用规模
第一代 User/Item-based CF 用群体行为的相似度做推荐 不需要理解内容即可推荐 稀疏、冷启动、头部偏置 SKU 十万级以内
第二代 SVD / ALS / BPR 交互矩阵分解为低维隐向量 稀疏性与泛化 线性建模,用不了侧信息 SKU 十万至百万级
第三代 内容过滤 / 混合 用物品属性与标签匹配 冷启动与可解释性 新颖性弱,易困在兴趣圈 全规模,作为补充路
第四代 双塔 / DeepFM / DIN / MMoE Embedding + 特征交叉 + 序列 + 多目标 泛化、时序、多目标、实时性 算力与工程复杂度高,需专门团队 SKU 百万级以上、行为稠密

指标与落地路径:该上哪一档

不同代际对应不同的考核指标,混用会得出错误结论:

环节 核心指标 常见误判
召回层 召回率@K、覆盖率、响应延迟 用排序层 AUC 评价召回,看不到覆盖塌陷
排序层 AUC、GAUC、NDCG(需校正位置偏差) 未做位置偏差校正,越推越偏
重排层 多样性、人均停留、退货率、长尾曝光占比 只盯单条 CTR,列表同质化

落地阶梯建议

  1. SKU 一万以内、行为稀疏:itemCF + 热门/新品规则两路召回,排序用逻辑回归或梯度提升树即可,先保证覆盖与稳定。
  2. SKU 十万至百万级:上双塔向量召回 + DeepFM 类排序,重排以规则打散起步。
  3. SKU 百万级以上、行为稠密:多路召回融合 + 序列建模 + 多目标排序 + 模型化重排,并配套实时特征与在线实验平台。

判断是否需要升级的唯一标准是当前层的指标是否已成为瓶颈:召回率@K 只有 60% 时换更深的排序模型,收益极小;先补召回覆盖率,才是性价比最高的动作。

案例:某跨境服饰独立站的算法演进

背景:某跨境服饰独立站,在售 SKU 约 38 万,月活跃用户约 90 万,首页、详情页、购物车页均有推荐位,原方案为 itemCF 加热门榜。

问题:新 SKU 上架后平均 21 天才能进入推荐列表;首页推荐位点击率长期徘徊在 2.1%;长尾 SKU 曝光占比不足 8%,滞销库存积压。

方案:分三阶段演进,每阶段用 A/B 实验验证后再全量。

结果(16 周,实验组对比对照组):

指标 改造前 改造后 变化
推荐位点击率 2.1% 3.4% +62%
新 SKU 进入推荐列表耗时 21 天 1.5 天 缩短 93%
长尾 SKU 曝光占比 7.8% 18.6% +10.8 个百分点
推荐贡献 GMV 占比 14% 23% +9 个百分点
P95 响应延时 420 ms 350 ms -70 ms

投入产出:投入 2 名算法工程师、1 名数据工程师共 16 周,主要成本在实时特征链路与在线实验平台;推荐 GMV 增量在改造完成后第 3 个月即覆盖投入。

常见问题

问:协同过滤和矩阵分解到底是什么关系?
答:矩阵分解是协同过滤的一种实现。两者都属于「只用行为数据、不理解物品内容」的协同类方法,区别在相似度怎么算:传统协同过滤直接计算物品间或用户间的显式相似度,矩阵分解则把用户与物品映射到同一低维向量空间,用向量内积隐式表达相似度。因此矩阵分解能处理没有行为交集的情况,泛化能力更强,但可解释性更弱。

问:小团队需要上深度学习模型吗?
答:大多数不需要。深度学习的收益来自海量行为数据与丰富特征,SKU 在一万以内、日活行为稀疏时,itemCF 加规则召回配合梯度提升树排序,往往已经接近可获得的天花板。真正的升级信号是:召回覆盖率已达标但排序指标长期停滞,或冷启动长尾问题无法用规则解决。否则升级带来的工程复杂度和算力成本,会大于指标收益。

问:为什么换了深度模型,点击率反而没涨?
答:三个常见原因。其一,召回层是瓶颈——召回率@K 只有 60%,排序模型再准也只能在剩下的 40% 里打转;其二,位置偏差未校正,训练样本被展示位置污染,模型学到的是「放在第一位的东西更容易被点」;其三,特征或标签质量塌陷,比如类目粒度不一致、曝光埋点缺失,模型学的是噪声。建议先做输入质量自检——补齐召回覆盖率、统一类目粒度与埋点、校正位置偏差,再判断模型问题。

问:用户冷启动和内容冷启动分别怎么解?
答:内容冷启动靠侧信息——新品入库即用类目、价格带、图文向量算出 Embedding,直接进双塔召回,并配套新品池与固定探索配额。用户冷启动靠上下文与粗粒度属性——先用设备、地域、来源渠道、落地页词做粗粒度推荐,再用会话内前几次点击快速收敛;跨端身份打通能让新用户复用已有行为,是见效最快的一步。

问:推荐系统为什么越推越窄?
答:这是反馈闭环导致的自我强化:模型推荐什么,用户就点什么,点击又成为下一轮训练的正样本,长尾物品的曝光机会持续被压缩。解法在重排层与数据层两处:重排层做类目与价格带打散、给低曝光物品固定探索配额;数据层对训练样本做逆倾向加权或引入随机曝光流量,保留无偏样本用于纠偏。

问:千人千面会不会带来隐私合规风险?
答:会,且这是硬性约束。个性化依赖行为数据采集,须遵循最小化收集原则、明示告知与可撤回授权,并对特征做去标识化处理。工程上建议把身份标识与行为特征分层存储,模型只消费去标识化后的特征向量;同时保留「关闭个性化」的降级路径,用热门榜等非个性化策略兜底。

参考来源

  1. Google 官方机器学习课程:协同过滤基础——协同过滤的定义与交互矩阵输入
  2. Google 官方机器学习课程:矩阵分解——低维表示与 SVD 分解思路
  3. Google 官方机器学习课程:基于内容的过滤基础——不依赖群体行为的内容匹配
  4. Google 官方机器学习课程:DNN 推荐——召回——多路候选来源与向量召回
  5. Google 官方机器学习课程:DNN 推荐——打分排序——单一模型统一打分与位置偏差校正
  6. Item-to-Item Collaborative Filtering,IEEE Internet Computing,2003——数千万客户、数百万商品、0.5 秒返回约束
  7. MovieLens 公开数据集(GroupLens)——推荐算法常用的公开评测数据
  8. Microsoft Recommenders 开源算法库——主流深度推荐算法的标准化实现

关于通智云

推荐算法是承接公域流量、提升私域转化效率的关键技术,属于通智云关注的增长技术领域。通智云(TENGENCE)是 AI 时代的企业增长引擎,专注公域引流获客与私域转化成交。

相关阅读

立即行动
免费预约专家咨询和诊断

数据来源

  1. Google 官方机器学习课程:协同过滤基础(定义与交互矩阵输入)
  2. Google 官方机器学习课程:矩阵分解(低维表示与 SVD 分解思路)
  3. Google 官方机器学习课程:基于内容的过滤基础(不依赖群体行为的内容匹配)
  4. Google 官方机器学习课程:DNN 推荐——召回(多路候选来源与向量召回)
  5. Google 官方机器学习课程:DNN 推荐——打分排序(单一模型统一打分与位置偏差校正)
  6. Item-to-Item Collaborative Filtering,IEEE Internet Computing,2003(数千万客户、数百万商品、0.5 秒返回约束)
  7. MovieLens 公开数据集(GroupLens)——推荐算法常用公开评测数据
  8. Microsoft Recommenders 开源算法库——主流深度推荐算法的标准化实现
← 上一篇: 什么是推荐系统?召回、排序、重排三层架构解析 下一篇 → 什么是站内搜索?原理、核心指标与优化框架
咨询 咨询
二维码

企业微信