推荐系统的目标,是在大量内容、商品、视频、文章或服务中,为不同用户找到更可能感兴趣、更值得展示的对象。它本质上是一个匹配和排序问题:用户是谁,物品是什么,此刻什么最合适。
一个成熟推荐系统通常不是单个模型,而是一条多阶段链路。
一、为什么推荐系统要分层
假设平台有上千万商品或内容,不可能对每个用户实时计算所有物品的精细排序。因此系统通常分为:
- 召回:从全量库中快速找出几百到几千个候选。
- 排序:用更复杂模型精细预测每个候选的价值。
- 重排:考虑多样性、业务规则、去重、风险和展示体验。
分层的本质是平衡效果和成本。召回要快,排序要准,重排要兼顾体验和约束。
二、用户画像与物品画像
推荐系统首先需要表示用户和物品。
用户画像可以包括:
- 基础属性:地区、设备、语言、会员状态。
- 行为特征:点击、收藏、购买、停留、搜索。
- 偏好特征:价格带、品类、风格、主题。
- 实时特征:当前会话、最近几次行为。
物品画像可以包括:
- 内容属性:标题、标签、类目、文本、图片。
- 质量特征:评分、转化率、投诉率、时效性。
- 统计特征:曝光、点击、购买、完播。
- 向量特征:文本或图像 Embedding。
画像不是越多越好,关键是稳定、可解释、能在训练和线上保持一致。
三、召回:先把可能相关的找出来
常见召回方式包括:
| 召回方式 | 思路 |
|---|---|
| 热门召回 | 推荐全局或分群热门物品 |
| 协同过滤 | 找相似用户喜欢的物品,或相似物品 |
| 内容召回 | 根据标签、文本、图片等内容相似度召回 |
| 向量召回 | 用用户和物品 Embedding 做近邻检索 |
| 规则召回 | 业务活动、关注关系、地域规则 |
召回阶段要追求覆盖率和多样性。只靠热门召回会让内容池越来越窄,只靠个性化召回又可能错过新内容。
四、排序:预测用户行为价值
排序模型通常预测点击率、转化率、观看时长、购买概率等目标。真实系统中往往不只优化一个目标,而是多目标综合。
常见排序特征包括:
- 用户特征。
- 物品特征。
- 用户与物品交叉特征。
- 上下文特征,例如时间、设备、入口。
- 历史统计特征和实时行为特征。
排序模型可以从逻辑回归、GBDT 开始,再扩展到 Wide & Deep、DeepFM、DIN、Transformer 排序等结构。模型复杂度要和数据规模、实时要求、解释需求匹配。
五、重排:让结果更像一个产品
排序分最高的前几个物品,不一定就是最好的展示列表。重排会考虑:
- 多样性:避免同一类内容连续出现。
- 去重:避免相同作者、相同商品或相似内容刷屏。
- 新鲜度:给新内容一定曝光机会。
- 安全合规:过滤低质、违规或敏感内容。
- 商业目标:活动、库存、广告、供给平衡。
重排是推荐系统从“模型输出”变成“用户体验”的关键环节。
六、冷启动问题
冷启动分为用户冷启动和物品冷启动。
新用户没有历史行为,可以依赖注册信息、入口来源、热门内容、主动选择兴趣、同地域人群偏好。新物品没有互动数据,可以依赖内容特征、作者质量、类目、文本图片 Embedding 和小流量探索。
解决冷启动的核心是探索。系统不能只相信历史数据,否则新用户和新物品永远得不到学习机会。
七、评估指标
离线指标包括 AUC、Log Loss、NDCG、Recall@K、Hit Rate 等。线上指标包括点击率、转化率、停留时长、留存、成交额、投诉率等。
推荐系统最终要用线上实验验证。离线指标提升不一定带来线上收益,因为推荐结果会影响用户行为,形成反馈回路。
八、实践建议
推荐系统可以从简单版本开始:热门召回 + 类目召回 + 轻量排序 + 基础重排。先保证数据闭环、曝光日志、点击日志和评估链路完整,再逐步引入复杂模型。
好的推荐系统不是一次训练完成,而是在用户反馈、内容生态和业务目标之间持续调节。