推荐系统架构
背景
当然,如果处理不好大数据,人类可能会被大数据 “反噬”,找到自己需要的信息变得更困难,迷失 于大数据之中。有用的信息埋没于繁杂的数据中的 现象被称为“信息过载”。
在大数据时代,让用户从海量的信息中找到自己想 要的信息实在是有点强人所难。时代变了,用户获 取知识的方式也应随之改变:利用推荐技术向用户 推送个性化服务。
大数据环境下的推荐系统架构
汇报人:余俊良
背景
毫无疑问,这是一个数据爆发的时代。一分钟内, 推特上有 20 万条新消息被发送;在“Facebook”上 用户浏览的信息超过 1000 万条。人们在享受网络带 来便捷的同时,产生了大量的新型多结构数据。有 人说,世界的本质就是数据,大数据将开启一次重 大的时代转型。
传统的推荐系统框架
用户行为 日志存储 系统
推荐 系统
UI
用户
日志 系统
数据反馈
传统的推荐系统框架
传统的推荐系统框架通常只能应对少量的推荐需求, 面对如今的多用户反馈,多商品信息,要求根据上 下文进行实时性推荐等是无能为力的。 通过将推荐系统部署在云平台,利用集群的计算能 力解决大数据下的推荐问题,已是大势所趋。
大数据环境下的推荐系统
整个推荐系统的底层运转和计算大量依赖于 Hadoop生态系统
计算 • 超过20000个 MapReduce 任 务 • 超过100个 Spark任务 存储 • 超过200TB HDFS存储 • 超过20TB Hbase使用 • 每天新生成数 据超过1TB 数据流 • 处理超过 500GB的数据 流 • 处理超过10亿 条消息
大数据环境下的推荐系统
大数据环境下推荐系统的挑战
海量
用户
实时
实时采集
精准
用户体验
商品 行为
流量
实时计算 实时预测 业界口碑
大数据环境下的推荐系统
一个好的推荐系统
分析处理海 量数据
快速处理新 增数据和实 时交互
灵活加入和 迭代各种推 荐算法
低延迟响应 高QPS的推 荐请求
大数据环境下的推荐系统
基于云平台的推荐系统分层架构
大数据环境下的推荐系统
计算
Map Reduce
Spark与推荐算法
• 基于内存的数据缓存和计算
• 基于RDD的数据集逻辑结构 • Scala简洁的基于函数式的编程体验
Spark
大数据环境下的推荐系统
存储
HDFS
• 分布式文件系统
HBaseห้องสมุดไป่ตู้
• 分布式Key-Value • Schema Free
Hive
推荐系统组成
数据
显式数据:能准确的反应用户对物品的真实喜好,但需 要用户付出额外的代价
-用户收藏 -用户评价
隐式数据:通过一些分析和处理,才能反映用户的喜好, 只是数据不是很精确,有些行为的分析存在较大的噪音
-用户浏览 -页面停留时间 -访问次数
推荐系统组成
算法
算法类型: 基于内存的算法 基于模型的算法 基于内容的算法 LR算法 计算方式: 离线:用户偏好分析、用户购买力分析、关联性分析 在线:排序、过滤、增量计算
技术架构
Offline
数据建模 •用户兴趣建模/商品建模 •用户/商品聚类 •内容去重 推荐算法 •Item CF •矩阵分解 •基于内容的推荐
机器学习
•排序模型 •CTR预估
推荐流程
上线与迭代
理论支持
线下测试
在线A/B测试
全量上线
测试失败
技术架构
Nearline
用户行为收集
• 从日志服务器收集用户行为 • 基于Apache Flume进行读取分发
用户行为分发
• 近在线部分将事件发送给Kafka • 离线部分将数据存储到HDFS
技术架构
Nearline
基于Kafka + Storm • 高稳定性 • 高实时性 • 高并发度 实现分布式的实时数据计算 • 内容相关性计算 • Online Learning
• 基于HDFS的数据仓库 • 类SQL查询语言
大数据环境下的推荐系统
数据流
Flume
• 高可用的,高可靠的, 分布式的海量日志采 集、聚合和传输
Kafka
• 分布式消息队列 • Push & Pull
Storm
• 实时计算框架
技术架构
技术架构
Online
服务引擎 • 高并发、低延迟、高稳定 • Load Balance / Scalability 在线计算 • 数据缓存 – Couchbase / Redis • 数据加载和更新 • 运算和预测
推荐系统研究现状
目前推荐系统的研究内容和方向主要包括以下几个 方面: 1、推荐技术的研究 2、推荐的实时性与推荐质量 3、利用云计算提高推荐系统计算能力 4、推荐系统的可解释性
5、用户隐私问题
推荐系统组成
产品
核心
数据 算法
推荐系统组成
产品
同类或者相关商品、店铺推荐 买了还买、看来还看等 猜你喜欢 群体信息披露 热门排行榜 etc