作者:邱灿清(白离)
2018 年 10 月 12 日,阿里巴巴集团宣布正式成立阿里巴巴本地生活服务公司,饿了么和口碑会师合并组成国内领先的本地生活服务平台,使命是“重新定义城市生活,让生活更美好”;口碑专注到店消费服务,饿了么专注到家生活服务,蜂鸟即配专注即时配送服务,客如云专注为商家提供数字化升级的产品和服务,共同推动本地生活市场的数字化,让天下没有难做的生意。
本地生活是阿里巴巴非常重要的业务版图,本文基于阿里巴巴本地生活饿了么APP的业务开发场景,阐述在饿了么APP的业务发展过程中,针对实际的业务场景,通过技术结合业务,是如何发挥端智能在端侧计算决策优势的。
背景
端智能简单说就是在端侧做机器学习或者深度学习模型的推理运行及上层应用,得益于目前手机等硬件设备的发展,强劲的CPU和GPU能够在客户端支持部分高等运算操作(在性能要求下可以牺牲精度),可以将计算工作保留在客户端上进行,从而避免数据上行带宽开销和网络延迟等问题。
智能不管是在云端还是说在终端,解决的问题都是一致的,如何通过将大量数据作为输入源,调整算法策略进行不断学习,推理出最终或者最合适的结论;那么端智能就是把智能在端侧进行实现,能够将算法数据的智能进行工程标准化,结合具体的业务场景,在端侧,通过端上实时采集用行为信息、设备信息,运行人工智能、机器学习等端上算法进行实时反馈,调整算法、运营、产品策略来提高用户的购买、体验等业务技术指标。
特性
相比云侧智能,端智能具有低延时、保护数据隐私、节省云端计算资源等显著优势,具体细分点如下:
趋势
最近两年,端智能是各大互联网公司热门的研发方向,大家在日常生活中已经用到了很多端智能应用,比如手机上拍照的 AI 摄像,人脸解锁 FaceID ,以及短视频 App 中各种 AR 特效等;在阿里巴巴内部,也已经有了很多的业务探索,像手机淘宝的拍立淘、AR试妆、商品推荐等都是端智能与业务有效结合的典型代表。
作为阿里巴巴商业版图的一部分,本地生活自然不能缺席,基于前序对于端智能相关概念的一些简单介绍,下面针对本地生活的场景来一一阐述。
业务属性
据可靠数据,本地生活服务整体规模粗略估算约20万亿左右,是个非常庞大的市场,但这个市场的数字化渗透率还比较低,大约只有10%-15%。本地生活的行业属性与传统电商有非常大的区别,本地化与实时性是本地生活服务的显著特征。从本质上来讲,本地生活其实是一个服务行业,在服务行业里手艺的差别非常大,同时本地生活里有非常多的细分类目,造成本地生活的服务是一个非标准的产品,正好和传统电商的标品化、商品易数字化的特征有鲜明对比。
饿了么在阿里巴巴本地生活领域专注于到家服务,用户端侧的智能化,是将需求侧与供给侧更好的进行匹配的必经之路。基于到家服务的业务属性,用户做出决策的时间很短,基本上高峰期都是在中午和晚上的用餐时间段,在有限的时间段内,如何分析用户当前的需求,并将用户此刻的需求与我们的供给更好的匹配上,端智能在这个领域可以发挥很好的作用。
技术架构
本地生活端侧包含饿了么、口碑、蜂鸟、商家版、轩辕等多个APP,在不同的APP上会有不同的端智能的应用场景;基于本地生活技术架构的一致性,我们抽象了一层本地生活的端智能适配层,基于本地生活的业务属性做了定制化开发,同时结合集团内丰富的中间件与平台,快速的进行端智能相关应用的迭代开发。
目前本地生活端智能技术架构如下:
基于通用的集团中间件与端智能SDK,抽象了端基础与端智能基础两块,其中端基础包含了业务埋点库UT、开关配置Orange、高速数据传输Highway、实时监控Answer、数据库操作SQL、网络库Mtop等,端智能基础包含了深度学习端侧推理引擎MNN、端侧的用户行为数据BehaviX、端智能的运行环境Walle等。
针对本地生活的技术特性与业务特性,设计了本地生活的适配层ALSCAdapter,在适配层里面,我们新增了很多业务需要的特性,比如应用的生命周期、自动化埋点等,同时结合本地生活的监控体系打造端智能的实时监控体系。针对不同业务进行了API的开放,为了解决开发、调试、测试效率低的问题,我们开发了本地生活侧的端侧Debug平台,同时与集团的MNN工作台共建,提高算法、测试同学的效率。
基于本地生活统一的端智能技术架构,在业务上我们能够更好、更快的进行开发迭代,也帮助本地生活内的其他APP能够快速接入上手。在饿了么APP上我们主要在用户特征、智能推荐、智能触达等几个领域做了一些技术探索,也取得了一定的业务效果,下面逐个进行介绍。
用户特征
更丰富更实时的用户特征是算法决策提高准确性的关键,基于端智能的能力,将用户的关键行为数据存储到端上,比如用户的进退端数据、进退店数据、加购下单数据、浏览行为数据等等,在端侧可以采集到非常丰富的元数据。
基于元数据,实时提取用户行为动线特征,实时维护用户最新的行为特征,回流igraph后延迟在2s左右,使云端的算法模型能够提前获取到用户的行为特征,同时将特征数据本地持久化,其它端模型也能够直接在端上获取相关特征数据,做到一次提取,多方使用。为了规范流程,我们指定了端特征的生产规则,对端上特征数据表进行功能划分,提高了获取本地特征的效率。
目前端上特征提取使用的整体流程如下:
通过不断扩展特征的种类,建立端上特征中心,为后续端侧模型计算与云端模型提升提供特征元数据,让业务算法关注在业务细节的实现,不用各个业务分别提取各自的特征,节省开发时间也能够避免造成端上的资源浪费。
智能推荐
搜索推荐是端智能能够发挥重要作用的业务领域,对于推荐feeds流,由于分页加载的原因,一页数据有20-30个店铺数据,算法能够干预的时机很少,并且每次干预只能在用户浏览到下一页,客户端触发翻页请求的时候云端推荐算法才能对召回结果做出干预决策,整体的流程非常长,用户->客户端->工程->算法,算法决策依赖的数据回流链路延迟在分钟级,完全无法满足实时推荐的需求,推荐出来的结果可能与用户前序行为没有太大的关联。
在饿了么APP里,由于用户的使用时长并没有很长,所以需要在用户浏览feeds时,算法能够进行多次决策,给出用户的最优解。
基于端智能的推荐重排方案,可以针对用户未浏览的店铺进行策略重排,根据用户的前序行为进行加权调整,业务呈现上不会干扰到用户的使用,并且提供了多个触点来给算法做触发,使得端上算法模型能够进行实时干预,达成算法目标;整体推荐重排的逻辑如下:
与算法约定重排触发的时机,剔除一些边界触发比如待重排数量少等,算法模型使用云上特征和端上特征一起做决策,通过不同业务目标的模型进行AB实验,比如gmv目标、ipv目标等;目前在饿了么首页推荐feeds和美食频道feeds里都有应用,取得了不错的业务效果;同时,为了扩充候选池的数量,给端上算法更多的决策空间,我们还做了端智能刷新,来及时补充店铺候选池;交互式推荐,智能风向标也已经在规划开发中了。
智能触达
在用户增长的领域,如何高效、准确的触达到用户是用户增长达成的关键,无论是端内还是端外,push是能够触达用户最多的渠道。在智能触达还没有提出时,运营能够配置给到用户的只有批量push、圈人push,这种方式配置的push过于死板,导致整体push的点击率非常低,并且会很多用户造成打扰,加大了用户关闭push权限的几率。运营同学需要更准确的时机,更丰富的触达方式,来达成业务目标。
基于端智能的智能触达,通过部署端模型在客户端,通过业务规则与运营配置智能识别可能是用户行为拐点的触点,结合端云特征,与push中心交互,云端算法赛马机制获取最优push配置,最终触达用户。基于端内的智能触达,由于识别了用户的行为拐点,所以此时出现的push大概率不会对用户造成打扰,反而会成为促进用户下单转化的助手。基于端外的智能触达,主要做了采集用户端内行为进退端特征,做实时上报,识别用户退端意图做退端召回。整体的智能触达方案如下:
通过智能触点的生产,运营同学有了更多更优良的可触达用户的时机,结合运营平台进行定制化的配置,就可以产生千人千面的触达效果。通过智能触达的上线,端内push的点击率得到了很大的提升,退端召回也有非常好的用户留存效果,帮助业务运营达成用户增长的目标。
其他业务
除了上述的业务技术探索以外,我们还做了其他端智能的尝试,比如蜂鸟的蓝色风暴项目,通过开展端上预识别项目,帮助骑手提高拍照体验,在骑手抽检流程中节省了骑手的操作时间,同时也缩减了人工审核的成本,提升了饿了么的服务质量和品牌形象,确保送餐过程中的安全性及品牌形象。
在未来移动设备性能不断强化,网络基础设施不断完善的大环境下,端智能可发挥的空间会越来越大,在本地生活领域,持续推进搜索推荐实时化与运营智能化是未来端技术开发前进的方向,在此感谢集团端智能技术团队给予的支持与帮助,也感谢本地生活产品技术算法等各个关联方的密切配合,让端智能在本地生活场景上不断开花。
未来,我们还需要将端智能的能力更好的沉淀为基础设施,帮助各个业务快速接入,让算法的实验更加灵活,数据回收更加快速,以及不断探索更多新的业务场景,道阻且长,需要更多愿意投身本地生活领域的同道中人,一起努力一起成长,一起用技术助力业务发光发亮!(ps:欢迎对本地生活有兴趣的有识之士加入,简历可发 [email protected])
关注【阿里巴巴移动技术】微信公众号,每周 3 篇移动技术实践&干货给你思考!