首页 > 编程语言 >读论文-基于自监督学习的序列推荐算法

读论文-基于自监督学习的序列推荐算法

时间:2024-01-26 14:00:56浏览次数:24  
标签:论文 偏好 用户 学习 算法 序列 短期

前言

今天读的文章为一篇名叫《基于自监督学习的序列推荐算法》的期刊论文,文章于2023年8月15日发表在自然科学报上,这篇论文的引用为:

[1]闫猛猛,汪海涛,贺建峰等.基于自监督学习的序列推荐算法[J].重庆邮电大学学报(自然科学版),2023,35(04):722-731.

摘要

原文如下:

针对现有序列推荐算法易受数据稀疏影响以及对用户短期动态偏好建模不充分的问题,提出基于自监督学习的序列推荐算法。针对短期序列中的原始项目关系更易受到随机数据增强破坏的问题,对长短期序列使用不同的数据增强方法来构建更有效的自监督信号;利用对比式自监督学习框架对用户长期偏好和短期偏好进行多任务联合建模;针对现有自注意力机制无法建模序列中项目相对位置关系的问题,将自然语言处理领域中的解耦注意力机制引入到用户短期偏好学习过程中,充分捕获用户短期序列中项目的相对位置信息。实验结果证明了所提算法的有效性。

摘要中介绍了现有的序列推荐算法的缺点:易受数据稀疏影响以及对用户短期动态偏好建模不充分,基于此问题,文章提出了基于自监督学习的序列推荐算法。

  1. 针对短期序列中的原始项目关系更易受到随机数据增强破坏的问题,对长短期序列使用不同的数据增强方法来构建更有效的自监督信号;
  2. 利用对比式自监督学习框架对用户长期偏好和短期偏好进行多任务联合建模;
  3. 针对现有自注意力机制无法建模序列中项目相对位置关系的问题,将自然语言处理领域中的解耦注意力机制引入到用户短期偏好学习过程中,充分捕获用户短期序列中项目的相对位置信息。

基于SSL的序列推荐算法

在用户交互序列中,用户集合表示为U,项目集合表示为I,按时间升序对交互序列进行排序,用户u∈U的历史交互序列可以表示为Su=[iu1,iu2,…,iu|Su|],其中|Su|表示序列的长度,iut∈I表示用户u在时间t与项目it产生了交互。本文算法的目标是i预测在时间t+1最可能与用户u发生交互的项目iu|su|+1

数据增强策略

文章使用2组不同的数据增强策略,分别作用于用户长期序列和短期序列,以缓解短期序列更容易受到数据增强破坏的问题。

  1. 长期序列数据增强

在长期序列数据增强阶段,使用3种已有的经典数据增强方法,如下图所示。

image

  1. 短期序列数据增强

短期序列本身所含信息相对集中,对原始短期序列进行遮掩等操作可能会导致序列中的用户主要偏好发生改变。因此,长期序列的数据增强方法不适用于短期序列。

image

对比式自监督学习框架

SSL4Rec算法由长短期序列的数据增强、短期偏好自监督学习、长期偏好自监督学习、偏好动态融合4部分组成。

模型如下图所示:

image

短期标偏好学习

针对自注意力机制无法捕获用户短期交互序列中项目相对位置信息的缺陷,本文将DeBERTa中的解耦注意力机制引入到推荐系统中。短期偏好学习共由3个子层组成,分别是嵌入层、解耦注意力机制和前馈神经网络。

长期偏好学习

随着深度学习注意力机制层数的增加,其能够捕获近距离项目更多的潜在特征。但利用多层注意力机制对序列长期依赖的建模能力最近受到质疑。为缓解该问题,本文的长期偏好学习模块由单层的
多头自注意力机制和加性注意力机制2部分组成。

结尾

今天的论文就先读到这了,明天见!
2024-01-26 13:56:26 星期五

标签:论文,偏好,用户,学习,算法,序列,短期
From: https://www.cnblogs.com/wephiles/p/17988995

相关文章

  • python中利用变量解压列表、元组、字符串、字典、文件对象、迭代器和生成器等序列
    一、如果知道序列中元素的个数,可以直接进行变量赋值。coords=(102,40)lon,lat=coordsprint(lon)print(lat)text="news"a,b,c,d=textprint(a)print(b)print(c)print(d)二、如果不知道序列中元素的个数,可以通过*变量名来代表多个元素的变量,无论序列是什......
  • 深度解析Java8社招面试题:Lambda序列化到底行不行?
    大家好,我是小米,一个热爱技术分享的小伙伴。今天,我们来聊一个关于Java8的话题,一个颇具技术深度的问题:“社招面试题:Java8中的Lambda表达式可以序列化吗?”废话不多说,让我们一起揭开这个技术的神秘面纱!Lambda表达式的崛起在Java8之前,我们编写代码时常常要依赖匿名内部类,这使得代码显得......
  • 安防视频汇聚平台智能边缘分析一体机视频算法分析识别打电话检测算法
    在智能视频监控的广阔舞台上,打电话检测算法如同一位细心的守护者,它基于图像处理和机器学习的先进技术,致力于识别和分析视频中的人物行为。这项技术不仅仅是一个简单的监控工具,它更是一种智能的分析手段,能够在复杂的场景中准确地判断个体是否在进行电话通话。首先,算法的工作流程是一......
  • 安防视频汇聚平台智能边缘分析一体机视频算法分析识别打电话检测算法
    在智能视频监控的广阔舞台上,打电话检测算法如同一位细心的守护者,它基于图像处理和机器学习的先进技术,致力于识别和分析视频中的人物行为。这项技术不仅仅是一个简单的监控工具,它更是一种智能的分析手段,能够在复杂的场景中准确地判断个体是否在进行电话通话。首先,算法......
  • 文心一言 VS 讯飞星火 VS chatgpt (187)-- 算法导论14.1 4题
    四、用go语言,写出一个递归过程OS-KEY-RANK(T,k),以一棵顺序统计树T和一个关键字k作为输入,要求返回k在由T表示的动态集合中的秩。假设T的所有关键字都不相同。文心一言,代码正常运行:以下是用Go语言编写的递归过程OS-KEY-RANK(T,k),用于返回关键字k在由T表示的动态集合......
  • R语言关联规则模型(Apriori算法)挖掘杂货店的交易数据与交互可视化
    原文链接:http://tecdat.cn/?p=22732 原文出处:拓端数据部落公众号 关联规则挖掘是一种无监督的学习方法,从交易数据中挖掘规则。它有助于找出数据集中的关系和一起出现的项目。在这篇文章中,我将解释如何在R中提取关联规则。关联规则模型适用于交易数据。交易数据的一个例子可以......
  • 代码随想录 day30 回溯算法最高难度
    重新安排行程这个是关键然后利用数组或者map记录映射关系trueorfalse记录飞没飞过去重因为起飞和落地都可能重复有恰好tickets+1个地点就行这个代码比较贴近cpp的思路但是会超时这个用map的比较节约时间n皇后难点在于模拟棋盘数据处理以及回溯算法能不能......
  • 算法随记_1 蛇形矩阵(偏移量法)
    蛇形矩阵title:(在线学习平台)link:(https://www.acwing.com/)cover:(https://cdn.acwing.com/media/activity/surface/log.png)输入两个整数n和m,输出一个n行m列的矩阵,将数字1到n×m按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入样例33输出样例12......
  • 折叠序列
    主要解释一点,为什么除了枚举分段点之外,只用考虑当前这一段长成\(X(S)\)这个样子(其中\(S\)是一个折叠串)其实很简单,如果他不长成这个样子,那么他一定会有一个分段点,使得他长成\(SQ\)这个样子,这也就是之前枚举分段点的情况了我们考虑第二种情况时,注意\(S\)是一个折叠串,所以一定要用......
  • 代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
    977.有序数组的平方给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/错误的vector遍历方式,这会导致访问越界!!!while(nums[flag]<0)flag++;倒也不难,我......