前端端智能 1.0 -技术体系篇

本文作者:江民民(民超)

背景介绍

如今,随着人工智能领域与集成电路领域的快速发展,越来越多的硬件设备搭载了神经网络加速引擎,以苹果公司为例,纵观最近几年发展,软硬结合水准在业界无出其右,其自研的 m 系列芯片性能震撼世界,其中最大亮点之一就是极大程度上提升了机器学习能力,相比之前整整提升 15 倍,基于强大的处理器苹果公司在端侧智能这个最新领域做下了一系列布局:Siri 语音助手、人脸识别、翻译等,将诗歌与处理器进行了极致结合;视线转移到 Google,作为人工智能赛道上领路人 Google 在 2015 年创建了深度学习框架 TensorFlow ,短短两年内赶超业内主流产品 Pytorch、Caffe 成为排名第一的深度学习框架,紧接着 2018 年 Google Brain 负责人 Jeff 宣布 Web 前端机器学习框架 TensorFlow.js 正式发布,该框架让用户可以完全在浏览器中定义、训练和加载机器学习模型 ,由此拉开了前端领域的端侧智能化从学术界走向工业界的帷幕。

端智能(On-Device Machine Learning)是指把机器学习的能力在端侧执行。这里的“端侧”,是相对于云服务而言的,可以是手机,也可以是 IOT(物联网) 设备等等。端智能在算力方面具有天然的优势,相比云上模型具备实时性,除此之外,近年来兴起的 Web3 以及用户隐私保护政策出台均在预示着用户数据获取即将不再像往日一样容易,因此端智能领域越来越被人们关注。以往集团的智能化产品大多将基于机器学习算法训练出的模型放到云服务器上,然后封装出一个模型访问接口在代码中使用,由此衍生出很多模型服务产品,像 MNN、RTP、EAS 等。淘系前端在过去三年和 TensorFlow.js 团队在推动前端智能化在端智能应用方向上达成战略合作,因 WebGPU 在 TensorFlow.js 中进行深度学习推理速度相比 WebGL 能带来 20 ~ 30 倍的显著提升等各种优势故 WebGPU 被选定作为端上引擎优化方向之一。

去年,淘系开始发力消费者体验。基于个性化消费场景,构建探索性货品供给、智能化信息表达,是端智能发力的机会。端智能立足于实时性、隐私保护性及节省云上资源的基础上提供智能化能力,让前端能够用这些技术手段不断优化消费体验。在今年初,淘系针对通过消费者精细化运营和场精细化表达的能力进而提高营销产品业务效果的目标,提出借助端智能能力为用户提供更加实时、个性化的服务体验的一系列方案,并落地于聚划算业务场景且拿到一些阶段性成果。

本篇文章将给大家分享作为前端端智能领域的探索者,我们是如何构建前端端智能技术体系,并推进端智能能力在淘系业务(如:聚划算、百亿补贴)上应用落地和一系列可行有效的承接策略。

技术体系

前端领域下的端智能技术体系是与业务紧密结合,所有的数据埋点、算法模型和承接策略均是服务于前端业务的,所以需要有前端和算法两部分的能力加持,与鲸幂智能 UI 不同的是前端端智能更注重的是用户精细化运营、场的精细化表达,其所有的能力可以分为四个部分:基座能力、业务模型、承接策略、应用场景。其中,

1. 基座能力是指前端端智能所必须的底层能力,由前端和算法能力组成,包括数据工程、算法能力、前端服务,数据工程主要有埋点规范、特征工程、训练数据定义、数据报表,算法能力主要指机器学习、深度学习的算法应用,前端服务主要指模型推理、端上性能优化、前端承接策略、服务 SDK 沉淀等;

2. 业务模型是指前端业务可用的能力服务,像模式匹配模型、功能偏好模型、业务自定义模型等,其中,模式匹配模型主要指一些规则匹配,比如:货品收藏、浏览、购买等信息,功能偏好模型指业务场景中用户对某个功能模块的偏好度,业务自定义模型如跳失预测模型、疲劳度预测模型、用户意图预测模型等;

3. 承接策略是指呈现给用户视角的前端效果,像交互、动效、个性化展示等一系列前端效果;

4. 应用场景是指端智能可落地的业务场景,像聚划算、百亿补贴、天天特卖等。

阶段成果

为了将端智能能力成功有效应用到业务场景中,并能实现聚划算主站用户沉浸度提升的目标,我们按策略探索实验、云上模型验证和端上模型效果提升三个步骤进行实验,保证结果具有严谨性。首先,我们在聚划算主站进行了大量的规则策略实验:banner 扶梯实验、插卡比例调整实验、固定资源位调整实验等等;接着,针对个性化服务体验上线了云上偏好度模型,并承接了一系列策略:搜索栏实验、banner 区自动滚动实验、所见即所得微动效实验;最后,出于实时性、用户体验提升目的,将模型放在端上进行推理,研发了跳失预测模型,并承接了用户历史浏览策略。最终这些实验策略桶整体相比默认桶在 IPV 指标上相对提升 20%、PVCTR 指标上相对提升 10%。

除此之外,在这些实验中沉淀了符合端智能应用的埋点规范、端智能模型的特征工程及业务自定义模型,这些都是前端端智能落地业务场景中可复用的经验。下面详细介绍一下这些前端端智能落地三个阶段的技术体系:

规则实验

端智能应用业务的流程大致分为两部分,一部分是算法侧,主要负责业务模型的实现;一部分是前端侧,负责呈现给用户的前端策略。端智能应用具体技术流程图如下:
44aa053a-931e-48d8-b0ff-e552932dec28.png
为了打通端智能应用链路以及能够初探一些针对业务的规则算法是否有效,在规则实验阶段算法侧没有应用机器学习的能力,与上图所不同的是算法侧是通过人为探索的经验来支撑的,其符合常理逻辑,比如动态调整品牌团与商品坑的比例、banner区域自动滚动、动态调整固定资源位的位置等。

云上偏好度模型

聚划算主站(v3.0)自上而下主要包含的模块: 1. 直播 tab、2. 搜索框、3. 轮播图、4. 所见即所得、5. 划算江湖、6. Feeds、7. 百亿补贴、8. banner。用户进入主站后,对以上模块的访问是否有一定的模式或者规律?如果有的话,频道可以根据用户访问的模式实现更个性化的行为干预,从而促进用户转化和留存。因此,探索用户行为模式对频道效率改进有积极意义

用户行为模式的分析需要先对用户行为特征进行定义。按照主站的结构,用户主要的交互模式是点击和浏览,所以用户的行为特征可以被定义为模块的点击和曝光次数。而对于除了 Feeds 以外的模块,由于其位置固定,且进入页面之后几乎 100 % 曝光,因此可以忽略。最终我们选取的特征以点击为主,具体为:直播点击、搜索入口点击、banner区(轮播)点击、所见即所得点击、百亿补贴点击、feeds 点击、feeds 曝光、划算江湖点击。

传统的机器学习算法应用在前端具备高强度的可解释性和可实现性,因此采用聚类算法 K-means 分析出聚划算主站的功能模块的访问模式,并实现对聚划算主站功能模块的进行聚类的偏好度模型。经过前端的数据埋点、特征工程、模型训练等一系列步骤之后得到一个适用于聚划算主站的功能模块的 8 种类型的聚类模型,8 分类的雷达图如下:
6479052e-13a4-44c6-b69a-27d4a17a4111.png
该图是 8 种类型的聚类模型评估雷达图,可以综合表现多维数据的性能,从上图可以看出每个类别的特征都比较显著。该模型的输出结果是一个 8 维向量,每一个维度上的值代表对聚划算主站的功能模块的偏好度,基于这些偏好度承接对应的前端策略,可以线上验证该模型效果,因此进行了两个验证实验:搜索栏偏好度实验和所见即所得微动效实验。以搜索栏偏好实验为例介绍偏好度模型技术体系:
4c476993-64e9-41bd-b048-8d8186f38e81.png
本次实验针对搜索栏进行偏好度模型探索实验,假设用户进入聚划算主站,将用户行为信息输入预先训练好的云上偏好度模型,模型输出聚划算主站各个功能模块偏好度具体的数值,其中有一列数值表示用户对搜索栏的偏好度,若偏好度高则显示搜索栏,若偏好度低则隐藏搜索栏。希望通过这种基于机器学习的方式能够达到个性化偏好的目的,同时在数学理论上能够进行合情合理的归因分析,最终目标是提升商品有效曝光,提高 ipv。

端上模型效果提升

结论:目前跳失预测模型在百亿补贴以一休放量 5% 方式进行实验。实验验证结果:跳失率下降 11.76%,UVCTR 相对提升7.1%,PVCTR 相对提升 3.7%,IPV 相对提升 4%

端上模型相比云上模型具有实时性、隐私性、节省资源等显著优势,在端上进行推断的模型必须考虑三个因素:高性能加载、低内存、面向前端高可用;针对这三类因素,一般是需要一个轻量级的深度神经网络推理引擎,但是,由于在前端领域由于具备数据源头埋点能力,能够对模型训练数据进行定制,故更容易搭建属于前端的端智能技术体系,比如在模型高性能加载、低内存、高可用这块前端可用的解决方案:模型文件放在 CDN Serve、按任务大小异步或者用 Web Worker 执行任务、JS 加载优化等操作。

端智能目标是搭建一个属于前端领域的可解释性强、高可用、可复用的端智能技术体系,并期待能够拿到不错的业务效果,因此,前期采用传统机器学习的方法而不采用神经网络的方法,基于机器学习的端智能模型可以通过前端 JS 脚本进行训练及加载,进而为 “前端领域具备端智能能力” 提供了技术机会。端智能在前端领域的落地场景有很多:UI 推荐、功能模型偏好度、跳失预测、疲劳度预测等,每一个场景中以算法和前端结合的形式为用户提供个性化业务功能的能力,带来体验优化的同时提升商业价值。本次实验以跳失预测为代表,下面以跳失预测模型为例介绍机器学习模型是如何在聚划算主站落地应用的。

跳失预测实验

用户在逛聚划算主站时会产生一系列的行为,这些行为特征可以被利用起来去预测用户是否即将跳失,跳失二分类问题业界已有比较成熟的算法 GBDT,跳失预测模型依赖传统机器学习算法 GBDT( Gradient Boosting Decision Tree,梯度提升树 ),跳失预测模型为什么选用 GBDT 算法呢?原因有三:1. 基于深度神经网络的端智能模型,为了保证在端上高性能加载,需要轻量级的神经网络加载引擎,过程复杂且黑盒化;2. GBDT 具有良好的表达能力和可解释性,在深度学习兴起和流行之前,GBDT 是公认效果最出色的几个模型之一,在很多公司中被广泛使用;3. 由于在前端领域由于具备数据源头埋点能力,能够对模型训练数据进行定制,并能通过一系列可控操作提升模型加载性能,故更容易搭建属于前端的端智能技术体系。

想要理解 GBDT 的真正意义,那就得理解 GBDT 中的 GB 和 DT 分别是什么?

1. 梯度提升树(GB)部分是指基于梯度不断提升学习器的强度,这里的梯度可以用残差表示,举个例子:假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。最后将每次拟合的岁数加起来便是模型输出的结果。

2.决策树(DT)部分是指构造决策树,GBDT 由于每次迭代要拟合的梯度值所以使用的决策树是 CART(Classification and Regression Tree)回归树,对于构造决策树算法来说最重要的是寻找最佳的划分点,CART 分类树中最佳划分点的判别标准是熵或者基尼系数,都是用纯度来衡量的,但是在回归树中的样本标签是连续数值,所以再使用熵之类的指标不再合适,取而代之的是平方误差,它能很好地评判拟合程度。

上面简单介绍完 Decision Tree 和 Gradient Boosting,下面将这两部分组合在一起就是大名鼎鼎的 GBDT 算法了:
96fac2af-2ddd-4628-abe1-a6a4e56f9913.png
针对如何将跳失算法落地在聚划算主站问题,提出一套自定义数据埋点、训练数据定义、模型端上加载、承接策略设计的框架。
b1461737-25de-47c0-8324-67b262b6fecf.jpeg
上图中,跳失预测模型落地在聚划算主站,需要结合聚划算主站的具体情况来设计实验,实验环节分为 4 部分:1. 数据埋点部分:该部分针对聚划算主站的各个功能模块(如所见即所得、划算江湖、百亿补贴等)进行点击、曝光行为埋点; 2. 训练数据定义部分:用户的行为数据是序列特征,需要经过数据映射操作转换成模型可识别的格式;3. 端上加载模型部分:该部分保证跳失预测模型端上高性能、高可用加载;4. 承接策略设计部分:指模型训练好后在聚划算主站的落地场景。

数据埋点

跳失模型需要自定义的训练数据,因此在黄金令箭埋点时加入了自定义参数 cardType,针对聚划算主站穷举了 14 现有展示的功能模块: hsbdb、search、banner、sjjsd、bybt、item、brand、theme、live、pptm、video、multiPicBanner、hsjh、xsms。每个功能模块都加入了曝光和点击的行为
除了上面的聚划算主站所有的功能模块的曝光点击行为特征外,还有很多特征可加入:驻留时间、滑动速度、用户画像等,这些特征可作为后续的模型迭代方向。

训练数据定义

训练数据定义环节除了数据映射转换外还有一个很重要的部分:跳失模型的正负样本定义。为了定义出跳失模型的正负样本并保证正负样本数据量均衡,将采集到的完整的一段 session 序列作为正样本,该 session 里的随机一段行为序列作为负样本,这可以理解为完整的一段 session 序列用户跳失,该 session 序列里随机的一段理解为用户不会跳失。
数据映射转换环节将长度不固定的用户行为序列转换为长度固定的数组,转换成模型可识别、可训练的数据格式。

端上模型加载

上面讲过端上模型加载需要高性能、高可用。针对高性能,提出在 web server 上加载模型的方法,这样模型可以提升加载速度;针对高可用,与端智能团队合作定制了一个获取用户行为的接口,该接口满足本次实验模型入参数据的要求,并且调用性能高。

承接策略设计

利用现有的一个商品参加活动的信息,设计一个跳失模型的承接策略,该策略在保证不影响用户的体验前提下去挽留用户并提升点击率,具体的形式是当模型判断出用户即将跳失时弹出一个用户历史浏览商品的 toast,如下图:
a20f0bc6-7bb9-4cb5-97dd-74104ae23456.gif

未来展望

前端端智能目前处于落地打磨阶段,未来可以实现的目标有很多,在 2.0 版本中前端端智能大致上可分为两个演进方向:技术体系和业务应用。1. 在技术体系上,前端端智能目前并未使用大参数、结构复杂的深度神经网络,这是因为端智能除了算法模型之外还严格看重模型端上加载性能,而高阶深度神经网络相比传统机器学习方法推理时间往往会长很多,加上模型只是逼近效果上限的工具,因此前端端智能在探索阶段暂未应用神经网络,但未来,会将淘系研发的智能化产品像 datacook、pipcook 等应用起来,这些产品将为前端端智能高性能应用提供有力支持,而前端端智能将基于此发展出一系列可复用的端上智能化 SDK;2. 在业务应用上,图像、视频、语音等都将是前端端智能落地的场景,像用户精细化运营、内容推荐、AR 商品试用等全新领域。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容