闲鱼如何通过Push升级,更懂你?

2024-03-17 04:18
文章标签 push 升级 闲鱼

本文主要是介绍闲鱼如何通过Push升级,更懂你?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者|剑辛

出品|阿里巴巴新零售淘系技术部

对闲鱼用户来说,因为闲鱼商品库存只有一件,商品的时效性很强,因此当用户关注的卖家上新、浏览的商品发生降价或者平台为用户找到一批高性价比商品时,用户期望尽快被通知。Push已经成为用户与闲鱼平台联系的重要纽带。

本文将以技术同学视角,介绍闲鱼Push从离线手工投放的1.0版本进化到智能个性化的2.0版本的发展过程,详细说明遇到的问题和技术方案选型,以期给读者带来一些思考和解决类似问题的思路。

闲鱼Push1.0


当闲鱼all in无线后,平台需要把与用户相关的优质内容推送给用户,便于用户快速找到想购买的商品和感兴趣的内容。平台亟需一个Push产品化方案保证将优质内容以Push的形式触达到用户,提升用户体验。基于这样的前提,闲鱼Push1.0方案的主要思路如下:

1. 计算Push用户名单

      a. 计算与用户强相关的优质Push场景,根据场景得到用户名单

      b. 垂直业务根据用户画像等条件,圈选业务的目标人群

2. 基于场景疲劳度过滤每个用户能发送的场景列表

3. 对每个用户的场景列表进行全局择优,挑选点击率最高的场景作为目标场景

闲鱼Push1.0方案简单明了,流程清晰,而且离线流程方便监控告警和问题排查,满足当时的业务需求,上线后运行稳定。在很长一段时间内1.0方案的核心架构和流程没有太大变更。但随着业务发展,闲鱼Push1.0方案的一些弊端开始暴露,包括

  • Push用户名单计算不够实时

  • 消息卡片样式不够丰富

  • Push触发时机单一

  • Push场景比较少

这些问题最终导致Push点击率无法继续提升,触碰到1.0方案的天花板。为了解决这些问题,我们对闲鱼Push系统进行几个方面的优化升级,并最终重构了闲鱼Push系统。


闲鱼Push1.1


为了给Push用户提供更好的用户体验,丰富用户Push场景,我们优先考虑从消息样式、触发时机和用户场景几个方面优化扩展现有闲鱼Push方案,优化项主要分为消息feeds流升级、Push时间个性化、实时Push等。

▐  消息feeds流升级

Push会沉淀到客户端的消息板块,而消息板块也是用户进入闲鱼后浏览最频繁的板块之一,消息样式最开始只支持文本消息和图片消息,这类消息样式的问题是对用户来说有效信息曝光少、而且消息样式单一。为此我们对消息展示形式进行升级,通过feeds方式展示消息,提升有效信息曝光率,优化消息样式,打造消息板块的用户心智。feeds流升级上线后效果明显,因为用户感兴趣的内容相比透出更多,UV点击率和用户次留相对提升都很大。

第一条为feeds流消息,之后是图片消息,相对来说,feeds流消息可以透出更多有效信息

▐  Push时间个性化

闲鱼Push1.0方案主要支持的是定时批量Push,实际的运行情况是定时批量给目标用户发Push。Push触发时机比较单一,人为造成流量较为集中,增加系统稳定性风险;另外统一的触发时机并不适用于所有用户,存在对部分用户打扰的情况。

针对这种情况,我们优化了Push触发时机,由算法根据用户行为计算预测每个用户的触发时机。算法将用户相对平均的分在一天之中,在用户相对活跃的时间段将Push触达给用户,减少对活跃用户骚扰,也使得Push触达的用户群体分层更加合理健康。

▐  实时Push

闲鱼Push1.0方案主要覆盖的是用户相关离线场景,对用户实时行为产生的场景覆盖不够,而且这类场景较离线场景相比实时性更高,对用户来说相对更重要。

针对这个问题,我们增加了对实时场景覆盖,将用户行为抽象成关系模型,以IFTTT作为系统整体触发机制。当关系一侧的用户行为发生变更后触发对另一侧的触达,这类场景实时性更强,和用户强相关,提升用户Push场景丰富度,增强用户粘性。实时Push场景上线后Push点击率相对离线场景提升1倍以上,具体技术细节可参考《闲鱼IFTTT》。

以上是我们针对闲鱼Push1.0的功能优化和增强,通过这些能力也扩展支持了更多场景和业务,最终组合在一起成为闲鱼Push1.1版本。


闲鱼Push的今生


闲鱼Push1.1整体上线后极大提升了用户Push场景丰富度和用户体验。随着对Push和用户理解的深入,我们发现还有优化提升的空间,包括:

  • 平台视角不够,现有的优化更偏向点对点,需要从闲鱼Push平台视角将这些点连成线形成合力,产生1+1>2的效果

  • 现有闲鱼Push流程的本质还是离线计算,算法无法进行更加实时的个性化和全局择优,对用户体验有一定影响

  • 场景配置不够灵活,新增场景成本高,制约了丰富用户Push场景的进度

基于这些原因,我们最终对闲鱼Push系统进行重构和升级,打造闲鱼Push实时智能投放平台Hermes。Hermes取自希腊神话,他聪明(智能)、行动敏捷(快)、多才多艺(多种触达),最能契合闲鱼Push实时智能投放平台的使命愿景。

▐  逻辑架构

Hermes 架构与闲鱼 Push1.0 完全不同,以实时为目标,在场景素材准备、算法全局调优和Push发送等关键环节实现实时或准实时,提升 Push 内容时效性;另外从平台角度出发,将Hermes分为配置中心、匹配中心和任务中心,各个子系统定义交互的数据协议,彼此没有强依赖。三个子系统的作用分别是:

  • 配置中心

    配置中心负责维护平台核心数据模型,给业务方提供页面操作配置Push场景和素材,降低业务方接入成本;并且把配置数据以离线全量和实时增量的方式同步给算法模型,作为匹配依据。

  • 匹配中心

    匹配中心又称为算法择优中心,匹配中心负责训练算法择优模型,根据场景和素材配置为每个用户个性化筛选,根据每个素材历史点击率数据排序,根据用户近期行为召回用户最有可能感兴趣的素材和个性化内容。

  • 任务中心

    任务中心负责Push触发时机和实际触达,任务中心核心支持定时触发、实时触发和时间个性化触发,目的是对Push触发方式收口,为不同的业务和场景选择不同触发方式,帮助业务实现业务目标。另外是对触达进行收口,方便平台编排触达计划,包括触发时间和发送量级,保证达到业务目标同时不会对Hermes和业务下游系统造成过大瞬时压力。

▐  业务效果

Hermes平台上线后效果非常明显,主要表现为:

  • Push点击率相对提升达到两位数

  • 用户场景覆盖量直接翻倍

  • Push点击激活的DAU也超过历史最高水平


总结


本文介绍了闲鱼Push从前世离线计算的1.0版本,发展到多项功能优化的1.1版本,最终进化成今世的实时智能投放平台的全过程,其实闲鱼Push的每个阶段都契合当时业务发展需要,但对于用户体验的无限追求最终产出了闲鱼Push实时智能投放平台Hermes。希望这种方式可以帮助读者理解闲鱼Push发展的业务背景和技术方案选型考量。

接下来我们还会有一篇文章详细说明Hermes的技术方案,包括系统架构、技术选型、性能优化和稳定性保障措施,欢迎大家继续关注。

We are hiring

淘系技术部依托淘系丰富的业务形态和海量的用户,我们持续以技术驱动产品和商业创新,不断探索和衍生颠覆型互联网新技术,以更加智能、友好、普惠的科技深度重塑产业和用户体验,打造新商业。我们不断吸引用户增长、机器学习、视觉算法、音视频通信、数字媒体、移动技术、端侧智能等领域全球顶尖专业人才加入,让科技引领面向未来的商业创新和进步。

请投递简历至邮箱:ruoqi.zlj@taobao.com

END

了解更多

点击下方图片即可阅读

闲鱼基于Flutter+FaaS的业务框架思考与实践

5G时代|闲鱼在Flutter&FaaS云端一体化架构的探索实践之路

这篇关于闲鱼如何通过Push升级,更懂你?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817778

相关文章

【文末附gpt升级秘笈】腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑

腾讯元宝AI搜索解析能力升级:千万字超长文处理的新里程碑 一、引言 随着人工智能技术的飞速发展,自然语言处理(NLP)和机器学习(ML)在各行各业的应用日益广泛。其中,AI搜索解析能力作为信息检索和知识抽取的核心技术,受到了广泛的关注和研究。腾讯作为互联网行业的领军企业,其在AI领域的探索和创新一直走在前列。近日,腾讯旗下的AI大模型应用——腾讯元宝,迎来了1.1.7版本的升级,新版本在AI搜

java同步锁以及级别升级的理解

首先简单说下先偏向锁、轻量级锁、重量级锁三者各自的应用场景: 偏向锁:只有一个线程进入临界区;轻量级锁:多个线程交替进入临界区;重量级锁:多个线程同时进入临界区。 还要明确的是,偏向锁、轻量级锁都是JVM引入的锁优化手段,目的是降低线程同步的开销。比如以下的同步代码块:   synchronized (lockObject) { // do something } 上述同步代码块

Python pip升级及升级失败解决方案 pip 20.2.2升级20.2.3教程

Python pip升级及升级失败解决方案 本教程用于Python  pip升级及失败解决方案 首先查看脚本 pip show pip 我已经升级到了最新的版本 安装其他模块过程中出现下面提示,便说明你需要升级pip You are using pip version 18.1.1, however version 19.0.1 is available. 你的版本为18.1

两个基因相关性细胞系(CCLE)(升级)

目录 单基因CCLE数据 ①细胞系转录组CCLE数据下载 ②单基因泛癌表达 CCLE两个基因相关性 ①进行数据整理 ②相关性分析 单基因CCLE数据 ①细胞系转录组CCLE数据下载 基因在各个细胞系表达情况_ccle expression 23q4-CSDN博客 rm(list = ls())library(tidyverse)library(ggpubr)rt

「Debug R」如何不需要重新启动R/Rstudio就可以升级已经加载的R包

当我们已经加载了一个R包,例如ggplot2时,然后此时你发现ggplot2目前出最新版了,你心血来潮想要升级它,于是你输入了install.packages("ggplot2"), 结果弹出了下面这个界面 一个神奇的界面 它强烈建议你重启一下Rstudio,并且说到Rstudio会非常智能的重启并继续你的任务。但是根据我多年踩坑的经验,它通常没有那么智能。即便它有它说的那么智

AG32 MCU是否支持DFU下载实现USB升级

1、AG32 MCU是否支持DFU下载实现USB升级呢? 先说答案是NO. STM32 可以通过内置DFU实现USB升级,AG32 MCU目前不支持。但用户可以自己写一个DFU, 作为二次boot. 2、AG32 MCU可支持的下载方式有哪些呢? 我们AG32裸机下载只支持uart和jtag. 用户可以通过UART实现ISP升级。所以虽然不支持DFU,但是用户仍然可以通过UART实现升级。 3

mysql 升级到8.0

MySQL :: MySQL 8.0 Reference Manual :: 3.7 Upgrading MySQL Binary or Package-based Installations on Unix/Linux 2种升级方式: In-Place Upgrade   : data目录替换 Logical Upgrade: 通过 mysqldump 导出为sql文本后,导入。

升级iOS7后利用rvictl和wireshark抓包失效?

最近把一台设备升级到iOS7后,利用rvictl和wireshark抓包发现抓不了,无意中发现在装有xcode5的机器上可以抓包,看来rvictl与xcode是绑定的,升级到最新的iOS7后,必须要装上最新的xcode5版本才能抓包。 使用rvictl有一个前提是要获取设备的UDID,看网上不少教程都是从xcode中获取UDID,步骤相当繁琐,快速获取UDID用命令行才是王道,果然不出所料,很快

Android实战之app版本更新升级全文章(二)

BaseAndroid.checkUpdate(MainActivity.this, 2, “http://f5.market.mi-img.com/download/AppStore/0f4a347f5ce5a7e01315dda1ec35944fa56431d44/luo.footprint.apk”, “更新了XXX\n修复OOO”, false); 看看效果图 界面有点丑,自己

source配置文件不生效 原创 2016年03月14日 18:43:55 3558 问题背景: 升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME

source配置文件不生效 原创  2016年03月14日 18:43:55 3558 问题背景:       升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME,没有问题。      初步推断是没有source,sourec .bashrc 之后查看$JAVA_HOME,$JRE_HOME变成1.8版本,但启动时还是报错,这就