推荐系统与搜索实战

推荐系统解决“给谁推荐什么、何时推荐、以什么顺序呈现”。搜索系统解决“给定查询,如何找到并排序相关内容”。两者共享召回、排序、Embedding 和在线评估等技术。

1. 推荐系统典型架构

flowchart LR
    U[用户与上下文] --> F[特征与画像]
    I[物品库] --> E[物品特征]
    F --> R[多路召回]
    E --> R
    R --> C[候选合并与过滤]
    C --> S[排序模型]
    S --> D[重排与业务规则]
    D --> O[展示与反馈]
    O --> L[日志与训练数据]
    L --> F

2. 主要算法

  • 热门度基线:简单、强韧,适合冷启动对照。
  • User/Item-based Collaborative Filtering:利用用户或物品相似性。
  • Matrix Factorization:学习用户和物品的隐向量。
  • BPR:面向隐式反馈的 pairwise 排序目标。
  • Wide & Deep、DeepFM:结合记忆与泛化能力。
  • 双塔模型:用户塔与物品塔分别编码,适合大规模召回。
  • Learning to Rank:LambdaMART、神经排序等。
  • 序列推荐:建模用户行为顺序与兴趣变化。

矩阵分解常见形式:

其中用户向量 与物品向量 的内积表达偏好估计。

3. 评估指标

  • 召回:Recall@K、HitRate@K。
  • 排序:NDCG@K、MAP、MRR。
  • 预测:RMSE、MAE(适用于评分预测)。
  • 系统与产品:覆盖率、多样性、新颖性、延迟、点击率、转化率。
  • 公平性与健康度:曝光分布、长尾覆盖、过滤气泡和反馈回路。

离线指标不能完全替代在线 A/B 测试;A/B 测试还需关注样本随机化、统计功效、护栏指标和长期效应。

4. 搜索与检索

  • 倒排索引与 BM25:高效关键词检索基线。
  • Dense Retrieval:查询和文档向量化。
  • 双塔召回:适合大规模候选召回。
  • Cross-Encoder Reranker:对 query-document 对进行精细排序。
  • Hybrid Search:融合词法与向量检索。
  • Query Understanding:拼写纠错、意图识别、查询改写。

5. 数据集与项目

6. 项目阶梯

  1. 用 MovieLens 建立热门度推荐基线。
  2. 实现 Item-based CF 和矩阵分解,比较 Recall@K/NDCG@K。
  3. 实现双塔召回,构建离线向量索引。
  4. 增加 Cross-Encoder 重排,评估召回与排序的分工。
  5. 设计 A/B 测试方案,加入覆盖率、多样性和延迟护栏。

时间切分很重要:不能用未来交互预测过去;同一用户行为序列也要按时间构造训练与评估样本。

7. 论文阅读

相关