作者|赵志诚(之诚)
出品|阿里巴巴新零售淘系技术部
背景
上周看完《闲鱼如何通过Push升级,更懂你?》,大家是不是一直等着下篇呢?Hermes 咋就这么敏捷呢?她咋就这么懂你呢?今天,小橙子就带领大家一起揭开她神秘的面纱。触达类业务,对用户最重要的三个问题:
• When is Right? 什么时候发给我最合适?
• Who is Right? 什么样的场景更适合我?
• What is Right? 发什么内容更吸引我,我更感兴趣,对我有帮助呢?
秉承这个原则,如何快速的触达用户,更好的更优质的推送用户感兴趣的内容,是消息推送需要解决的关键问题。
思路
Hermes 的设计理念是将系统分为三部分,不同的组件实现不同的需求:
• 合理的选择发送时机(When)通过任务中心完成。
• 不同场景选择不同的用户(Who)通过配置中心完成。
• 发送用户最感兴趣的内容(What)通过匹配中心完成。
首先,让我们来了解一下 Hermes 的整体技术架构。
我们可以从架构图中看出,配置中心负责维护平台核心的数据模型,提供任务和素材的内容给匹配中心和任务中心;任务中心负责触达的时机选择和实际的触达计划,保证系统稳定性;匹配中心负责素材场景择优,疲劳度控制以及实验。在具体讨论各个部分的设计之前,让我们先梳理一下 Hermes 在 push 整体触达链路上的不同类型:
• 个性化触发:通过洞察用户感兴趣的内容,有针对性的帮助闲鱼用户发现价值。举例来说,通过算法,找到用户最容易接受消息推送的时段(某用户 A 喜欢在上午吃完早餐后打开手机),推送用户感兴趣的消息内容(用户 A 最近喜欢浏览一些数码产品),帮助他们更好的通过闲鱼满足个人需求(闲鱼将最近有关数码产品的一些促销活动推送给用户 A,用户 A 找到了一个好 deal,很开心)
• 实时触发:通过洞察用户使用闲鱼的实时行为,更好的帮助用户实现个人需求,比如用户浏览了某个商品 x,如果商品 x 降价了,我们会通过消息推送告知用户曾经浏览过的商品降价了,这样用户就可以用更便宜的价格买到喜欢的商品。类似的还有关注卖家上新等场景。在触达方式上,我们有 push、短信、popLayer 等不同的触达方式,针对每种方式的特点,优化用户接收消息的体验。
结合上述两种类型,我们来讲解系统是如何通过各部分的配合实现上述链路的。
配置中心
配置中心是 Hermes 敏捷的重要一环,如何快速的发掘用户感兴趣的内容,快速的配置,快速的上线是影响用户体验的重要因素。
首先需要明白配置中心的三个核心角色,任务、人群和素材。运营可以通过平台配置不同的活动(就是任务),每个活动都可以创建多个素材,素材支持千人千面(个性化内容),运营同学针对各自负责的活动,圈选对应的人群(奥格用户增长平台【1】),所以任务和素材是一对多的关系,任务和人群是一对一的关系。
Hermes 的配置中心对任务和素材进行分开管理,系统会把任务按照触达目的进行分类,任务关联素材。明确的分类管理,对运营同学管理当前的营销活动,活动目的以及触达形式一目了然,任务素材审核机制保证了推送给用户的活动质量,数据大盘的报表便于后期做数据分析,更好的了解用户对发送内容的反馈。
如何发掘用户个性化的内容呢?每个业务场景都会根据不同用户的历史行为产出一张个性化 ODPS 表,这里面算法会根据不同用户的特点产出不同的内容。此外,时效性也非常关键,计算出来的个性化内容如果几天后才发给用户,可能用户已经不感兴趣或者有新的关注点,如何快速同步产出的结果来及时发送给用户呢?
在数据流转的设计架构中,配置中心的任务素材内容我们存储在 mysql 和 ODPS(阿里海量数据离线处理平台【2】)中,通过离线同步和实时同步两种方式输入到匹配中心(算法中心):任务素材的配置信息存储在 mysql 中,离线通过 ODPS 同步机制,实时通过监听 binlog 机制,同步发送 MQ 消息给匹配中心。
素材千人千面的内容我们存储在 ODPS 表中,离线同步我们采用了 ODPS 同步机制,实时同步我们利用 Blink(阿里海量数据实时流计算平台【3】)来完成,具体的方式通过 Blink 监听 ODPS 表的内容变更,然后将内容同步到匹配中心对应的数据存储中(IGraph 数据库,下文会有介绍)。通过实时的数据同步,我们可以做到内容快速配置上线,这也体现了 Hermes 的敏捷。结合个性化内容的生成,我们可以给匹配中心提供充足的素材供匹配中心找寻用户最感兴趣的内容,发掘用户的兴趣点。
任务中心
任务中心主要负责触达时机的确定,用户校验,计算任务素材匹配列表,调用匹配中心来判定是否对用户进行触达,业务校验,数据埋点,消息触达,整体链路如下图:
在触达时机上,根据不同类型的消息特点,我们把触达时机分为两类:个性化触发是算法通过离线 T-1 日算出每个用户最有可能接受触达的时间(个性化时间),产生一张 ODPS 表,任务中心通过 SchedulerX(阿里分布式调度系统)调度这张个性化时间表,查找符合条件的用户列表,将用户列表封装为消息发送(MetaQ,阿里自研分布式消息队列),接收到消息的服务针对每个用户,进行上述的链路传递。
实时触发是通过端智能的用户行为采集,上报,根据用户目前所在的场景,挑选适合该场景的信息发送给用户。
这其中,感知用户行为和决策下发是 Omega 系统实现的,Hermes 通过与 Omega 系统配合,获得触发时机以及对应场景,关于 Omega 系统的介绍,《一个实时精准触达系统的自我修养》会为你详细的阐述。
当整条链路触发之后,系统首先校验用户是否符合系统要求,如果符合的话系统会根据用户去查询用户命中的任务(其实是查询用户是否在某个人群中,还记得一个任务对应着一个人群吗?),根据用户命中的任务,通过配置中心找到对应的符合这个用户的所有的素材,然后将这个素材列表结合一些配置信息发送给匹配中心,匹配中心具体的功能下个段落会有仔细讲解,匹配中心返回决策”是否发送消息“给当前请求用户,如果发送,发什么素材以及发送什么内容;如果不发送,不发送的原因,便于做后期分析统计。如果发送的话,任务中心会进行业务参数校验,千人千面校验等一系列校验内容确保素材合理合法,然后记录数据埋点以及后期日志,最后通过闲鱼自研的消息下发渠道 Heracles 推送给用户,参见下图:
这里需要单独说明一下实时触发的场景,由于实时触发的场景多样,系统会根据用户行为推送给用户不同的消息内容。但系统又不能对用户造成骚扰,这就需要匹配中心需要区分这些场景,有针对性的选择最合适的内容,针对复杂的场景,需要进行场景隔离。这就需要不同的匹配中心,因此系统要对匹配中心灵活配置,这里我们通过传入匹配中心的 id 灵活选择对应的匹配中心,解耦了任务中心和匹配中心,对未来更多类型的场景,提供了可能。
匹配中心
Hermes 除了快,还很懂你,奥妙就在匹配中心。她不光帮助 Hermes 回答了“ 是发 or 还是不发,That is a question"(致敬著名英国文豪莎士比亚),还解答了发送什么内容对用户最有用,才是用户最感兴趣的,最能帮助到用户。咋做的呢?
匹配中心来自阿里算法平台 TPP,结合配置中心准备好的个性化内容信息,算法小姐姐会根据场景建模,根据用户的历史数据,实时行为进行模型训练,对素材进行预估打分,匹配召回,素材之间的 AB 实验和赛马【4】,最终决定哪个素材以及内容是最适合用户的。
当然,在此之前,还有非常重要的一步,就是消息触达不能对用户造成骚扰,所以根据用户、任务、素材、内容疲劳度来综合判断到底发还是不发,以及什么素材和内容满足疲劳度控制,在实时场景中,匹配中心相对个性化触发更为复杂,这里除了单场景的素材择优,还需要考虑到多个场景下如何进行场景择优的问题,比如用户进入 app 首页这个场景,可能会触发多个场景,每个场景都有对应的消息触达,那么匹配中心如何选择最优场景,再根据场景中的不同素材进行素材择优,这里的模型设计会更为复杂。在平台上,算法使用了阿里自研的推荐平台 TPP,内部使用到的数据存储是 IGraph,一种阿里自研的高性能图数据库。
小结一下,结合上述的具体阐述,通过配置中心,任务中心和匹配中心的联动,Hermes 可以快速发掘用户感兴趣的内容,并且在用户易于接受的时机把内容传播给用户,同学们,你们听明白了吗?有啥问题吗?有问题的话就留言吧,卡尔.萨根说过:"世上没有傻问题" (顺便点个"在看", 小哥哥晚餐就给自己加个鸡腿了)
业务效果
在业务效果的提升上:Hermes 平台上线之后效果非常显著,用户点击率提升两位数,说明用户对消息推送的时间相较于老系统更容易接受,消息内容更感兴趣;用户场景的覆盖量直接翻倍,这为用户提供了更丰富的场景,给用户带来了更有趣的内容,所以通过 push 激活的闲鱼 DAU 也超过了历史最高水平。
在运营效率的提升上:在 Hermes 还未诞生的时候,老系统配置,测试,审核往往需要三天以上的时间,而现在所有的流程全部在管理后天配置完成,实时生效,数据大盘统计,归纳整理一站式全部搞定,谁用谁知道,用了都说好!
未来计划
Hermes 作为闲鱼触达的统一收口平台,不光是 push,短信,未来也会接入 open page 等更丰富的触达形式,通过不同的触达方式,优化用户体验;在闲鱼触达的整体架构设计中,未来我们会对场景择优和内容选择上进行深度的优化,针对不同的业务目标,匹配出最适合用户的场景以及消息内容。为了用户,没有最懂你,只有更懂你。
备注说明
【1】奥格 -淘系用户生命周期全链路管理平台
【2】ODPS -阿里海量数据离线处理平台
【3】Blink - 基于 Flink 的阿里海量数据实时流计算平台
【4】赛马-素材竞争,一种自然的实验方式,通过素材自身内容进行竞争,优胜略汰
关注「淘系技术」微信公众号,一个有温度有内容的技术社区~