首发于智者见能
论文解读系列第二篇:SDM 2020基于多重记忆网络的推荐算法

论文解读系列第二篇:SDM 2020基于多重记忆网络的推荐算法

论文:Multiplex Memory Network for Collaborative Filtering

作者:Xunqiang Jiang, Binbin Hu, Yuan Fang, Chuan Shi

前言

在各种在线服务中,推荐系统在帮助用户在大型资源集中发现感兴趣的商品方面起着重要的作用。虽然目前基于深度神经网络的协同过滤方法在推荐系统中已经取得了很好的效果,但仍存在一些不足之处。最重要的是,这种深度方法通常只关注用户和商品之间的直接交互,而不显式地建模高阶共现的上下文。此外,这些方法对观测到的数据进行平等的处理,在用户-商品交互和高阶共现上下文中没有考虑细粒度的重要性或相关性差别。受近年的记忆网络的启发,该论文提出一种新型的基于多重记忆网路的推荐算法——MMCF。具体地说,MMCF利用一个多重记忆层(包含一个交互记忆层和两个共现的上下文记忆层)在用户-商品交互和共现上下文中共同捕获和定位重要的(相关的)信息。最后,在四个数据集进行了广泛的实验,结果表明,该模型与一系列最先进的方法相比表现出了更优越的性能。

深度推荐模型及其不足

深度推荐模型。由于具有对非线性函数的建模能力,深度神经网络在计算机视觉和自然语言处理等许多研究领域都取得了很好的性能。因此很多研究者将深度模型引入到推荐系统中来建模用户和商品交互过程中复杂的非线性转换。这些方法大致可以分为两类,第一类是用非线性神经网络代替传统的内积来建模更复杂的预测函数,代表的方法有NCF和DMF。另外,最近的研究进一步利用随机游走来增强用户和商品的交互,最终训练出更有效的深度模型。第二类方法则是扩展传统的矩阵分解模型,利用深度模型来学习辅助信息(如文本和视频)的深度表征,并融入到矩阵分解中进行推荐。

图1 MMCF与之前方法的对比

当前深度推荐模型的不足。考虑图1(a)的这个场景:给定用户u3,该用户已经买了照相机(i2),钢笔(i3)和书(i4),我们的推荐系统现在要预测该用户接下来会不会买记忆卡(i1)。

当前深度推荐模型(如图1(b)所示)的第一个不足是这些方法在进行推荐时主要考虑用户和商品的直接交互,而忽略用户与物品之间高阶的共现上下文。图1(a2)展示了用户u1和用户u2之间的co-purchase上下文,因为他们共同购买了照相机(i2),而图1(a3)展示了记忆卡(i1)和照相机(i2)之间的co-purchase上下文,因为它们都被用户u1所购买。这种高阶上下文在稀疏数据集中尤其重要,可以更加精准地刻画用户和商品的特征。另一方面,这些方法对观测到的数据(即用户和商品的交互以及用户和商品各自的高阶上下文)进行平等的处理,没有对它们的基础偏好或重要性进行细粒度的区分。一般来说,在不同的交互行为中,用户的行为会受各方面因素的影响,而这些因此对用户偏好的影响往往不同。 如图1(c)所示,在给定记忆卡(i1)的情况下,与钢笔(i3)相比,具有co-purchase上下文关系的照相机(i2)是更重要的上下文,因为记忆卡与照相机在本质上是互补的。类似的场景也存在于用户的同现上下文中。因此,在用户-商品之间的交互和共现上下文中,需要一个细粒度的模型,它允许不同的偏好和上下文得到不同的关注。

推荐系统中的多重记忆网络

MMCF。为了克服现有工作的局限,该论文提出了一个新的框架MMCF,基于多重记忆网络的推荐算法。MMCF利用多重记忆网络在同一个框架中同时捕获用户-商品交互和共现上下文的信息。更具体地说,多重记忆层由一个交互记忆层和两个共现上下文记忆层组成。其中两个共现上下文记忆层分别对用户-用户和商品-商品的上下文进行建模。此外,对于每一种类型的记忆,都使用了一种注意机制来定位记忆槽中重要的或相关的信息。

图2 MMCF模型的整体框架

MMCF模型的整体框架如下图所示,在图2(a)中,为用户和商品设置了初始表示层,将用户的one-hot编码映射到低维的向量空间中。之后,提出了一个多重记忆层来联合建模用户-商品交互和共现上下文,如图2(b)所示。与现有的基于记忆网络的推荐算法不同,它可以同时编码多种类型的记忆:一个用户-商品交互的交互记忆(IM)子层和用户-用户和商品-商品上下文的共现上下文记忆(CCM)子层。注意力机制进一步被用于细粒度的建模——IM权衡用户-商品交互的各种基础篇好,而CCM定位重要的和相关的用户或商品上下文。此外,图2(c)将多重记忆层进行堆叠,以对更复杂的交互和共现上下文进行建模。

交互记忆(IM)子层。由于每个用户-商品交互都由许多潜在的偏好支持,因此利用基于注意力的记忆网络来捕获这种细粒度交互。特别地,该论文提出交互记忆(IM)子层来衡量每个用户-商品交互中潜在偏好的重要性。具体地说,该交互记忆子层会存储一个键值矩阵K和一个记忆矩阵M,分别来刻画K个用户和商品交互的隐层因子。对于一个用户和商品的联合表示zui,IM子层通过如下的方式生成输出表示。

共现上下文记忆(CCM)子层。除了上述的用户-商品交互之外,考虑高阶共现上下文也很重要,及用户-用户和商品-商品之间的上下文,特别是在稀疏的数据集中。为了对上述共现上下文进行建模,该论文提出了共现上下文记忆(CCM)子层。类似于IM子层,CCM子层通过如下形式进行输出(以商品的CCM子层为例)。

不同于IM子层的是,CCM子层中的记忆矩阵存储的是用户或者商品的共现上下文邻居。

为了建模更加复杂的交互,IM子层和CCM子层分别按如下的形式进行堆叠。

该论文在Movielens,Delicioud,Ciao和BookCross四个数据集上进行了实验,实验数据集如下所示。

MMCF模型和基线的实验结果如下所示,论文所提出的MMCF在大多数情况下都能达到最佳的性能。

其次来看一下记忆个数对推荐性能的影响

可以发现,提出的MMCF模型在稠密的数据集可以受益于更多的记忆个数,而在稀疏数据集上较少的记忆个数就已经足够了。

接下来,该论文探索了不同的记忆层数对推荐性能的影响,如下所示。

结果表明,堆叠多个记忆层可以更好地建模复杂的交互,从而实现更好的推荐性能。然而,由于过拟合的影响,过多的记忆层并不总能带来性能改进。

接下来分析了共现上下文的影响,如下所示。

结果表明了融合和区分对待不同共现上下文的必要性。可以发现在Delicious上,只用用户的上下文就可以达到最优效果,原因可能为该数据集上的商品分布不符合幂律分布,如下所示。

最后,该论文可视化了注意力值的分布。

随着堆叠层数的提高,IM的注意力会变得更加集中。同时,图6(b) Item co-occurrence memory中的每个单元表示同一类型电影在i1082电影共现情境下的平均注意权重,论文展示了10个最相关的类型。观察到,类型“戏剧”在项目CCM的三跳之后获得了最高的权重,这是很直观的,因为电影i1082也属于同一类型,这表明CCM可以捕获最相关的上下文。

结语

该论文设计的主要技术为记忆网络和推荐系统。实际中的推荐系统往往不能只考虑用户和商品的直接交互,并且要关注与用户的历史交互信息,以及商品的额外信息。所以如何更好地建模这些高阶格外信息,从而对推荐性能产生更好的提升是该论文研究的重点。进一步,不同的上下文信息在带来提升的同时,也为推荐系统引入了噪音,因而好的推荐模型需要鉴别有利的信息,过滤噪音,产生更加鲁棒的推荐结果。

参考文献

[1] Travis Ebesu, Bin Shen, and Yi Fang. 2018. Collaborative memory network for recommendation systems. In SIGIR. 515–524.

[2] Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, and Tat-Seng Chua. 2017. Neural collaborative filtering. In WWW. 173–182.

[3] Alexander Miller, Adam Fisch, Jesse Dodge, Amir-Hossein Karimi, Antoine Bordes, and Jason Weston. 2016. Key-Value Memory Networks for Directly Reading Documents. In EMNLP. 1400–1409

[4] Athanasios N Nikolakopoulos and George Karypis. 2019. Recwalk: Nearly uncoupled random walks for top-n recommendation. In WSDM. 150–158.

[5] Hong-Jian Xue, Xinyu Dai, Jianbing Zhang, Shujian Huang, and Jiajun Chen. 2017. Deep Matrix Factorization Models for Recommender Systems.. In IJCAI. 3203–3209.

编辑于 03-06

文章被以下专栏收录