MLP4Rec:用于序列推荐的纯MLP架构

Introduction

原文地址:https://arxiv.org/abs/2204.11510
发表会议:IJCAI-22

SRS要解决的问题:
精准地建模用户的时序行为对于推荐系统至关重要,最大的挑战是捕获用户对于item的动态序列模式,于是序列推荐系统孕育而生。

SRS的研究现状:
自注意力机制(self-attention)在序列推荐系统(SRS)表现出SOTA的性能,原因是它通过一种位置编码的方式,捕获用户-项目交互数据中的序列依赖关系。
其潜在危害:
现有的自注意力对序列和位置采用两种异构的数据类型,这样会破坏项目编码(item embedding)的底层语义信息。
self-attention的计算复杂度是序列长度的二次型,计算成本高额。
合并后的各个self-attention包含大量参数——>难以优化,且容易过拟合。

②现有的工作认为序列依赖关系只存在于项目编码中,忽略了可能存在于item特征中(比如商品的品牌、类别)。

新的解决方案:近年的MLP(MLP-Mixer, gMLP and resMLP [Tolstikhin et al., 2021; Liu et al., 2021; Touvron et al., 2021])由于其架构简单,线性计算复杂度,在计算机视觉任务中表现出具有竞争力的性能。也许能够替代自注意力机制。

运用MLP解决SRS问题的优势在于:
①对item输入的顺序敏感,避免使用位置编码而破坏底层语义。
②在每一个维度上用纯MLP块进行线性计算,具有明显低于自注意力机制的参数量。
但是现有MLP的双向混合器,在捕获item编码的顺序依赖关系的同时,再以naive的方式去合并item的特征。

Framework

现有MLP的改进——MLP4Rec

三方向信息融合方案:

①sequential:时序信息,比如在一个序列Sn上的序列依赖关系
②cross-channel(维度):在item编码下的用户的兴趣信息,这是因为一个item不同维度代表不同的语义信息
③cross-feature:特征间的相关性(品牌、类别)

(图1:现有MLP的双向混合模式和MLP4Rec的三向混合模式)
在这里插入图片描述
具体来说,MLP4Rec由L层组成,其中每一层都有相同的设置:一个序列混合器、一个通道混合器和一个特征混合器。所有L层共享相同的参数,以减少模型参数。每一层,首先对于每个特征,独立地应用序列混合器和通道混合器,最后再用一个特征混合器来学习所有特征之间的相关性。

变量定义

用户: U = u 1 , . . . , u n . . . , u N U = {u_1, ..., u_n..., u_N } U=u1,...,un...,uN
项目: I = i 1 , . . . , i m . . . , i M I = {i_1, ..., i_m..., i_M } I=i1,...,im...,iM
特征: Q = q 1 m , . . . , q k m , . . . q K m Q = {q^m_1 , ..., q^m_k , ...q^m_K} Q=q1m,...,qkm,...qKm q k m q^m_k qkm代表item m的第k个特征
序列: S n = i 1 , . . . , i t . . . , i s Sn = {i_1, ..., i_t..., i_s} Sn=i1,...,it...,is

整体框架介绍

(图中Transpose表示对方向的转置,即将列变成行,行变成列)
在这里插入图片描述

基础信息编码

我们采用一种常用的方法来构建项目ID的embedding和特征的embedding:学习编码查找表,将离散的项目标识符(即id)和显式特征(例如,类别和品牌)投射到维度为C的密集向量表达中。

经过Embedding Layer之后,将项目id和显式特征叠加到单独的embedding表中,其中embedding表的行是每个显式特征,embedding表的列代表通道信息。

将所有的Feature*Channel表堆在一起——>得到了第三个方向序列,这样一来三个方向的embedding表就诞生了。

Sequence-Mixer

序列混合器本质上是一个MLP块。

输入:每个item编码向量的第c维度下,从1到s的序列,即{ x 1 c , … x t c , … , x s c x^c_1,…x^c_t,…, x^c_s x1cxtcxsc}(改变顺序,固定通道,固定特征)
注意,每个x都有一个额外的方向:特征。
输出:一个与输入具有相同维度的embedding表。
在这里插入图片描述
那么这些序列显示了用户兴趣随着时间的变化,从而使混合器对顺序敏感。

形式上的混合器第l层输出表示为:
y t = x t + W 2 × g l ( W 1 L a y e r N o r m ( x t ) ) y_t = x_t + W^2\times g^l(W^1LayerNorm(x_t)) yt=xt+W2×gl(W1LayerNorm(xt))

t从1~s表示输入了s行向量,是g^l是l层的非线性激活函数
W 1 ∈ R r s × s W^1 ∈ R^{r_s×s} W1Rrs×s,序列混合器的第一个线性全连接层的可学习参数, r s r_s rs是序列混频器的每一层的神经元数量(超参数)。
W 2 ∈ R s × r s W^2 ∈ R^{s×r_s} W2Rs×rs,第二个全连接层的可学习参数。
同时用了归一化(LayerNorm)[Ba et al., 2016] 和残差连接[He等人,2016],如MLP-mixer [Tolstikhin et al., 2021]。

Channel-Mixer 跨通道混合器

与Sequence-Mixer大体相似,主要区别是Channel-Mixer 学习embedding向量内的相关性。
item的ID或特征的embedding通常表达了每个维度上的一些潜在语义,了解它们的表示方式和内部相关性对于推荐同样至关重要。

输入:将时间步骤为t的item编码的维度作为输入向量,即{ x t 1 , … x t c , … , x t C x^1_t,…x^c_t,…, x^C_t xt1xtcxtC}中每个x都是输入,x长度为特征的数量**(固定顺序,改变维度/通道,固定特征)**
每个x之间的相关性是跨通道的,它们共同表达了embedding编码的整体语义。

跨通道混合器第l层的输出:
y c = x c + W 4 × g l ( W 3 L a y e r N o r m ( x c ) ) y_c = x_c + W^4\times g^l(W^3LayerNorm(x_c)) yc=xc+W4×gl(W3LayerNorm(xc))
x c x_c xc是输入向量,它是时序t上的第c个维度。

Feature-Mixer 跨特征混合器

将学习特征关系这项任务放在最后一步的好处:由于feature-mixer是MLP4Rec中一层的最后一个MLP块,它不仅可以传递特征信息,还可以将每个特征之间的顺序依赖关系和跨通道依赖关系共享给其他特征,从而将三向信息连贯地连接起来。(其实改变顺序也没什么影响?)

输入:为item的第k个特征在其通道c处的编码向量,即{ x c 1 , … x c k , … , x c K x^1_c,…x^k_c,…, x^K_c xc1xckxcK}(固定顺序,固定通道,改变特征)

跨特征混合器第l层的输出:
y k = x k + W 6 × g l ( W 5 L a y e r N o r m ( x k ) ) y_k = x_k + W^6\times g^l(W^5LayerNorm(x_k)) yk=xk+W6×gl(W5LayerNorm(xk))

训练以及推测

交叉熵损失

L = − ∑ S n ∈ S ∑ t ∈ [ 1 , . . . , s ] [ l o g ( σ ( r i t , t ) ) + ∑ j n o t ∈ S n l o g ( 1 − σ ( r i j , t ) ) ] L = - \sum_{S_n∈S} \sum_{t∈[1,...,s]}[log(σ(r_{i_t,t})) +\sum_{j not∈Sn}log(1 − σ(r_{i_j,t}))] L=SnSt[1,...,s][log(σ(rit,t))+jnotSnlog(1σ(rij,t))]

σ:sigmoid激活函数
r i t , t r_{i_t,t} rit,t表示在当前时间序列t下模型预测出来的与真实的item i t i_t it之间的相似度。
r i j , t r_{i_j,t} rij,t模型预测出来的与随机采样的item i j i_j ij之间的相似度,j是负抽样的项。
(原文: r i t , t r_{i_t,t} rit,t is model’s predicted similarity to ground-truth item i t i_t it, and r i j , t r_{i_j,t} rij,t is the predicted similarity to sampled items at timestep t, j is the negative sampled items)
S表示所有用户交互的序列集合。

推出下一个item

经过共L层的三个混合器后,得到一个隐藏状态的序列,其中融合了每个交互的顺序依赖性,跨信道依赖性和跨特征依赖性。
假设在时间步骤t,我们希望预测下一项 i t + 1 i_{t+1} it+1,给定隐藏状态序列 H = h 1 , … , h t H = h_1,…, h_t H=h1ht,我们可以通过点积计算 h t h_t ht与所有候选项 E m E_m Em之间的余弦相似度为:
r m , t = h t ⋅ E m T r_{m,t} = h_t · E^T_m rm,t=htEmT

E m ∈ R M × C E_m ∈ R^{M×C} EmRM×C是所有M个候选item的embedding,这些item的通道为C个。
r m , t r_{m,t} rm,t 表示隐藏状态序列t与所有候选项的相似度,根据它们的相似度排列出靠前的预测item。

Experment

在这里插入图片描述
我们将两个数据集的最大序列长度设置为50,并对较短的序列进行尾部零填充。

SRS中常用的评价方法——即下一项预测。对于数据集拆分,预测任务使用交互序列中的最后一项作为测试集,倒数第二项作为验证集,其余的项将用作训练集。在常用的设置之后,我们在预测期间将100个负样本与真实项配对[Kang和McAuley, 2018]。

Metrics. 命中率(HR),归一化折现累积增益(NDCG),平均倒数排名(MRR)。

baselines:
PopRec, BPR [Rendle et al., 2009],
FPMC [Rendle et al., 2010],
GRU4Rec [Hidasi et al.,2015],
GRU4Rec+ [Hidasi et al.,2016],
SASRec and SASRec+ [Kang and McAuley, 2018],
BERT4Rec [Sun et al., 2019],
FDSA [Zhang et al., 2019],
MLP-Mixer+[Tolstikhin et al., 2021].
注意,上标“+”表示我们改进了原始模型,该模型将项目ID和特征的embedding连接作为输入,从而实现与MLP4Rec的公平比较。

比较结果
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mlp-mixer是一种全MLP架构用于视觉任务。它使用多层感知机(MLP)来代替传统的卷积神经网络(CNN)来处理图像。这种架构的优点是可以更好地处理不同尺度和方向的特征,同时减少了计算和内存消耗。它在许多视觉任务中表现出色,例如图像分类、目标检测和语义分割。 ### 回答2: mlp-mixer是一种全连接多层感知器(Multi-Layer Perceptron,MLP)网络架构用于视觉场景的图像分类任务。它是在自然语言处理领域中Transformer的启发下发展起来的。与CNN、ResNet等传统的卷积神经网络架构不同,mlp-mixer主要采用全连接层(FC)和MLP Block。 mlp-mixer架构设计的主要思想是将全局信息和本地信息分离,然后通过一系列由FC和MLP Block组成的混合层进行特征提取。在每个MLP Block中,特征向量会被分成多个部分进行局部特征提取,之后再全局汇聚。这样可以保证局部信息不会在多次卷积操作后丢失,并且全局信息的汇聚也是非常高效的。 另外,mlp-mixer架构中的Layer Norm和MLP Block中的GELU激活函数等技术也是有其特点的。Layer Norm是比Batch Norm更加具有一般性的归一化技术,可以提高模型对小批量数据的扩展性。而GELU激活函数在接近0处光滑,对精度保持了很好的提升。这些技术的运用让mlp-mixer模型具有了更好的稳定性和鲁棒性。 综上所述,mlp-mixer是一个全新的神经网络架构,其与传统的卷积神经网络的不同点在于摆脱了卷积操作,通过全连接层和MLP Block等模块提取图像特征。该模型有很强的泛化性,并且在图像分类任务上取得了不错的效果。它的优点在于良好的可扩展性和可解释性,且训练效果非常稳定。在未来,mlp-mixer模型或许有望在计算机视觉领域中取得更进一步的发展。 ### 回答3: MLP-Mixer是一种全MLP(多层感知器)的架构,可以应用于视觉任务中的图像分类和目标检测等任务。MLP-Mixer在CVPR 2021中被提出并于同年6月被公开发布。 传统的卷积神经网络(CNN)被广泛应用于计算机视觉领域。但是,随着计算机视觉任务的不断发展和增加,如何更好地处理不同类型和规模的数据集,成为了一个挑战。因此,MLP-Mixer尝试解决传统卷积神经网络中一些问题,例如参数共享、池化和批归一化等。 MLP-Mixer的主要思想是将传统的卷积操作替换为由若干密集连接层(全连接层)组成的mixing层。传统的卷积操作只考虑空间上的邻居关系,而mixing层考虑全局视角。mixing层通过对不同通道(channel)的信息进行交互,捕捉不同通道之间的全局相关性,提高了特征提取的效率和性能,同时降低卷积神经网络的复杂性。 此外,MLP-Mixer还引入了多层感知器池化层(MLP Pooling Layer)代替传统的最大池化层(Max Pooling Layer),使神经网络更加灵活和高效。MLP-Mixer考虑到了计算机视觉中不同尺度的特征信息,通过MLP池化层进行特征重组和降维,使得神经网络可以处理多尺度特征信息,提高特征提取的精度和速度。 总的来说,MLP-Mixer是一种全MLP架构,其独特的mixing层和MLP Pooling层相比传统的卷积神经网络有着更好的性能和可扩展性。未来,MLP-Mixer有望在计算机视觉领域的各种任务中得到广泛的应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值