推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

终于写到100篇了,算是一个小里程碑,但绝不是终点!后面还会有200、300....,希望大家能够一直关注本专栏以及公众号“小小挖掘机”,小编会继续加油的!

今天介绍的是阿里在CIKM20上发表的一篇文章,算是与DIN、DIEN一脉相承的一篇文章吧,论文提出了深度多兴趣网络来提升点击率预估的效果,文章标题为《Deep Multi-Interest Network for Click-through Rate Prediction》,论文下载地址为:https://dl.acm.org/doi/pdf/10.1145/3340531.3412092。

1、背景

阿里对于从用户历史行为序列中抽取用户兴趣的研究有很多,比如DIN,首次提出使用attention机制建模用户历史行为序列中item和目标item的相关性,来抽取对应的用户兴趣,但其忽略了行为之间发生的先后顺序;DIEN使用GRU单元,来建模用户兴趣的演进过程;DSIN将用户行为切分成不同的session,使用自注意力机制建模不同session中的多样兴趣。

用户在一个时间点的兴趣是多样的,本文进一步提出了深度多兴趣网络(Deep Multi-Interest Network 、以下简称DMIN)来提取用户多样化的兴趣。一起来看一下。

2、DMIN介绍

DMIN的整体架构如下:

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

可以看到,主要分为Embedding layer、Behavior Refiner Layer 和Multi-Interest Extractor Layer。接下来对这几部分分别进行介绍。

2.1 Embedding layer

网络输入的特征主要包括四部分,用户画像特征、用户历史行为特征,上下文特征和目标item特征。每一个特征可以表示成一个one-hot向量,并通过embedding层转换成对应的embedding向量。

转换后,用户画像特征、用户历史行为特征,上下文特征和目标item特征分别用xu,xb,xc,xt表示,其中xb={e1,e2,...,eT}。

2.2 Behavior Refiner Layer

接下来,通过multi-head attention对用户历史行为序列表示进行提炼(refine这里暂且翻译为提炼,个人感觉可以理解为对item对应的兴趣进行初步提取)。计算如下:

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

另外,受DIEN的启发,论文还在这里加入了辅助loss,使用t时刻得到的向量zt,去预测t+1时刻用户的行为et+1,方式跟DIEN类似,也需要进行一定的负采样。

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

2.3 Multi-Interest Extractor Layer

接下来就是对用户多兴趣的抽取,首先是一层multi-head self-attention,假设head的数量是HE,那么行为序列中每一个item在每一个head中,都有一个对应的向量,共有HE个。

接下来,对于每一个head,都计算得到一个用户的兴趣表示,共计HE 个,其中第h个兴趣计算如下:

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

其中,Ijh代表第h个head中,第j个item的向量表示,pj代表第j个item的position encoding,xt代表target item的向量表示,可以看到,计算过程与DIN类似,只是在DIN的基础上,对行为序列中的每一个item增加了对应的position encoding,将行为序列发生的时间因素考虑了进去。position encoding的计算,从前几篇阿里论文的经验来看,应该是行为发生时间距当前时间的时间差离散化后的结果。

2.4 MLP层及损失函数

接下来,将得到的HE个兴趣向量表示、用户画像向量表示、上下文向量表示以及target item向量表示进行拼接,输入到多层全连接神经网络中,得到最终的输出,损失函数包含两部分,分别是logloss以及上文提到的辅助损失:

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

3、实验结果

最后简单看下实验结果,本文提出的DMIN模型,无论是在公开数据集还是阿里内部数据集上,都取得了不错的离线实验效果:

推荐系统遇上深度学习(一零零)-[阿里]深度多兴趣网络DMIN

好了,本文就到这里了,感兴趣的小伙伴可以找到原文进行阅读哟~~