MIND

MIND是阿里巴巴提出的推荐系统模型,它通过多兴趣提取器层和动态路由机制来捕捉用户的多元兴趣。模型在召回阶段使用多个向量表示用户兴趣,以提高召回候选集的相关性。动态路由类似于软聚类,允许自适应地聚合用户历史行为。此外,标签感知注意力机制用于评估和选择与目标商品最相关的兴趣向量,以生成召回列表。MIND解决了传统单兴趣模型的局限性,尤其适用于大规模推荐系统。
摘要由CSDN通过智能技术生成

今天分享一篇阿里2019年发表的推荐论文《Multi-Interest Network with Dynamic Routing for Recommendation at Tmall》。
#0. 摘要
工业界推荐系统通常有两个阶段组成:召回(Matching)和排序(Ranking)。召回阶段我们根据用户的兴趣从海量的商品中去检索出相关候选 Item,满足推荐相关性和多样性需求。而排序阶段,依据用户兴趣会对候选集进行打分排序截取TopN Item,最终给用户产生推荐。

因此,在推荐过程最重要的一环就是如何对用户不同阶段的兴趣进行有效表达。大多数目前的深度网络模型中,都是构建一个用户和Item 统一的向量空间中去获取用户的兴趣表达。这类模型都是将用户映射为单个向量以表达用户兴趣,通常不足以捕获用户多样的兴趣分布。

基于此,本文提出基于动态路由的用户多兴趣网络(Multi-Interest Network with Dynamic routing,MIND),在召回阶段对于单个用户采用多个向量表征其行为特征(label-aware attention)。

主要工作有:

  • 通过 multi-interest extractor layer 获取User的多个兴趣向量表达,利用dynamic routing 以自适应地聚合用户历史行为到用户表达向量中,以处理用户的不同兴趣
  • 通过 label-aware attention 标签感知注意力机制,指导学习 user 的多兴趣表达embedding

#1. 引言
现有的推荐算法以不同方式建模并代表用户兴趣。基于协作过滤的方法通过历史交互item或hidden factors表征用户兴趣,这类方法受限于特征稀疏性或高性能计算。基于deep learning 的方法通常使用低维向量表征用户兴趣。例如,YouTube DNN 将每个用户表征为定长的向量,这可能是表征各种兴趣的瓶颈,因为为了表达多兴趣,维数必须很大。阿里提出的DIN(Deep Interest Network)通过attention机制来获取用户的多兴趣。然而,由于采用了attention机制,因此对于具有十亿个项目的大规模应用程序,它在计算上是难以实现的(computationally prohibitive),因为它需要重新计算每个item以实现用户表征,从而使DIN仅适用于ranking阶段。因此,本文提出了MIND。

#2. 相关工作
本章介绍了相关工作。
Capsule Network(胶囊网络):胶囊网络由Hinton于13年在《Transforming Auto-encoders》提出的,不使用反向传播,而是利用Expectation-Maximization algorithm。与CNN有两点的不同,哪两点?

#3. MIND的技术细节
##3.1 问题定义
推荐系统召回模块的核心任务是从数以亿计的item库中筛选出一部分用户感兴趣的候选集。用三元组 ( I u , P u , F i ) (\mathit{I}_{u}, \mathit{P}_{u}, \mathit{F}_{i}) (Iu,Pu,Fi)表示user-item 实例,其中 I u \mathit{I}_{u} Iu为用户对Item 产生行为序列集合, P u \mathit{P}_{u} Pu为用户基本属性(如性别、年龄), F i \mathit{F}_{i} Fi为目标Item 的基本属性(如itemid, category_id)
这部分可以再完善一下

##3.2 Embedding & Pooling Layer
MIND模型输入:

  • 用户画像:如uid、年龄、性别等特征;转换成embedding后concat起来
  • 用户行为:即产生行为(历史点击或购买等)的Item列表和Item属性列表;item ids、店铺 id、品牌id转换为 embedding 后统一经过 pooling 层作为 item 侧特征输入
  • label

##3.3 Multi-Interest Extractor Layer
如果把与用户兴趣各种相关的信息都压缩成为一个表达向量,这会成为用户多样兴趣表达的瓶颈,在推荐召回阶段召回候选集时,对用户不同兴趣的所有信息混合在一起使用,会导致召回Item 的相关性大大降低。因此,我们采用多个向量来表达用户不同的兴趣。

将用户的历史行为分组到多个 interest capsules 的过程, 期望属于同一个capsules 的相关Item 共同表达用户兴趣的一个特定方面。Multi-Interest Extractor Layer主要的思路是这样的:
利用胶囊网络的Dynamic Routing的特性对交互过的items进行聚类,有点类似深度版本的k-means。(就是说动态路由主要是通过胶囊网络实现的,这部分介绍了一下)

###3.3.1 动态路由
假设有两层胶囊,胶囊(我认为说的是它的输出)表示不同的属性,方向表示一种属性,并且胶囊的长度用于代表该属性存在的概率。(在MIND的中我们只要记住Capsule可以接受一组向量输入,输出一个向量;如果我们K个capsule,就会有K个输出向量 待完善)输出了多个向量,那原本输入的是什么呢?(是把一个底层的向量直接输入给)
有个录音来着
还有个视频来着
绿色
##3.4 Label-aware Attention Layer
8 - 8.30
在得到用户的多个表征向量之后(capsules),如何利用其与目标商品的embedding向量来进行召回呢,本文采用的attention layer主要用于解决这个问题。(多向量怎么用)通过多兴趣提取器层,对用户行为序列embedding 我们得到多个个兴趣Capsule 表达用户多样的兴趣分布,不同的兴趣Capsule表示用户兴趣的不同偏好。为了评估多个兴趣Capsule对目标Item 相关度及贡献度,我们设计标签意识的Attention 机制来衡量目标Item 选择使用哪个兴趣Capsule:
传统的向量化召回利用两个向量的点击形式获得相应的评分,选取top候选集。但是当其中一方的embedding为多个的时候如何进行召回呢,一种方式是将其中一方的embedding进行concate,然后与另一方的embedding向量算内积(例如可以将用户本身的embedding向量和用户行为embedding向量concate,然后与目标商品的embedding算内积进行召回,需要注意维度保持一致)。本文给出了另外一种方式,就是采用attention的方式,将多个用户表征向量进行加权得到多个向量,然后分别与目标商品的embedding向量进行内积运算,选取其中最大的内积作为该商品的得分,选取TopN即得到了候选商品集。

lable item embedding 是 query ????? 是什么意思
When p is bigger than 1, as p increases, the value has bigger dot-product will receive more and more weight. Consider the limit case, when p gets infinity, the attention mechanism becomes a kind of hard attention to pick the value who has the biggest attention and ignore others. In our experiments, we find out that using hard attention leads to faster convergence.

为什么训练的时候是这样,然后serving的时候是另一个样子呢?

##3.5 3.6
使交叉熵作为MIND 训练的损失函数:

[公式]

我们通过softmax 计算用户偏好Item 的概率:

serving阶段:

#4. 比较MIND与其他

#5. MIND部署

#6. 总结

The process of dynamic routing can be viewed as soft-clustering 动态路由可以被看做是软聚类。

#参考链接

  1. 阿里推荐算法(MIND):基于动态路由的用户多兴趣网络
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值