深度学习推荐系统实战_40_31模型迭代阿里巴巴是如何迭代更新推荐模型的
你好,我是王哲。
今天啊我想和你聊聊阿里巴巴是怎么迭代更新推荐模型的。
前两天啊我问了我团队中推荐工程师们一个问题,你们觉得在推荐系统领域工作最大的挑战是什么?有的人说是模型调参,有的人说呢是模程调跑,有的人呢说是找到下一步改进的思路。
那现在听到这个问题的你认为会是什么呢?其实啊刚才的这些问题回答的都很好。
不过我的想法呢和大家稍有不同,我认为啊工作中最大的挑战呢就是不断的优化整个推荐系统的架构,做到持续的效果提升和高质量的模型迭代。
这是因为啊从我们成为一名算法工程师的第一天开始呢,就在不断面临挑战了。
不仅要和别人赛跑,也要跟自己赛跑,而超越过去的自己啊,往往才是最难的那这节课啊我就以阿里妈妈团队的经验为例,带你来看一看业界的一线团队是怎么实现模型的,持续迭迭代创新,做到好上加好的。
在学习这节课之前呢,我再给你一点小建议。
我希望你啊不要太纠结于每个模型的细节,而是要多体会阿里的工程师呢是怎么去定位创新点的。
阿里妈妈呀是阿里巴巴集团的营销广告团队,他们呢负责了阿里大部分的广告推荐系统的工作。
我们可以看文稿中的图一啊,它就是阿里妈妈一个典型的广告推荐场景。
这是我在手机淘宝上搜索篮球鞋以后啊,app给我推荐的一个商品列表。
我们可以看到啊,第一个搜索结果左上角呢带着一个hot的标识,左下角呢还有一个比较隐蔽的广告的标识。
那带有这两个标志呢就是阿里妈妈广告推荐系统推荐的商品了。
如果让你来构建这个广告推荐模型,你觉得应该考虑的关键点是什么呢?我们可以重点从它的商业目标来思考。
啊,阿里妈妈的广告呢大部分是按照CPC付费的,也就是说按照点击效果来付费。
所以呢构建这个模型最重要的一点啊,就是要准确去预测每个广告商品的点击率。
这样呢才能把高点击率的商品,个性化的推荐给特定的用户,让整个广告系统的收益更高。
因此啊模型怎么预测出用户爱点击的广告种类呢?就是重中之重了。
那预测广告啊就一定要分析和利用用户的历史行为。
因为这些历史行为之中啊,就包含了用户最真实的购买兴趣。
而阿里妈妈推荐模型的主要进化和迭代的方向呢,也是围绕着用户的历史行为的处理展开的。
下面啊我们就一起来看看阿里妈妈深度推荐模型的进化过程。
阿里妈妈推荐模型的起点呢被称为base model,它是一个基础版本的深度模型结构。
就是我们之前讲过的embedding MLP结构。
我把它的结构示意图呢放在了文稿里,你可以结合它呀,接着听我讲base model的输入特征呢包括了用户特征、广告特征、场景特征等等等等。
那我们最需要关注的呢就是它处理用户行为特征的原理,也就是图中色彩的部分。
Base model使用了some pointing层,把用户的所有历史购买商品embedding进行了加和。
这样一来啊,base model啊就是一视同仁,不分重点的把用户的历史行为都加起来形成一个固定的用户兴趣向量。
比如说啊如果一位女性呢购买过连衣裙、奶粉、婴儿车,她的兴趣向量啊就是全部商品embedding的平均。
那这当然是一种很粗糙的历史行为处理方式了,自然呢也成为了阿里工程师需要重点改进的方向。
那具体应该怎么改进呢?我们在第二十一节课里讲过呀,就是使用注意力机制来计算每个历史行为和当前要预测的候选广告物品之间的关系关系紧密的权重大关系疏远的权重低。
哎,那这样一来啊,如果我们要预测这位用户购买另一套女装时的CTR,在历史行为中啊,购买连衣裙这类商品的权重啊就会高,而购买奶粉这类不相关商品的权重呢就会低,就像图三每个商品下面进度条一样。
那通过这个例子啊,我们又一次证明了引入注意力机制是非常符合我们购买习惯的一种模型改进方式。
但是啊模型改进到这里就结束了吗?当然不是啊,我们虽然引入了注意力机制,但还没有考虑商品的购买时间。
啊,举个例子来说,你前一天在天猫上买了一个键盘,今天啊你又在天猫上闲逛。
那对于推荐系统来说,是你前一天购买经历比较重要,还是一年前的更重要呢?当然是前一天的了,因为很可能正是因为你前一天购买了键盘,所以今天购买鼠标或者其他电脑周边的概率就会变大了。
而这些连续事件之间的相关性呢,对模型来说啊是非常有用的知识。
于是啊DIN模型就进一步定化到了DIEN模型文稿中的图四啊,就很好的展示出了DIEN模型的结构和它对应的用户历史行为。
其实啊本质上所有用户的历史行为呢都是序列式的时间维度,是天然附着在每个历史商品之上的属性。
既然我们在之前模型中把这个属性给丢掉了,因就一定存在着信息的浪费和知识的丢失。
因此在改进模型的时候啊,这自然就成了一个突破点。
Dien呢正是在模型中加入了一个三层的序列模型结构,来处理用户的历史行为序列,进而呢抽取出用户的购买兴趣演化序列。
最后啊预测出用户当前的购买兴趣。
但是啊这次改进之后呢,模型的迭代之路似乎变得越来越难了。
因为算法工程师啊,好像把该想到的都想到了,算法工程师这条职业道路确实是这样的,它是一个自己跟自己较劲的过程,上一轮大幅提高的优化效果呢,反而可能会成为这一轮改进的阻碍。
这时候啊我们可能会陷入阶段性的怀疑状态,怀疑自己还能不能找到一个更好的改进点。
因种自我怀疑啊是正常的。
但更重要的是,我们能不能在阶段性的怀疑过后,重新开始冷静的分析问题,找到还没有利用过的信息资源,或者是补上之前某个技术短板,从而在现有的系统中呢抠出下一个增长点。
这也是我们要从阿里工程师的工作中学习和借鉴的。
下面啊我们就来看看他们是怎么继续优化演型的。
二零一九年啊,阿里的工程师们提出了新的模型,改进平路,也就是多通道兴趣记忆网络MIMN.因为他们发现啊,DIEN呢虽然存在着序列模型的结构,但所有的历史行为都是在一条线上演化的。
而事实上啊,用户的兴趣、演化过程啊完全可以多条并行,这该怎么理解呢?我们还是以一位女性优户为例啊,他购买女装的兴趣演化路径啊,完全可以跟购买婴儿物品的演化路径平行。
它的兴趣向量啊也可以是多个,而不仅仅局限于一个对应的模型架构和相应的用户历史行为样例啊,我都放在了文稿中,你可以对照着去看。
那正是根据这样的模型改进动机啊,MIMN相比DIEN呢加入了多条平行的兴趣演化路径,最终呢为embedding MLP的主模型啊提供了多个可供选择的兴趣向量。
当然啊具体选择哪个,我们还是得根据当前兴趣与目标广告商品之间的注意力得分来确定。
通过引入兴趣演化的多通道啊,MIMN进一步加强了模型的表达能力,让模型挖掘数据的价值呢能力更强。
那说了这么多呀,这几个模型到底有没有提升阿里妈妈推荐系统的效果呢?我们来看文稿中表一给出的离线评估效果。
从中我们可以看到啊,阿里采用的RCAUC作为评估指标,就像我们期望的那样啊,随着模型的一步步改进啊,模型的效果在阿里数据集和亚马逊数据集上都逐渐增强了。
当然啊我建议所有论文中的实验效果,你应该都辩论来看。
因为作为一个参考值,但不能全部相信。
因为就像我常说的,在模型结构中不存在最优。
只要你的数据业务特点和阿里不一样,就不能假设这个模型在你的场景下会具有一个同样的效果。
根据自己的数据的特点来改进模型才最重要的。
这个时候啊,有的同学可能就要问了,阿里妈妈的同学们只是瞄着用户历史这个点去优化吗?感觉这一点的优化空间早晚会穷尽啊。
我要说啊这个观察角度太好了。
作为一名算法工程师啊,技术的格局和全面的视野都是非常重要的。
技术的空间那么大,我们不能只盯着一个点去改进,要适当的跳出局限里的空间,去找到其他技术的短板。
这样一来啊,我们往往会发现更好的迭代方向。
所以啊阿里的工程师们呢,除了对用户历史进行挖掘,也针对商品的图片信息进行了建模,也就是所谓的DICM.我把DSM的模型结构图呢放在了文稿里,它还是采用了embedding MLP的组模型结构。
只不过啊引入了用户历史购买过的商品的图片信息,以及呢当前广告商品的图片结构。
这些商品图片还是以embedding的形式表示,然后呢输入后续的MLP层进行处理。
因为啊要引入图片信息,所以呢在MLP层之前呢,还需要利用一个预训练好的CV模型来生成这些图片的embedding表达。
简单来说啊就是一个预训练图片embedding加MLP的模型结构。
除此之外呢阿里团队还在很多方面都做了研究。
比如说啊同时处理CTR预估和CVR预估问题的多目标优化模型。
Esmm根据用户绘画进行绘画内推荐的DSIM,可以在线快速排序的轻量级深度推荐模型COLD等等等等。
我们可以用百花齐放呢来形容阿里团队的发展过程。
你如果感兴趣呢,可以根据我提供的论文地址啊进行进一步的追踪学习。
那到这里呢,我带你从业务方面梳理了业界一线团队啊进行一个模型迭代的过程。
那我们到底能从阿里妈妈团队学到什么?或者说借鉴到什么呢?沿着帮助你彻底梳理清楚啊,我把阿里妈妈模型的发展过程啊分为了横向和纵向两个维度绘制在了文稿中。
那我们可以看到啊,横向的维度啊是推荐主模型的发展过程。
从基础的深度模型一路走来啊,沿着挖掘用户行为信息思路的不断深化。
我把这种思路呢叫做模型的深化演进思路。
但是啊深化演进的过程是一个不断挑战自己的过程。
虽然我们说啊数据中埋藏着无穷无尽的宝藏,不可能让我们挖完,但是挖掘的难度啊一直在不断加大。
就像刚开始通过深度学习模型啊代替传统机器学习模型,我们能取得百分之十这个量级的收益,加入注意力机制,加入序列模型。
这样大的结构改进能取到百分之一到百分之三这个量级收入。
到后来啊加入更复杂的改进,可能啊只能够取得百分之零点五甚至是更低的收益。
这个时候啊我们就需要把视野拓宽,从其他角度来看待推荐的问题,找到新的切入点。
这方面阿里给我们做了很好的示范,比如图七纵向发展过程啊,就是阿里团队对于一些独立问题的解决办法。
多目标多模态,包括我们之前提到的可以进行实时服务和在线学习的COLD模型。
这些啊都是独立的技术点。
但是他们对于推荐效果的提高,可以说是丝毫不弱于主排序模型的改进。
那这种从不同角度改进推荐模型的思路呢,我把它叫做广度。
扩展。
推荐系统呢是一个非常复杂的系统,系统中成百上千个不同的模块啊,共同围成了这个系统。
它最终的效果呢也是由这几百上千个模块共同决定的。
在通往支撑工程师的路上啊,你的任务是敏锐的发现这些模块中的短板,而不是总盯着最长的那块木板呢进行改进。
只有高效的解决短板的问题,我们才能够获得更大的挖益。
这也是我们这门课啊为什么一直要强调系统性的建立知识体系的原因。
好了,今天的内容讲完了,我们一起来做个总结。
今天啊我带你总结了阿里妈妈团队推荐模型的发展过程。
我们可以从两个维度呢来看,阿里广告推荐模型的改进。
首先呢是深度演进。
这个迭代思路上,阿里妈妈对用户的历史行为呢进行了一个深入的理解和不断的挖掘。
这样阿里妈妈模型啊从最终的embedding MLP结构到引入了注意力机制的DIN.我们最型的DIEN,再到能够利用多通道序列模型学习出用户多个兴趣向量的MIMN,整个发展呢是一脉相承的。
其次啊,阿里妈妈呢一直在践行广度扩展的模型迭代思路,从多目标多模态在线学习等多个角度呢去改进推荐模型,实现了推荐系统的整体效果的提高。
最后啊我把阿里妈妈模型演进过程中,所有改进模型的特点都总结在了文稿中,希望可以帮助你加深印象。
好了,那最后的最后啊,我希望咱们再做一个开放型的练习题目啊,是这样的,如果我让你在MIMN的基础上的进一步改进模型,你觉得还有什么可供挖掘的用户行为信息吗?又或者说还有什么方式能够进一步利用好用户行为信息吗?期待在留言区看到你的创意和思考。
我们下节课见。