Multi-Interest Network with Dynamic Routing for Recommendation at Tmall(MIND)

论文链接:https://arxiv.org/pdf/1904.08030.pdf

1:这个是用在召回阶段,每个用户计算N个兴趣向量时,只用计算1遍,和din这种和预估item绑定的思路是分开的

胶囊网络: “胶囊”的概念,一小群神经元组装输出一个完整的向量,首先由Hinton [13] 在 2011 年提出。动态路由替代反向传播[21]用于学习胶囊之间连接的权重,通过利用期望最大化来改进算法 [14] 克服了几个不足并取得了更好的准确性。 这两个与传统神经网络的主要区别使得胶囊网络能够编码部分与整体之间的关系,这在计算机视觉、自然语言处理中是先进的。

胶囊网络具体可以看这两篇文章,写的很好,在这里记录下

capsule系列之Dynamic Routing Between Capsules_AI蜗牛之家-CSDN博客

揭开迷雾,来一顿美味的Capsule盛宴 - 科学空间|Scientific Spaces

把胶囊网络看懂了,这篇文章的重点也就看懂了 mind的这篇文章还可以看看这篇解释,解释的还算清楚 阿里推荐算法(MIND):基于动态路由的用户多兴趣网络 - 知乎。接下来把这篇文章中的其他独特地方记录下

动态路由中有两个点比较重要

(1) 并不是完全抛弃了反向传播,只用到了EM来进行优化,因为最开始的初层胶囊网络要乘以权重矩阵wij得到变化,这个还是需要反向传播的

(2) 在使用EM来优化的时候,为什么

这是因为 uj|i和vj的物理意义分别是:vj是一个抽出来的特有兴趣向量,uj|i是在形成vj过程中底层的特征,这两个相乘代表这两个向量的相关性,在迭代过程中如果越相关,最终迭代后这条链路的权重也就越大

 

2:上面讲解胶囊网络的时候,都是直接从第一层向量开始讲起,没有说明第一层是怎么来的,看mind这篇文章的这块截图。可以看到用户的**序列中的每个item都是一个第一层的胶囊,同时每个item的itemid+category+店铺id共同组成的embedding作为一个胶囊的向量

这种把每个item当成一个底层胶囊的做法是合理的,但是顶层胶囊却是固定数量,这个是不合理的,因为对于不同的用户他的兴趣种类不一样多,所以这里也不能用固定数量

3:再进行每个顶层胶囊网络和预估item求topk的时候,把多个胶囊网络和其他user特征concat在一起的后再经过多个mlp层那不剩下一个向量了吗,所以这里可能还有其他的理解:就是每个胶囊的向量和user特征concat在一起,再过mlp层求topk 

4: Label-aware Attention Layer

通过多兴趣提取器层,几个兴趣胶囊是从用户的行为嵌入生成。不同的兴趣囊代表用户兴趣的不同方面,相关的兴趣胶囊用于评估用户对特定的偏好item。 因此,在训练期间,我们设计了一个label-aware attention基于缩放点积注意力[24]的层来制作目标项目选择使用哪个兴趣胶囊。 具体来说,对于一个目标项目,我们计算每个兴趣胶囊和目标item嵌入向量之间权重。 在标签感知注意力中,目标item是query,兴趣胶囊既是key又是value,如如图2所示。用户u关于item的输出向量计算为

其中 pow 表示逐元素取幂算子,p 是用于调整注意力分布的可调参数。 当 p接近于 0,每个兴趣胶囊都会受到均匀的关注。 当 p 大于 1 时,随着 p 的增大,值越大dot-product 将获得越来越多的权重。 考虑极限情况下,当 p 变得无穷大时,注意力机制变成了一种 hard attention 选择最受关注的值,并忽略其他兴趣胶囊。 在我们的实验中,我们发现使用 hard attention 导致更快的收敛

关于soft attention hard attention,可以看下面这篇文章,我将里面重点部分截图出来

AI研习社 - 研习AI产学研新知,助力AI学术开发者成长。

 5: 训练部分是怎么反向传播的

 

其中 D 包含多个 user-item 对。 由于item数量达到数十亿,总和分母 (10) 的操作在计算上是禁止的因此,我们使用采样 softmax 技术 [7] 使目标函数可训练,并选择 Adam 优化器 [16]训练MIND。 

训练后,label-aware attention层可以用作用户表示映射函数。 预估时,用户的行为序列和用户画像被输入到 fuser 函数中,产生多个表示用户的向量。 然后,这些表示向量用于通过近似最近邻方法检索前 N 个项目[15]

重点在采样 softmax 技术是怎么做的 Sampled Softmax训练方法数学原理思考以及代码实现 - 知乎

或者看博主曾经写过的这篇文章:Youtube论文的要点,你真的懂了吗?(一)_1066196847的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值