论文阅读——SMLP4Rec: An Efficient All-MLP Architecture for Sequential Recommendations
SMLP4Rec:用于顺序推荐的高效全 MLP 架构
摘要
自注意力模型通过捕获用户-项目交互之间的顺序依赖关系,在顺序推荐系统中实现了最先进的性能。然而,它们依赖于向项目序列添加位置嵌入来保留顺序信息,由于这两种类型的嵌入之间的异质性,这可能会破坏项目嵌入的语义。此外,大多数现有工作假设此类依赖关系仅存在于项目嵌入中,但忽略了它们在项目特征中的存在。在我们之前的研究中,我们基于 MLP-Mixer 架构的最新进展,提出了一种新颖的顺序推荐模型,即 MLP4Rec,该模型对序列中项目的顺序自然敏感,因为矩阵元素与序列的不同位置相关在训练中会被赋予不同的权重。我们开发了一种三向融合方案,能够以线性计算复杂度连贯地捕获顺序、跨通道和跨特征相关性,并且比现有的自注意力方法少得多的模型参数。然而,级联混频器结构、不同混频器层之间的大量归一化层以及这些操作产生的噪声限制了信息提取的效率和MLP4Rec的有效性。在这个扩展版本中,我们提出了一个新颖的框架——SMLP4Rec,用于顺序推荐来解决上述问题。新框架将有缺陷的级联结构改为并行模式,并集成归一化层,以最大限度地减少其对模型效率的影响,同时最大限度地提高其有效性。因此,与 MLP4Rec 相比,SMLP4Rec 的训练速度和预测精度大大提高。大量的实验结果表明,所提出的方法明显优于最先进的方法。实现代码可在线获取,以简化重现性。
1 INTRODUCTION
介绍了自注意力机制在顺序推荐中的重要作用。
一些挑战:首先 ,由于常用的项目表示无法在加权和运算中提供项目的位置信息,自注意力及其同源方法对输入项目的顺序不敏感,因此依赖于额外的过程,例如添加位置信息嵌入到输入序列中,使模型了解序列顺序中包含的信息。然而,现有的自注意力方法结合了来自两种异构数据类型的项目序列和位置嵌入,可能会中断项目嵌入的底层语义[47]。其次 ,自注意力的时间复杂度与输入项目序列的长度成二次方,与大规模推荐系统中基于 RNN/LSTM 的 SRS 相比,这增加了不可忽视的计算成本。第三 ,在推荐系统中加入自注意力通常会导致大量的模型参数,这可能会导致模型优化的瓶颈并增加过度拟合的机会。
作者在之前的研究中提出了MLP4Rec
模型[1],首先,MLP4Rec 在设计上对输入项序列的顺序敏感,避免了使用位置嵌入造成的瓶颈。其次,在纯 MLP 模块上,MLP4Rec 具有线性计算复杂性,并且比那些基于自注意力的 SRS 模型显着减少模型参数数量。
[1] Muyang Li, Xiangyu Zhao, Chuan Lyu, Minghao Zhao, Runze Wu, and Ruocheng Guo. 2022. MLP4Rec: A pure MLP architecture for sequential recommendations. In Proceedings of the IJCAI.
作者为 MLP4Rec 设计了一种具有跨特征混合器的新型三向信息融合方案,该方案使框架能够捕获不同项目嵌入通道的所有特征之间的复杂交互。
这里还介绍了MLP4Rec的问题从而引出SMLP4Rec,并介绍了如何解决。(详细看论文第三页)
贡献:
- 作者研究了用简单的 MLP 架构替换自注意力机制以进行顺序推荐的可能性。
- 据作者所知,提出的 MLP4Rec 模型是第一个提出三向混合 MLP 架构的工作。在本文中,为了训练加速和性能增强,提出了一种优越的模型 SMLP4Rec。
- 作者提出的框架 SMLP4Rec 的性能和效率改进通过对三个基准数据集的大量实验进行了验证。
2 FRAMEWORK
2.3 Extension: SMLP4Rec Framework
MLP4Rec的限制: (1)最重要的一个限制是它的联级结构是序列混合器、通道混合器、特征混合器。下一个混合器会被前一个混合器的信息所影响,可能不能够独立聚合自身维度的重要信息,可能会导致使用维度内(外)的无效信息。(2)每一个混合器的大量的归一化操作,不仅降低了模型的训练效率还降低了其性能。
SMLP4Rec架构: 嵌入层和输出层和MLP4Rec是完全一样的,SMLP4Rec也由L个主要操作层和几个混合模块组成,下面详细描述其中的操作。
潜入层: 学习嵌入查找表以将离散项目标识符(即 ID)和显式特征(例如类别和品牌)投影为维度为 C 的密集向量表示。嵌入表的行是总共具有F个特征的嵌入向量;列包含通道信息长度C,将序列S项的所有嵌入表堆叠在一起(高)。组成一个3-d嵌入表。
归一化操作: 在MLP4Rec的主要操作层中,对序列和特征混合器的归一化操作可能会导致训练效率变慢以及填充信息引起的过多的维度间干扰。因此,在SMLP4Rec中,归一化操作仅应用于信息提取操作中混合模块之前的通道嵌入维度。这还提供了更好的数据分布来表示不同项目中不同特征的隐藏信息,因为不同维度上的频繁归一化可能会累积增加其他维度上的噪声。具体来说,归一化操作可以表示为
x n = L a y e r N o r m ( x ) (1) x_n=LayerNorm(x) \tag 1 xn=LayerNorm(x)(1)
x x x表示模型的输入, x n x_n xn表示归一化操作后的输出,也是信息提取操作的输入.
信息提取操作: 受到 SMLP [2] 稀疏 MLP 结构和 MLP4Rec 用于信息提取的混合器结构的启发,该信息提取操作块旨在同时捕获输入矩阵中的序列、特征和通道特征之间的内部关系。具体来说,序列、特征和通道信息对应于输入矩阵的不同维度,这种结构旨在通过其三个分支帮助模型理解相应维度内不同位置的数据相关性。
[2] Chuanxin Tang, Yucheng Zhao, Guangting Wang, Chong Luo, Wenxuan Xie, and Wenjun Zeng. 2022. Sparse MLP for image recognition: Is self-attention really necessary?. In Proceedings of the AAAI.
Sequence-Mixing Branch: 序列混合分支的目的是了解整个项目序列的顺序依赖关系。序列混合分支的输入将表示为 x s = [ x o ∣ o ∈ C × F ] 和 x o = [ x 1 o , . . . , x s o , . . . , x S o ] x_s=[x^o|o\in C \times F] 和 x^o=[x_1^o,...,x^o_s,...,x^o_S] xs=[xo∣o∈C×F]和xo=[x1o,...,xso,...,xSo] ,o表示序列维度以外的其他尺寸。形式上,我们将第 l l l 层序列混合分支的输出表示为 y S y_S yS 及其元素:
y o = W 2 g l ( W 1 x o ) (2) y^o = W^2g^l(W^1x^o) \tag 2 yo=W2gl(W1xo)(2)
g l g^l gl 是 l l l层的非线性激活函数, W 1 ∈ R r S × S 和 W 2 ∈ R S × r S W^1 \in \Bbb R^{r_S\times S}和W^2 \in \Bbb R^{S\times r_S} W1∈R