《4.郭一 小红书Data&AI_infra阿里云开发者(23页).pdf》由会员分享,可在线阅读,更多相关《4.郭一 小红书Data&AI_infra阿里云开发者(23页).pdf(23页珍藏版)》请在三个皮匠报告上搜索。
1、小红书大数据在推荐中的应用郭一小红书推荐架构负责人小红书:找到你想要的生活月活85008500万年同比增长300%300%每天笔试展示3030亿目录 实时计算在推荐业务中的场景 实时归因:一个推荐业务的Flink实时计算任务的实践 Red Flink实时流计算平台 Red ML平台 总结和展望推荐&实时计算根据用户画像从笔记池中召回(多种策略)给每个笔记打分Score=pCTR*(pLike*Like权重+pCmt*Cmt权重 )笔记位置多样性调整分页显示,有交互之后重排线上推荐过程算法推荐用户消费笔记产生交互训练样本预测模型用户/笔记画象分析报表策略笔记索引推荐系统架构实时离线离线批处理客户
2、端用户交互LogServerHive报表(T+1)训练样本(T+1)模型训练BI工具用户笔记画象(T+1)实时流处理Kafka实时归因Kafka训练样本实时指标ClickHouseHive数据接入数据计算数据落地数据应用模型训练BI工具客户端用户交互LogServerHive实时用户/笔记画象实时用户/笔记画象实时归因实时流计算:实时归因1.曝光12342.点击4.点击3.点赞曝光笔记有无点击1No2Yes3No4Yes点击模型数据标签点赞和时长模型数据标签点击笔记有无点赞停留时长2Yes20s4No10s笔记1 曝光笔记2 曝光笔记3 曝光笔记4 曝光笔记2 点击笔记2 点赞笔记2 回退,时
3、长20s笔记4 点击笔记4 回退,时长10s用户行为流:Flink任务 Kafka Source=Kafka Sink keyBy(user_id,note_id,曝光/点击)使用Process Function API(SessionStateProcesser)SessionStateProcesser 创建一个定时的20分钟窗口 创建维护ValueState状态 窗口结束的时候 根据SessionState输出下游记录 清除ValueStateFlink Job Session Labeler Flink集群管理 Checkpoint&状态持久化 Backfill实际生产需要解决的问题F
4、linkFlink集群部署 on K8s(Standalone)on K8s(Standalone)Checkpoint和State持久化FsStateBackendRocksDBStateBackend state 存储在HDFS 不支持增量checkpoint state 存储在RocksDB on HDFS 利用RocksDB的compaction机制合并,支持增量Checkpoint 适用于state比较大的情况 磁盘I/O高,反压上游 内存OOM 本地 HDD=SSD 堆外内存=MemTable*#Parallelism Checkpoint频率 1min=10 min RocksD
5、B Compaction Threshold=1GRocksDB参数挑优 Source流控 支持Kafka Source和文件 期待Flink 1.9 对批的支持加强BackfillRed Red FlinkFlink实时流计算平台配置目的地自动识别格式自动产成FlinkSQL ETL命令Red ML平台 9个预测任务(click,hide,like,fav,comment,share,follow,)Click模型规模:5亿样本/天,1T数据/天小红书推荐预测模型的演近GBDT(SparkML)GBDT+LR(TensorFlow)GBDT +Deep&Wide(TensorFlow)Online Training12/2018Coming soonGBDT+Sparse D&W(Tensorflow on KubeFlow)07/2019 开源社区支持 TFJob支持TensorFlow的分布式训练Red ML on Red ML on KubeFlowKubeFlow 依赖开源社区 期待Flink 1.9新功能 模型训练算力需求增加,效率敏感 Flink+AI 总结与展望