论文笔记:GPT4Rec: Graph Prompt Tuning for Streaming Recommendation

news2024/11/18 1:48:27

SIGIR 2024

1 intro

1.1 背景

  • 传统推荐系统方法在实际应用中往往未能兑现基准数据集所做的承诺
    • 这种差异主要源于传统的离线训练和测试方法
    • 在这些场景中,模型在大型静态数据集上训练,然后在有限的测试集上评估,这一过程没有考虑到现实世界数据的动态性质
    • 与之形成鲜明对比的是,现实世界的推荐系统处于不断变化的状态,新的用户偏好、物品和交互不断涌现,形成了随时间推移数据分布差异的鸿沟。
      • 一方面,最初在历史数据上训练的模型可能无法有效处理这些新出现的多样化数据
      • 另一方面,当这些模型用新数据更新时,可能会覆盖之前获取的知识,这一现象被称为灾难性遗忘
  • 最近的研究旨在应对这一挑战,大多数工作都在探索利用持续学习方法的潜力
    • 第一类研究依赖于replay buffer
      • 通过定期使用过去样本选择重新训练模型
      • 然而,这种基于样本的方法在缓冲区大小减小时效果会减弱,并且在需要严格数据隐私的情况下使用重播缓冲区是不切实际的
    • 第二类工作,基于模型正则化的方法
      • 通过限制模型参数防止与先前学习配置的显著偏离来维持知识
      • 然而,当新数据与这些历史模式存在显著差异时,挑战就出现了。
        • 如果模型参数未能充分适应这些新信息,则可能会偏离相关的历史数据,触发灾难性遗忘
    • 最后一类工作依赖于模型隔离和扩展策略
      • 这些策略隔离旧知识并为更新数据创建新的学习空间
      • 然而,其广泛的模型扩展通常导致参数增加和耗时的更新

1.2 论文思路

  • 为了解决上述挑战,论文使用提示调优(prompt tuning)

  • 介绍了GPT4Rec,一种用于流推荐的图提示调优方法

    • 将图解开为独特的特征视图和结构视图,优化捕捉图中每个语义关系的独特特征

    • GPT4Rec设计的核心是三种针对图数据特定方面的提示。

      • 节点级提示用于指示模型适应图中单个节点属性或特性的变化,确保对不断变化的节点特性的细致理解

      • 结构级提示引导模型适应图中更广泛的连接性和关系模式,捕捉不同图元素之间的动态互动

      • 视图级提示创新设计用于促进多个解耦视图的信息聚合

2 Preliminary

2.1 流推荐

  • 大量的用户-物品交互数据 ˜𝐷 持续不断地流入工业推荐系统
  • 连续的数据流分割为连续的数据段 𝐷1, ..., 𝐷𝑡, ..., 𝐷𝑇,这些数据段具有相同的时间跨度
  • 在每个时间段 𝑡, 模型需要利用从 𝐷1, 𝐷2, ..., 𝐷𝑡−1 继承的知识来优化 𝐷𝑡 上的推荐性能

2.2 流图

  • 流图表示为一系列图的序列 𝐺 = (𝐺1, 𝐺2, ..., 𝐺𝑡, ... 𝐺𝑇),其中 𝐺𝑡 = 𝐺𝑡−1 + Δ𝐺𝑡
  • 𝐺𝑡 = (𝐴𝑡, 𝑋𝑡) 是时间 𝑡 的属性图,其中 𝐴𝑡 和 𝑋𝑡 分别是 𝐺𝑡 的邻接矩阵和节点特征
  • Δ𝐺𝑡 = (Δ𝐴𝑡, Δ𝑋𝑡) 是图结构和节点属性在时间 𝑡 的变化
    • 这些变化包含新增加的节点和不同节点之间新建立的连接。

2.3 流图的持续图学习

  • 给定一个流图 𝐺 = (𝐺1, 𝐺2, ..., 𝐺𝑡, ... 𝐺𝑇),持续图学习(CGL)的目标是顺序地学习 Δ𝐺𝑡 (𝐷𝑡),同时有效地将历史知识转移到新的图段
  • 数学上,流图的CGL目标是在每个时间段 𝑡 找到最优的 GNN 结构 𝑆𝑡 和参数 𝑊𝑡,使得:
  • 在这项工作中,使用贝叶斯个性化排序(BPR)损失作为损失函数,因为它在Top-K推荐中有效且具有广泛的适用性。

3 方法

3.1 复杂图的解耦策略

  • 推荐系统中的用户-物品交互图由于其动态和相互关联的性质,本质上是复杂的
    • 当添加一个新节点或删除一个现有节点时,它不仅影响图的孤立部分,这些变化可能导致整个网络的级联效应
    • 这些级联变化意味着图中的任何修改都可以同时影响多重关系
      • 例如,系统中添加一个新物品可能会为多个用户培养出新的偏好,改变现有的用户-物品交互模式,并可能重新塑造总体偏好和推荐的格局
  • ——>将图划分为多个视图,每个视图专门捕捉用户-物品交互的特定方面。【视图怎么建的?】
    • 通过一系列线性变换实现了解耦:

3.2  自适应学习的提示设计

  • 在将图模式解耦到不同视图后,论文设计了节点级提示和结构级提示,以捕捉动态推荐系统中图模式的全面本质

3.2.1 节点级提示

  • 节点级提示主要针对图中各个节点的属性或特性(社交网络中的用户特征/推荐系统中的物品属性)
  • 对于每个视图,节点级提示是一组可学习的参数P=[p1​,...,pL​],其中 𝐿是节点级提示的数量
    • 这些提示作为有针对性的线索,告知模型如何解释和整合有关用户或物品的新信息。
  • 当新数据到来时,这些提示有效地“指示”模型,突出用户-物品交互中的相关特征或变化:
    • ——>这意味着对于给定的节点 𝑥𝑖,如果某些提示与该节点的上下文更相关,则这些提示将具有更高的权重αij​。
  • 随着新数据的到来,不同提示的相关性可能会发生变化
    • ——>型为每个新数据点动态重新计算每个节点的权重αij​,使其不断调整焦点【时间开销?】

3.2.2 结构级提示

  • 结构级提示旨在处理图中的更广泛的连接性和关系模式
    • 这些提示对于理解和适应整体图拓扑的变化至关重要,例如新的交互模式的出现或现有模式的演变
  • 对于每个视图,我们为边设计了一组可学习的提示Q=[q1​,...,qk​],通过消息传递机制自适应地聚合结构级信息:

3.3 解耦表示的聚合

从多个解耦视图中聚合信息

3.3.1 初始策略

应用注意力机制

3.3.2 跨视图级提示进行聚合

核心是更新一小组“代码簿”提示 𝐽=[𝑗1,...,𝑗𝑛],而不是重新学习整个模型的参数

4 实验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1692669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二十届文博会沙井艺立方分会场启幕!大咖齐打卡!

2024年5月24日-27日,第二十届中国(深圳)国际文化产业博览交易会沙井艺立方分会场活动将在艺立方非遗(文旅)产业园盛大举办。 本届文博会艺立方分会场活动办展特色鲜明,亮彩纷呈,将以“种下梧桐树…

留学培训行业PaaS应用系统架构的设计与实践

随着留学需求的增长和教育培训市场的不断扩大,留学培训行业正面临着越来越多的挑战和机遇。在这个背景下,利用PaaS(Platform as a Service)平台来构建留学培训行业的应用系统架构,将成为提升服务质量和效率的重要手段。…

工厂生产管理系统

为应对一些国内验厂,如大疆等,他们需要客户有自己的生产管理系统的,但实际很多公司是没有引入ERP这类的系统的,从而想开发一套简单的生产管理系统。 参考了网上一个比较古老的StorageMange项目,此项目用到DevExpress的…

「探讨」:什么是网络审计?好用的网络审计系统推荐【图文详解】

网络是企业运营、政府管理、个人生活不可或缺的基础设施。 然而网络安全问题却日益凸显,数据泄露、网络攻击、欺诈行为等风险日益严重。 一、网络审计的定义 网络审计,又称信息技术审计或电子审计,是指审计人员运用专业技能和工具&#xff…

亚马逊测评技术自己掌控:打造爆款产品,快速突破销量瓶颈

不管新老店铺来说,出单都是至关重要的,在我们的理解当中测评应该是一种成长剂,是一个加快店铺成长的工具,因为它在店铺的破0、突破瓶颈期、引爆爆款以及在后期店铺的一个补量上都会有一个明显的作用 测评有什么意义? …

简历–工作经历–通用

雇主将会很注意简历中的工作经历这一部分。在看完求职目标后,他们想了解你的历史,你曾在哪儿工作,工作了多长时间。他们想弄明白的是“你是个稳定可靠的人吗?”,“你发挥出的才能有哪些?”最重要的是你是否…

python-找出四位数中的玫瑰花数

【问题描述】玫瑰花数指一个n位数(n>4),其每位上的数字的n次幂之和等于本身。 请求出所有四位数中的玫瑰花数 【输入形式】 【输出形式】 【样例输入】 【样例输出】1634 8208 9474 【样例说明】 【评分标准】 完整代码如下: for n in ra…

android实现PhotoShop里的魔棒效果

魔棒是画板工具一个重要的功能,非常实用,只要轻轻一点,就能把触摸到的颜色区域选中,做复制、剪切、擦除等工作。 那怎么实现呢? 先来看看效果: 要实现这个效果,需要对安卓canvas和paint理解比…

【研发日记】【策划向】(一)游戏策划其实就是一道加减法题

文章目录 序设计的过程其实是控制自己欲望的过程我海纳百川,你要不要看看?我跟别人不一样!我的人设就是没有人设,或者说任何人设都是我的人设 记 序 不知不觉进入这个行业几年了,也经历了独立开发和团队开发的过程。在…

【SQL】外连接 LEFT JOIN

目录 一.内连接与外连接 1.内连接(inner join) 2.外连接(outer join) 二.两表连接 1.我们先来试试看内连接: 2.我们再来试试外连接 三.单表外连接 四.总结 一.内连接与外连接 先得介绍内连接和外连接两个概念&…

git回退到指定版本,同时提交记录也会删除

第一步&#xff1a; git reset --hard xxx (需要恢复版本的 commit id)第二步&#xff1a;branch_name就是远程分支的名称 git push origin <branch_name> --force

解决GoLand无法Debug

goland 调试的的时候提示如下错误 WARNING: undefined behavior - version of Delve is too old for Go version 1.22.3 (maximum supported v 其实个原因是因为正在使用的Delve调试器版本太旧&#xff0c;无法兼容当前的Go语言版本1.22.3。Delve是Go语言的一个调试工具&#…

Java使用apache.poi生成excel插入word中

加油&#xff0c;新时代打工人&#xff01; 工作需求&#xff0c;上个文章我们生成好的word&#xff0c;这次将生成好的excel表格数据&#xff0c;插入word中。需要准备好excle数据&#xff0c;然后插入到word中。 最后个需要&#xff0c;就是把这些生成好的word文档转成pdf进行…

STL题单总结

下周争取全部刷掉 牛客 知乎推荐的题 收藏的文章1 收藏的文章2 收藏的文章3 洛谷题单

Python爬虫:爬取B站视频(最新、能用且讲解详细)【01】

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️如遇文章付费&#xff0c;可先看…

spring cache(三)demo

一、入门demo 1、pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.o…

java读取shp文件,获取点位

Testvoid contextLoads() {System.out.println(System.currentTimeMillis());//1716516228057 1716516228798String zipFilePath "C:\\code\\risk\\risk_management_backend\\edatope-app\\src\\main\\resources\\新中心范围SHP导入模板.zip";String destDir &quo…

React 中的jsx 的语法使用

react 中是使用 JSX 编写标签的 它是可选的&#xff0c;但大多数 React 项目会使用 JSX&#xff0c;主要是它很方便。所有 我们推荐的本地开发工具 都开箱即用地支持 JSX。 JSX 比 HTML 更加严格。你必须闭合标签&#xff0c;如 <br />。你的组件也不能返回多个 JSX 标…

LeetCode题练习与总结:从中序与后序遍历序列构造二叉树--106

一、题目描述 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出…

Home Credit - Credit Risk Model Stability

本篇是对Kaggle上Home Credit - Credit Risk Model Stability竞赛中的开源代码VotingClassifier Home Credit的解读。原链接在VotingClassifier Home Credit (kaggle.com)。 %%writefile script.py import sys from pathlib import Path import subprocess import os import g…