HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

千人千面营销系统在携程金融支付的实践

  • 2019-09-17
  • 本文字数:3018 字

    阅读完需:约 10 分钟

千人千面营销系统在携程金融支付的实践

一、引言

携程金融核心产品为:拿去花、借去花、信用卡、理财。其中拿去花提供携程产品分期支付服务,借去花提供现金借款服务,信用卡提供携程联名卡、理财则给用户提供有竞争力的理财产品。除此之外还有闪游卡、二维码、程金币等小的业务线。


如何把这些创新性的金融产品,推荐给有兴趣的潜在用户,成为一个需要解决的难题。在此背景下,支付中心数据组开发了一套用户精准营销系统。

二、系统设计目标

1)不侵入业务系统,与业务系统解耦


业务方只要提供符合规范的 restful 接口,即可接入系统。接口分为两类:一些强业务关联的规则,由业务研发实现;另外一些分析相关的接口由数据组负责完成实现。


2)灵活的营销页面投放方法


可以灵活进行分群及投放。投放策略分为:共性策略,个性化策略。共性策略配置实时生效,产品运营可以根据业务需要及时调整相关策略,无需数据/研发参与;而较为复杂的个性化策略可以由数据组基于画像指标进行扩展与定制,免去了漫长的开发、测试、发布等阶段,提高了投放效率。


3)支持多种投放模式


基于优先级、随机、模型等,其中模型效果可以通过 Abtest 量化效果以及迭代优化。


4)报表监控/离线数据采集


报表监控包括:实时流量使用、实时点击、离线点展转化、业务接入 api 性能监控;离线数据采集主要是为了追踪策略效果及转化。


为了方便其他业务方接入,数据组定义了一套输入/输出标准,业务方提供的 restful 接口只需满足输入输出的定义,即可接入本系统,这样接口开发与数据组策略制定可以解耦,运营可以针对每种接口进行热插拔式投放。

2.1 整体架构


1)策略管理模块:数据组收集业务相关需求,沉淀相关的业务规则。目前核心功能是:借助分流策略提高流量利用率及使用模型评分提高开户转化率。


2)模型训练模块:根据不同业务线的特点,定义模型黑白样本,使用机器学习算法,对用户业务线的开通情况进行评分并进行标准化。


3)数据收集/分析模块:建立了完善的离线及实时监控,如实时流量使用、实时点击、离线流量/开通转化率数据;通过后端埋点,埋点日志落地至 hive 中,数据组基于日志分析各个步骤数据转化效果,进而优化策略。

2.2 交互时序

通过各接入业务方接口拦截是其营销页面展示的必要条件,为了提高接口的响应性能,采用了线程池对每种类型的弹窗分别遍历各自的规则,同时对于业务线接口返回超时时间进行限制,防止系统性能出现较大的真震荡。


三、核心功能

本系统关注两个方面:流量使用率和流量转化率,前者实现流量精细化运营,能够更加精细的控制每个产线所分配的流量;后者致力于提高流量转化,使流量能够最大化其价值,流量使用率主要通过分流实现,而流量转化率主要借助机器学习算法。

3.1 流量使用率-分流

分流的本质在于提高流量的利用率,在流量总量有限的情况下,如何根据一定的策略实现不同流量的分配,流量是通过百分比进行划分,所有产品线共享流量比例为 100%。当前支持的策略有:随机均匀、基于优先级、基于推荐算法实现。

3.1.1 随机均匀

均匀性:保证各业务线不仅能够在投放总量上保持均匀分配还要求在同一时点尽可能的均匀,不同时点的流量质量会有差异,此处可以借鉴各种随机化函数实现(random/Collections.shuffle())。


一致性:保证同一个用户多次进入都会显示相同的营销内容,常用的算法为 hash 取模,如果对于并发度要求高,可以使用 murmurhash3。

3.1.2 预测当天流量

当一个用户能够通过多个业务线策略拦截时,随机选择一个业务线的营销页面进行投放。针对任一用户 uid,各业务线接口返回值会有不同,且不同业务线的拦截策略也会有所不同,最终能够通过业务线拦截的业务线个数会不同,故无法保证完全的均匀性和一致性。


如果仅仅借助于均匀性和一致性会导致部分产线的流量分配不合理,因此需要对各个业务线流量的上限进行严格控制。此时需要预测当天流量才能借助于当天流量总量及所分配比例,确定流量预算,考虑到携程 app 流量周期性影响,可以借助于时间序列模型去预测。

3.2 开通转化率-模型

3.2.1 模型 Y 值定义

为了提高营销页面的转化率,我们借助机器学习算法,在选择模型的正负样本的时候,我们没有以是否点击作为模型的 target,而是以是否开通作为模型的 target,原因是我们通过离线数据分析发现,UED 重新设计页面,可能导致页面的点击率变动较大,当对于整体的开通转化率影响较小。

3.2.2 关于模型开发及部署

我们测试了多种业内算法,最终采用了 GBDT+LR,由于目标客户量大,而模型训练的特征也有近百个,且需要对每天的全量用户进行打分并推到生产环境,故直接使用 spark ML 在 hadoop 平台进行模型训练及部署。


模型效果如下:其中拿去花 KS 较高,是由于已激活的拿去花用户较多,能够拿到的特征相对比较全面。



3.2.3 评分的标准化

由于大部分产线都会单独进行模型评分,各自评分的度量需要映射到同一个基线上进行评分才合理,这个统一基准包括:开通转化率的测算,然而不同业务线的开通转化率差异也会很大,我们对评分进行分段,对不同分段的开通转化率进行测算,最终根据测算结果选择阈值,且利用最大最小值标准化不同产线的评分。

四、策略制定需要关注的问题及解决方案

4.1 流量预算少时模型阈值的选择

倘若某个业务线所分配的流量占比非常少时,是否可以大幅度提高其转化率?也就是尽量选择高质量的流量进行曝光,防止流量过早在相对较低质量时段中耗尽,此时如果该业务线上了模型,可以将模型分值调整到一个较大值,从而保证其转化率。

4.2 业务线共存

各产线营销页面投放需求差异较大,部分营销页面投放周期较短,或不以“开通”为目的时,可能就不需要为这种类型的业务线训练模型,而营销页面投放选择时会遇到:拥有模型业务线和不拥模型业务线共存问题,此时要合并这两种类型的营销页面,进行页面随机均匀选择。

4.3 新业务线的接入

新接入的业务线由于没有样本,需要事先分配部分流量,待样本积累一段时间后,才会进行模型评分。

4.4 模型效果量化-abtest

理论上一个新的用户端产品上线前都应该进行有效的 abtest,然后基于 T/Z 检验 abtest 产品效果,实际上 abtest 效果评估也需要根据业务进行调整。


如在一般的信用类场景中,使用 abtest 进行效果评估会很不合适,因为用户变坏的过程较为缓慢,且策略变更也较为频繁,而效果却难以短时间内衡量,具体到本系统,定义好目标值,如开通转化率,在保证 AB 样本接近 1:1 时,很容易可视化模型效果,无需 T/Z 检验。

4.5 如何构建近似 1:1 的 abtest 流量

Abtest 衡量转化率时,需要尽量保证 A 流量和 B 流量近似于 1:1,这需要对 A、B 样本进行埋点,然后线下分析,进而调整各业务线的模型分值,间接影响 AB 流量分配。


五、总结

本营销系统,基于携程用户信息及机器学习算法,灵活进行分群及推荐,解决了流量利用率和转化率难点,且能够通过 abtest 量化/迭代推荐算法效果,业务线接入简单,支持运营产品实时调整营销策略。


数据同学能够基于收集的完整后端/UBT 日志,跟踪分析营销系统每一步的转化情况,然后进行策略调整及优化投放。


作者介绍


房英明,携程支付中心数据负责人,目前负责支付离线数据仓库建设及 BI 业务需求。主要兴趣点为并行计算、数据处理及应用等领域。


本文转载自公众号携程技术中心(ID:ctriptech)


原文链接


https://mp.weixin.qq.com/s?__biz=MjM5MDI3MjA5MQ==&mid=2697268843&idx=2&sn=d06a334e47c160f1ce73af9b55ce3d81&chksm=8376f15fb401784985aed56df9621e53ca152369bd5b666235a8d5e7510b71b22723e99d5e6f&scene=27#wechat_redirect


2019-09-17 08:002502

评论

发布
暂无评论
发现更多内容

一个15年的架构师谈“如何成为一名优秀的解决方案架构师”

华为云开发者联盟

架构 软件 架构师 华为云

一场由fork引发的超时,让我们重新探讨了Redis的抖动问题

华为云开发者联盟

数据库 redis 华为云 GaussDB fork

入选SIGMOD2021的时间序列多周期检测通用框架RobustPeriod如何支撑阿里业务场景?

阿里云大数据AI技术

人工智能 数据库 大数据

开工第一周,有哪些助你弯道超车的好书?

博文视点Broadview

华为AR&VR黑科技:以“自由视角”360度尽展舞台唯美

华为云开发者联盟

华为 算法 视频 AR&VR 全息显示

Spring中的事务使用注意事项

少平

spring

在敏捷项目管理情境下,如何做多项目管理?

爱吃小舅的鱼

敏捷 敏捷开发 研发管理 研发效能 研发工具

公安合成作战系统!智慧警务情指行一体化建设解决方案

源中瑞-龙先生

公安合成作战系统开发 产品解决方案 情指行一体化 公安

力扣 (LeetCode)-两数之和,有效的括号,两数相加

我是哪吒

面试 算法 LeetCode 28天写作

微服务框架相关技术整理

架构 微服务

LeetCode题解:188. 买卖股票的最佳时机 IV,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

互联网公司的「敏捷开发」流程是怎么样的?典型的敏捷团队是什么样?

爱吃小舅的鱼

敏捷 敏捷开发 研发管理 研发效能 研发工具

腾讯音乐-全民K歌iOS面经

iOSer

ios 面试 腾讯大厂 金三银四跳槽

总结:近几年有哪些不错的scrum工具

爱吃小舅的鱼

Scrum 敏捷 敏捷开发 研发管理 研发工具

跨云迁移过程中的数据同步及一致性校验实践(一)

UCloud技术

迁移 数据传输 数据库迁移 数据迁移

重磅丨国资委下发通知,加快推进国有企业数字化转型

爱吃小舅的鱼

团队管理 项目管理 研发管理 研发效能 研发工具

PingCode新成员Goals开放内测!

爱吃小舅的鱼

项目管理 敏捷 敏捷开发 研发管理 研发效能

【LeetCode】二维区域和检索 - 矩阵不可变Java题解

Albert

算法 LeetCode 28天写作

谷歌android!通宵都要看完这个Android关键技术点,威力加强版

欢喜学安卓

android 程序员 面试 移动开发

谷歌开发安卓系统!Android面试你必须要知道的那些知识,全网疯传

欢喜学安卓

android 程序员 面试 移动开发

产品训练营-第五周作业

羽室

重磅!京东云自研第四代云主机发布;曝国外物理学家开发出用于量子计算机的汇编语言

京东科技开发者

微软 开发者 量子计算机 谷歌

隧道建设手段结合科技能有多强大?盾构机可视化让工程化繁为简

一只数据鲸鱼

物联网 数据可视化 3D可视化 盾构机 隧道工程

力扣(LeetCode)刷题,简单+中等题(第30期)

不脱发的程序猿

面试 程序人生 算法 LeetCode 28天写作

【黑科技】爬虫也可以一键获取 [加载更多] 数据,无编码学爬虫之三。

梦想橡皮擦

Python 28天写作 3月日更

话说 synchronized

木子的昼夜

Java

ETL工具—Taskctl 如何搭建配置作业类型的管理

敏捷调度TASKCTL

大数据 kettle 运维自动化 海豚调度 ETL

直流电源防反接电路设计

不脱发的程序猿

嵌入式 28天写作 硬件设计 直流电源 防反接电路设计

跨云迁移过程中的数据同步及一致性校验实践(二)

UCloud技术

迁移 数据传输 数据库迁移 数据迁移

连续两次入围Gartner魔力象限的Quick BI到底有何魔力?

作为产品经理,如何分析和管理你的产品需求?

爱吃小舅的鱼

敏捷开发 研发管理 需求管理 需求 研发工具

千人千面营销系统在携程金融支付的实践_文化 & 方法_房英明_InfoQ精选文章