©PaperWeekly 原创 · 作者 | 夏良昊

单位 | 香港大学

研究方向 | 推荐系统

论文题目:

Graph-less Collaborative Filtering

收录会议:

WWW 2023

论文链接:

https://arxiv.org/abs/2303.08537

代码链接:

https://github.com/HKUDS/SimRec

港大数据智能实验室

https://sites.google.com/view/chaoh

研究背景

图神经网络(GNN)方法通过迭代的信息传播机制,能够准确地捕捉图数据的拓扑结构,得到较好的低维图表征。受到这一启发,近年来出现了多种基于图神经网络的协同过滤(CF)方法,通过对用户、商品交互图的准确表征学习,取得了较好的个性化推荐效果。尽管现有方法已经取得了很大的成功,我们认为基于 GNN 的协同过滤方法在根本上存在两个重要的缺陷:

  • 过平滑和噪音问题。GNN 固有的高阶信息传播机制,可能对节点表征进行过度的平滑,使其过于相似而丧失节点本身的独有特征。同时,推荐系统中观测到的用户、商品交互中,不可避免地含有噪音信息,如用户误点、流行度 bias。GNN 迭代的信息传播机制,会同时将噪音信息进行传播,从而阻碍对真正交互信息的有效学习。

  • 模型可扩展性问题。为了捕捉多跳的交互关系,GNN 模型需要进行迭代的信息传播,从而将每个节点的表征传递至多跳外的其他节点。这一过程使得 GNN 模型在推理阶段,需要进行重复多次的全局信息传播,导致了其相对 MLP 等简单模型更大的开销,使其难以应用到大规模数据上。

为了解决以上 GNN-based CF 模型中的问题,我们需要应对以下挑战:

  • 在用户、商品交互建模中,如何以一种高效的方式将全局、高阶的协同信号进行保留。

  • 在捕捉高阶协同关系的同时,如何使模型能够对抗过平滑和噪音问题。

如下图所示,我们展示了本文所提出的 SimRec 模型在上述问题上的表现。

具体来说,图(a)显示,SimRec 能够在保持极低的推理时间前提下,达到甚至更好的模型预测效果;图(b)显示,面对两个有着不同交互兴趣、但又被噪音边所连接的用户来说,SimRec 中基于多层感知机(MLP)的学生模型,相对于 GNN 模型,能够显著识别出这种噪音连接关系,降低两个用户的表征相似性;图(c)显示,由于更好的对抗过平滑能力,SimRec 模型能够学习分布更广、更均匀的低维节点表征。

知识蒸馏(KD)能够将大模型学得的知识有效提炼、蒸馏到小模型中,从而在保持较好预测能力的情况下提升模型性能,在 CV、NLP、图学习等多个领域中取得了较好的效果。传统的知识蒸馏方法,通过对齐大模型和小模型的预测结果,赋予小模型和大模型相近的建模能力。

然而,由于协同过滤数据中显著的数据稀疏和数据噪声问题,GNN-based 大模型中的过平滑和噪声信号无法在蒸馏过程中进行过滤,会导致得到的小模型仍然容易受到这一问题的困扰。但是,最近在对比学习方向上的推进,使我们能够使用对比学习方法产生更多的监督信号,不仅能在蒸馏的过程中得到更好的抗平滑蒸馏效果,也能在传统蒸馏方法的基础上进一步提升蒸馏效率。

在本工作中,我们提出了一种无图(graph-less)的协同过滤框架 SimRec,能够在不使用复杂的图结构信息的情况下,同时提高推荐模型的效果和效率。具体来说,我们设计了一种包含两种对齐方法的知识蒸馏框架,从基于 GNN 的教师模型蒸馏知识到高效的 MLP 学生模型中。在我们的蒸馏方法设计中,不仅对教师模型的预测结果,也对它的隐藏层表征进行蒸馏。

此外,为了增强蒸馏方法的抗噪声、抗过平滑能力,我们设计了一种采用对比学习正则的自适应蒸馏方法,以在蒸馏的过程中削弱 GNN 教师模型收到噪声和过平滑的影响。

总的来说,本文主要做出了以下贡献:

  • 我们提出了一种对比知识蒸馏方法,将基于 GNN 的 CF 模型压缩为一个简单的 MLP 推荐模型,同时提升模型的效果和效率。

  • 我们从两个方面进行了理论分析:i)本文的蒸馏方法能够进行自适应的高阶平滑;ii)本文方法能够显著扩充自监督信号。

  • 我们在公开数据集上进行了全面的实验,验证了本文所提出的 SimRec 方法能够显著提升 CF 任务的有效性。

模型介绍

本章介绍所提出的 SimRec 方法,主要包括基于 GNN 多教师模型、基于 MLP 的学生模型,从 prediction-level 和 embedding-level 两种角度进行的知识蒸馏,以及自适应的对比学习正则约束。模型框架如下图所示。

2.1 通用协同过滤架构

协同过滤方法根据历史观测的用户、商品交互记录,对用户、商品进行表征学习,再根据学得的表征进行用户便好预测。基于不同模型架构的协同过滤方法,一般都可以表述为下面的两个阶段,即 emebdding 表征学习阶段,和 prediction 根据表征进行预测的阶段。

基于 MLP 的协同过滤方法,使用简单的 MLP 网络对用户初始 embedding 进行深度特征提取,并使用内积度量 embedding 之间的相关性,从而实现对用户、商品关系的预测。这种方法的目标在于提取 embedding 中的深层特征,在 embedding 阶段不利用交互数据,因此具有较高的效率,不易于受到过平滑和噪音数据的影响。

而基于 GNN 的协同过滤方法,在 embedding 阶段使用 GNN 进行特征提取,在预测阶段通常仍使用简单的内积度量。由于对高阶交互关系的有效利用,GNN-based CF 通常具有更高的准确性,但也使其在预测阶段效率降低,且易于受到噪音和过平滑关系数据的影响。

基于上述两种模型优劣的讨论,本文提出使用 GNN 模型作为教师模型,使用 MLP 模型作为学生模型,以求同时保持两者的优势,摒弃两者的劣势,得到准确且高效的 CF 模型。

2.2 对比知识蒸馏

为了蒸馏 GNN 模型中的知识到学生模型,SimRec 采用了预测结果蒸馏(Prediction-Level Distillation)和表征蒸馏(Embedding-Level Distillation)两种知识蒸馏方式。

首先,参考基于 KL 散度的传统知识蒸馏方法,SimRec 对教师模型和学生模型的预测结果进行对齐。受到推荐系统研究中排序损失函数 BPR 的启发,SimRec 通过排序任务来对齐两个模型的预测结果。

具体来说,我们随机采样一些用户、商品三元组,每个三元组包括一个用户和两个商品,SimRec 的教师模型和学生模型,会分别预测三元组中用户对两件商品的偏好分数差值。预测结果蒸馏采用二分类交叉熵损失函数,来拉近两个模型预测分数的差距。

值得注意的是,与普通的知识蒸馏方法不同,SimRec 的预测结果蒸馏针对 CF 场景的特点,进行了独特的暗知识挖掘。具体来说,普通的 KD 方法一般针对多分类问题,在知识蒸馏过程中,不仅学习哪个类别分数最高,也会学习所有类别之间的分数高低关系,来扩充蒸馏的训练样本,使学生模型能够从教师模型中学习得到隐含的暗知识。

然而,简单将 CF 任务视为多分类问题是有问题的,CF 场景中有数量庞大的商品作为类别,使得蒸馏时教师模型给出的软标签,数值很容易接近 0,导致难以排序。为了解决这一问题,我们的预测结果蒸馏采用了成对排序任务,通过更丰富的训练样本对来充分挖掘教师模型中的暗知识。

在预测结果蒸馏之外,SimRec 进一步进行了表征蒸馏,以对齐教师和学生模型的隐含表征。我们采用对比学习方法,拉近两个模型对同一个用户、商品节点给出的表征,推远不同节点的表征。在这一过程中,教师模型的表征不进行更新。为了进一步强调 GNN 模型的高阶特性,我们仅利用 GNN 模型的高阶表征。通过这一方法,不仅进一步对齐了两个模型,也带来了更高的蒸馏效率。

2.3 自适应对比正则

为了防止 GNN 模型中的过平滑和噪音信号,通过知识蒸馏对学生模型产生负面影响,SimRec 受到对比学习损失启发,通过全局性地推开任意两点的表征,对学生模型的表征学习进行正则。为了更好地区分过平滑信号和正常的平滑信号,SimRec 计算蒸馏任务的梯度与主任务梯度之间的相似性,根据这一相似性对对比正则进行自适应的权重调整。

实验结果

我们在 Gowalla、Yelp、Amazon 三个数据集上进行了对比实验,数据集统计信息如下

在实验中,SimRec 取得了稳定优于基线方法的模型效果,并通过 t-test 验证了效果提升的显著性。同时我们观测到,非 GNN 的基线方法,如 NCF、AutoR,只能取得较差的模型效果,但 SimRec 优越的预测性能同样是通过简单的 MLP 网络得到,这充分验证了使用蒸馏方法对简单 MLP 方法进行监督所能带来的巨大提升。

我们进行了详尽的消融实验,从以下结果可以看出,SimRec 的各个模块,包括两种蒸馏方法和自适应的对比正则,不仅可以带来最终模型效果的提升,还能够带来更快的模型优化速度。

此外,通过在大规模数据集上的实验,我们验证了 SimRec 模型在大规模数据集上,不仅仍然能够取得较好的效果,也能通过免除对大规模图结构数据的处理、采样,达到显著更高的模型效率。

总结

本文提出了一种对比知识蒸馏方法,能够自适应地从 GNN 教师模型中迁移知识到简单的多层感知机模型,显著提升了推荐模型的鲁棒性和效率。自适应的对比正则损失能够约束知识蒸馏,得到具备更好抗过平滑和噪声能力的用户、商品表征。通过全面的实验,我们验证了 SimRec 模型在效果和效率上的优越性。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

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

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

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

​WWW 2023 | 无图协同过滤相关推荐

  1. 推荐系统入门(二):协同过滤(附代码)

    推荐系统入门(二):协同过滤(附代码) 目录 推荐系统入门(二):协同过滤(附代码) 引言 1. 相似性度量方法 1.1 杰卡德(Jaccard)相似系数 1.2 余弦相似度 1.3 皮尔逊相关系数 ...

  2. SIGIR 2019 开源论文 | 基于图神经网络的协同过滤算法

    作者丨纪厚业 单位丨北京邮电大学博士生 研究方向丨异质图神经网络,异质图表示学习和推荐系统 引言 协同过滤作为一种经典的推荐算法在推荐领域有举足轻重的地位.协同过滤(collaborative fil ...

  3. 论文浅尝 | AAAI2020 - 多分量图卷积协同过滤方法

    论文笔记整理:郝凯龙,南京大学硕士. 来源:AAAI2020 链接:https://arxiv.org/pdf/1911.10699.pdf 动机 推荐系统实际上是在做用户-商品二部图上的链路预测,仅 ...

  4. 推荐系统-模型(一):召回模型【协同过滤类: ItemCF/UserCF】【Embedding类】【Dssm/双塔/word2vec】【图类召回算法 (Deepwalk、EGES)】

    推荐系统-召回模型:[协同过滤类: ItemCF/UserCF][Embedding类][Dssm/双塔/word2vec][图类召回算法 (Deepwalk.EGES)]

  5. 推荐系统中协同过滤算法实现分析(重要两个图!!)

    "协",指许多人协力合作. "协同",就是指协调两个或者两个以上的不同资源或者个体,协同一致地完成某一目标的过程. "协同过滤",简单来 ...

  6. 从原理到实现,详解基于朴素ML思想的协同过滤推荐算法

    作者丨gongyouliu 编辑丨Zandy 来源 | 大数据与人工智能(ID: ai-big-data) 作者在<协同过滤推荐算法>.<矩阵分解推荐算法>这两篇文章中介绍了几 ...

  7. 从原理到落地,七大维度读懂协同过滤推荐算法

    作者丨gongyouliu 来源 | 大数据与人工智能 导语:本文会从协同过滤思想简介.协同过滤算法原理介绍.离线协同过滤算法的工程实现.近实时协同过滤算法的工程实现.协同过滤算法应用场景.协同过滤算 ...

  8. 推荐系统中基于深度学习的混合协同过滤模型

    近些年,深度学习在语音识别.图像处理.自然语言处理等领域都取得了很大的突破与成就.相对来说,深度学习在推荐系统领域的研究与应用还处于早期阶段. 携程在深度学习与推荐系统结合的领域也进行了相关的研究与应 ...

  9. 推荐系统笔记:基于非负矩阵分解的协同过滤

    1 非负矩阵分解 非负矩阵分解 (NMF) 可用于非负的评级矩阵. 这种方法的主要优势不一定是准确性,而是它在理解用户-项目交互方面提供的高度可解释性. 与其他形式的矩阵分解的主要区别在于因子 U 和 ...

最新文章

  1. Artistic Style在windows下的使用(C/C++)
  2. http权威指南-http连接管理
  3. 推荐8个值得每天一看的网站,值得收藏起来!
  4. [推荐] 创业者要留意优先清算权
  5. python 数组基本用法
  6. 《数据驱动安全:数据安全分析、可视化和仪表盘》一3.3 读入数据
  7. Apache htaccess的简单总结,以及参数的使用
  8. 语义分割和实例分割以及目标检测的区别(转)
  9. java judgefilecode_VScode出现无法打开“X”: 找不到文件(file:///XXXX) 的解决办法
  10. webpack 3 零基础入门教程 #12 - 如何使用模块热替换 HMR 来处理 CSS
  11. 华为P30 Pro现身安兔兔:未开性能模式跑分超28万
  12. JMockit学习笔记
  13. rabbitmq的基本安装、配置,以及整合springboot,gradle的hello.demo
  14. 2010 模板下载 罗斯文_利用模板建立Access 2010数据库的方法
  15. Retinex算法Matlab代码——单尺度SSR
  16. Webots中创建舵轮模型
  17. 部标设备JTT808数据模拟器+Socket数据发送(JAVA版)
  18. Android登录 之 Twitter登录
  19. 培训班和科班出来的程序员有什么不同之处?看完这个你就能明白!
  20. ARFoundation系列讲解 - 31 光照估计

热门文章

  1. 摩根大通CIO:区块链将取代现有技术
  2. 转正报告不会写?资深软件测试工程师手把手教学,赶紧收藏
  3. 洛谷P1272 重建道路
  4. QQ无法安装 系统时间问题
  5. marquee标签属性
  6. 关于Bloody Monday与黑客
  7. 最近被 GitHub 下令封禁的 DeepNude 是什么鬼?
  8. 怎么修改服务器ip密码,服务器ip 地址修改密码
  9. 第17条:实现description方法
  10. Reactor 3快速上手——响应式Spring的道法术器