推荐系统架构简述

推荐系统 架构 迅雷

迅雷推荐系统的架构是去年十月开始重新设计实现的。 到现在也快有半年了, 是时候总结了。

recsys 简介

recsys 是 迅雷推荐团队 开发的推荐系统使用的项目名称。 该项目是构建在迅雷大数据平台之上的一个数据挖掘项目。

recsys 有下列主要功能:

  1. 为用户推荐个性化的内容
  2. 流量管理及实时分发
  3. 平台化, 可以接入不同业务线
  4. A/B Test 支持

recsys 整体架构

整体架构

recsys 主要分为三个部分:

Server

Server 负责响应 Client 的请求, 并且按照 Administrator 的配置返回数据。 Server 主要有三个模块组成, DashBoard 、A/B 和 RuleEngine。

  • DashBoard: 给管理员提供方便的操作界面
  • A/B : 主要功能是构造不同的算法、不同的产品策略对产品指标的影响对比流量。 附加功能可以实现接口的路由。比如相同的接口,不同版本的请求可以被 路由到不同的内部 A/B 测试。
  • RuleEngine : 主要功能是融合不同数据池的数据,并且按产品制定的一些策略 返回数据。

DataPool

DataPool 主要功能是为 Server 提供数据。 按功能划分,主要包含了三种数据:

  1. 算法生成的数据, 每个用户都有不同的内容
  2. 产品定义的数据, 比如最新、最热的视频
  3. 运营定义的数据, 比如某个大V的视频

Generator

Generator 负责生成 DataPool 中的数据。 按实现可以划分为三类:

  • Personal Rec Generator: 个性化推荐生成器。 每天使用算法分析用户的日志数据, 生成符合用户兴趣爱好的内容。
  • B/O Generator: 业务和运营数据生成器, 业务和运营的需求本质是一样的。 先选中一批符合需求的数据,然后使用通用的算法对这些数据排序。
  • RealTime Generator: 分析用户实时的行为,感知用户实时兴趣走向,生成推荐内容。
吕飞

锲而舍之,朽木不折;锲而不舍,金石可镂