背景
DMP业务:知乎业务中存在站内运营自闭环、内容运营、活动运营、用户运营、站内向站外投放闭环、增长投放、站外向站内广告闭环等问题,需要建立DMP平台来解决这些问题。
DMP业务流程:DMP如何与业务结合并赋能,包括站内运营自闭环、内容运营、活动运营、用户运营、站内向站外投放闭环、增长投放、站外向站内广告闭环。
DMP画像特征:分为3层级特征分类,包括一级分类8组、二级分类40组、标签组120个,如性别、手机品牌、话题兴趣等。标签数量达到250万,如男性、华为手机、对影视内容感兴趣等。
DMP功能梳理:DMP通过设计人群圈选、人群洞察、人群泛化等功能模块,支持相应的业务流程。
架构与实现
DMP架构:DMP通过设计对外模块、DMP接口、DMP前台、DMP后台、业务模块等功能模块,降低实现业务功能的复杂度。对外模块提供高稳定性和高并发吞吐;DMP前台操作简单,降低运营成本;DMP后台配置化开发,降低开发成本;业务模块包括人群圈选、人群洞察、人群泛化、特征生产、IDMapping、计算任务运维、存储等,均具有良好的扩展性。
DMP平台功能盘点:截至DMP平台功能上线至今,支持了5万多个人群定向、400多次人群洞察、60多次人群泛化。
特征数据链路及存储:特征链路包括离线Hive->特征抽取->离线标签->存储,实时Kafka->特征抽取->实时标签->存储,存储采用Doris、用户x标签(1100亿)、IDMapping(8.5亿)、ElasticSearch、标签枚举表(250万)。
人群定向流程:主要包括标签搜索、人群预估、人群圈选、人群泛化等步骤。典型的人群定向流程包括标签加购物车->圈选、传种子人群->泛化、历史效果人群->泛化->叠加本次运营特点->圈选等。
难点及解决方案
人群定向性能优化
第一阶段:通过倒排索引及IDMapping,生成标签,获取统一用户ID,生成ID_mapping表,提高查询效率。
第二阶段:将连续块用户ID的不同tag数据增加统一的group字段进行分组,在group内完成交并差运算,提升每组的计算效率,开启多线程模式。
未来展望
业务向:目标指向能力提升,平台与业务目标强绑定,实验与流程强绑定。
技术向:提升查询效率,自动探测SQL复杂查询条件预先合并成一个派生特征的bitmap,提升导入速度,Spark直接写DorisTablet文件,并挂载到FE。