首页 > 其他分享 >读论文-基于用户长短期偏好的序列推荐模型

读论文-基于用户长短期偏好的序列推荐模型

时间:2024-02-01 13:58:02浏览次数:31  
标签:推荐 长短期 用户 物品 偏好 序列

前言

今天要读的论文名为《基于用户长短期偏好的序列推荐模型》,是一篇于2022年12月29日发表在《计算机科学》上的一篇期刊论文。

文章发现了传统的序列推荐模型忽略了不同用户的个性化行为,导致模型不能充分捕获用户动态偏好而产生的兴趣漂移等问题,提出了一种基于用户长短期偏好的序列推荐模型(SequentialRecommendationModelBasedonUser’sLongandShortTermPreference,ULSP-SRM)。

如何引用这篇论文:

[1]雒晓辉,吴云,王晨星等.基于用户长短期偏好的序列推荐模型[J].计算机科学,2023,50(04):47-55.

摘要

针对现有序列推荐模型忽略了不同用户的个性化行为,导致模型不能充分捕获用户动态偏好而产生的兴趣漂移等问题,提出了一种基于用户长短期偏好的序列推荐模型(SequentialRecommendationModelBasedonUser’sLongandShortTermPreference,ULSP-SRM)。首先,根据用户的序列中交互物品的类别和时间信息生成用户的动态类别嵌入,进而有效建立物品之间的关联性,并且降低数据的稀疏性;其次,根据用户当前点击物品和最后一项点击的时间间隔信息生成个性化时序位置嵌入矩阵,模拟用户的个性化聚集现象,以更好地反映用户偏好的动态变化;然后,将融合了个性化时序位置嵌入矩阵的用户长期偏好序列以会话为单位输入门控循环单元中,生成用户的长期偏好表示,并通过注意力机制将用户长短期偏好进行融合,生成用户的最终偏好表示,从而达到充分捕获用户偏好的目的;最后,将用户最终偏好表示输入推荐预测层进行下一项推荐预测。在Amazon公开数据集的7个子集上进行实验,采用AUC(Area Under Curve)值、召回率和精确率指标进行综合评估,实验结果表明,所提模型的表现优于其他先进基准模型,有效地提升了推荐性能。

文章首先提出了传统的推荐模型的缺点,然后提出了一种新的推荐模型;为了降低数据稀疏性,文章提出有效建立物品关联性的方法,即根据用户的序列中交互物品的类别和时间信息生成用户的动态类别嵌入;其次,为了更好地反应用户的动态偏好变化,文章提出一种根据用户当前点击物品和最后一项点击的时间间隔信息生成个性化时序位置嵌入矩阵,模拟用户的个性聚集现象;然后,将融合了个性化时序位置嵌入矩阵的用户长期偏好序列以会话为单位输入门控循环单元中,生成用户的长期偏好表示,并通过注意力机制将用户长短期偏好进行融合,生成用户的最终偏好表示,从而达到充分捕获用户偏好的目的;最后,将用户最终偏好表示输入推荐预测层进行下一项推荐预测。

引言

序列推荐系统(SequentialRecommendationSystem,SRS)已经成为推荐领域的热门研究内容。

序列推荐模型主要通过在序列中建模用户-物品之间的交互来为用户推荐其可能感兴趣的物品。在传统包括基于内容和协同过滤的推荐模型中,通常以静态的方式建模用户-物品交互,只能捕获用户的静态偏好。

事实上,用户-物品交互本质上是具有时间顺序依赖性的,用户偏好可能会随着时间的推移而改变。SRS将用户-物品交互视为一个动态序列,并考虑到顺序依赖关系,以捕获用户长期偏好和短期兴趣来更准确地进行推荐。

然而,现有的大多数推荐方法如基于用户的协同过滤算法都是隐式地将用户进行分组,它们不能明确地对物品类别之间的相关性进行建模。此外,不同用户在相同时间段的习惯不一定相同,例如有的用户喜欢在双十一等购物节采购,有的用户则习惯错峰购买,我们将这种现象称作“个性化时序位置聚合”,针对这些用户的推荐机制显然是不同的。

近年来,学者们采用用户的长期偏好和短期兴趣相结合来提升推荐效果。然而,现有研究通常以静态方式构建用户的兴趣偏好,往往忽略了用户兴趣偏好是动态变化的问题。另外,随着时间的推移,用户的兴趣偏好在不断地发生变化,现有研究不能充分捕获用户的兴趣,产生兴趣漂移的问题。

因此,为了解决以上问题,充分捕获用户个性化的动态兴趣变化,削弱兴趣漂移对推荐性能带来的影响,本文提出了一种基于用户长短期偏好的序列推荐模型(ULSP-SRM)。

首先,将用户的行为序列按天切分成会话表示,然后根据序列中交互物品的类别和时间信息生成用户的动态类别嵌入,以最后一天的行为序列作为用户的短期偏好序列;其次,根据用户当前点击物品和最后一项点击的时间间隔信息生成个性化时序位置嵌入矩阵,与用户的长期偏好序列进行融合;然后,将融合了个性化时序位置嵌入矩阵的用户长期偏好序列以会话为单位输入GRU(GateRecurrentUnit)中,生成用户的长期偏好表示;最后,通过Attention机制将用户长短期偏好进行融合,生成用户的最终兴趣偏好表示,输入推荐预测层进行下一项推荐预测。

相关工作

论文讲述了关于序列推荐算法的相关研究。详情请下载论文查看。

基于用户长短期偏好的序列推荐模型

问题的定义

首先文章给出了符号定义:

设数据集中用户集合U={u1,u2,…,up},交互物品集合V={v1,v2,…,vq},类别集合C={c1,c2,…,ch},其中p,q和h分别为用户、交互物品和类别的个数。对于每个用户u∈U,我们将用户u的行为序列根据时间戳按天进行了划分,用户u的行为序列定义为LuT={Su1,Su2,…,SuT},其中T表示当前的时间,Sui⊆V(i∈[1,T])表示用户u在时间i时的会话,每个会话代表用户在一天内的行为序列。由于会话SuT包含了用户u最近一天内的点击物品行为,这反映了用户u在T时的短期兴趣,我们称SuT为用户u的短期兴趣序列。那么,我们称用户u在时间1~(T-1)的行为序列Lu T-1={Su1,Su2,…,Su T-1}为其长期偏好序列。

所研究问题可正式描述为:给定用户的行为序列LuT,预测目标用户的下一个行为,并向目标用户推荐合适的物品。

ULSP-SRM 模型

本文提出的ULSP-SRM模型主要包括4个部分:

image

序列切分与动态用户类别提取

首先将用户u的行为序列根据时间戳按天划分成会话表示,得到用户u的行为序列LuT={Su1,Su2,…,SuT};接下来从LuT和C中获取用户的动态类别,其被表示为CuT,然后利用CuT从物品类别集合C中查找并生成用户在时间T时的动态用户类别嵌入层。我们将长期序列的长度限制为Ls,因此LuT-1={Ln-Ls, ..., lj...,ln},其中n为LuT-1中最后一个交互物品的索引编号。

个性化时序位置矩阵嵌入

本文提出了可训练的个性化时序位置嵌入,用Pu={pn-Ls,…,pj,…,pn}表示,用于对用户的长期历史行为序列进行建模,捕获用户特定时间的个性化兴趣偏好,从而得到融入了时序位置嵌入矩阵的用户长期历史行为表示HuT-1={hn-Ls,…,hj,…,hn}。

用户长短期动态偏好提取层

本文将融入了时序位置嵌入矩阵的用户长期历史行为序列HuT-1以每个会话为单位输入GRU单元中,得到用户的长期动态兴趣偏好。然后采用神经注意力机制将用户的短期兴趣序列SuT和用户的长期偏好序列LuT-1进行融合,得到用户的最终兴趣偏好表示。

推荐预测层

将用户的最终动态兴趣偏好表示输入全连接层中得到最终的预测结果。

标签:推荐,长短期,用户,物品,偏好,序列
From: https://www.cnblogs.com/wephiles/p/18000592

相关文章

  • Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、
    全文链接:https://tecdat.cn/?p=33550原文出处:拓端数据部落公众号什么是时间序列?时间序列是一系列按时间顺序排列的观测数据。数据序列可以是等间隔的,具有特定频率,也可以是不规则间隔的,比如电话通话记录。在进行投资和交易研究时,对于时间序列数据及其操作要有专业的理解。本文......
  • R语言用综合信息准则比较随机波动率(SV)模型对股票价格时间序列建模
    原文链接:http://tecdat.cn/?p=23882原文出处:拓端数据部落公众号摘要随机波动率(SV)模型是常用于股票价格建模的一系列模型。在所有的SV模型中,波动率都被看作是一个随机的时间序列。然而,从基本原理和参数布局的角度来看,SV模型之间仍有很大的不同。因此,为一组给定的股票价格数据选......
  • Prufer序列
    Prufer序列是一种将树和序列双向映射的方式构造方法:统计树上结点的度数\(degree_i\)找到所有叶子结点\((degree_i==1)\)中编号最小的\(x\),输出\(fa_x\)将\(fa_x\)的度数减\(1\)重复步骤\(2-3\),直到只剩下\(n-2\)个元素为止性质:树上结点编号在prufer序中出现......
  • net8 对接webapi接口通过 GetFromJsonAsAsyncEnumerable方法直接得到对象,无需进行反序
    调用API直接获取到对象现在有一个接口返回如下图中的数据:如果是在8以前的版本中获取该接口的数据,需要先获取到接口内容,然后进行反序列化,代码如下conststringRequestUri="http://localhost:5145/user";usingvarclient=newHttpClient();varstream=awaitclient......
  • 每日一道面试题:Java中序列化与反序列化
    写在开头哈喽大家好,在高铁上码字的感觉是真不爽啊,小桌板又拥挤,旁边的小朋友也比较的吵闹,影响思绪,但这丝毫不影响咱学习的劲头!哈哈哈,在这喧哗的车厢中,思考着这样的一个问题,Java中的对象是如何在各个方法,或者网络中流转的呢?通过这个问题便引出了我们今天的主人公:序列化与反序列化!......
  • C#对象二进制序列化优化:位域技术实现极限压缩
    目录1.引言2.优化过程2.1.进程对象定义与初步分析2.2.排除Json序列化2.3.使用BinaryWriter进行二进制序列化2.4.数据类型调整2.5.再次数据类型调整与位域优化3.优化效果与总结1.引言在操作系统中,进程信息对于系统监控和性能分析至关重要。假设我们需要开发一个监控程序,该......
  • PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列|附
    全文下载链接:http://tecdat.cn/?p=22617最近我们被客户要求撰写关于MRS的研究报告,包括一些图形和统计输出。本文提供了一个在统计模型中使用马可夫转换模型模型的例子,来复现Kim和Nelson(1999)中提出的一些结果。它应用了Hamilton(1989)的滤波器和Kim(1994)的平滑器  %matplot......
  • MySQL 序列使用AUTO_INCREMENT
    MySQL序列是一组整数:1,2,3,…,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。本章我们将介绍如何使用MySQL的序列。使用AUTO_INCREMENTMySQL中最简单使用序列的方法就是使用MySQLAUTO_INCREMENT来定义列。实例......
  • MFC 文件 File 序列化和反序列化
    //写文件voidCMainFrame::OnCarchiveWrite(){ //TODO:在此添加命令处理程序代码 /* a)创建文件对象CFile b)以写方式打开文件CFile::Open c)创建序列化对象,并且和文件关联在一起CArchive CArchive::store把数据保存到归档文件中。允许CFile写操作。 d)......
  • 大语言模型关于时间序列预测的文章和关于LLM做金融预测的文章
    任务:寻找大语言模型关于时间序列预测的文章 和关于LLM做金融预测的文章 下面是我的总结:所有的文章都是为了解决一个问题:TS数据和文本数据之间的对齐问题。 将时间序列(TimeSeries,TS)与LLM融合的方式有两条路线:(1)LLM-for-TS:针对TS数据,从头开始设计并预训练一个基本的......