推荐系统模型训练中的注意力机制

注意力机制

  • 注意力机制来源于人类天生的”选择性注意”的习惯,我们使用注意力机制就是要让机器也有用和人类一样的选择性注意的习惯。
  • 注意力机制对我们构建推荐模型的价值非常大,比如在构建新闻类推荐模型模型,根据用户已经看过的新闻做推荐。那我们在分析用户已浏览新闻的时候,需要根据用户的注意力不同给予不同的权重。因为用户很可能都没有注意到正文最后的几段,如果你分析内容的时候把最后几段跟标题、首段一视同仁,那肯定就把最重要的信息给淹没了。

深度兴趣网络DIN

  • 阿里巴巴的深度推荐模型DIN(Deep Interest Network,深度兴趣网络) 应用场景是阿里最典型的电商广告推荐。对于付了广告费的商品,阿里会根据模型预测的点击率高低,把合适的广告商品推荐给合适的用户,所以DIN模型本质上是一个点击率预估模型。
  • DIN Base Model的基础模型架构图如下:
    推荐系统模型训练中的注意力机制
  • Base Model其实就是一个典型的Embedding MLP结构。它的输入特征有用户属性特征(User Proflie Features)、用户行为特征(User Behaviors)、候选广告特征(Candidate Ad)和场景特征(Context Features)。用户行为特征是用户购买过的商品组成Goods 1到Goods N。商品又包含了三个子特征分别是商品ID(红)、商铺ID(蓝)、商品类别ID(粉)。同样,候选广告特征也包含了这三个ID型的子特征。
  • 接下来就需要构建它的Embedding,然后把Embedding跟其他特征连接起来,输入到后续的MLP。这里把三个ID转换成了对应的Embedding,然后把这些Embedding连接起来组成了当前商品的Embedding。
  • SUM Pooling层直接把这些商品的Embedding叠加起来,然后再把叠加后的Embedding跟其他所有特征的连接结果输入MLP。使用Sum Pooling可以解决一组商品的Embedding处理成一个长度固定的Embedding。SUM Pooling的Embedding叠加操作其实是把所有历史行为一视同仁,没有任何重点地加起来。
  • 这里我们要引用注意力机制了,阿里正是在Base Model的基础上,把注意力机制应用在了用户的历史行为序列的处理上,从而形成了DIN模型。DIN架构图如下:
    推荐系统模型训练中的注意力机制
  • 与Base Model相比,DIN为每个用户的历史购买商品加上了一个激活单元(Activation Unit),这个激活单元生成了一个权重,这个权重就是用户对这个历史商品的注意力得分,权重的大小对应用户注意力的高低。
  • 激活单元如何计算出最后的注意力权重?以上图右上角所示:它的输入是当前这个历史行为商品的Embedding和候选广告商品的Embedding。我们把这两个输入Embedding,与它们的外积结果连接起来形成一个向量,再输入给激活单元的MLP层,最终会生成一个注意力权重,这就是激活单元的结构。简单来说, *激活单元就相当于一个小的深度学习模型,它利用两个商品的Embedding,生成了代表它们关联程度的注意力权重。

兴趣进化序列模型DIEN

  • 对于一个综合电商来说,用户兴趣的迁移其实是非常快的。例如,一位用户上周买了双运动鞋,这位用户上周的行为序列都会集中在运动鞋这个品类的各个商品上,而本周他的购物兴趣就可能变成笔记本电脑,那这周他所有的购买行为都会围绕笔记本电脑这个品类展开。DIEN模型正好弥补了DIN模型没有 对行为序列进行建模的缺陷,它围绕兴趣进化这个点进一步对DIN模型做了改进。
  • DIEN模型架构图如下:
    推荐系统模型训练中的注意力机制
  • 相比于DIN,上图彩色部分代替了DIN中的激活单元用户历史行为,这部分虽然复杂,但它的输出只是一个h'(T) 的Embedding向量,它代表了用户当前的兴趣向量。有了这个兴趣向量之后,再把它与其他特征连接在一起,DIEN就能通过MLP作出最后的预测了。
  • 最下面一层是行为序列层(Behavior Layer):它的主要作用和一个普通的Embedding层是一样的,负责把原始的ID类行为序列转换成Embedding行为序列。
  • 再上一层是兴趣抽取层(Interest Extractor Layer):它的主要作用是利用GRU组成的序列模型,来模拟用户兴趣迁移过程,抽取出每个商品节点对应的用户兴趣。
  • 最上面一层是兴趣进化层(Interest Evolving Layer):它的主要作用是利用AUGRU(GRU with Attention Update Gate) 组成的序列模型,在兴趣抽取层基础上加入注意力机制,模拟与当前目标广告(Target Ad)相关的兴趣进化过程,兴趣进化层的最后一个状态的输出就是用户当前的兴趣向量 h'(T)。
  • 在DIEN模型中,神经元的输入就是商品ID或者前一层序列模型的Embedding向量,而输出就是商品的Embedding或者兴趣Embedding,除此之外,每个神经元还会与后续神经元进行连接,用于预测下一个状态,放到DIEN里就是为了预测用户的下一个兴趣。这就是序列模型的结构和作用。
  • 总结:序列模型已经不仅在电商场景下,成功应用于推测用户的下次购买行为,在 YouTube、Netflix 等视频流媒体公司的视频推荐模型中,序列模型也用来推测用户的下次观看行为(Next Watch)。

Original: https://blog.csdn.net/sinat_31854967/article/details/124254482
Author: 蜜桃上的小叮当
Title: 推荐系统模型训练中的注意力机制

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/690672/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球