查看原文
其他

SSLRec:统一的自监督推荐算法库

让你更懂AI PaperWeekly 2024-01-16


论文链接:
https://arxiv.org/pdf/2308.05697.pdf

论文代码:

https://github.com/HKUDS/SSLRec

TLDR


我们搭建了 SSLRec,一个统一的自监督推荐算法库。SSLRec 提供了一个标准化、灵活和全面的框架,用于整合不同场景下的推荐算法,并推动新算法的设计。




研究背景


推荐系统在应对信息过载和提升用户体验方面变得不可或缺。近年来,深度学习技术取得了显著的成功,并广泛应用于提升推荐系统的性能。然而,现有方法的有效性受到高质量监督标签的可用性的限制,特别是在推荐系统中,大量的物品可能导致用户交互稀疏,对许多长尾用户和物品缺乏足够的训练标签。此外,用户行为数据中的噪声,如交互噪声和流行度偏差,是一个普遍存在的挑战,严重影响模型的鲁棒性,导致推荐性能下降。


为了应对从稀疏和嘈杂数据中学习的推荐系统的需求,自监督学习(SSL)方法应运而生,并在减少对观察到的监督标签的依赖方面取得了有希望的结果。然而,许多 SSL 推荐系统缺乏公开的实现,即使有开源代码,不同开发者和设置之间在实现细节(如数据格式、参数调整方法和模型训练策略)上的不一致性使得公平比较各种算法的有效性变得具有挑战性。这种不一致性阻碍了推荐领域的进展。


为了解决这一问题,我们创建了 SSLRec,该框架提供了一个标准化、灵活和全面的平台,用于比较不同的自监督推荐系统的性能。我们的框架有以下几个特点:


  • 灵活的模块化架构:SSLRec 基于模块化构建,使用户能够轻松定制和组合模块,创建个性化推荐模型。

  • 多样化的推荐场景:SSLRec 旨在满足各种推荐场景的需求,其关注多个方面来理解用户偏好,包括基于图的协同关系学习、顺序推荐等等。

  • 全面的最新模型:SSLRec 包含了各种最新的自监督推荐算法,为研究人员提供了一个全面且易于使用的平台,用于开发新模型。

  • 统一的数据处理与测试评估:SSLRec 提供了统一的数据处理过程和标准化的测试评估,确保能够以可靠和高效的方式评估和比较SSL推荐系统。

  • 丰富的实用功能函数:SSLRec 提供了大量工具类函数,简化了推荐模型的开发和评估过程,使得研究人员可以专注于开发创新算法。

  • 易于使用的接口:SSLRec 提供了一个易于使用的接口,简化了训练和评估推荐模型的过程,促进了与不同推荐系统的快速和高效的实验。




框架设计

目前,SSLRec 涵盖有以下几个推荐场景:协同过滤(General Collaborative Filtering)、序列化推荐(Sequential Recommendation)、社交推荐(Social Recommendation)、基于知识图谱的推荐(Knowledge Graph-enhanced Recommendation)和多行为推荐(Multi-behavior Recommendation)。


一般来说推荐算法含有预测函数 ,从而对用户 和商品 基于已有观测数据 计算一个推荐值 ,从而将其向真实值 进行优化:
在基于自监督的推荐算法中,其常常引入一个额外的自监督损失函数 ,使得算法还需优化如下目标:

其中 表示增强(augmentation)函数,其本质思想就是基于不同增强后的数据进行自监督损失函数设计,例如在基于对比学习的自监督方法中会进行不同视角的拉近推远,基于生成式自监督学习中会进行重构,亦或者在预测式的自监督模式下对增强生成的指标进行预测等等。


因此,框架设计的核心就是对增强函数自监督损失函数的模块化设计,从而能够用于不同的自监督推荐算法的统一搭建。


2.1 增强模块


为了防止由于稀疏标签而导致的模型退化,数据增强在生成原始数据或特征的多个视图时起着至关重要的作用,从而促进了额外的自监督信号的生成。在 SSLRec 中,我们从各种 SSL 算法中提取了常用的增强技术,并将它们结构化为与模型无关的模块,以便在不同的 SSL 模型中复用。具体来说推荐系统的增强技术可以分为以下两类:


  • 基于数据的增强。基于数据的增强方法在图推荐系统中起着重要作用,它包括随机增强图形结构,例如随机删除边缘或节点,以及自适应增强图形结构学习。在社交推荐场景中,研究人员通过利用矩阵操作挖掘特定社交关系之间的交互模式,获取增强的交互矩阵,从而减少噪声并丰富具有社交感知语义信息的增强视图。对于序列场景,可以应用启发式或随机增强方法(例如裁剪、插入和重新排序原始项目序列),以增强原始数据。

  • 基于特征的增强。基于特征的技术旨在通过学习嵌入来创建不同的视图。这些技术包括向特征添加随机噪声、随机删除隐藏变量中的某些元素或学习特征的聚类中心。然而,现有的推荐算法框架未能完全整合不同的 SSL 相关增强范例。在 SSLRec 中,我们将这些增强技术整合到可重用的模块中,以实现轻松的插拔式集成。这使得现有的 SSL 算法可以快速复制,并激发研究人员设计新的增强方法以进一步提高模型性能和泛化能力。


2.2 自监督函数模块


自监督推荐算法利用增强的数据和特征,通过特定的目标函数生成自监督信号,以促进模型参数的优化。在对比/预测自监督学习中,通常使用 InfoNCE 损失来拉近正样本对的视图,推开负样本对的视图。还有其他类型的 SSL 损失,如 DirectAU 提出的对齐和均匀性正则化技术,通过优化隐藏特征的分布来替代 InfoNCE。


KL/JS 散度也被用作一种 SSL 策略,通过拉近模型预测的概率分布来实现自监督学习。在生成式 SSL 中,交叉熵损失广泛应用于序列推荐中,用于将掩码项目的预测分布与基本事实对齐。对于在图中重建掩码边缘或节点特征,也提出了更高效的方法,如缩放余弦误差(SCE)或对比重建。我们的模型库将包括上述各种 SSL 相关目标作为模型实现的标准损失函数,确保自监督学习的有效性,并提高模型实现的整体效率。




基准测试


目前,我们在 SSLRec 中已经实现了如下推荐算法,涵盖有五种不同的推荐场景,包含了最先进的自监督推荐算法

同时,我们为不同的推荐场景预处理了如下所示的数据集,它们都是在学术研究中常用的推荐基准数据集,用于训练与测试。

对于协同过滤(General Collaborative Filtering)我们在 Gowalla 数据集上面进行了基准测试,结果如下:

对于序列化推荐(Sequential Recommendation)我们在 MovieLen-20M 数据集上面进行了基准测试,结果如下:

对于社交推荐(Social Recommendation)我们在 Yelp 数据集上面进行了基准测试,结果如下:

对于基于知识图谱的推荐(KG-enhanced Recommendation)我们在 Alibaba 数据集上面进行了基准测试,结果如下:

对于多行为推荐(Multi-behavior Recommendation)我们在 Retail Rocket 数据集上面进行了基准测试,结果如下:




框架比较


我们对当前以易用性和实现最新算法而闻名的基于 PyTorch 的推荐框架进行了统计,并与 SSLRec 进行了比较,结果如下:


从结果中,我们有以下两点发现:


1. 尽管自监督推荐算法在各种用户建模和个性化场景中表现出色并得到广泛研究,但大多数现有的推荐框架未能全面解决这个问题。早期的库如 Spotligt 和 DaisyRec 主要关注经典的监督推荐算法,而 ReChorus、Beta-recsys 和 RecBole 则包含了一些最新的自监督推荐算法。


然而,直到最近出现的 SELFRec,才有了一个专门为自监督学习设计的库。我们的框架通过解决现有库忽视的问题而脱颖而出。此外,我们的 SSLRec 库提供了丰富的功能和模块,为用户提供了易于使用和灵活性出色的工具。这些丰富的自监督函数和模块使用户能够快速轻松地实现各种自监督推荐算法,使我们的框架成为研究人员和从业人员的宝贵资源。


2. 与现有的算法库相比,SSLRec 在提供最全面的自监督推荐算法方面脱颖而出。大多数算法在该领域取得了最先进的性能。尽管 SELFRec 这个自监督库主要关注一般的协同过滤和顺序推荐,但我们的 SSLRec 通过涵盖五个不同任务和实现更多的自监督推荐算法,超过了其范围。此外,SSLRec 还提供自动化的超参数搜索、结果保存和过程记录等辅助工具包,提高了库的可用性和可靠性,确保了无缝的用户体验。




总结与愿景


在本文中,我们提出了 SSLRec,一个全面的自监督推荐算法库。它包括近 30 种算法,涵盖了 5 个推荐领域。通过使用模块化的算法建模,我们实现了快速的设计和开发。我们的库包含了常用的增强和自监督损失模块,简化了算法设计过程。我们还提供了标准化的数据集和一致的训练验证测试流程,以进行公平的比较。


我们重视用户反馈,并致力于不断改进和扩展 SSLRec,以满足推荐系统研究社区不断变化的需求。我们的重点将始终放在自监督推荐算法上,不断根据宝贵的用户反馈来扩展和优化我们的 SSLRec 库。同时,我们也希望用户加入我们一同不断完善和改进 SSLRec,不断扩大其影响力,从而服务更多的研究员和开发者们。



更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·
·

继续滑动看下一个

SSLRec:统一的自监督推荐算法库

让你更懂AI PaperWeekly
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存