社区内容流量调控系统设计——成本与指标平衡的背后

简介: 运营可干预的内容分发流量调控实现

作者:闲鱼技术——司远

背景

在闲鱼,除了可以进行闲置交易,当你点击第二个tab“会玩”后,还会发现一个好玩、有趣的内容社区。内容分发作为社区的重要环节,核心目标是实现内容与用户之间的匹配效率最大化,核心指标就是内容的点击率(CTR)和停留时长,这也正是算法推荐模型的优化方向。然后运营在内容分发环节有着各种各样的需求,主要有以下几类:
image.png

  • 活动运营:对于社会热点、节日氛围和品牌活动相关的内容,运营需要进行提前布局,给予更多流量。
  • 社区生态:存量的内容由于历史积累的行为数据更多,更容易被算法推荐,导致流量分发存在马太效应,内容新鲜度不够。同时对于擦边球的内容,虽然CTR很高,但是从长期平台生态来看,需要限制其流量。
  • 流量扶持:对于核心内容创作者、BD作者,运营需要进行一定的流量扶持,长期来看可以促进内容供给。

如果单纯依赖推荐算法实现以上需求会带来2个问题,一是开发成本高,二是有的运营需求短期会带来核心指标的下降,和算法模型的优化目标是冲突的。
因此我们设计了一套流量调控系统,面向运营提供灵活的流量调控能力,在内容分发时打通推荐算法,快速实现运营需求,同时兼顾核心业务指标。

系统整体设计

image-20210720112351543
运营的需求整体可抽象为两类:

  1. 针对具体内容的流量调控任务,核心是对具体内容,在具体时间、具体分发场景、针对具体目标人群、实现具体的调控目标(曝光量)。
  2. 基于规则的流量调控,即当特定事件发生时,自动生成流量调控任务。比如当特定等级的创作者发布了特定质量的内容时,我们在一阶段给与一定的曝光量,如果曝光目标完成后,同时CTR指标达到一定标准,会再次给予一定的曝光量。

针对上面的需求,我们设计了策略链路动态创建具体调控任务,然后通过调控链路实现调控任务的管理和调度,同时调控链路也支持运营手动创建调控任务。

分发链路则打通了推荐系统,在完成调控任务的同时,尽可能的优化核心指标。

流量数据处理服务负责采集用户的曝光埋点数据,为流量调控模块提供实时的调控任务状态更新,同时沉淀数据资产,供流量洞察分析使用,最终在流量策略中心运营后台为运营提供决策支撑。限于篇幅,这部分内容后续有机会再和大家分享。

具体方案实现

核心策略核心流程.svg

策略链路

策略事件接入将各种异构的消息事件进行归一化处理,形成标准的策略事件,供后续的各种策略执行器进行订阅。
image.png
运营的各种调控策略被抽象为标准的策略处理器(StrategyManager),当监听到策略事件后,策略路由器将其转发给订阅了该事件的策略执行器,策略执行器处理事件,创建相应的调控任务。
image.png

调控链路

调控任务生成后,经过任务调度,实时同步到算法所需的调控内容池(采用图数据库存储),进行后续的内容分发。当内容在指定的分发场景曝光后,数据采集模块会实时采集客户端上报的用户行为日志埋点,进行3部分操作:

  • 通过处理产生曝光、点击等数据指标并存储。
  • 产生干预消息,实时更新调控内容池。
  • 判断指标是否达到目标曝光值,产生任务结束消息,结束任务调控。

数据采集需要满足高吞吐、低延时,采用流处理平台实现。
image.png

分发链路

  • 召回:推荐系统在收到前台请求的时候,同时从调控内容池(冷启动内容池、保量内容池)以及大盘正常召回链路进行个性化召回,保证即使是调控内容,也和用户兴趣相匹配。
  • 排序:推荐系统会通过相关的核心指标预估模型,以及特定类型调控任务(如冷启动)的算法模型,对内容进行排序。投放系统会根据运营设置的优先级,进行排序。

总结和展望

目前实现了运营保量投放能力,以及特定创作者的内容冷启动策略,其中

  • 运营手动保量投放调控日新增任务数30+,调控曝光百万级别。
  • 针对特定作者的冷启动调控业务实现了对于优质创作者的流量扶持,极大地激励了创作者积极性,日均发帖量提升14.4%。

后续针对流量调控系统将进行进一步的能力升级:

  • 多目标调控,除曝光量外增加点击,甚至涨粉能力。
  • 策略配置化。当前通过代码的方式实现运营策略,后续可实现调控策略配置化,热更新。实现运营策略的0代码、SOP化支持。
相关文章
|
机器学习/深度学习 存储 数据采集
数仓建模—OneID
这个和上面的更新问题有点像,上面更新问题我们可以保证一个自然人的OneID不发生变化,但是选择问题会导致发生变化,但是这个问题是图计算中无法避免的,我们举个例子,假设我们有用户的两个ID(A_ID,C_ID),但是这两个ID 在当前是没有办法打通的,所以我们就会为这个两个ID 生成两个OneID,也就是(A_OneID,B_OneID),所以这个时候我们知道因为ID Mapping 不上,所以我们认为这两个ID 是两个人。
4743 1
数仓建模—OneID
|
缓存 数据库 数据库管理
并发控制
【10月更文挑战第17天】并发控制
351 0
|
开发者 C# 自然语言处理
WPF开发者必读:掌握多语言应用程序开发秘籍,带你玩转WPF国际化支持!
【8月更文挑战第31天】随着全球化的加速,开发多语言应用程序成为趋势。WPF作为一种强大的图形界面技术,提供了优秀的国际化支持,包括资源文件存储、本地化处理及用户界面元素本地化。本文将介绍WPF国际化的实现方法,通过示例代码展示如何创建和绑定资源文件,并设置应用程序语言环境,帮助开发者轻松实现多语言应用开发,满足不同地区用户的需求。
400 0
|
存储 资源调度 算法
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践(中)
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践
553 0
|
算法 搜索推荐
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践(上)
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践
759 0
|
搜索推荐 NoSQL Redis
用户画像系列——数据中台之OneID (ID-Mapping)核心架构设计
用户画像系列——数据中台之OneID (ID-Mapping)核心架构设计
777 0
|
Docker 容器
Harbor v2.3.2安装启动报错解决:Creating network “harbor_harbor“ with th..
Harbor v2.3.2安装启动报错解决:Creating network “harbor_harbor“ with th..
437 0
|
消息中间件 JSON 监控
实时数据同步与共享:使用Apache Kafka Connect
在现代应用程序开发中,实时数据同步和共享变得越来越重要。而Apache Kafka Connect作为一个可靠的、分布式的数据集成工具,为我们提供了一种简单而强大的方式来实现实时数据的传输和共享。
1834 0
|
机器学习/深度学习 SQL 人工智能
ID-Mapping在心动公司探索实践
文 / 蔡圣哲 王沛 戴健 范建文 王兵鹏
ID-Mapping在心动公司探索实践
|
机器学习/深度学习 人工智能 Kubernetes
PAI-DLC 深度学习训练平台介绍|学习笔记
快速学习 PAI-DLC 深度学习训练平台介绍。
1007 0
PAI-DLC 深度学习训练平台介绍|学习笔记