小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... ·...

25
小红书大数据在推荐中的应用 郭一 小红书推荐架构负责人

Upload: others

Post on 21-May-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

小红书大数据在推荐中的应用

郭一

小红书推荐架构负责人

Page 2: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

小红书: 找到你想要的生活

月活

8500万年同比增长

300%每天笔试展示

30亿

Page 3: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

目录

• 实时计算在推荐业务中的场景

• 实时归因: 一个推荐业务的Flink实时计算任务的实践

• Red Flink实时流计算平台

• Red ML平台

• 总结和展望

Page 4: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

推荐 & 实时计算

Page 5: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

根据用户画像从笔记池中召回(多种策略)

给每个笔记打分Score = pCTR * (pLike * Like权重 + pCmt * Cmt权重 … )

笔记位置多样性调整

分页显示, 有交互之后重排

线上推荐过程

Page 6: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

算法推荐

用户消费笔记产生交互

训练样本

预测模型

用户/笔记画象

分析报表

策略

笔记索引

推荐系统架构

实时

离线

Page 7: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

离线批处理

客户端用户交互

LogServer

Hive 报表 (T+1)

训练样本 (T+1) 模型训练

BI工具

用户笔记画象(T+1)

Page 8: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

实时流处理

Kafka 实时归因

Kafka

训练样本

实时指标 ClickHouse

Hive

数据接入 数据计算 数据落地 数据应用

模型训练

BI工具

客户端用户交互

LogServer

Hive

实时用户/笔记画象

实时用户/笔记画象

Page 9: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

实时归因

Page 10: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

实时流计算:实时归因

1. 曝光

1 2

3 4

2. 点击

4. 点击

3. 点赞

曝光笔记 有无点击

1 No

2 Yes

3 No

4 Yes

点击模型数据标签

点赞和时长模型数据标签

点击笔记 有无点赞 停留时长

2 Yes 20s

4 No 10s

笔记1 曝光笔记2 曝光笔记3 曝光笔记4 曝光笔记2 点击笔记2 点赞笔记2 回退, 时长20s笔记4 点击笔记4 回退, 时长10s…

用户行为流:

Page 11: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

• Flink任务

• Kafka Source => Kafka Sink

• keyBy (user_id, note_id, 曝光/点击)

• 使用Process Function API

(SessionStateProcesser)

• SessionStateProcesser

• 创建一个定时的20分钟窗口

• 创建维护ValueState<SessionState>状态

• 窗口结束的时候

• 根据SessionState输出下游记录

• 清除ValueState<SessionState>

Flink Job – Session Labeler

Page 12: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

• Flink集群管理

• Checkpoint & 状态持久化

• Backfill

实际生产需要解决的问题

Page 13: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

Flink集群部署 on K8s (Standalone)

Page 14: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

Checkpoint和State持久化

FsStateBackend RocksDBStateBackend

• state 存储在HDFS

• 不支持增量checkpoint

• state 存储在RocksDB on HDFS

• 利用RocksDB的compaction机制合并,

支持增量Checkpoint

• 适用于state比较大的情况

Page 15: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

• 磁盘I/O高,反压上游

• 内存OOM

• 本地 HDD => SSD

• 堆外内存 = MemTable * #Parallelism

• Checkpoint频率 1min = > 10 min

• RocksDB Compaction Threshold => 1G

RocksDB参数挑优

Page 16: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

• Source流控

• 支持Kafka Source和文件

• 期待Flink 1.9 对批的支持加强

Backfill

Page 17: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

Red Flink实时流计算平台

Page 18: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿
Page 19: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

配置目的地

自动识别格式

自动产成FlinkSQL ETL命令

Page 20: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

Red ML平台

Page 21: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

• 9个预测任务 (click, hide, like, fav, comment, share, follow, …)

• Click模型规模: 5亿样本/天, 1T数据/天

小红书推荐预测模型的演近

GBDT (SparkML)

GBDT + LR(TensorFlow)

GBDT +

Deep & Wide (TensorFlow)

Online Training

12/2018 Coming soon

GBDT +

Sparse D&W (Tensorflow on

KubeFlow)

07/2019

Page 22: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

• 开源社区支持

• TFJob支持TensorFlow的分布式训练

Red ML on KubeFlow

Page 23: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

• 依赖开源社区

• 期待Flink 1.9新功能

• 模型训练算力需求增加, 效率敏感

• Flink + AI

总结与展望

Page 24: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

扫码加入社群与志同道合的码友一起

Code Up

阿里云开发者社区

粘贴二维码

Page 25: 小红书大数据在推荐中的应用 - ucc.alicdn.comƒ一 小红书... · 小红书:找到你想要的生活 月活 8500万 年同比增长 300% 每天笔试展示 30亿

谢谢!