推荐系统的目标,是在大量内容、商品、视频、文章或服务中,为不同用户找到更可能感兴趣、更值得展示的对象。它本质上是一个匹配和排序问题:用户是谁,物品是什么,此刻什么最合适。

一个成熟推荐系统通常不是单个模型,而是一条多阶段链路。

一、为什么推荐系统要分层

假设平台有上千万商品或内容,不可能对每个用户实时计算所有物品的精细排序。因此系统通常分为:

  1. 召回:从全量库中快速找出几百到几千个候选。
  2. 排序:用更复杂模型精细预测每个候选的价值。
  3. 重排:考虑多样性、业务规则、去重、风险和展示体验。

分层的本质是平衡效果和成本。召回要快,排序要准,重排要兼顾体验和约束。

二、用户画像与物品画像

推荐系统首先需要表示用户和物品。

用户画像可以包括:

  • 基础属性:地区、设备、语言、会员状态。
  • 行为特征:点击、收藏、购买、停留、搜索。
  • 偏好特征:价格带、品类、风格、主题。
  • 实时特征:当前会话、最近几次行为。

物品画像可以包括:

  • 内容属性:标题、标签、类目、文本、图片。
  • 质量特征:评分、转化率、投诉率、时效性。
  • 统计特征:曝光、点击、购买、完播。
  • 向量特征:文本或图像 Embedding。

画像不是越多越好,关键是稳定、可解释、能在训练和线上保持一致。

三、召回:先把可能相关的找出来

常见召回方式包括:

召回方式 思路
热门召回 推荐全局或分群热门物品
协同过滤 找相似用户喜欢的物品,或相似物品
内容召回 根据标签、文本、图片等内容相似度召回
向量召回 用用户和物品 Embedding 做近邻检索
规则召回 业务活动、关注关系、地域规则

召回阶段要追求覆盖率和多样性。只靠热门召回会让内容池越来越窄,只靠个性化召回又可能错过新内容。

四、排序:预测用户行为价值

排序模型通常预测点击率、转化率、观看时长、购买概率等目标。真实系统中往往不只优化一个目标,而是多目标综合。

常见排序特征包括:

  • 用户特征。
  • 物品特征。
  • 用户与物品交叉特征。
  • 上下文特征,例如时间、设备、入口。
  • 历史统计特征和实时行为特征。

排序模型可以从逻辑回归、GBDT 开始,再扩展到 Wide & Deep、DeepFM、DIN、Transformer 排序等结构。模型复杂度要和数据规模、实时要求、解释需求匹配。

五、重排:让结果更像一个产品

排序分最高的前几个物品,不一定就是最好的展示列表。重排会考虑:

  • 多样性:避免同一类内容连续出现。
  • 去重:避免相同作者、相同商品或相似内容刷屏。
  • 新鲜度:给新内容一定曝光机会。
  • 安全合规:过滤低质、违规或敏感内容。
  • 商业目标:活动、库存、广告、供给平衡。

重排是推荐系统从“模型输出”变成“用户体验”的关键环节。

六、冷启动问题

冷启动分为用户冷启动和物品冷启动。

新用户没有历史行为,可以依赖注册信息、入口来源、热门内容、主动选择兴趣、同地域人群偏好。新物品没有互动数据,可以依赖内容特征、作者质量、类目、文本图片 Embedding 和小流量探索。

解决冷启动的核心是探索。系统不能只相信历史数据,否则新用户和新物品永远得不到学习机会。

七、评估指标

离线指标包括 AUC、Log Loss、NDCG、Recall@K、Hit Rate 等。线上指标包括点击率、转化率、停留时长、留存、成交额、投诉率等。

推荐系统最终要用线上实验验证。离线指标提升不一定带来线上收益,因为推荐结果会影响用户行为,形成反馈回路。

八、实践建议

推荐系统可以从简单版本开始:热门召回 + 类目召回 + 轻量排序 + 基础重排。先保证数据闭环、曝光日志、点击日志和评估链路完整,再逐步引入复杂模型。

好的推荐系统不是一次训练完成,而是在用户反馈、内容生态和业务目标之间持续调节。