当前位置:首页> AI教程> MIND模型:用户多兴趣建模网络原理解析

MIND模型:用户多兴趣建模网络原理解析

释放双眼,带上耳机,听听看~!
本文解析了MIND模型的原理,包括多兴趣抽取层和动态路由的实现,以及胶囊网络的应用。通过对用户多兴趣建模网络的结构和算法原理进行详细介绍,帮助读者更好地理解推荐系统中用户兴趣的建模过程。

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模型:用户多兴趣建模网络原理解析

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

MIND模型:用户多兴趣建模网络原理解析

不同点主要是在多兴趣抽取层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中存储的是向量,如下图的右侧图所示。

MIND模型:用户多兴趣建模网络原理解析

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

2.2.2. 动态路由(Dynamic Routing)

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

MIND模型:用户多兴趣建模网络原理解析

假设存在两层的胶囊,当前的第hh层的胶囊如上图中的蓝色部分,其输入为第ll层,且上层的输出向量为c→il∈RNl×1overrightarrow{c}_i^lin mathbb{R}^{N_ltimes 1},且i∈{1,⋯ ,m}iin left{1,cdots ,m right},对应到第hh层的输出向量为c→jh∈RNh×1overrightarrow{c}_j^hin mathbb{R}^{N_htimes 1},且j∈{1,⋯ ,n}jin left{1,cdots ,n right},在上图中,我们选取其中一个第hh层的输出向量c→jhoverrightarrow{c}_j^hz→jhoverrightarrow{z}_j^h的计算过程如下:

z→jh=∑i=1mwijSijc→iloverrightarrow{z}_j^h=sum_{i=1}^{m}w_{ij}S_{ij}overrightarrow{c}_i^l

其中,矩阵Sij∈RNh×NlS_{ij}in mathbb{R}^{N_htimes N_l}是需要学习的参数,可通过网络的backpropagation过程学习,连接权重wijw_{ij}在胶囊网络中被称为coupling coefficients,不是在网络中学习得到的。最终通过一个非线性的squash函数得到最终的胶囊的输出向量c→jhoverrightarrow{c}_j^h

c→jh=squash(z→jh)=∥z→jh∥21+∥z→jh∥2z→jh∥z→jh∥overrightarrow{c}_j^h=squashleft ( 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函数的作用是相当于对向量z→jhoverrightarrow{z}_j^h做归一化的操作,当至此完成了胶囊网络的前馈过程,然而对于连接权重却并不知道是如何得到的,为了求得连接权重需要使用到动态路由(dynamic routing)的过程,动态路由其实是一个迭代的过程,首先定义the routing logit bijb_{ij}

bij=(c→jh)TSijc→ilb_{ij}=left ( overrightarrow{c}_j^h right )^TS_{ij}overrightarrow{c}_i^l

那么,wijw_{ij}可以由bijb_{ij}定义:

wij=exp  bij∑k=1mexp  bikw_{ij}=frac{exp;b_{ij}}{sum_{k=1}^{m}exp; b_{ik}}

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

MIND模型:用户多兴趣建模网络原理解析

2.2.3. 如何理解聚类过程

在参考[4]中详细论述了动态路由与K-Means聚类算法之间的关系,简单来说Capsule所使用的聚类算法,其实是K-Means的变种。通过直观的理解这个过程,首先对于K-Means,为了与上面的Dynamic Routing过程对应,假设原始的样本为eie_i,其中i∈{1,⋯ ,m}iin left{1,cdots ,m right},存在KK个聚类中心uju_j,其中j∈{1,⋯ ,K}jin left{1,cdots ,K right},K-Means的目标是将mm个原始样本e1,e2,⋯ ,eme_1,e_2,cdots ,e_m划分到KK个类中,使得类内的间隔最小,即:

min∑j=1K∑i=1mwij∥ei−uj∥2minsum_{j=1}^{K}sum_{i=1}^{m}w_{ij}left|e_i-u_j right|^2

其中wijw_ij表示样本eie_i是否属于聚类jj,因此wij∈{0,1}w_{ij}in left{0,1 right}。聚类中心uju_j为:

uj=∑i=1mwijei∑i=1mwiju_j=frac{sum_{i=1}^{m}w_{ij}e_i}{sum_{i=1}^{m}w_{ij}}

与Dynamic Routing中的u→joverrightarrow{u}_j的更新有两点不一样,第一,计算wijw_{ij}的方式,第二是计算最后结果,在K-Means中是直接求平均,而在Dynamic Routing中,u→joverrightarrow{u}_j采用的是squash函数。

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

2.2.4. 动态兴趣个数

对于不同的用户,其兴趣的个数KK是不一样的,在参考[1]中给出了计算特定用户uu的兴趣个数Ku′K_{u}^{‘}

Ku′=max(1,min(K,log2(∣Iu∣)))K_{u}^{‘}=maxleft ( 1,minleft ( K,log _2left ( left|I_u right| right )right ) right )

2.3. Label-aware Attention Layer.

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

v→u=Attention(e→i,Vu,Vu)=Vusoftmax(pow(VuTe→i,p))overrightarrow{v}_u=Attentionleft ( overrightarrow{e}_i,V_u,V_u right )=V_usoftmaxleft ( powleft ( V_u^Toverrightarrow{e}_i,p right ) right )

其中,powpow表示的是指数函数,pp是一个调节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用户多兴趣网络

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

神经网络基础部件-BN层详解

2023-12-4 14:20:14

AI教程

探讨ChatGPT-4在不同领域中的应用和影响

2023-12-4 14:30:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索