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

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

作者:闲鱼技术——司远

背景

在闲鱼,除了可以进行闲置交易,当你点击第二个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化支持。
相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
2月前
|
存储 前端开发 JavaScript
前端技术趋势:在动态变化中寻求稳定
【10月更文挑战第7天】前端技术趋势:在动态变化中寻求稳定
62 0
|
5月前
|
SQL UED
领域模式问题之大模型应用的规模成本增加如何解决
领域模式问题之大模型应用的规模成本增加如何解决
|
程序员 开发工具
衡量程序员能力最好的方式
衡量程序员能力最好的方式
126 1
|
存储 运维 容灾
带你读《多媒体行业质量成本优化及容灾方案白皮书》1. 成本优化概述
带你读《多媒体行业质量成本优化及容灾方案白皮书》1. 成本优化概述
410 0
|
数据采集 机器学习/深度学习 存储
量化高频交易系统策略模型开发搭建
量化高频交易系统策略模型开发搭建
|
SQL 缓存 网络协议
架构师的视角分析系统性能指标
一、一次请求全链路图 步骤一:DNS解析,,用户在浏览器输入URL按回车,请求会进行DNS查找,浏览器通过DNS解析查到域名映射的IP地址,查找成功后,浏览器会和该IP地址建立连接。对应的性能指标为:DNS解析时间。对于这个指标,我们可以通过DNS缓存或DNS预解析,适当增大域名的TTL值来增大DNS服务器缓存域名的时间,进而提升了缓存的命中率。也可以用dns-prefetch标签实现域名的预解析,让浏览器在后台把要用的DNS请求提前解析,当用户访问的页面中包含了预解析的域名时,再次解析DNS就不会有延迟了。 步骤二:建立TCP连接,由于HTTP是应用层协议,TCP是传输层协议,所以HTT
133 0
|
移动开发 JavaScript 前端开发
报错/卡顿是衡量产品体验的基本要素
报错/卡顿是衡量产品体验的基本要素
106 0
报错/卡顿是衡量产品体验的基本要素
|
运维 算法 安全
系统的三高指标
前面我们将功能性的需求几乎都已经都陈列出来,这些几乎是从外部因素考虑的。但对于运行系统的环境,以及系统的并发能力也是我们需要考虑的,这部分可称为非功能需求。 非功能性需求包括:可用性、并发能力、性能、安全防护能力、水平扩容缩容能力、运维/运营成本等
221 0
|
Cloud Native 架构师 Devops
为什么团队规模越大,发布反而慢了 | 学习笔记
快速学习为什么团队规模越大,发布反而慢了
为什么团队规模越大,发布反而慢了 | 学习笔记
|
数据可视化 持续交付
衡量软件交付性能的4个指标
衡量软件交付性能的4个指标
668 0
衡量软件交付性能的4个指标