标题: UniRec: A Dual Enhancement of Uniformity and Frequency in Sequential Recommendations 地址:https://arxiv.org/pdf/2406.18470 学校:复旦 代码:https://github.com/Linxi000/UniRec
本文主要关注序列推荐中的用户交互行为之间的时间间隔和item频率,以此来提升序列推荐模型的性能。时间间隔更均匀的序列和频率更高的item都能产生更好的预测性能。相反,非均匀序列加剧了用户兴趣漂移,并且由于样本稀疏,低频的item很难建模。本文提出了UniRec,利用序列均匀性和item频率来提高性能,改进非均匀序列和低频item的表征。考虑不同类型的序列对时间的依赖程度不同,采用多维时间建模将时间信息,时间间隔信息融入序列表征之中。
alt text
时间间隔方差较小的序列是更均匀的序列,并且基于时间方差阈值(超参数)将所有序列可以被分为两个子集:,分别表示均匀/不均匀。同时,item基于在交互序列中出现的频率分类两类分别表示在时间t这个item是高频还是低频。
对于每个均匀序列,生成相应的非均匀子序列模拟在真实场景中的不规则行为模式,从而增强对复杂用户行为建模的能力。生成方式:在中保留低频item,如果在序列中低频item的个数少于M(超参数)个,则再从中随机采样额外的高频item。可以表示为下式,
和对应emb为,然后经过编码器得到行为序列编码
然后使和的表征尽可能接近,以增强模型处理非均匀序列的时间动态的能力,从而通过生成模型(FFN)最小化:
采用课程学习策略:从简单到复杂。逐渐增加了训练样本的复杂性。最初主要从更均匀的序列中学习,随着训练的进行,不断引入具有更复杂的用户兴趣漂移的序列。由动态加权损失函数控制:
其中表示动态权重系数,e表示当前epoch,表示该损失函数起作用的epoch,表示总epoch。对于每个均匀序列,时间间隔的方差为。是所有序列中时间间隔方差的最大值,同理。
生成的主要由低频item组成,并且再非均匀序列中也主要是低频item,因此增强模型在低频item上的性能是很重要的。本节从两个方面来增强item表达:候选邻居生成和表征聚合
其中,和是常数,根据数据集的具体情况而定。在每个batch训练时,从邻居集合中随机采样K个邻居,其中K是超参数。
将聚合的emb和拼接得到,这部分是总体的,细化到低频和高频的item邻居信息上有一定差异
为了使低频item能够更好地利用邻居item的信息,将高频item学习到的邻居聚合信息迁移到低频item。高频item的emb为,聚合了邻居信息的emb表示为,高频item的聚合训练如下,L2来约束聚合前后的信息,其中为全连接层,w还是一样是用于课程学习的权重(在训练初期,高频item优先训练,在后期逐渐转向低频的item),F表示的是item在交互中出现的频率分。
最后,通过最小化以下损失,在训练的某个epoch之后更新所有低频item的emb,这里的是已经经过次高频item训练的全连接层。
均匀序列对时间的依赖性较低,而需要非均匀序列需要更丰富的时间细节,本节提出了一个多维时间建模模块。
对于每个序列,对应的时间戳序列定义为。相应的时间间隔序列定义为,。由emb矩阵编码,得到时间间隔的emb。对于时间上下文建模,使用基于时间表征学习的自注意机制,并分别对年、月和日等时间信息进行建模。通过线性层聚合这些信息,以形成每个交互i的最终时间上下文emb 。对于每个序列,可以获得item序列emb,时间上下文表示,时间间隔emb,0表示1×d的零向量。
正如前面所说,不同类型的序列需要不同水平的时间信息,本节使用混合注意力机制分别将与和积分,将会时间信息融入序列中。这作为序列编码器(就是序列增强中用到的编码器)。以混合注意力在和上的应用为例,同理也可以得到考虑时间间隔的处理方式。
参考这篇文章https://mp.weixin.qq.com/s/hBHYfJVnyoAhV1Xw04N5rg, H_j由计算得到,是注意力分数矩阵,结合高斯分布来混合两种类型的输入数据。。非负混合权重(和为1),表示每个上下文类型的贡献。是输入经过权重来投影后的输出。高斯分布的方差参数为σ2,I为单位矩阵。损失函数如下,
其中,是FFL的输出也就是序列的表征,,拼接item的emb和时间的emb。