- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
小红书大数据在推荐中的应用
小红书大数据在推荐中的应用
• 实时计算在推荐业务中的场景
• 实时归因: 一个推荐业务的Flink实时计算任务的实践
• Red Flink实时流计算平台
• Red ML平台
• 总结和展望
展开查看详情
1 .小红书大数据在推荐中的应用 郭一 小红书推荐架构负责人
2 .小红书: 找到你想要的生活 8500万 300% 30亿 月活 年同比增长 每天笔试展示
3 . 目录 • 实时计算在推荐业务中的场景 • 实时归因: 一个推荐业务的Flink实时计算任务的实践 • Red Flink实时流计算平台 • Red ML平台 • 总结和展望
4 .推荐 & 实时计算
5 .线上推荐过程 分页显示, 有交互之后重排 笔记位置多样性调整 给每个笔记打分 Score = pCTR * (pLike * Like权重 + pCmt * Cmt权重 … ) 根据用户画像从笔记池中召回(多种策略)
6 . 推荐系统架构 用户消费笔记 产生交互 用户/笔记 笔记索引 训练样本 分析报表 画象 实时 算法推荐 离线 预测模型 策略
7 . 离线批处理 客户端用户交互 LogServer 用户笔记画象 (T+1) Hive 报表 (T+1) BI工具 训练样本 (T+1) 模型训练
8 . 实时流处理 客户端用户交 互 实时用户/笔记 LogServer 画象 实时用户/ 笔记画象 Kafka 实时归因 实时指标 ClickHouse BI工具 Kafka Hive 训练样本 Hive 模型训练 数据接入 数据计算 数据落地 数据应用
9 .实时归因
10 . 实时流计算:实时归因 曝光笔记 有无点击 1 2 2. 点击 用户行为流: 1 No 2 Yes 笔记1 曝光 3 No 笔记2 曝光 笔记3 曝光 4 Yes 笔记4 曝光 点击模型数据标签 3. 点赞 笔记2 点击 笔记2 点赞 笔记2 回退, 时长20s 3 4 笔记4 点击 4. 点击 笔记4 回退, 时长10s 点击笔记 有无点赞 停留时长 … 2 Yes 20s 4 No 10s 点赞和时长模型数据标签 1. 曝光
11 . Flink Job – Session Labeler • Flink任务 • SessionStateProcesser • Kafka Source => Kafka Sink • 创建一个定时的20分钟窗口 • keyBy (user_id, note_id, 曝光/点击) • 创建维护ValueState<SessionState>状态 • 使用Process Function API • 窗口结束的时候 (SessionStateProcesser) • 根据SessionState输出下游记录 • 清除ValueState<SessionState>
12 .实际生产需要解决的问题 • Flink集群管理 • Checkpoint & 状态持久化 • Backfill
13 .Flink集群部署 on K8s (Standalone)
14 . Checkpoint和State持久化 FsStateBackend RocksDBStateBackend • state 存储在HDFS • state 存储在RocksDB on HDFS • 不支持增量checkpoint • 利用RocksDB的compaction机制合并, 支持增量Checkpoint • 适用于state比较大的情况
15 . RocksDB参数挑优 • 磁盘I/O高,反压上游 • 本地 HDD => SSD • 内存OOM • 堆外内存 = MemTable * #Parallelism • Checkpoint频率 1min = > 10 min • RocksDB Compaction Threshold => 1G
16 . Backfill • Source流控 • 支持Kafka Source和文件 • 期待Flink 1.9 对批的支持加强
17 .Red Flink实时流计算平台
18 .
19 . 配置目的地 自动产成Flink SQL ETL命令 自动识别格式
20 .Red ML平台
21 . 小红书推荐预测模型的演近 • 9个预测任务 (click, hide, like, fav, comment, share, follow, …) • Click模型规模: 5亿样本/天, 1T数据/天 12/2018 07/2019 Coming soon GBDT GBDT GBDT GBDT Online Training (SparkML) + LR(TensorFlow) + + Deep & Wide Sparse D&W (TensorFlow) (Tensorflow on KubeFlow)
22 . Red ML on KubeFlow • 开源社区支持 • TFJob支持TensorFlow的分布式训练
23 . 总结与展望 • 依赖开源社区 • 期待Flink 1.9新功能 • 模型训练算力需求增加, 效率敏感 • Flink + AI
24 . 扫码加入社群 与志同道合的码友一起 粘贴二维码 Code Up 阿里云开发者社区
25 .谢谢!