-->

深度学习推荐系统实战_28_21注意力机制兴趣演化推荐系统如何抓住用户的心

你好,我是王哲。

今天我想和你聊一聊注意力机制和兴趣演化序列模型,看看他们是怎么帮助推荐系统抓住用户的新的。

那最近几年来啊助力机制啊、兴趣演化序列模型和强化学习都在推荐系统领域取得了广泛的应用。

他们是深度学习推荐模型的发展趋势,也是我们必须要储备的前沿知识。

那作为一名算法工程师,足够的知识储备是非常重要的。

因为在掌握了当下主流的深度学习模型框架,也就是我们学过的embedding MLP架构、white n deep和排diphm等等架构之后,要想再进一步的提高推荐系统的效果,就需要清楚的知道业界还有哪些序练思路可以借鉴。

那学术界有哪些新的adg可以尝试?这些都是我们取得持续成功的关键。

因此,我会用两节课的时间带你一起学习这几种新的模型,改进思路。

今天我们就先来重点关注注意力机制和兴趣演化训练模型。

下节课,我们再来学习,强化学习。

好,我们先来说一说什么是注意力机制。

那注意力机制来源于人类天生的选择性注意的习惯。

那最典型的例子就是用户在浏览网页的时候,会有选择性的注意页面的特定区域,而忽视其他的区域。

那比如说文稿中的图,一就是google对大量用户进行眼球追踪实验后得出的页面注意力热度图。

我们可以看到用户对页面不同区域的注意力区别是非常大的。

他们的大部分的注意力就集中在左上角的几条搜索结果上。

那说了这么多注意力机制,对我们构建推荐模型到底有什么价值呢?那其实价值是非常大的。

比如说我们要做一个新闻推荐的模型,让这个模型根据用户已经看过的新闻做推荐。

那我们在分析用户以浏览新闻的时候,是把标题手段全文的重要性设置成完全一样比较好,还是应该根据用户的注意力的不同给予不同的权重呢?当然肯定是后者比较合理,因为用户很可能都没有注意到正文的最后几段。

如果你分析内容的时候,把最后几段跟标题手段一视同仁,那肯定就会把最重要的信息给淹没了。

事实上,最近几年,注意力机制已经成功的应用,在各种场景下的推荐系统中了。

其中最知名的要说阿里巴巴的深度推荐模型,DIN深度兴趣网络了。

接下来我们就一起来学习一下DIN的原理和模型结构。

那DIN的应用场景是阿里最典型的电商广告推荐。

对于付了广告费的商品,阿里会根据模型预测的点击率高低,把合适的广告商品推荐给合适的用品。

所以注IN模型本质上也是一个点击率预估模型。

那么注意力机制是怎么应用在DIN模型里的呢?要回答这个问题,我们得先看一看DIN在应用注意力机制之前的基础模型是什么样的,这样才能搞清楚注意力机制应用在哪儿,能起到什么作用。

那文稿中的图二就是DNN的基础模型。

Base model我们可以看到,base model是一个典型的embedding MRP的结构。

它的输入特征有用户属性特征、用户行为特征、候选广告特征和场景特征。

那用户属性特征和场景特征。

我里我们已经讲过很多次了,这里我们重点关注用户的行为特征和候选广告特征,也就是图二中彩色的部分。

我们可以清楚的看到,用户行为特征是由一系列用户购买过的商品组成的,也就是图上的goods一到goon.而每个商品又包含了三个子特征,也就是图中三个彩色的点,其中红色代表商品ID,蓝色是商铺,ID,粉色是商品类别ID.同时,候选广告特征也包含了这三个ID型的子特征。

因为这里的候选广告也是一个商品平台上的特征。

那我们之前讲过,在深度学习中,只要遇到ID型、类别型特征,我们就构建它的embedding.然后把embedding跟其他特征连接起来,输入后续的MRP,阿里的base model也是这么做的,它把三个ID转换成了对应的embedding.然后把这些embedding连接起来组成了当前商品的embedding完成了这一步下一步就比较关键了。

因为用户的行为序列其实是一组商品的序列,这个序列可长可短。

但是神经网络输入向量的维度必须是固定的那我们应该怎么把这一组商品的embedding处理成一个长度固定的embedding.呢图二中的层层的构构就给出了答案,就直接把这些商品的sampulembedding叠加起来,然后再把叠加后的embedding跟其他所有特征的连接结果输入MRP.但这个时候问题又来了,some pulling的embedding叠加操作,其实是把所有的历史行为一视同仁,没有任何重点的,没有任何偏向的加起来,这其实并不符合我们的购物习惯。

举个例子来说,如果候选广告对应的商品是键盘,那与此同时,用户的历史行为序列中有这样几个商品,ID分别是鼠标、t恤和洗面奶。

那从我们的购物尝试出发,鼠标这个历史商品ID对预测键盘广告点击率的重要程度应该远远大于其他两个。

那从注意力机制的角度出发,就是说我们在购买键盘的时候,会把注意力更多的头像购买鼠标这类相关电子商品的历史上,因为这些购买经验更有利于我们做出更好的决策。

好了,现在我们终于看到了应用注意力机制的地方,那就是用户的历史行为序列。

阿里正是在base model基础上,把注意力机制应用在了用户的历史行为序列的处理上,形成了DIN模型。

那接下来我们要搞清楚的问题就是DIN模型中应用注意力机制的方法到底是什么?它的细节是怎样的那我们从文稿中DIN模型的架构图中可以看到,跟base model相比,DIN为每个用户的历史购买商品又加上了一个激活单元。

那这个激活单元生成了一个权重,这个权重就是用户对这个历史商品的注意力得分,而权重的大小对应了用户注意力的高低。

那现在问题就只剩下一个了。

这个所谓的激活单元到底是怎么计算出最后的注意力权重的呢?那为了搞清楚这个问题,我们需要深入到激活单元的内部结构里面去。

我们一起来看一看。

图三右上角的激活单元的详细结构。

它的输入是当前这个历史行为商品的embedding,以及候选广告商品的embedding.我们把这两个输入embedding和他们的外机结果连接起来,形成一个向量,再输入给激活单元的MRP层,最终会生成一个注意力权重,这就是激活单元的结构。

那简单来说,激活单元就相当于一个小的深度学习模型。

它利用两个商品的embedding生成了,代表它们关联程度的注意力权重。

到这里,我们终于抽丝剥茧的讲完了整个DIN模型的结构细节。

如果你第一遍没理解清楚,那也没关系。

对照着文稿里DIN模型的结构图,反复再看几遍。

我刚才讲的细节,相信你就能彻底消化吸收它。

那注意力机制的引入啊,对于推荐系统的意义是非常重大的。

它模拟了人类最自然、最发自内心的注意力行为的特点,让推荐系统更加接近用户真实的思考过程,从而达到提升推荐效果的目的。

那从注意力机制开始,越来越多的对深度学习模型结构的改进,都是根据对用户行为的深刻观察而得出的。

由此呢我也想再强调一下,一名优秀的算法工程师应该具备的能力。

就是通过对业务的精确理解,对用户行为的深刻观察,得出改进模型的动机,进而设计出最适合你的场景和用户的推荐模型。

那沿着这条思路,阿里的同学们在提出了DIN模型之后,并没有停止其推荐模型演化的过程,而是又在二零一九年提出了DIN模型的演化版本,也就是深度兴趣进化网络DIEN.那这个DIEN到底在DIN的基础上做了哪些改进呢?那我们知道,无论是电商的购买行为,还是视频网站的观看行为,又或者是新闻应用的阅读行为。

特定用户的行为历史都是一个随着时间排序的序列,那既然是和时间相关的序列,就一定存在着先后行为的依赖关系。

但样的序列信息对于推荐过程是非常有价值的那为什么这么说呢?我们还是拿阿里的电商场景。

举个例子,对于一个综合电商来说,用户兴趣的迁移其实是非常快的。

比如说上一周一位用户在挑选一双篮球鞋,那这位用户上周的行为序列就会集中在篮球鞋这个品类的各个商品上。

那在他完成了这个购物目标后,这一周他的购物兴趣可能会变成一个机械键盘。

那这周他所有的购买行为都会围绕着机械键盘这个品类展开。

那因此,如果我们能让模型预测出用户购买商品的趋势,那肯定会对提升推荐效果有异。

而DIEN模型就正好弥补了DIN模型,没有对行为序列进行建模的缺陷。

它围绕兴趣进化这个点,进一步对DIN模型做了改进。

那我们一起来看一下文稿中的图四,它就是DIEN模型的架构图。

这个模型整体上仍然是一个embedding MRP的模型架构。

但是呢和DIN不同的是,DIEN用兴趣进化网络,也就是图中的彩色部分替换掉了原来带有激活单元的用户行为历史部分。

那这部分虽然复杂,但它的输出非常简单,只是一个HDE撇的embedding向量,它代表了用户当前的兴趣向量。

那有了这个兴趣向量之后,再把它跟其他的特征连接在一起。

Dien就能够通过最后的MRP做出最后的预测了。

好了,现在问题的焦点就在DIEN模型是怎么生成这个兴趣向量的关键就在于DIEN模型中彩色部分的三层兴趣进化网络。

下面我们就按照从下到上的顺序给你讲讲它们的名称和作用。

那最下面是行为序列层,也就是浅绿色的部分。

它的主要作用和一个普通的embedding层是一样的,就是负责把原始的ID类行为序列转换为embedding行为序列,再上一层是兴趣抽取层,它的颜色是浅黄色的。

它的主要作用是利用GRU组成的序列模型来模拟用户兴趣的迁移过程,抽取出每个商品节点对应的用户兴趣。

最上面一层是兴趣进化层,也就是浅红色的部分。

它的主要作用是利用ARGRU组成的序列模型,在兴趣抽取层基础上加入注意力机制,模拟于当前目标广告相关的兴趣进化过程。

那兴趣进化层的最后一个状态的输出,就是用户当前的兴趣向量HT一撇,那你发现了吗?兴趣抽取层和兴趣进化层都用到了序列模型的结构。

那问题就来了,什么是序列模型呢?那直观的说,图五就是一个典型的序列模型的结构。

它和我们之前看到的多层神经网络的结构不同,序列模型是一串神经元。

那其中每个神经元都有对应着一个输入和一个输出。

那在DIEN模型中,神经元的输入就是商品ID或者前一层序列模型的embedding向量,而输出就是商品的embedding或者兴趣embedding.除此之外,每一个神经元还会和后续神经元进行连接,用于预测下一个状态。

那我们把它放在DIEN里,就是为了预测用户的下一个兴趣,那就是序列模型的结构和作用。

那至于我刚才提到的GRU序列模型,它其实是序列模型的一种。

那根据序列模型神经元结构的不同,最经典的包括文稿中图六展示的RNSTM和GRU这三种。

那这里我就不展开讲了,对理论感兴趣的同学可以点击我在文稿中给出的超链接,参考这几篇论文做更深入的研究。

那事实上,序列模型不止在电商场景下,成功应用于推测用户的下次购买行为。

那在youtube、 netfix等视频流媒体公司的视频推荐模型中,也成功用于推荐用户的下次观看行为啊。

除此之外,音乐类应用也非常适合使用序列模型来预测用户的音乐兴趣变化。

所以掌握DIE模型的架构,对于拓宽我们的技术视野是非常有帮助的。

好了,今天的内容讲完了,我们一起来做一个总结。

那注意力机制和兴趣演化序列模型的加入,可以让推荐模型能够更好的抓住用户的心。

那对于注意力机制来说,它主要模拟了人类注意力的天性。

那具体到阿里的DIN模型上,它利用激活单元,计算出用户对于不同历史商品的注意力权重。

针对当前广告商品做出更有针对性的预测之后是序列模型,它更注重对序列类行为的模拟和预测。

典型的例子是DIEN模型对用户购买兴趣进化过程的模拟。

那DIEN模型可以应用的场景非常广泛,包括电商平台下的下次购买视频网站的,下次观看音乐,APP的下一首歌曲等等。

总的来说,注意力机制的引入是对经典深度学习模型的一次大的改进,因为它改变了深度学习模型,对待用户行为历史一视同仁的弊端。

而序列模型则把用户行为串联起来,让用户的兴趣随时间进行演化,这也是之前的深度学习模型完全没有考虑到的结构。

最后,我把今天的重要概念总结在了文稿的表格中,方便你进行及时的查看和复习。

那最后的最后,让我们再来做一道思考题。

那DIN使用了一个结构比较复杂的激活单元来计算注意力机制。

你觉得有没有更简单更实用的方式来生成注意力权重呢?其实计算注意力权重就是为了计算历史行为物品和广告物品的相关性。

在这个过程中,你觉得能不能利用到特征交叉的知识呢?为什么?欢迎把你的思考和疑问写在留言区。

如果你的朋友也在关注注意力机制和兴趣演化序列模型的发展,那不妨也把这节课转发给他们。

我们下节课见。