之家push系统迭代之路

2023年 8月 9日 37.0k 0

前言

在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用户个性化信息的需求,信息主动寻找用户的方式,更适合移动互联网。push系统能在用户不启动APP的场景下获取到相关信息,利用机器学习技术构建模型,为用户提供精准的个性化推荐,让用户第一时间知晓产品、内容、活动等的最新动态。 

1、系统综述

push是一种有效召回用户的产品,它涉及到的业务场景有:运营场景化推送(活动、消息通知、热点)、算法精准推送(定时个性化推送),它的核心模块如下:

数据处理:用户数据、内容数据以及用户历史行为数据等。

流程预测:通过召回、排序、干预、过滤等,生成待推送渲染数据。

JOB:调度、触发推送任务的执行。

推送通道:查询、过滤有效设备,封装协议和消息体,识别不同APP,下发到终端。

终端:对消息进行积攒处理,请求厂商或第三方渠道,进行消息下发。

APP:通知栏或弹窗展示推送消息,并上报到达和点击数据。

图片图片

接下来将从数据、算法、架构三个方面介绍push精准推送系统的构成:

  • 数据:数据是push系统的基石,包括用户数据、内容数据以及用户历史行为数据等。它以离线画像为主,辅以实时行为画像。
  • 算法:算法需要适应高度复杂性并处理大量数据,传统的人工策略已无法进行分析干预,因此需要一套基于复杂信息的处理逻辑。随着push业务复杂度的提高,算法也从最初的树模型发展到以神经网络为基础的深度学习模型。
  • 架构:架构保证push系统可以进行近实时化、全自动化的运行。架构包含了收集用户行为、提取用户画像特征、存储用户数据、生成推送结果等。用户对内容的时效性、个性化要求越高,系统架构就会越复杂。

2、系统迭代及优化

2.1 链式任务

push采用链式任务支撑整个系统,每批次预测任务都需要经过特征提取、召回、排序、打散、重排、生成推荐结果等步骤,随着新特征的接入以及召回和排序场景的不断迭代优化,任务失败的频率越来越高,主要存在如下问题:

● 特征数据难以复用:特征数据存储在临时表中,任务执行失败时需人工介入恢复,无历史数据可用。

● 流程执行链路过长:召回、排序、重排等关键流程每一步失败都将造成任务失败且重试成本高。

● 非明文类召回功能接入成本高:新的召回策略实验不能动态接入,需要开发介入。

2.2 异步服务

针对链式任务存在的问题,push任务采用分尾号、分时段并行执行,并通过以下方式提升任务执行效率:

● 数据分区:将特征数据及预测流程各环节生成的结果存入分区表,解决任务执行失败时无数据可用的问题。

● 流程拆分:将预测主流程拆分为召回、排序、重排、结果融合等子流程,每个子流程按尾号异步执行,互不影响,每个子任务只需取上一环节生成的最新结果即可继续运行,提升了系统的稳定性及容错性。

● 平台化配置:通过配置平台动态接入实验,简化新策略接入成本。

3.整体设计

3.1 业务架构

图片图片

push系统业务主要分为三大部分,离线层、近线层和推送层。

  • 离线层:是计算量最大的一个部分,它不需要实时提供服务。主要功能模块有数据处理、数据存储、离线特征计算、离线预测等。它通过任务调度平台定时从全量数据中抽取我们需要的数据,进行相应的加工,生成对应的特征,经过spark模型进行离线预测,得到待推送结果。
  • 近线层:特点是准实时,它可以获得实时数据,然后快速计算提供服务。通过监听kafka,获取用户行为日志,计算得出用户实时特征(用户搜索车系、浏览车系等),然后将实时特征与长中期特征进行融合,调用tensorflow模型实时预测得到待推送结果。
  • 推送层:将离线预测结果和实时预测结果进行融合(优先取实时结果),按批次生成待推送数据。通过任务调度中心定时选取最新批次预测结果给用户进行推送。

3.2 技术架构

图片图片

push技术架构的设计思想就是对数据层层建模、层层筛选,帮助用户从海量数据中找出其真正感兴趣的那部分内容。它包含以下几个部分:

3.2.1用户特征

push用户特征包含两部分,原始特征和计算特征,其中原始特征来源于画像表、用户行为日志、内容数据等,将原始特征经过加工形成计算特征,计算特征用于资源召回。

图片图片

3.2.2物料特征

push物料主要分为以下几类:原创文章/视频、帖子、口碑、车家号、问答。每类内容又分别包含兴趣车系、标签、关注作者、点击数、浏览数、收藏数、互动率等特征。

图片图片

3.2.3预测流程

预测是push系统中最重要的环节,通过获取用户特征与物料特征,按照一定的逻辑处理信息后,产生推荐结果。它主要分为以下几步:

1. 召回:将十万量级的物料先缩小到千量级。涉及到的召回方法有:

热门召回:将一段时间内的热门内容召回。

标签召回:根据每个用户的行为,构建标签,并根据标签召回内容。

协同召回:基于用户与用户行为的相似性推荐,发现用户潜在的兴趣偏好。

2. 过滤:已经曝光和点击后的资源、与用户所在城市不同的资源不会再推送到用户面前。

3. 精排:将召回和过滤后的内容通过模型预测出分值,根据得到的分值进行排序。

4. 重排:将精排后的推荐结果进行一定的修改,例如控制某一车系的频次,根据召回策略的权重对排序分值进行修改,将效果好的策略召回的资源置顶。

图片图片

四、可视化平台

push系统以定时任务为主,通过每日多次的召回、排序、过滤等主流程的运行,将最新物料及时推送至用户端,相较于传统监测任务异常后进行的事后处理,我们更倾向于实时监控。

1、统一调度平台

用于支撑push系统主流程业务运行,提供了失败重跑、超时报警、日志查看等功能。

图片图片

2、报表平台

报表平台主要包括推送策略打开率、实验打开率、尾号打开率的统计,以及用于辅助决策的内容池素材统计,用于事前预警的召回结果统计,这些报表便于开发人员及时发现和改进系统问题。

图片图片

3、配置平台

通过配置平台进行ABTest、召回策略、排序模型、运营规则、过滤逻辑的动态切换,针对不同的推送时段可以进行个性化的配置。

图片图片

五、总结

push系统是汽车之家APP的基础功能,是触达用户的一个非常重要的手段,它每天给几千万用户提供及时有趣的内容服务,对于提高主软活跃度及用户粘性起到重要作用。未来它将继续致力于召回唤醒沉默用户、促进用户活跃、提高功能使用体验。

作者简介

李娟娟

■ C端及中台产研中心-智能推荐部

■ 汽车之家高级系统开发工程师。先后从事知识图谱、之家大脑、PUSH精准推送等业务。现主要负责PUSH系统相关工作。

董欢欢

■ C端及中台产研中心-智能推荐部

■ 汽车之家系统开发工程师。先后从事家家小秘、知识平台、PUSH精准推送等业务。现主要负责PUSH系统相关工作。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论