目录

架构设计

概述

从常用概念展开,简要介绍基本原理和流程,以便业务方了解如何构建和使用推荐系统。

基本概念

推荐系统

通过将内容 (生产方) 与用户 (消费方) 进行匹配,提供符合不同消费方各自偏好的内容,在不同业务方的知识体系中可能会被称为: 智能分发,个性化推荐,千人千面。

内容

平台或用户所生产出的成果,可以为文章,视频,课程,商品等。

用户

对内容进行消费的对象,可以为普通用户,商业客户,第三方服务等。

行为

用户对内容产生的操作,如点击,收藏,购买,分享等,通过日志记录存储后,用于建立内容与用户的关联。

标签

通过人工或机器的方法,对内容和用户添加特征,用来标识其特有属性,可从内容本身中发现,也可从用户行为中体现,也可由用户自行填写,如用户性别,内容长度,内容分类等。

适用场景

什么时候引入推荐系统:

当内容和用户积累达到一定量级 (内容至少千级),且内容分布达到一定宽度,可分离出不同维度,进而产生了用户对内容的偏好性,需要对内容进行合理高效的分发以充分利用流量,并开始要求高并发高实时的性能时,可以开始考虑使用推荐系统。

实现依赖

仅简要阐述实现推荐系统所需的功能组件,是基本概念的具象化。

内容画像

可包含:

  1. 标签,类别等结构化特征
  2. 原始文本,图片等非结构化特征
  3. 动态属性,如用户行为的聚合

用户画像

可包含:

  1. 静态属性,如一经确定不再变更,如性别,年龄等自然属性
  2. 动态属性,在一定时间尺度内会有变更,长期的如居住城市等社会属性,中短期的如一个月内感兴趣的内容类型
  3. 用户行为,通过分析用户对内容的行为,建立起两个画像间的连接,从对内容的态度可分为
  4. 显式反馈,用户直接表现出的行为,如点击,分享,评论
  5. 隐式反馈,用户间接表现出的行为,如停留时长,点击次数,搜索次数
  6. 正向反馈,用户表现出的偏好行为,如点赞,收藏
  7. 负向反馈,用户表现出的非偏好行为,如点踩,举报,点不感兴趣

以上两个维度可以互相组合,如显式负反馈,隐式正反馈。

个性化推荐策略

通过设计多种推荐策略,召回不同内容,组合后提供给用户,以满足不同类型的需求。

协同过滤

经典的推荐方法,可以不基于预先准备的用户画像和内容画像体系,依靠大量的用户与内容的关系行为,对相似用户提供相似内容,缺点是颗粒度依赖数据量,且需要批量计算,无法做到实时响应。

长期

对于长期的关注和订阅需求,在用户显式反馈后,召回其下属内容,给予推荐。

短期

对于短期内的点击或搜索行为,将基于内容的标签更新至用户画像后,在下一次推荐中即可提供相关标签的内容,从而达到准实时的响应,提高用户体验。

场景

对于不同业务,可细分出不同场景下的差异,如工作日与周末,早晚高峰与睡前均会对内容存在不同偏好。

热门候补

通过计算全局性的热门内容,用于在冷启动或无更多个性化内容时,扩充用户画像。

负反馈

如果产品形态有负反馈功能,如对某个标签不感兴趣,对于用户显式负反馈的内容,可在结果中进行过滤。

数据驱动

新增功能和优化功能均需要经过以下环节评估效果。

线下|模型指标

针对不同业务场景,设计对应方案,使用不同模型,用机器学习的指标评估模型效果,达到一定基准线可进入线上环节。

线上|A/B 测试

设计对照组和测试组,切一部分真实流量,运行一段时间后,观察核心指标的差异,如有提升可认为达到预期效果,最终逐步替换现有方案。

业务形态

涉及将内容分发给用户的场景均可使用,推荐系统在广义上就是对用户画像和内容画像的有效使用,因此除实现资讯流这样的具体产品形态外,也可扩展至精准推送,用户分层等,以提供服务的形式满足更深层需求。

警告
本文最后更新于 2017年2月1日,文中内容可能已过时,请谨慎参考。