蚂蚁金服核心技术:百亿特征实时推荐算法揭秘干货技术博文

在线学习(Onlinelearning)由于能捕捉用户的动态行为,实现模型快速自适应,进而成为提升推荐系统性能的重要工具。然而它对链路和模型的稳定性,训练系统的性能都提出了很高的要求。但在基于原生TensorFlow,设计Online推荐算法时,我们发现三个核心问题:

一些资讯推荐场景,需要大量长尾词汇作为特征,需使用featuremap对低频特征频次截断并连续性编码,但耗时且方法aggressive。

使用流式数据后,无法预知特征规模,而是随训练逐渐增长。因此需预留特征空间训练几天后重启,否则会越界。

模型稀疏性不佳,体积达到数十GB,导致上传和线上加载耗时长且不稳定。

更重要的是,在线学习如火如荼,当流式特征和数据都被打通后,能按需增删特征,实现参数弹性伸缩的新一代训练平台成为大势所趋。为了解决这些问题,从2017年底至今,蚂蚁金服人工智能部的同学,充分考虑蚂蚁的业务场景和链路,对TensorFlow进行了弹性改造,解决了以上三大痛点,简化并加速离线和在线学习任务。其核心能力如下:

弹性特征伸缩体系,支持百亿参数训练。

group_lasso优化器和频次过滤,提高模型稀疏性,明显提升线上效果。

模型体积压缩90%,完善的特征管理和模型稳定性监控。

在与业务线团队的共同努力下,目前已在支付宝首页的多个推荐场景全流量上线。其中某推荐位的个性化onlinelearning桶最近一周相比线上多模型融合最优桶提升4.23%,相比随机对照提升达34.67%。某个性化资讯推荐业务最近一周,相比DNN基准uv-ctr提升+0.77%,pv-ctr提升+4.78%,模型体积压缩90%,链路效率提升50%。

1)需要预先计算特征到维度范围内的int值的映射表,这一步操作通常在ODPS上完成。因为需要扫描所有出现的特征并编号,计算非常缓慢;

2)在onlinelearning场景下,为了容纳新出现的特征,需要预留一部分维度空间,并在线上不断修改映射表,超过预留空间则需要重新启动在线任务。

为了突破固定维度限制,实现特征的动态增加和删除,最朴素的优化想法是在TensorFlow底层实现模拟字典行为的Variable,并在此基础上重新实现Tensorflow上层API。由此我们进行了优化,在server新增了基于HashMap的HashVariable,其内存结构如下:

每个特征都通过hash函数映射到一个2的64次方大小的空间内。当需要计算该特征时,PS会按需惰性创建并返回之。但其上层行为与原生TF一致。由于去掉了featuremap转ID的过程,我们内部形象地将其称为“去ID化”。在此之上我们实现了GroupLassoFTRL,频次过滤和模型压缩等一系列算法。

备注:弹性特征带来一个显著的优势:只要用足够强的L1稀疏性约束,在单机上就能调试任意大规模的特征训练,带来很多方便。我们的hashmap实现是KV化的,key是特征,value是vector的首地址。

离线训练优化

经过这样的改造后,在离线批量学习上,带来了以下变化:

在线训练优化

onlinelearning上,能带来如下变化:

除了性能有明显的提升之外,其最大的优势是不需提前申请空间,训练可以无缝稳定运行。

弹性架构,主要目的就是特征优选,让模型自适应地选择最优特征,进而实现稀疏化,降低过拟合。本节介绍特征优选的两个核心技术:

使用流式频次过滤,对特征进入进行判定。

使用GroupLasso优化器,对特征进行筛选和删除。

2.1GroupLasso优化器

稀疏化是算法追求的重要模型特性,从简单的L1正则化和TruncatedGradient[9],再到讨论累积梯度平均值的RDA(RegularizedDualAveraging)[10],再到目前常见的FTRL[2]。然而它们都是针对广义线性模型优化问题提出的稀疏性优化算法,没有针对sparseDNN中的特征embedding层做特殊处理。把embedding参数向量当做普通参数进行稀疏化,并不能达到在线性模型中能达到的特征选择效果,进而无法有效地进行模型压缩。

例如:当包含新特征的样本进入时,一个特征对应的一组参数(如embeddingsize为7,则参数数量为7)被激活,FTRL判定特征中的部分参数无效时,也不能安全地将该特征删除。如图:

因此,在L1和L2正则的基础上,人们引入L21正则(grouplasso)和L2正则(exclusivesparsity),分别表示如下:

L21早在2011年已经引入,它最初目的是解决一组高度关联特征(如男女)应同时被保留或删除的问题,我们创新地扩展到embedding的表示上,以解决类似的问题。

在L21中,由于内层L2正则将一个特征的所有参数施加相同的约束,能将整组参数清除或保留,由此决定embedding层中的某些特征对应的embedding向量是否完全删除,提升模型泛化性。因此称为grouplasso。

而L12则正好相反,它迫使每组参数中的非0参数数量一致但值又尽可能不同,但使输出神经元互相竞争输入神经元,进而使特征对目标更具区分性。

对于DNN分类网络,底层表示要求有足够的泛化性和特征抽象能力,上层接近softmax层,需要更好的区分性。因此我们通常在最底层的embedding层使用grouplasso。即如下的优化目标:

直接将L21正则项惩罚加入loss,模型最终也能收敛,但并不能保证稀疏性。因此Grouplasso优化器参考了FTRL,将梯度迭代分成两个半步,前半步按梯度下降,后半步微调实现稀疏性。通过调节L1正则项(即公式中的λ),能有效地控制模型稀疏性。

Grouplasso是弹性计算改造后,模型性能提升和压缩的关键。值得指出:

在我们实现的优化器中,Variable,以及accum和linear两个slot也是KV存储。

L12和L21正则相结合的方法也已经有论文讨论[8],但我们还未在业务上尝试出效果。

由于篇幅限制,本节不打算详细介绍Grouplasso的原理和推导

2.2流式频次过滤

讨论完特征动态删除的方法后,我们再分析特征的准入策略。

2.2.1频次过滤的必要性

在RDA的优化公式中,满足以下条件的特征会被置0:

若在t步之前,该特征只出现过几次,未出现的step的梯度为0,随着步数增大,满足上述条件变得越来越容易。由此RDA是可以直观处理极稀疏特征的。但对于FTRL,要满足:

其中,

不仅和历史梯度有关,还与历史学习率和权重w有关。因此FTRL虽然也能处理极稀疏特征,但并没有RDA那么aggressive(此处还待详细地分析其下界,GroupFTRL与此类似)。

由于FTRL在设计和推导时并未明确考虑极低频特征,虽然通过增大λ,确实能去除大量极低频特征,但由于约束太强,导致部分有效特征也被lasso,在离线实验中被证明严重影响性能。其次,对这些巨量极低频特征,保存历史信息的工程代价是很高昂的(增加几倍的参数空间和存储需求),如下图:

因此我们提出,能否在实时数据流上模拟离线频次过滤,为特征提供准入门槛,在不降低模型性能的基础上,尽量去除极低频特征,进一步实现稀疏化?

2.2.2频次过滤的几种实现

注意:由于默认的embedding_lookup_sparse对特征执行了unique操作(特征归一化以简化计算),因此在PS端是不可能获取真实特征和label频次的。需要Python端对placeholder统计后,上传给server端指定的Variable,优化器通过slot获得该Variable后作出联合决策。

最naive的思路是模拟离线频次过滤,对特征进行计数,只有达到一定阈值后再进入训练,但这样破坏了数据完整性:如总频次6,而阈值过滤为5,则该特征出现的前5次都被忽略了。为此我们提出了两种优化方案:

基于泊松分布的特征频次估计

在离线shuffle后的特征满足均匀分布,但对在线数据流,特征进入训练系统可看做泊松过程,符合泊松分布:

。根据泊松分布,我们可以算出剩余

次的概率

。每次该特征出现时,都可按该概率

做伯努利采样,特征在t步进入系统的概率用下式计算:

通过真实线上数据仿真,它能接近离线频次过滤的效果,其λ是随每次特征进入时动态计算的。它的缺陷是:

当t越小时,事件发生在t内的次数的variance越大,所以会以一定概率误加或丢弃特征。

未来总的训练步数T在在线学习中是未知的。

频次过滤与优化器相分离,导致不能获得优化器的统计信息。

动态调L1正则方案

在经典的FTRL实现中,L1正则对每个特征都是一致的。这导致了2.2.1中提到的问题:过大的L1虽然过滤了极低频特征,但也影响的了模型的性能。参考各类优化器(如Adam)对learning_rate的改进,我们提出:通过特征频次影响L1正则系数,使得不同频次的特征有不同的lasso效果。

其中c是惩罚倍数,

为特征最低门限,这两者皆为超参,

是当前特征出现的频次。

我们在线上环境,使用了动态调节L1正则的方案。在uvctr不降甚至有些微提升的基础上,模型特征数比不使用频次过滤减少75%,进而从实验证明了频次过滤对稀疏化的正向性。它的缺点也很明显:特征频次和正则系数之间的映射关系缺少严谨证明。

3.1模型压缩

在工程上,由于做了优化,如特征被优化器lasso后,只将其置0,并不会真正删除;在足够多步数后才删除。同时引入内存池,避免特征的反复创建和删除带来的不必要的性能损失。这就导致在训练结束后,模型依然存在大量0向量。导出时要进一步做模型压缩。

由于引入了HashPull和HashPush等非TF原生算子,需要将其裁剪后转换为原生TF的op。我们将这些步骤统称图裁剪(GraphCut),它使得线上inference引擎,不需要做任何改动即可兼容弹性改造。由于有效特征大大减少,打分速度相比原引擎提升50%以上。

我们将图裁剪看做TF-graph的静态优化问题,分为3个步骤:

第一遍遍历Graph,搜索可优化子结构和不兼容的op。

第二遍遍历,记录节点上下游和元数据,裁剪关键op,并将Variable的非0值转存至Tensorflow原生的MutableDenseHashTable。本步骤将模型体积压缩90%。

拼接新建节点,重建依赖关系,最后递归回溯上游节点,去除与inference无关的子图结构

我们实现了完整简洁的图裁剪工具,在模型热导出时调用,将模型从原先的8GB左右压缩到几百兆大小,同时保证模型打分一致。

3.2模型稳定性和监控

onlinelearning的稳定性非常重要。我们将线上真实效果,与实时模型生成的效果,进行了严密的监控,一旦样本偏差过多,就会触发报警。

由于需捕捉时变的数据变化,因而不能用固定的离线数据集评估模型结果。我们使用阿里流式日志系统sls最新流入的数据作为评估样本,以滑动窗口先打分后再训练,既维持了不间断的训练,不浪费数据,同时尽可能高频地得到最新模型效果。

我们对如下核心指标做了监控:

样本监控:正负比例,线上打分值和online-auc(即线上模型打分得到的auc),产出速率,消费速率。

训练级监控:AUC,User-AUC(参考备注),loss,模型打分均值(与样本的正负比例对齐),异常信息。

特征级管理:总特征规模,有效/0/删除特征规模,新增/插入/删除的速率。

业务指标:uvctr,pvctr(小时级更新,T+1报表)。

线上与训练指标之间的对应关系如下表:

User-AUC:传统的AUC并不能完全描述uvctr,因为模型很可能学到了不同用户间的偏序关系,而非单个用户在不同offer下的点击偏序关系。为此,我们使用了User-AUC,它尽可能地模拟了线上uvctr的计算过程,在真实实验中,监控系统的uvctr小时报表,与实时模型输出的User-AUC高度一致。

目前算法已经在支付宝首页的多个推荐位上线。推荐系统根据用户的历史点击,融合用户画像和兴趣,结合实时特征,预估用户CTR,进而提升系统整体点击率。

我们以推荐位业务为例说明,其采用了经典的wide&deep的网络结构,其sparse部分包含百级别的group(见下段备注1)。一天流入约百亿样本,label的join窗口为固定时长。由于负样本占大多数,上游链路对正负样本做了1:8的降采样(见下文备注2)。

训练任务采用蚂蚁统一训练平台构建,并使用工作流进行定时调度,离线和在线任务的其他参数全部一致。Batchsize为512,每200步(即20万样本)评估结果,定时将模型通过图裁剪导出到线上系统。当任务失败时,调度系统会自动拉起,从checkpoint恢复。

该推荐业务的onlinelearning桶最近一周相比线上多模型融合最优桶提升4.23%,相比随机对照提升达34.67%。另一资讯推荐业务其最近一周,相比DNN基准uv-ctr提升+0.77%,pv-ctr提升+4.78%。实验效果相比有较大的提升。

备注1:groupembedding是将相似emb特征分组,各自lookup求和后再concat,使得特征交叉在更高层进行。其设计是考虑到不同group的特征差异很大(如user和item),不应直接对位求和。

备注2:inference打分仅做pointwise排序,采样虽改变数据分布但不改变偏序关系,因此并未在训练上做补偿。

弹性特征已经成为蚂蚁实时强化深度学习的核心要素。它只是第一步,在解决特征空间按需创建问题后,它会带来一个充满想象力的底层架构,众多技术都能在此基础上深挖:在工程上,可继续从分钟级向秒级优化,进一步提升链路实时性并实现模型增量更新;在算法上,我们正在探索如样本重要性采样,自动特征学习,在线线性规划与DNN的结合,实现优化器联合决策等技术。

本文作者为蚂蚁金服人工智能部认知计算组的基础算法团队,团队涉及图像、NLP、推荐算法和知识图谱等领域,带头人为国家知名算法专家褚崴,拥有定损宝和理赔宝等核心业务。

本文来自云栖社区合作伙伴“阿里巴巴机器智能”,如需转载请联系原作者。

THE END
1.如何通过AI优化现有的机器视觉网络如何通过AI优化现有的机器视觉网络 引言 机器视觉网是一种集成了计算机视觉技术、物联网和人工智能的网络系统,能够实时捕捉并分析周围环境中的图像信息。随着技术的不断进步,这种系统在安全监控、工业自动化、医疗诊断等多个领域得到了广泛应用。 现有机器视觉网络的问题https://www.vjvqxysd.cn/ce-ping/524920.html
2.资源优化瘦身:全面升级网站性能攻略资源瘦身计划是提升网站性能的关键策略之一,通过精简代码和资源、优化网页加载速度、使用缓存技术、优化数据库性能以及持续监控和调优,可以全面提升网站性能,打造高效、稳定的在线平台。在实施资源瘦身计划时,需要综合考虑网站实际情况和需求,制定合适的优化方案,并持续关注和改进,确保网站性能不断优化和提升。https://www.0515zz.com/html/jianzhan/2024-12-17/303738.html
3.性能调优的未来:创新技术和趋势(性能调优的未来趋势)自动化是性能调优的另一个重要趋势。自动化工具可以帮助开发人员自动执行性能调优任务,例如性能测试和优化。随着自动化技术的不断发展,它们将变得更加强大和易于使用,使性能调优更加高效。 结论 性能调优领域正在不断创新,以满足不断增长的需求。机器学习和人工智能、容器化、微服务、无服务器计算、云监控和分析以及自动https://www.ulidc.com/2024/12/16/%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98%E7%9A%84%E6%9C%AA%E6%9D%A5%EF%BC%9A%E5%88%9B%E6%96%B0%E6%8A%80%E6%9C%AF%E5%92%8C%E8%B6%8B%E5%8A%BF-%E6%80%A7%E8%83%BD%E8%B0%83%E4%BC%98%E7%9A%84%E6%9C%AA%E6%9D%A5/
4.流量无忧:高效网站资源优化策略与实战分享社交媒体已成为人们获取信息的重要渠道。将社交媒体与您的网站整合,可以让您的内容更容易被用户发现和分享。通过分享按钮、社交媒体链接等方式,您可以鼓励用户将您的内容分享到他们的社交媒体平台,从而扩大网站的曝光度和流量。 站长个人见解,实现流量无忧需要您从多个方面对网站资源进行优化。通过关注网站速度、内容、移动https://www.1asp.com.cn/html/jianzhan/2024-12-16/373301.html
5.拿捏!高效掌握离线数据,让数据资产快速释放价值赛博威数据上传平台,作为专业的离线数据上传工具,操作简便,功能强大,支持海量离线数据的高效上传、高效管理与高效验证。助力企业突破离线数据管理瓶颈,全面提升数据上传效率与管理能力。 ■高效数据上传:支持批量上传与自动化处理,显著提升操作效率,同时大幅降低时间和人力成本。 https://www.51cto.com/article/804444.html
6.大模型技术优化负载均衡:AI驱动的智能化运维在现代信息技术环境中,负载均衡是确保系统稳定、高效运行的关键技术。随着大模型技术(Large Model Technology, LMT)的发展,AI驱动的智能化负载均衡成为了优化系统性能、提升用户体验的重要手段。本文将详细介绍如何使用Python实现基于大模型技术的负载均衡,并通过具体https://cloud.tencent.com/developer/article/2480028
7.2024年度技术热词来袭,AI如何在可控生成和降本增效中寻找平衡算专题四:性能优化与资源统筹|ArchSummit 随着模型参数和用户数据量的快速增长,大模型在离线计算和在线推理中的资源需求日益紧张,同时耗时性能问题愈发凸显。本专题中,阿里国际 AI Business 智能计算负责人丁虎平、焱融科技 CTO & TGO 鲲鹏会学员张文涛、贝壳找房容器团队负责人王天庆分别分享了他们在模型性能优化与资源统https://www.163.com/dy/article/JJHJPE8T0511D3QS.html
8.时,为什么在线方法总是优于离线方法?离线优化和在线优化尽管这些假设听上去似乎是对的,但实验结果表明它们无法可信地解释在线和离线算法的性能差距。 他们通过消融研究发现,提升离线优化的一种有效方法是生成分布上接近起始 RLHF 策略(这里就刚好是 SFT 策略)的数据,这本质上就模仿了在线算法的起始阶段。 优化性质 https://blog.csdn.net/python1234_/article/details/139054370
9.SimsciRomeo4.3.1(化工流程在线优化软件):haocaxROMeo 是目前唯一同时支持在线优化与离线分析,在线与离线共用同一个模型和同一个人机界面的商品化过程优化软件。 ROMeo 具有友好易用的人机界面,并提供与各种第三方组件(如炼油、乙烯反应器模型,以及用户自定义模型)的接口,为您的各类过程优化工作提供强有力的支持。 http://blog.chinaunix.net/uid-22805134-id-1769077.html
10.蚂蚁金服核心技术:百亿特征实时推荐算法揭秘阿里妹导读:本文来自蚂蚁金服人工智能部认知计算组的基础算法团队,文章提出一整套创新算法与架构,通过对TensorFlow底层的弹性改造,解决了在线学习的弹性特征伸缩和稳定性问题,并以GroupLasso和特征在线频次过滤等自研算法优化了模型稀疏性,在支付宝核心推荐业务获得了uvctr的显著提升,并较大地提升了链路效率。 https://maimai.cn/article/detail?fid=1010621115&efid=mIQCHnkj0zjxlpygUmo5mg
11.百亿级图数据在快手安全情报的应用与挑战本文讲述了快手如何搭建安全情报服务架构与优化情报系统。https://www.secrss.com/articles/31209
12.版本更新一起装设备列表增加设备绑定工地时长和在线总时长 优化派工模块 增加工人可查看历史派工记录。 增加工人可设置“暂不接单”时间段。 2024.9.9 线上节点验收2.0 验收标准增强,增加图片/视频等素材,支持员工查阅验收标准,并可将验收标准作为营销素材。 验收报告增强,增加展示验收标准的图片/视频素材,并可将验收报告作为营销http://help.1qizhuang.com/upgrade
13.综合能源仿真优化平台将优化设计或者能源诊断过程中生成的数字孪生模型,在SimuWorks上仿真运行,可以用于实现系统的优化运行。根据仿真系统是否与实际系统在线连接,可以分为离线优化运行和在线优化运行两种方式。 1.离线优化运行 将第二天的负荷预测数据输入仿真系统,根据优化目标(如效率最高、碳排放最低或者二次能源利用率最高等等),通过数字http://www.simuworks.com/product/102.html
14.基于突触可塑性优化元学习的SNN在线学习框架–上海交通大学类脑内循环只要简单的突触可塑性局部规则可以片上计算,从少量的样本中学习剩余的参数。然而,范式实现的难点在于离线启动阶段(L2L的外循环)的训练算法的有效性。要求更高的网络优化往往需要BPTT来进行SNN的离线优化。由于外循环是在许多任务上的平均损失进行反向传播,对于大规模SNN将造成训练困难的问题。https://bat.sjtu.edu.cn/zh/snnzaixianxuexi-230825/
15.免费网站排名优化在线64xl.com最专业的下拉平台搜索词下拉知乎和各大博客上介绍搜索的文章远远少于推荐,所以我会特别开一个系列,跟大家聊聊电商APP里的智能搜索,以及AI时代该怎么做搜索。 1、什么是电商APP搜索引擎? 首先我们要确定的是,我们说的搜索并不是这种综合性的搜索引擎,而是淘宝、京东、美团等电商APP里的搜索引擎。 https://m.bjhwtx.com/h-nd-200607.html
16.mPaasH5离线包优化指南在移动互联网时代的今天,市场上绝大多数终端App都在使用H5展示页面,且随着终端技术迭代更新和市场多变性,H5页面在App中的占比越来越重要。同时也暴露出一个所有App的共性问题,即性能优化。同样的H5页面的性能优化也是重点问题。在mPaaS团队中虽然已将H5页面资源等打包做https://developer.aliyun.com/article/848599
17.化工生产公用工程总结9篇(全文)ABB公司在输配电、自动化产品和系统等方面在中国都建立了生产基地。ABB Simcon公司采用仿真优化器 (OPSO) 系统实现乙烯装置在线和离线优化, 已用于40多套装置, 该公司还可提供催化裂化、烷基化等装置的优化控制系统。其能源管理系统 (EMS) , 是该公司开发的一种公用工程优化控制软件。 它可以管理和控制工厂能源的https://www.99xueshu.com/w/filexgqp4ac5.html
18.阿里云盘基本功能隐私政策为了向您提供文件在线浏览、播放服务,我们需要您授予本地存储的读写权限,以便能够对浏览、播放的文件进行本地存储和离线阅读、浏览。我们还会收集相应的文件名称、播放和浏览记录,以便我们帮助您快速定位到您上一次播放或浏览的位置。上述信息(或权限)为非必要信息(或权限),拒绝提供信息或开启权限将导致您无法使用文件浏https://terms.alicdn.com/legal-agreement/terms/suit_bu1_alibaba_group/suit_bu1_alibaba_group202102022125_53871.html
19.RTO技术:流程工业的AIRTO技术是流程模拟技术的继承,二者采用一致的热力学模型,均基于严格机理,两者分别从离线和在线角度共同支撑了企业装置操作优化工作。 RTO技术与计划优化技术的关系 计划优化一般基于线性规划技术建模,计划优化是从全局、从整体考虑全厂物料分配的优化、装置加工负荷的优化、产品产量和品种的优化。计划优化是离线优化。 http://www.zeeflow.com/html/article/3051.html
20.基于凸优化和LQR的火箭返回轨迹跟踪制导表1 火箭初始状态和终端状态Table1 Initial and terminal states of rocket 2种方法的轨迹曲线如图3所示。本文方法的基准轨迹是一条离线优化轨迹,在仿真过程中,由于没有考虑外界的各种干扰因素,采用本文方法的飞行轨迹应与滚动凸优化方法的轨迹基本重合,图3的仿真结果也验证了这一点。 https://www.fx361.com/page/2022/1130/16941770.shtml
21.ProfitSuite先进过程控制与优化系统Profit Suite先进过程控制与优化系统.docxProfit Suite先进过程控制与优化系统Profit Suite先进过程控制与优化系统profit Suite TM先进控制与区域优化系统,是Honeywell公司经过几十年的研究、开发及实践,在具有世界先进的优化控制技术和丰富的炼油、石化及化工行业知识的http://www.chemesimu.com/chemesimu/vip_doc/18690053.html
22.息流FlowUs评测:从输入到输出,内置工作流的笔记软件和知识管理支持中文界面,针对中文用户使用习惯进行细节优化 输入/ +拼音」快速插入内容块; 输入【【/[[支持创建行内页面; 输入@快速引用日期、成员、最近访问页面; 支持原生开发,方便在移动端进行快速输入 支持PC 端离线功能 允许用户在完全离线的情况下,进行内容编辑处理,支持各种基础块和高级块内容输入。 https://sspai.com/post/73465