ICDE 2024 | 序列推荐的自增强序列去噪框架SSDRec

文摘   其他   2024-03-26 09:02   广东  

记得给 “应用机器学习” 添加星标,收取最新干货


作者:香港城市大学, 哈尔滨工程大学 张持

今天跟大家分享一篇来自于哈尔滨工程大学、香港城市大学、山东大学提出的序列推荐文章,已被ICDE 2024会议录用。该文章从一种全新的角度,即如何缓解由于单一序列信息有限所导致的过降噪和欠降噪问题(OUPs),研究序列推荐中的序列去噪问题。具体地,该文设计了一种全新的SSDRec框架在序列去噪之前显式地施行序列增强,缓解OUPs并提升推荐性能。


论文地址:https://arxiv.org/html/2403.04278v1

代码:https://github.com/zc-97/SSDRec

在序列推荐场景中,用户的交互序列可能含有噪声项(如意外交互),这会妨碍模型准确学习用户的真实偏好,并影响推荐性能。虽然现有的序列去噪方法能移除部分噪声项以生成去噪序列,但这种方法在识别噪声时依赖于学习序列信息。在单一的原始序列中(尤其是短期序列),可供学习的信息有限,且缺少用于准确标识噪声项的监督标签。这可能导致显式去噪方法产生不稳定的结果,并引发过去噪和欠去噪问题(over-denoising and under-denoising problems,简称OUPs)。

如上图所示,在ML-100K数据集上,作者通过在原始序列中(过滤掉评分小于3的项目)随机插入不同数量的用户未交互过的项目(5,10,15,20)来模拟噪声,并将这些扰动过的序列输入到不同的序列去噪方法中,以此验证过度去噪和欠去噪问题(OUPs)的存在。他们通过计算插入的噪声项目中有多少被错误地保留,以及原始序列中的项目有多少被错误地删除,来衡量欠去噪率和过去噪率。研究结果显示,两种最新的序列去噪方法(HSD和STEAM)都存在OUPs的问题。

为了缓解过度去噪和欠去噪问题(OUPs),作者提出了一种自增强方法,通过在去噪前显式地插入项目来丰富序列信息。然而,单一序列中的交互相比于整个项目集是有限的,若无额外特征指导,选择合适的项目变得困难。另外,随着问题规模(即序列长度)增大,插入项目的复杂性亦随之增加,因而在序列的每个位置插入项目是不现实的。这就带来了两个独特的技术挑战:(1)选择哪些项目进行插入?以及(2)在目标序列的哪些位置进行插入?

针对上述挑战,作者设计了一种新颖的SSDRec框架,采用三阶段学习范式。具体地:

①第一阶段,设计了一个全局关系编码器,以数据驱动的方式学习用户和项目之间的多方面关系。这些关系作为跨序列的先验知识,指导后续阶段。

②第二阶段,提出了一个自增强模块,包括一个位置选择器和一个项目选择器,选择合适的位置和项目来生成增强序列。此模块旨在优化去噪过程,避免过度复杂化。

③第三阶段,采用了一个分层去噪模块来识别所有潜在的噪声。该模块首先过滤掉第二阶段引入的错误增强项,细化增强序列,然后逐步锁定目标序列中的潜在噪声,提高去噪可靠性。

为展示SSDRec对缓解OUPs以及推荐的影响,作者提供了一个案例研究,如下图所示。在ML-100K数据集上,对于用户ID 164的交互序列,作者展示了其最近六项交互。与HSD方法相比,SSDRec通过在序列中插入项目ID 433和251,避免了将项目ID 552错误地识别为噪声,同时正确地识别出项目ID 5和625为噪声,从而缓解了过去噪和欠去噪的问题。对于用户实际的下一项ID 207,原始序列与增强序列的得分非常接近(-0.96对-0.95),表明增强序列并未显著地改变原始序列语义。而经过SSDRec去噪后的得分显著高于HSD处理后的得分(0.89对0.56),这说明SSDRec生成的序列可以更准确地反映用户的真实偏好

方法

SSDRec框架的组件

  • ① 多关系图的构建;(第一阶段)

  • ② 嵌入层;

  • ③ 全局关系编码器;

  • ④ 自增强模块;(第二阶段)

  • ⑤ 分层去噪模块;(第三阶段)

  • ⑥ 序列推荐。具体如下图所示:

1 多关系图结构:学习用户与项目的复杂模式、提供先验信息

如下图所示,作者构建了一种包含两类节点,五类关系的多关系图。

  • 用户-项目交互关系(无向):如图3(a)所示,用户交互过某一项目,则图中有一条该用户与项目之间的无向边。边的权重为该用户交互此项目的次数。

  • 项目转换关系 (有向):如图3(b)所示,至少一位用户顺序地交互过两个项目,则图中有一条由项目指向项目的有向边。边的权重为,其中记录的是两个项目在某一序列中的距离,的长度。

  • 项目不兼容关系关系 (无向):如图3(c)所示,如果不为转换关系,且这两个项目有一个非空的公共的转换关系项目集合,其中 ,则图中有一条之间的无向边。边的权重为

  • 用户相似关系(无向):如图3(d)所示,如果用户交互过相同的项目,则图中有一条用户之间的无向边。边的权重为

  • 用户不相似关系(无向):如图3(e)所示,如果不是为相似关系,且这两个用户有一个非空的公共的相似关系用户集合,其中,则图中有一条之间的无向边。边的权重为

2 嵌入层:将ID独热编码映射为稠密向量

分别表示项目以及用户的嵌入。

3 全局关系编码器:从多关系图中挖掘复杂模式

该部分由5个编码层所组成,用于独立地从构建的多关系图中学习项目、嵌入的表征:

  • 项目转换关系编码层通过为入边和出边分配不同的权重,学习有向的项目转换关系表征

    其中是步长为1卷积核为的卷积操作,是拼接操作, 是可训练参数.

  • 项目不兼容关系编码层:聚合不兼容关系,学习项目不兼容关系表征

  • 用户-项目交互关系编码层:学习用户-项目交互行为,生成用户表征和项目表征

    在该层中,作者使用了基于LightGCN的聚合方式实现用户-项目交互关系的消息传递。

  • 用户相似关系编码层:学习用户相似关系表征

  • 用户不相似关系编码层:学习用户不相似关系表征

  • 关系融合层:融合不同的项目关系、用户关系生成最终的多关系项目表征与用户表征

4 自增强模块:选择目标序列中的位置、选择待插入项目、生成增强序列

作者设计了一个位置选择器和一个项目选择器,用于选择序列中插入项目的位置和待插入的项目。

  • 位置选择器:选择目标序列中插入项目的一个位置

    该选择器包括一个序列性判别器和一个相似性判别器,用以确定目标序列中一个需要插入项目的位置

    序列性判别器:判别目标序列中项目序列性的不一致分数

    ② 相似性判别器:判别目标序列中项目相似性的不一致分数

    根据上述两个判别器得到的不一致分数,生成序列中待插入位置的分布,并通过Gumbel-softmax得到0-1分布硬编码

  • 项目选择器:选择插入序列位置的两个项目

    作者向目标序列位置的前后分别插入项目(表征)

  • 生成增强序列:

5 分层去噪模块:过滤不可靠的增强、识别序列中所有潜在噪声、生成去噪序列

为了过滤SSDRec第二阶段(增强序列)可能引入的额外噪声,作者设计了一个分层去噪模块,逐渐地修正增强序列并剔除序列中所有的噪声。

其中是SSDRec第二阶段的位置选择器,用于判别插入的项目是否为噪声,为任一显式序列降噪模型,用于识别并剔除序列中所有的噪声,生成去噪序列。

6 序列推荐:生成序列表征用于推荐下一项

其中为任一深度序列推荐模型,根据最终的去噪序列学习表征并推荐下一项。

实验

作者在实验部分主要回答六个研究问题:

  • ① SSDRec是否适用于主流序列推荐模型;

  • ② SSDRec是否优于最新的序列去噪方法;

  • ③ SSDRec不同阶段对最终推荐性能的贡献;

  • ④ SSDRec的效率;

  • ⑤ SSDRec的可解释性;

  • ⑥ SSDRec对超参数的敏感性;

1 数据集

评估指标:HR@{5,10,20}, NDCG@{5,10,20},MRR@20

2 对比实验

对比方法:

  • ① 序列推荐方法:GRU4RecCaserNARMSTAMPSASRecBERT4Rec

  • ② 隐式序列去噪方法:FMLP-Rec

  • ③ 显式序列去噪方法:DSAN, HSDSTEAM

  • ③ 序列去偏方法:DCRec

3 消融实验

4 模型效率实验

5 案例研究

6 超参实验

最后,作者研究了在不同数据集上,用于Gumbel-softmax的温控系数对于性能的影响


同时欢迎关注我们的知乎账号:应用机器学习
(https://www.zhihu.com/people/aml_cityu)


应用机器学习
介绍机器学习最近技术进展和资讯
 最新文章