Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用户多兴趣建模MIND

用户多兴趣建模MIND

作者头像
felixzhao
发布于 2023-01-31 10:10:53
发布于 2023-01-31 10:10:53
6240
举报
文章被收录于专栏:null的专栏null的专栏

1. 概述

在工业界,一个完整的推荐系统中通常包括两个阶段,分别为召回阶段和排序阶段。在召回阶段,根据用户的兴趣从海量的商品中去检索出用户(User)可能感兴趣的候选商品( Item),满足推荐相关性和多样性需求。在排序阶段,根据不同的目标,如CTR,CVR,时长等对候选出的商品进行打分。目前,对于用户兴趣的建模,通常是从用户的历史行为中挖掘出用户兴趣,以当前的深度学习模型为例,通常是将User的历史行为数据embedding到一个固定长度的向量中,以此表示该用户的兴趣。然而在实际环境中,一个用户的兴趣通常是多样的,使用单一固定长度的embedding向量难以刻画用户兴趣的多样性。Multi-Interest Network with Dynamic routing[1](MIND)用户多兴趣建模网络取代了原先的单一固定长度embedding向量,取而代之的是用户的多兴趣向量。在MIND中,主要的创新点在于:

  1. 通过Mulit-Interest Extractor Layer获取User的多个兴趣向量表达,并采用动态路由(Dynamic Routing)的方法自适应地将User历史行为聚合到User兴趣表达向量中;
  2. 通过Label-Aware Attention机制,指导网络学习到用户的多兴趣Embedding向量;

2. 算法原理

2.1. MIND模型的网络结构

MIND模型的网络结构如下图所示:

MIND的网络结构与Youtube的召回网络结构[2]基本一致,Youtube的召回网络结构如下图所示:

不同点主要是在多兴趣抽取层Mulit-Interest Extractor Layer和Label-Aware Attention机制。

2.2. Mulit-Interest Extractor Layer

多兴趣抽取层的目的是对用户历史行为的item抽取出多个兴趣向量表达,通常采用聚类的过程将用户的历史行为聚类到多个簇中,一个簇中的item比较靠近,该簇代表了用户兴趣的一个方面。在MIND中,为了实现这样的聚类过程,使用到了胶囊网络(Capsule Network)。

2.2.1. 胶囊网络(Capsule Network)

什么是胶囊网络(Capsule Network)呢?参照参考[3],对胶囊网络做简单介绍。对于一个普通的神经网络是由神经元组成,每个神经元中是一个具体的值,如下图的左侧图所示;而在胶囊网络中是由被称为Capsule的基本单元组成,与神经元不同的是Capsule中存储的是向量,如下图的右侧图所示。

在上图的胶囊网络中,蓝色的Capsule的输入是黄色的Capsule和绿色的Capsule的输出,分别为向量

v^1

和向量

v^2

,蓝色的Capsule的输出是向量

v

2.2.2. 动态路由(Dynamic Routing)

在神经网络中,网络的权重

w_1,w_2,\cdots ,w_n

是在网络的backpropagation过程中学习到的。对于胶囊网络,其过程与神经网络有点不一样,借鉴参考[3]中的图,结合参考[1]中的实例,有如下的图:

假设存在两层的胶囊,当前的第

h

层的胶囊如上图中的蓝色部分,其输入为第

l

层,且上层的输出向量为

\overrightarrow{c}_i^l\in \mathbb{R}^{N_l\times 1}

,且

i\in \left\{1,\cdots ,m \right\}

,对应到第

h

层的输出向量为

\overrightarrow{c}_j^h\in \mathbb{R}^{N_h\times 1}

,且

j\in \left\{1,\cdots ,n \right\}

,在上图中,我们选取其中一个第

h

层的输出向量

\overrightarrow{c}_j^h

\overrightarrow{z}_j^h

的计算过程如下:

\overrightarrow{z}_j^h=\sum_{i=1}^{m}w_{ij}S_{ij}\overrightarrow{c}_i^l

其中,矩阵

S_{ij}\in \mathbb{R}^{N_h\times N_l}

是需要学习的参数,可通过网络的backpropagation过程学习,连接权重

w_{ij}

在胶囊网络中被称为coupling coefficients,不是在网络中学习得到的。最终通过一个非线性的squash函数得到最终的胶囊的输出向量

\overrightarrow{c}_j^h

\overrightarrow{c}_j^h=squash\left ( \overrightarrow{z}_j^h \right )=\frac{\left\|\overrightarrow{z}_j^h \right\|^2}{1+\left\|\overrightarrow{z}_j^h \right\|^2}\frac{\overrightarrow{z}_j^h}{\left\|\overrightarrow{z}_j^h \right\|}

Squash函数的作用是相当于对向量

\overrightarrow{z}_j^h

做归一化的操作,当至此完成了胶囊网络的前馈过程,然而对于连接权重却并不知道是如何得到的,为了求得连接权重需要使用到动态路由(dynamic routing)的过程,动态路由其实是一个迭代的过程,首先定义the routing logit

b_{ij}

b_{ij}=\left ( \overrightarrow{c}_j^h \right )^TS_{ij}\overrightarrow{c}_i^l

那么,

w_{ij}

可以由

b_{ij}

定义:

w_{ij}=\frac{exp\;b_{ij}}{\sum_{k=1}^{m}exp\; b_{ik}}

具体过程如下面的伪代码所示:

2.2.3. 如何理解聚类过程

在参考[4]中详细论述了动态路由与K-Means聚类算法之间的关系,简单来说Capsule所使用的聚类算法,其实是K-Means的变种。通过直观的理解这个过程,首先对于K-Means,为了与上面的Dynamic Routing过程对应,假设原始的样本为

e_i

,其中

i\in \left\{1,\cdots ,m \right\}

,存在

K

个聚类中心

u_j

,其中

j\in \left\{1,\cdots ,K \right\}

,K-Means的目标是将

m

个原始样本

e_1,e_2,\cdots ,e_m

划分到

K

个类中,使得类内的间隔最小,即:

min\sum_{j=1}^{K}\sum_{i=1}^{m}w_{ij}\left\|e_i-u_j \right\|^2

其中

w_ij

表示样本

e_i

是否属于聚类

j

,因此

w_{ij}\in \left\{0,1 \right\}

。聚类中心

u_j

为:

u_j=\frac{\sum_{i=1}^{m}w_{ij}e_i}{\sum_{i=1}^{m}w_{ij}}

与Dynamic Routing中的

\overrightarrow{u}_j

的更新有两点不一样,第一,计算

w_{ij}

的方式,第二是计算最后结果,在K-Means中是直接求平均,而在Dynamic Routing中,

\overrightarrow{u}_j

采用的是squash函数。

上述只是从直观上对比了两个过程,具体的数学上的论述可以参见参考[4]。

2.2.4. 动态兴趣个数

对于不同的用户,其兴趣的个数

K

是不一样的,在参考[1]中给出了计算特定用户

u

的兴趣个数

K_{u}^{'}
K_{u}^{'}=max\left ( 1,min\left ( K,log _2\left ( \left|I_u \right| \right )\right ) \right )

2.3. Label-aware Attention Layer.

通过多兴趣提取器层,对用户行为序列得到了用户的多个兴趣向量,为了评估多个兴趣向量对目标Item相关度及贡献度,在[1]中设计Label-aware Attention机制来衡量目标Item选择使用哪个兴趣向量,其具体的表达式如下:

\overrightarrow{v}_u=Attention\left ( \overrightarrow{e}_i,V_u,V_u \right )=V_usoftmax\left ( pow\left ( V_u^T\overrightarrow{e}_i,p \right ) \right )

其中,

pow

表示的是指数函数,

p

是一个调节attention分布的参数。

3. 总结

在MIND中,通过Mulit-Interest Extractor Layer获取User的多个兴趣向量表达,并采用动态路由(Dynamic Routing)的方法自适应地将User历史行为聚合到User兴趣表达向量中;最后通过Label-Aware Attention机制,指导网络学习到用户的多兴趣Embedding向量。

参考文献

[1] Li C, Liu Z, Wu M, et al. Multi-interest network with dynamic routing for recommendation at Tmall[C]//Proceedings of the 28th ACM international conference on information and knowledge management. 2019: 2615-2623.

[2] Covington P, Adams J, Sargin E. Deep neural networks for youtube recommendations[C]//Proceedings of the 10th ACM conference on recommender systems. 2016: 191-198.

[3] 14.胶囊网络(Capsule Network)

[4] 再来一顿贺岁宴:从K-Means到Capsule

[5]. 推荐系统召回模型之MIND用户多兴趣网络

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
推荐系统召回模型之MIND用户多兴趣网络
MIND算法全称为:Multi-Interest Network with Dynamic Routing for Recommendation at Tmall,由阿里的算法团队开发。
1480
2020/06/28
2.7K0
推荐系统召回模型之MIND用户多兴趣网络
他山之石:360 多兴趣召回 Mind 实战优化
导读 本文介绍了 360 信息流推荐场景下,利用 Mind 对用户行为进行多兴趣抽取及召回的相关工作。
NewBeeNLP
2024/02/06
4020
他山之石:360 多兴趣召回 Mind 实战优化
召回和排序模型中的用户行为序列的建模
用户在使用一个APP或者浏览网页的过程中,都是由一些行为构成的,以资讯类为例,通常对一个帖子感兴趣,对于感兴趣的帖子,通常会点击进入查看,或者点击收藏或者对其进行评论,这一系列行为的背后都体现了用户的兴趣,而对用户行为过的帖子的序列的挖掘,能够对用户兴趣的表征。
felixzhao
2022/12/28
1.5K0
京东个性化向量召回算法DPSR
对于一个搜索系统来说,通常采用的召回都是基于倒排索引的召回,简单来说就是需要对item侧建立倒排索引,在检索的过程中,对query分词,根据分词结果去倒排索引中查找词匹配的item,简单的流程如下图所示:
felixzhao
2023/04/01
1K0
京东个性化向量召回算法DPSR
NER的过去、现在和未来综述-过去
命名实体识别(NER, Named Entity Recognition),是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。
百川AI
2021/10/25
2K0
NER的过去、现在和未来综述-过去
RS Meet DL(74)-[天猫]MIND:多兴趣向量召回
本文介绍的论文是:《Multi-Interest Network with Dynamic Routing for Recommendation at Tmall》
石晓文
2019/12/23
1.3K0
RS Meet DL(74)-[天猫]MIND:多兴趣向量召回
WWW'21 | 推荐系统:兴趣感知消息传递的GCN缓解过度平滑问题
GCN存在过度平滑问题,在推荐系统中运用GCN同样也会面临这个问题。LightGCN 和 LR-GCN 在一定程度上缓解了这个问题,然而它们忽略了推荐中过度平滑问题的一个重要因素,即没有共同兴趣的高阶相邻用户会参与用户在图卷积操作中的embedding学习。结果,多层图卷积将使兴趣不同的用户具有相似的嵌入。本文提出了一种兴趣感知消息传递 GCN (IMP-GCN) 推荐模型,该模型在子图中执行高阶图卷积。子图由具有相似兴趣的用户及其交互商品组成。为了形成子图,本文设计了一个无监督的子图生成模块,它可以通过利用用户特征和图结构来有效地识别具有共同兴趣的用户。从而避免将来自高阶邻居的负面信息传播到嵌入学习中。
秋枫学习笔记
2022/09/19
9350
CapsNet学习笔记理论学习代码阅读(PyTorch)参考资料
理论学习 胶囊结构 胶囊可以看成一种向量化的神经元。对于单个神经元而言,目前的深度网络中流动的数据均为标量。例如多层感知机的某一个神经元,其输入为若干个标量,输出为一个标量(不考虑批处理);而对于胶囊
月见樽
2018/04/27
1.3K0
CapsNet学习笔记理论学习代码阅读(PyTorch)参考资料
文本生成seq2seq框架
Seq2Seq是Sequence to Sequence的缩写,作用是将一个序列(sequence)映射成另一个序列(sequence)。文献[1]和文献[2]分别提出利用深度神经网络DNN实现端到端的Seq2Seq学习,将Seq2Seq应用于神经机器翻译(Neural Machine Translation,NMT),唯一不同的是在[1]中使用LSTM作为基础网络,而在[2]中则是使用的是RNN。在Seq2Seq框架中包含了两个模块,一个是encoder模块,另一个是decoder模块。这种同时包含encoder和decoder的结构与AutoEncoder网络相似,不同的是AutoEncoder模型是将输入通过encoder的网络生成中间的结果,并通过decoder对中间的结果还原,AutoEncoder的模型结构如下图所示:
felixzhao
2022/05/12
6920
文本生成seq2seq框架
全面掌握胶囊网络:从基础理论到PyTorch实战
深度学习在最近几年取得了显著的进展,特别是在计算机视觉、自然语言处理和其他人工智能应用领域。尽管如此,当前的深度学习模型,尤其是卷积神经网络(CNNs)还存在一些局限性。例如,它们往往对输入的微小变化高度敏感,而且对于学习复杂的空间层次结构效率不高。正是为了解决这些问题,胶囊网络(Capsule Networks,CapsNets)应运而生。
TechLead
2023/10/21
8900
全面掌握胶囊网络:从基础理论到PyTorch实战
小学生才做选择题,"塔"们,我全要!多兴趣召回!
熟悉双塔的人都知道,在用户侧,模型最后往往都生成一个向量去检索,这个向量不足以表达用户的多兴趣,《Multi-Interest Network with Dynamic Routing for Recommendation at Tmall》这篇就提出了一个label-aware attention把用户表达为多个兴趣。
炼丹笔记
2021/05/14
8000
小学生才做选择题,"塔"们,我全要!多兴趣召回!
深入理解推荐系统:十大序列化推荐算法梳理
作为【推荐系统】系列文章的第九篇,将以“序列化推荐算法”作为今天的主角,主要介绍相关的模型原理和发展方向。
Coggle数据科学
2021/03/02
2.7K0
深入理解推荐系统:十大序列化推荐算法梳理
当胶囊网络遇到序列推荐
预备知识:胶囊网络https://zhuanlan.zhihu.com/p/264910554
秋枫学习笔记
2022/09/19
1.1K0
深度兴趣网络DIN
用户兴趣是推荐系统中非常重要的trigger,在召回阶段,通过召回与用户兴趣相匹配的item,在排序阶段,用户兴趣作为很重要的一个特征维度,与用户兴趣越相似的item将会被排到越靠前的位置。因此,在推荐系统中,对于用户兴趣的建模显得尤为重要。在目前为止,通常采用的方法是对用户的历史行为挖掘,实现对用户兴趣的建模。
felixzhao
2022/05/12
9720
深度兴趣网络DIN
菜鸟 | ADL:用于多场景CTR预测的自适应分布学习框架
本文主要针对多场景建模提出的相关方法,通常我们是通过专家只是或者业务策略手动进行分组分场景,通过专家知识来分组可能会忽略数据底层的分布,针对这个问题,本文提出自适应分布学习ADL:一个由聚类过程和分类过程组成的端到端框架。
秋枫学习笔记
2023/08/18
4680
菜鸟 | ADL:用于多场景CTR预测的自适应分布学习框架
WSDM'22 | 利用反事实框架预测用户流失
本文针对用户流失预测提出结合因果推断的方法CFChurn。结合反事实推理,捕获社会影响的信息从而对流失进行预测。
秋枫学习笔记
2022/09/19
6600
系统召回太慢?上 Milvus × PaddleRec 双剑合璧大法!
李云梅,Zilliz 数据工程师,毕业于华中科技大学计算机系。加入 Zilliz 以来,致力于为开源向量数据库 Milvus 探索解决方案,帮助用户打造场景应用。深入关注自然语言处理技术和搜索推荐系统,日常喜欢一个人猫着乱翻书。
Zilliz RDS
2021/10/08
7850
CIKM'21「Adobe」Locker:具有局部约束的自注意力序列推荐
对于序列推荐任务,有许多方法都用到了自注意力机制来捕捉用户潜在的长期和短期兴趣,全局注意力机制虽然可以较好的捕捉长期兴趣,但是对短期兴趣的捕捉能力不强,近期的一些方法发现适当的归纳局部和其他偏差可以提高自注意力的泛化能力。因此作者提出了Locker来促进自注意力机制更好的捕获用户短期兴趣。
秋枫学习笔记
2022/09/19
3590
AAAI'21 | 会话推荐--稀疏注意力去除噪声,自注意力生成目标表征
这里作者用到了一个新的激活函数,当然不是作者提出的。通常我们采用softmax来做最后的激活函数,或者作为注意力机制的归一化函数。但是softmax的归一化方式会为向量中的每一个元素都赋值,即他不会存在0的值,顶多是很小,比如10e-5等。而sparsemax是2016年提出的softmax的改进版,他可以得到稀疏的结果,即让一些值为0,它和softmax具有相似的性能,但具有选择性、更紧凑、注意力集中。正如背景中作者所说的,会话中包含的商品可能存在噪声,比如误点击的,而softmax的非零概率可能会为无用数据分配权重,从而影响找到相关项目的能力,并且一些本来分配高权重的位置也会有“缩水”。如下如所示,sparsemax相比如softmax是更硬的,在过大过小的地方对应1和0,即可以得到稀疏解。
秋枫学习笔记
2022/09/19
1.4K0
机器学习中的常见问题——K-Means算法与矩阵分解的等价
K-Means算法是较为经典的聚类算法,假设训练数据集XXX为:{x1,x2,⋯,xn}{x1,x2,⋯,xn}\left \{ \mathbf{x}_1,\mathbf{x}_2,\cdots , \mathbf{x}_n \right \},其中,每一个样本xjxj \mathbf{x}_j为mmm维的向量。此时的样本为一个m×nm×nm\times n的矩阵:
felixzhao
2019/02/13
8700
推荐阅读
相关推荐
推荐系统召回模型之MIND用户多兴趣网络
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档