强化学习在小桔车服用户运营中的实践

桔妹导读:小桔车服为滴滴旗下品牌,围绕车主及汽车生命周期,整合运营多项汽车服务,更加智能更加用心地为车主提供适合的一站式用车服务,致力于让每一个人拥有轻松车生活。

本次分享的主题为强化学习在小桔车服用户运营中的实践。在互联网场景下,面向用户的营销是每个业务所对的共同问题,而如何帮助小桔车服运营提升营销的 ROI 是我们算法同学的工作重点之一。在本文,我们将向大家介绍如何将车服的营销问题建模为一个强化学习过程,并且如何精细化地对每个人做出个性化的营销动作,在实际业务中又取得了怎样的效果。

1.

小桔车服用户运营算法体系

▍滴滴用户运营算法模型

为了支持用户增长的需求,小桔车服构建了一个平台,一个系统以及四个算法策略模块:即流量分发平台、标签系统、画像模块、目标人群定向模块、营销策略模块、触达优化模块。

  • 流量分发平台是对用户进行场景化广告的弹出,和用户进行一些交互,包括发 push 消息、播报及发短信消息等各种渠道。
  • 标签系统一方面在线上服务中判别用户的身份属性、状态以及身份,另一方面是帮助各业务的运营人员去细粒度的圈选目标人群。

针对用户运营的四个阶段,也有相应的算法策略模块:

模块一:画像

包括用户画像,商家画像以及车辆画像,目标是把生态内的各个实体细粒度的刻画出来。

模块二:目标人群的定向

用户运营首先根据任务和用户生命周期去找到合适的用户群体,比如对用户长期价值的定向、对短期的转化率的预估、用户流失预警、体系外用户的精准定向等。

模块三:营销策略

分两部分,一个是滴滴体系内线上的一些算法策略模块,如强化学习、组合策略、个性化推荐,滴滴体系内有大量的拉单司机、专车司机、快车司机、顺风车司机以及出租车司机,他们和滴滴平台有非常紧密的联系,每天都在平台内拉单,用户行为非常稠密,为智能营销提供了丰富的源数据。另一部分是滴滴体系外的用户增长,如社交营销、DSP 外投广告。

模块四:触达优化

算法根据用户的状态和行为发放给用户一张一定面额的优惠券或一个活动提醒,为了增强用户的转化意愿,在触达优化阶段对用户进行个性化的消息提醒。因为平台业务众多,各业务下的运营活动众多,为了避免无节制地把所有的活动消息在很短的时间内推送给同一个人,需要做一些取舍,这就是全局流量优化解决的问题:在尽量减少打扰用户的限制下,提升平台的收益

▍滴滴人工运营的痛点和解决档案

人工运营的痛点和解决方案人工运营和监督学习方法可以圈选目标人群进行运营活动,但是比较粗放,依赖运营人员的经验,将用户生命周期强制分成拉新、提频、沉默召回等阶段,由不同运营人员负责,但是这样将连续过程割裂开不利于运营效果的提升;同时没有利用平台用户线上线下丰富的行为特征,很难对用户进行精细化的分析和运营;消息提醒千篇一律,用户会感到疲劳从而影响转化率。针对这些痛点,小桔车服采用强化学习方法对用户和平台之间的交互过程进行建模,并且在消息提醒阶段,使用 graph embedding 方法根据用户的兴趣进行个性化的消息提醒,真正的做到精准触达。

2.

智能营销建模方法

▍强化学习

强化学习是一种与监督学习不一样的学习范式,通过一个智能体与环境进行交互从而达到学习目标。其最重要的概念包括状态 State、动作 Action、回报 Reward,智能体接收到环境的状态后,对该状态做出一个动作,环境根据该动作做出一个回报,然后进行一轮一轮的过程学习。强化学习的典型应用有游戏、个性化推荐、效果广告和网约车调度,如 AlphaGo Zero 在围棋领域战胜世界顶级选手、多款游戏中的 OpenAI 基本战胜人类,滴滴的网约车调度也采用强化学习去预测司机和乘客在时空中的匹配价值,进而在提升平台 GMV 的同时也提升了乘客和用户的产品体验。

强化学习分类大的方面强化学习可分为 Model based 和 Model free,两者的区别是 Model based 可以完整的了解并学习 Agent 所处的环境,Model free 却不能。Model free 分为三方面:策略梯度优化、Q-learning 及两者的结合,策略梯度优化适用的场景是动作连续的或者动作空间非常大,比较适合推荐或广告领域,典型的方法有 A3C 和 PPO;Q-learning 适合的场景是动作空间有限的几个或几十个,典型方法有 deep Q-learning;两者结合的典型方法有 DDPG 和 SAC。针对车服用户运营的问题,首先两个实体中 Agent 是车服平台,Environment 是用户,或者其他上下文。在每一轮迭代中 Agent 会向环境发送一张一定面额一定周期的优惠券,或者一定周期的消息或者空动作,Environment 收到动作后经过一定周期会做出一个正向或负向反馈,该反馈被量化后发送给 Agent,环境状态的变化 State 也会返回给 Agent。

强化学习图解 + Action 周期在这个场景里,强化学习的第一个要素 Action 包括不同面额优惠券的推送、不同周期的消息推送、空动作;第二个要素 State 是观察和抽取出来的一些特征的表征,包括用户线下行为、用户线上行为、静态行为、模型学习预估分;第三个要素 Reward 是用户对 Action 的反馈,如空动作加油、消息推送加油、用优惠券加油;用户查看优惠券、查看消息;无加油无查看。除此之外,针对场景需要定义了两类 Action 周期:动作周期和沉默周期,传统强化学习当 Agent 发出动作 Environment 会马上给出一个响应,但在 O2O 场景下用户需要一定周期(动作周期)对动作做出响应,如加油,并且在下一时刻用户不可能再去加油,会进入沉默周期。

Double DQN 算法流程因为经典的 DQN 会带来 Q 值预估的 overstimatation,进而引起接下来训练的震荡,所以具体的算法采用 Double deep Q-learning network,算法分为训练部分和预测部分:训练部分的核心是损失值 loss 的不同,double DQN 中左边网络训练的 Q 值会周期性的复制给右侧的 target Q-network,二者共同去计算得到最终的损失值 loss;预测部分是 Environment 会把当前的状态输出给 Double DQN,通过计算将 Q 值最大的 Action 返回给环境,如发一张合适的优惠券、一个消息推送或者空动作。此外针对正负比例不均衡的情况,算法采用了负采样的方法。

▍Double DQN 算法流程

消息提醒部分可分为三个阶段:首先是运营统一配置,在这个阶段所有人收到的消息是一样的,用户容易产生疲劳;其次是初步的个性化,同时构建用户的需求画像和平台的供给画像,然后将二者匹配起来,这样可以达到一个相对较好的结果。最后是为了达到更好的个性化结果,基于用户的行为序列构建相应的图,采用 graph embedding 学习方法实现个性化消息的推送,具体使用了三种方法:LINE、TransE、Graphsage。LINE 适用同质图进行学习,在同一空间表征用户和场站,使用用户在特权场站与非特权场站的融合转化序列数据;TransE 适用于异质图,节点的种类包含用户或场站,边为用户与场站的关系;Graphsage 适用于同质或异质图,可同时使用结构信息和量化特征。
▍强化学习和 graph embedding 相结合

将强化学习和 graph embedding 两者结合,目前在端到端 “无人驾驶” 的大流量上已经实现了自动化运营,通过在各个模块中机器学习模型的应用,实现了智能化运营。首先通过特征提取模块的学习得到强化学习所需要的 State、Action、Reword 三要素,然后放到强化学习算法中去学习和训练,产出营销动作进而执行,执行的时候通过 graph embedding 个性化的消息推送,给每个用户匹配合适的服务,进而提高用户的消息打开率和转化率,最后通过用户行为收集进入下一轮的迭代,而且在强化学习过程中,实现了中间参数持久化的无状态化训练。

3.

效果展示

▍强化学习算法效果

强化学习部分,从 ROI 的趋势图可以看到强化学习实验组 ROI 是稳定的,基本上是稳定的高于对照组的。

ROI趋势图目前强化学习算法已经全流量覆盖加油业务用户,包括有券提醒和无券推送,强化学习桶比人工运营桶在拉新率和召回率上都有约8%的提升,同时成本大约降低了一半,真正实现了一个比较高的 ROI,从而做到了更加精细化的运营。

强化学习拉新召回率对比

拉新成本对比和召回成本对比

▍Graph embedding 个性化消息提醒效果

关于个性化消息提醒方面的优化,首先用 LINE 方法和人工供需匹配做对比,在消息打开率和转化率上分别提升了7%和10%;然后将 TransE 方法和 LINE 方法做对比,在打开率和转化率方面分别提升了4%和6%,累计起来的话 TransE 方法比人工供需匹配在打开率上提升11%,转化率上提升16%。总之,目前基于 graph embedding 的个性化消息提醒方法在加油业务全流量上,每天对大量用户进行个性化的消息提醒,用户体验也明显提升。在用户增长上,车服算法团队初步建立起来一套智能营销的体系,通过数据驱动的方式精细化地赋能了运营,提升了用户增长的效果和效率。本次分享就到这里,谢谢大家!文章首发自 DataFunTalk ,点击此处可查看原文。

本文作者
刘 凯滴滴 | 高级算法专家博士毕业于中国科学院自动化所。做人低调,做事高调。以第一作者发表了多篇顶级国际学术杂志和会议文章,深耕于个性化推荐、效果广告、智能营销等相关领域。       
Image placeholder
SingleSeeker
未设置
  33人点赞

没有讨论,发表一下自己的看法吧

推荐文章
机器学习在高德用户反馈信息处理中的实践

1.背景作为国内领先的出行大数据公司,高德地图拥有众多的用户和合作厂商,这为高德带来了海量的出行数据,同时通过各个渠道,这些用户也在主动地为我们提供大量的反馈信息,这些信息是需要我们深入挖掘并作用于产

关于强化学习你应该知道的三件事

如果您有在关注科技相关的新闻,可能读过有关人工智能(AI)应用程序如何通过强化学习训练,在围棋、国际象棋等棋类游戏以及电子游戏中击败人类玩家的报道。作为一名工程师、科学家或研究人员,您可能会希望利用这

运营商大规模数据集群治理的实践指南

写在开头的话Q: 军哥,你们运营商行业的大规模集群,都有啥特点啊?A: 我们集群主要是承载B域、信令和互联网日志等去标识化数据,简单的说,有三个特点:1)集群规模较大:数千节点规模,近百PB数据量,日

【CSS全解01】CSS基础-体系化学CSS

大纲 基础部分学习占比:HTML1%`CSS19%Javascript80%`(`基础部分?%框架?%`项目?%) CSS历史 AcidTestforbrowser CSS是艺术(非逻辑,用测试经验来

一篇文章看懂,存储虚拟化在不同用例中的实践与优势

存储虚拟化是一种对物理存储资源进行抽象的技术,使其看起来像是一个集中的资源。虚拟化掩盖了管理内存、网络、服务器和存储中资源的复杂性。存储虚拟化运行在多个存储设备上,使它们看起来就像一个单一的存储池。这

Kubernetes监控在小米的落地

本文介绍了高可用、持久存储、可动态调整的Kubernetes监控方案的实现过程。小米的弹性调度平台(Ocean)以及容器平台主要基于开源容器自动化管理平台kubernetes(简称k8s)来提供服务,

亿级海量数据的实时读写和复杂查询实践

摘要:本文分享了每日亿级增量数据的实时读写、复杂查询场景实践介绍,涉及MySQL分表分库策略、数据异构、TiDB使用和优化、微服务架构等内容。  作者:黄哲铿  黄哲铿,中通商业CTO,前1号店技术总

万亿级消息背后: 小米消息队列的实践

目录业务背景架构与关键问题性能与资源优化平台化效率小米消息中间件的规划与愿景前文《消息队列价值思考》讲述了消息中间件在企业IT架构中的重要价值,本文将呈现这些价值在落地小米业务过程中的遇到的问题和实践

HDFS3.2升级在滴滴的实践

桔妹导读:Hadoop 3的第一个稳定版本在2017年底就已经发布了,有了很多重大的改进。在HDFS方面,支持了ErasureCoding、Morethan2NameNodes、Router-Base

已配置 4000+ 页面,携程前端组件化探索之“乐高”运营系统

一、前言 市场部活动组主要负责各种运营活动的相关开发,分为常规运营活动和定制运营活动。常规运营活动因为组件(模块)具有复用性,并且配置化需求非常多,因此我们建设了一个可视化页面搭建平台——乐高(leg

中国进入5G普及时代!三大运营商5G套餐正式公布,每月128起,联通最壕套餐599

大数据文摘出品作者:曹培信、刘俊寰5G手机已经卖了一批了,三大运营商的5G套餐却姗姗来迟。原本定于10月1日发布5G套餐,之后又推迟了一个月,并且中国三大运营商在公布服务价格之前,已预先向1000万用

学习IT的实用工具和网站推荐

对于一些学习IT的初学者来说,掌握一些实用的软件工具和学习网站是十分有必要的。本文要为大家推荐一些学习IT的相关的资源,像是鸠摩搜书和脚本之家等电子书搜索网站,还有冰点文库和文件搜索工具等实用工具以及

二叉堆的实现

二叉堆 说明 在阅读该文章的时候,最好手中有一只纸和笔能够画出二叉堆的结构,会更加容易理解。 二叉树的定义 二叉树是每个结点最多有两个子树的树结构。通常子树被称作左子树和右子树。 二叉堆的定义

ThinkPHP6 核心分析(一):Http 类的实例化

从入口文件出发 当访问一个ThinkPHP搭建的站点,框架最先是从入口文件开始的,然后才是应用初始化、路由解析、控制器调用和响应输出等操作。入口文件主要代码如下: //引入自动加载器,实现类的自动加载

万字长文:聊聊几种主流Docker网络的实现原理

一、容器网络简介容器网络主要解决两大核心问题:一是容器的IP地址分配,二是容器之间的相互通信。本文重在研究第二个问题并且主要研究容器的跨主机通信问题。实现容器跨主机通信的最简单方式就是直接使用host

制造业数字化转型的实战路线图

中国在2015年发布制造强国战略第一个十年的行动纲领《中国制造2025》,这是中国部署全面推进实施制造强国的战略文件。按照《中国制造2025》的战略,中国正加快推动新一代信息技术和制造技术融合,核心是

揭秘|每秒千万级的实时数据处理是怎么实现的?

01背景闲鱼目前实际生产部署环境越来越复杂,横向依赖各种服务盘宗错节,纵向依赖的运行环境也越来越复杂。当服务出现问题的时候,能否及时在海量的数据中定位到问题根因,成为考验闲鱼服务能力的一个严峻挑战。线

会员服务在高可用架构的实战探索

概述很多互联网公司在发展过程中大多出现过多次机房网络故障的情形,如果发生故障,一般需要动用整个IT部门的人力进行流量切换和客诉处理。为了避免此类情形的发生,公司计划进行服务的高可用建设。会员部门持续跟

深入探究 RocketMQ 事务机制的实现流程,为什么它能做到发送消息零丢失?

1、解决消息丢失的第一个问题:订单系统推送消息领丢失既然我们已经明确了消息在基于MQ传输的过程中可能丢失的几个地方,那么我们接着就得一步一步考虑如何去解决各个环节丢失消息的问题,首先要解决的第一个问题

leveldb源代码分析系列1:MemTable的实现

MemTable及其实现这是一个第零层的主题,预计扩展如下第一层主题:1.1comparator介绍1.2skiplist实现介绍1.3数据压缩相关介绍1.4Put流程1.5Get流程leveldb中

leveldb源代码分析系列1.1:memtable中comparator的实现

leveldb中memtable封装了一个skiplist用来存储真正的数据,跳跃列表的实现一定需要定义存储项的序关系,而在leveldb中这个序关系通过comparator相关类来实现。leveld

零基础学习Swift中的数据科学

概述Swift正迅速成为数据科学中最强大、最有效的语言之一Swift与Python非常相似,所以你会发现2种语言的转换非常平滑我们将介绍Swift的基础知识,并学习如何使用该语言构建你的第一个数据科学

【PHP学习】PHP入门学习 之 常量

PHP常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量)。PHP常量默认为大小写敏感。传统上常量标识符总是大写的。 PHP常量名

Laravel 第五章学习——用户模型

数据库迁移  描述:迁移就像是数据库中的版本控制,除了基础功能以外还支持如:回滚/重置/更新等额外功能。  文件存放目录:database/migrations。  重要类:Migration所有自定

springDataJpa 最佳实践

springDataJpa最佳实践 前言 SpringDataJpa框架的目标是显著减少实现各种持久性存储的数据访问层所需的样板代码量。SpringDataJpa存储库抽象中的中央接口是Reposit