第 2 章 推荐系统的核心技术概述

多组件, 多模块, 多数据源构成; 涉及用户, 物品, 行为, 上下文等数据;

计算形式包括大数据平台上的批量计算/挖掘/训练, 流式数据的实时处理, 线上的实时服务;

核心逻辑拆解

核心目的: 为用户找当前场景下最具相关性的物品或物品集合;

以用户兴趣为轴: P ( i t e m ∣ u s e r ) = ∑ i n t e r e s t ( P ( i t e m ∣ i n t e r e s t ) × P ( i n t e r e s t ∣ u s e r ) ) P(item|user)=sum_{interest} (P(item|interest) × P(interest|user)) P(item∣user)=interest∑(P(item∣interest)×P(interest∣user)) 用户与物品的相关性拆解为: 用户与兴趣的相关性和兴趣与物品的相关性的乘积;

  1. P ( i t e m ∣ i n t e r e s t ) P(item|interest) P(item∣interest) 和 P ( i n t e r e s t ∣ u s e r ) P(interest|user) P(interest∣user) 任何一个为零, 乘积即为零;
  2. 用户感兴趣的点+兴趣点下物品的相关性;

三段式逻辑: 用户兴趣+相关性召回+融合排序

整体流程

召回算法=>重排序=>业务干预

    召回算法会根据不同策略算法召回各个维度相关性的物品, 打分的含义和量纲不尽相同; 重排序是解决召回算法中不同含义/量纲的打分, 以及不同维度的相关性问题, 最终对齐目标; 业务干预是处理业务层面的调整, 过滤不适合推荐或没有库存的商品;

召回算法

  1. 相关性 核心, 重排和业务干预层均不会引入新的候选物品, 只有召回层决定了用户可见物品的候选集; 如果召回相关性较差的物品, 不仅浪费计算力, 也增加了重排序层的工作负担(需要用更复杂的算法将相关性差的物品排在后面);
  2. 多样性 物品类别多样性, 分类, 种类; 物品标签多样性, 一切可标识物品特点的描述; 召回维度多样性, 依据用户的点击, 搜索, 浏览, 购买, 加购等行为;
  3. 覆盖率 推荐算法能为多少用户/物品计算出相关物品;
  4. 实时性 将用户的实时行为用于推荐逻辑的计算, 对推荐结果产生影响, 并让用户感知到变化;

召回算法分为:

    直接基于行为的算法 基于用户画像的算法

基于行为的召回算法

相关性数据挖掘, 依赖于:

    基于用户行为数据: 协同过滤算法, 准确率会好些, 但是数据稀疏性导致覆盖率较低; 且多样性和时效性较差; 基于物品属性数据: 内容相似度算法, 相反;

用户画像和物品画像

用户画像建设工作的核心点:

  1. 判断哪些用户画像对推荐系统或其他业务有帮助;(重要性高于第二点)
  2. 如何挖掘这些画像;

物品画像是用户画像的基础, 首先提取物品层面的多维度描述, 再通过用户对物品的行为关系, 计算出用户在这些维度上的描述;

结果排序

    简单做法, 基于一套规则的融合方法, 可以选择分层式或加权融合式; 数据和技术积累到一定程度, 选择基于机器学习的排序技术取代基于规则的排序技术;

评价指标

    结果指标, 用来最终衡量推荐系统好坏的指标; 过程指标, 对结果指标的分解, 分解为几个可具体操作的维度, 好处是对结果指标的把控, 以及出现问题时的分析处理; 短期指标 长期指标

系统监控

    评价指标是指导系统的持续迭代优化; 监控指标是及时发现系统的突发问题, 保证系统的稳定运行;

架构设计

    在线服务架构设计, 核心是系统的稳定运行, 算法策略的足量生效, 对策略快速迭代的支持; 离线, 偏向于生产准确率高, 覆盖率高的商品和用户数据; 近线, 快速处理用户和物品的行为和信息变动, 为在线服务提供实时性高的数据服务;
经验分享 程序员 微信小程序 职场和发展