论文阅读——SMLP4Rec An Efficient All-MLP Architecture for Sequential Recommendations

论文阅读——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=[xooC×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} W1RrS×SW2RS×rS 分别表示序列混合分支中的第一个和第二个全连接层的可学习权重, r S r_S rS是一个可调整的隐藏大小:
r S = α ⋅ S (3) r_S=\alpha ·S \tag 3 rS=αS(3)
α \alpha α称为扩展因子的整数超参数。

Feature-Mixing Branch: 和序列混合分支一样是MLP的板块,有相似的宏观架构。关键的不同是,特征混合分支是为了了解不同项目特征之间的相关性。特征混合分支的输入将表示为 x F = [ x o ∣ o ∈ S × C ] 和 x o = [ x 1 o , . . . , x f o , . . . , x F o ] x_F=[x^o|o\in S \times C] 和 x^o=[x_1^o,...,x^o_f,...,x^o_F] xF=[xooS×C]xo=[x1o,...,xfo,...,xFo] ,o表示序列维度以外的其他尺寸。形式上,我们将第 l l l 层序列混合分支的输出表示为 y F y_F yF 及其元素:
y o = W 4 g l ( W 3 x o ) (4) y^o = W^4g^l(W^3x^o) \tag 4 yo=W4gl(W3xo)(4)
g l g^l gl l l l层的非线性激活函数, W 3 ∈ R r F × F 和 W 4 ∈ R F × r F W^3 \in \Bbb R^{r_F\times F}和W^4 \in \Bbb R^{F\times r_F} W3RrF×FW4RF×rF 分别表示序列混合分支中的第一个和第二个全连接层的可学习权重, r F r_F rF是一个可调整的隐藏大小:
r F = α ⋅ F (5) r_F=\alpha ·F \tag 5 rF=αF(5)
Channel-Mixing Branch: 通道混合分支的目标是使用 MLP 结构来学习特征的嵌入向量内的相关性。通道混合分支的输入将表示为 x C = [ x o ∣ o ∈ F × S ] 和 x o = [ x 1 o , . . . , x c o , . . . , x C o ] x_C=[x^o|o\in F \times S] 和 x^o=[x_1^o,...,x^o_c,...,x^o_C] xC=[xooF×S]xo=[x1o,...,xco,...,xCo] ,o表示序列维度以外的其他尺寸。形式上,我们将第 l l l 层序列混合分支的输出表示为 y F y_F yF 及其元素:
y o = W 6 g l ( W 5 x o ) (6) y^o = W^6g^l(W^5x^o) \tag 6 yo=W6gl(W5xo)(6)
g l g^l gl l l l层的非线性激活函数, W 5 ∈ R r C × C 和 W 6 ∈ R C × r C W^5 \in \Bbb R^{r_C\times C}和W^6 \in \Bbb R^{C\times r_C} W5RrC×CW6RC×rC 分别表示序列混合分支中的第一个和第二个全连接层的可学习权重, r C r_C rC是一个可调整的隐藏大小:
r C = α ⋅ C (7) r_C=\alpha ·C \tag 7 rC=αC(7)
在这里插入图片描述
在这里插入图片描述

Information Fusion Operation. 最后,信息融合操作利用简单的加法将三个方面的信息聚合起来作为本层的输出。信息融合操作可表示为:
y f u s i o n = T r a n s ( y S ) + T r a n s ( y f ) + T r a n s ( y C ) (8) y_{fusion} = Trans(y_S)+Trans(y_f)+Trans(y_C) \tag 8 yfusion=Trans(yS)+Trans(yf)+Trans(yC)(8)
T r a n s ( ) Trans() Trans() 是转置操作,通过这些操作模型最终能够捕获推荐的跨维度信息。

Training. 采用交叉熵损失作为SMLP4Rec的损失函数:
L = − ∑ S n ∈ S e q ∑ s ∈ [ 1 , . . . , S ] [ l o g ( σ ( r i s , s ) ) + ∑ j ∉ S n l o g ( 1 − σ ( r i j , s ) ) ] (9) L = -\sum_{S_n \in Seq} \sum_{s \in [1,...,S]} [log(\sigma (r_{i_s},s))+\sum_{j\notin S_n}log(1-\sigma(r_{i_j},s))] \tag 9 L=SnSeqs[1,...,S][log(σ(ris,s))+j/Snlog(1σ(rij,s))](9)
其中 σ σ σ 降级 sigmoid 函数, r i s , s r_{{i_s},s} ris,s 是模型与真实项 i s i_s is的预测相似度, r i j , s r_{{i_j},s} rij,s 是与位置 s s s 处的采样项的预测相似度, j j j 是负采样项, S e q Seq Seq 是所有用户的集合交互序列。

Inference. 假设在时间步 t t t,我们希望预测下一个项目 i t + 1 i_{t+1} it+1,给定隐藏状态序列 H = h 1 , . . . , h S H = h_1,...,h_S H=h1,...,hS,其中 h S h_S hS i t + 1 i_{t+1} it+1 相关,我们可以计算 h S h_S hS 与所有候选项目之间的余弦相似度 E m E_m Em 通过点积如下:
r m , S = h S ⋅ E m T (10) r_{m,S} = h_S · E_m^T \tag{10} rm,S=hSEmT(10)
其中 m = 1 , . . . , M , E m ∈ R M × C m =1,...,M, E_m \in \Bbb R^{M×C} m=1,...,M,EmRM×C 是所有候选项目的项目嵌入, r m , S r_{m,S} rm,S 表示隐藏状态 S S S 与所有候选项目之间的相似度,顶部预测将根据其相似度进行排序方程。

2.7 Discussion

作者在这里主要总结了 MLP-Mixer、MLP4Rec、SMLP4Rec 和 SMLP 之间的比较,以进一步说明 MLP4Rec 和 SMLP4Rec 的增量改进,并解释为什么 SMLP4Rec 应具有上述结构。(这里不展开概括了,需要了解的可以直接看论文,这篇博客主要是记录一下模型的框架)


这篇论文和之前我发过的一篇MMMLP论文的阅读有相似之处,都是基于MLP用于顺序推荐算法的,这个模型是在作者先前提出的MLP4Rec模型的改进,文章提到的SMLP、MLP-Mixer模型在之后我应该也要再阅读一下。看了几篇论文下来大致能够了解MLP如何在推荐算法中运用并且怎么用。但是也要结合学习一下MLP模型,可以更方便我们理解。

  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值