2024.4.21周报

news2024/11/18 20:39:04

目录

摘要

Abstract

文献阅读:Next Item Recommendation with Self-Attentive Metric Learning

问题及方法

论文贡献

方法论

序列感知的推荐系统

神经注意模型

模型:ATTREC

序列推荐

基于Self-Attention的用户短期兴趣建模

用户长期兴趣建模

模型学习

研究实验

数据集

评估指标

模型比较

实验效果

讨论

结论


摘要

本周我阅读的文献《Next Item Recommendation with Self-Attentive Metric Learning》中,提出了一种新的序列感知推荐模型,通过自注意力机制,能够估计用户交互轨迹中每个item的相对权重,以更好地表示用户的瞬时兴趣。论文最主要的核心点是提出结合度量学习和Self-Attention的方法来解决序列推荐问题,以及显式地控制了长短期兴趣对模型的影响。

Abstract

The literature I read this week, "Next Item Recommendation with Self Attentive Metric Learning," proposes a new sequence aware recommendation model that, through self attention mechanism, can estimate the relative weight of each item in the user interaction trajectory to better represent the user's instantaneous interest. The main core point of the paper is to propose a method that combines metric learning and Self Attentions to solve sequence recommendation problems, as well as explicitly controlling the impact of long-term and short-term interests on the model.

文献阅读:Next Item Recommendation with Self-Attentive Metric Learning

文献链接:https://arxiv.org/abs/1808.06414

问题及方法

问题:在推荐系统中,使用CNN和RNN去捕捉用户整个历史行为时,都存在着无法明确捕获item-item交互的问题。
方案:基于用户历史上下文对item-item的关系建模的动机是符合直觉的,因为是去理解item之间更为精细的关系,而不是简单的统一对待。论文假设为模型提供inductive bias将提升表示质量,并最终改进推荐系统的效果。
论文提出的模型不仅对连续的item建模,而且对当前窗口中的所有用户行为进行学习,因此整个模型可以视为是局部-全局方法。论文提出的模型采用度量学习框架的形式,在训练时使用户的self-attended表示为与预期item之间的距离更近,而且这篇文章是第一个提出基于度量学习和基于attention方法的序列推荐方法。

论文贡献

  1. 提出一种新的序列推荐任务框架,模型将self-attention网络与度量embedding相结合,以模拟用户的临时意图和长期意图。
  2. 提出的框架在固定的基准数据集上表现出最先进的性能,证明了在序列建模期间item-item交互的实用性。论文提出的模型超过了当前的Caser,TransRec和RNN等。
  3. 进行了广泛的超参数和消融研究,论文研究了各种关键超参数和模型架构对模型性能的影响,还提供了学习注意力矩阵的定性可视化。

方法论

序列感知的推荐系统

论文中大多数方法是专门为评分预估任务设计的。除了马尔科夫链,度量embedding也在序列感知的推荐上有良好的表现。

神经注意模型

CNN和RNN需要从大量数据中学习以获得有意义的结果,但是数据稀疏性使得模型训练相当困难。然而注意力机制可以帮助克服它们的缺点,它能帮助RNN解决长依赖问题,并帮助CNN集中注意力到输入的重要部分。
最近将Attention应用到推荐的研究有hashtag recommendation,one-class recomendation,session based recommendation。在推荐系统中使用self-attention并非直截了当的,这证明了作者工作的新颖性。

模型:ATTREC

AttRec用self-attention对用户短期兴趣建模,用协同度量学习对用户长期兴趣建模。

序列推荐

定义U为用户集合,I为item集合,其中| U |=M,| I |=N。定义用户行为序列为:
在这里插入图片描述

基于Self-Attention的用户短期兴趣建模

在这里插入图片描述
Self-Attention模块:
基础的attention只能通过对整个上下文中有限的知识进行学习,而self-attention能够保持上下文序列信息,并且不需要考虑它们之间的距离来捕获序列上各元素的关系。
这篇文章对Query和Key都做了ReLU的非线性变换,保持Value不变。在其他领域中,value通常是预训练的,用的是word embedding或图像特征。而在本文模型中value的值是需要学习的。无论是做线性变换还是非线性变换都会增加参数学习的困难,因为query和key是作为辅助因素,所以不像value对变换那么敏感。
为了学习单一attentive表示,将L个self-attention的Embedding取平均值作为用户短期兴趣:

在这里插入图片描述


有时间信号的输入Embedding:
如果没有序列信号,则输入退化为a bag of embedding,同时无法保留顺序模式。本文通过位置embedding给query和key增加时间信息,时间Embedding由两个正弦信号定义得到:

在这里插入图片描述


其中:TE在非线性变换之前添加给query和key。

用户长期兴趣建模

本文为了避免点积的问题,使用欧式距离来衡量item和user的接近程度:

在这里插入图片描述

模型学习

目标函数:
给定时间步t的短期attentive隐因子和长期偏好后,任务为预测在时间步t+1用户将产生交互的item。为了保持一致,对短期和长期都用欧式距离建模,使用它们的和作为最终的推荐分数:

在这里插入图片描述


其中:第一项表示长期兴趣推荐分数,第二项表示短期兴趣推荐分数。
在某些情况下,想要预测几个item,而不是只预测一个item,这样能让模型捕获序列中的跳跃行为。定义T+为T个用户喜欢的item。本文采用pairwise排序方法学习模型参数,将T-定义为用户无行为的负样本。为了鼓励区分正负user-item对,使用基于边界的hinge loss:

在这里插入图片描述


其中:r是边界参数,用l2控制模型复杂度。在稀疏数据集上也是用归一裁剪策略来限制X, V, U在一个单元欧式球上:

在这里插入图片描述


这种正则化方法对于稀疏数据集,减轻了维度问题的困扰并预防数据点不会传播得太广。
优化和推荐:
用adaptive gradient algorithm作为优化方法,推荐欧式距离最小的top N。在推荐阶段,一次计算所有user item对的推荐分数,用有效的排序算法生成排序列表。
下图为整个模型的框架:
在这里插入图片描述

研究实验

数据集

预处理:丢弃不足10个行为的用户,移除掉冷启动物品。
在这里插入图片描述

评估指标

hit ratio衡量预测准确率,mean reciprocal rank衡量排序质量:

在这里插入图片描述


MRR考虑预测结果中groundtruth item的位置:

在这里插入图片描述

模型比较

神经网络方法:HRM,Caser
度量Embedding方法:PRME,TransRec

实验效果

在这里插入图片描述

讨论

Self-Attention的影响:Self-Attention的效果比其他方法好
聚合方法的影响:平均方法效果最好
权重w的影响:它用于控制长短期兴趣的贡献。从下图a中可以发现,设置w=0说明仅考虑短期兴趣,效果比仅考虑长期兴趣w=1更好。w取值为0.2-0.4较好,说明短期兴趣在序列推荐中比较重要。

在这里插入图片描述


序列长度L的影响:上图b中表示合适的高度依赖于数据集的密集程度。在MovieLens数据集上,平均每个用户有超过100个行为,设置越大效果越好。然而,在稀疏数据集上,应当设置的比较小,因为随着L的增长会导致训练样本的减少。
隐式维度大小的影响:从下图中可以发现,本文模型在任何维度上均优于其他模型,更大的维度效果不一定更好,MC和Caser的表现不稳定。

在这里插入图片描述


模型效率:

在这里插入图片描述

结论

这篇论文提出了一种用于序列推荐的基于self-attention的度量学习方法AttRec。它结合了用户的短期意图和长期偏好,以预测用户的下一步行动。它利用self-attention从用户最近的行为中学习用户的短期意图。最后,通过实验结果表明,AttRec可以准确捕捉用户最近行为的重要性。

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

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

相关文章

MySQL修改数据表的结构

创建数据库 -- create database 创建的数据库名; create database test; 这里创建了一个名为 test 的数据库 选择需要使用的数据库 -- use 数据库名; use test; 这里使用 test 数据库 创建数据表 -- create table 表名(字段名1 数据类型(长度) 约束,字段名2 数据类型(长…

Centos7 的 Open Stack T 版搭建流程 --- (三)配置消息队列

配置消息队列 文章目录 配置消息队列(1)安装 RabbitMQ 服务并配置新用户权限controller (2)如何开启图形化(拓展) (1)安装 RabbitMQ 服务并配置新用户权限 controller yum install…

开源事件通知库libevent及网络连接管理模块bufferevent详解

目录 1、libevent介绍 1.1、什么是libevent? 1.2、libevent特点 1.3、网络连接管理模块bufferevent 2、bufferevent有什么用? 3、bufferevent的整体设计与实现细节 3.1、整体概况 3.2、evbuffer与bufferevent 3.3、defer callback 4、bufferev…

LLM学习笔记-2

在未标记数据上进行预训练 本章概要 在上节的笔记中,因为训练出的效果,并不是特别理想,在本节中,会用数据进行训练,使得模型更加的好; 计算文本生成损失 inputs torch.tensor([[16833, 3626, 6100],…

知攻善防应急靶场-Windows(Web1-2-3)

知攻善防应急靶场-Web1 1.要求 2.过程 直接扫网站根目录 发现后门 <?php error_reporting(0); session_start();$key"e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位&#xff0c;默认连接密码rebeyond$_SESSION[k]$key;session_write_close();$postf…

集成学习-Bagging与随机森林回归

reg_fRFR() reg_tDTR()#实例化决策树 cvKFold(n_splits5,shuffleTrue,random_state1412)#实例化验证方式 result_tcross_validate(reg_t#要进行交叉验证的评估器,X,y,cvcv,scoringneg_mean_squared_error#评估指标,return_train_scoreTrue#是否返回训练分数&#xff0c;后面这几…

vue 脚手架创建

脚手架创建 介绍 脚手架是什么呢&#xff0c;就是vue自动创建脚手架的项目模板&#xff0c;用于搭建项目的整体骨架&#xff0c;就比如后端开发时&#xff0c;咱们可以创建一个空项目&#xff0c;一步步创建为mvc项目&#xff0c;但是vs封装了mvc的框架&#xff0c;我们可以直…

房地产行业与软件行业的可持续发展模式对比

一、什么是可持续发展&#xff1f; 可持续发展是一种注重长远发展的经济增长模式&#xff0c;旨在实现经济、社会和环境的协调发展&#xff0c;而不损害未来世代的需求和权益。其核心思想是在满足当前人类需求的同时&#xff0c;不危及地球生态环境的承载能力&#xff0c;保持资…

03-JAVA设计模式-命令模式

命令模式 什么是命令模式 命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;它将请求封装为对象&#xff0c;从而使你可用不同的请求把客户端与请求的处理者解耦,也称动作模式或事物模式。 在命令模式中&#xff0c;命令对象封装了接收者对象…

【每日刷题】Day20

【每日刷题】Day20 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 面试题 17.04. 消失的数字 - 力扣&#xff08;LeetCode&#xff09; 2. 189. 轮转数组 - 力扣&#…

CCF PTA 2023年5月C++富有的大壮

【问题描述】 给在一个神秘的国度&#xff0c;有一种多拿多得的疯狂游戏&#xff0c;某日大壮去参赛&#xff0c;在规定区域内里面有 N(N≤100) 堆金币&#xff0c;第i堆金币的总重量和总价值分别是mi,vi(1≤ mi,vi≤100)。大壮有一个承重量为T(T≤1000) 的背包&#xff0c;但…

kali没有数字签名

一开始以为是国外源访问缓慢问题&#xff0c;更新国内源后依旧报错 解决方案&#xff1a; 你需要下载apt源对应的签名文件&#xff0c;并使用apt-key命令将其添加到系统中。例如&#xff0c;对于Kali的官方源&#xff0c;你可以使用以下命令下载并安装签名文件&#xff1a; …

从迷宫问题理解dfs

文章目录 迷宫问题打印路径1思路定义一个结构体要保存所走的路径&#xff0c;就需要使用到栈遍历所有的可能性核心代码 部分函数递归图源代码 迷宫问题返回最短路径这里的思想同上面类似。源代码 迷宫问题打印路径1 定义一个二维数组 N*M &#xff0c;如 5 5 数组下所示&…

我与C++的爱恋:隐式类型转换

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 朋友们大家好&#xff0c;本篇内容我们来介绍初始化列表&#xff0c;隐式类型转换以及explicit的内容 一、初始化列表 1.1 构造函数体赋值 在创建对象时&#xff0c;编译器…

WP-AutoPostPro 汉化版: WordPress自动采集发布插件

WP-AutoPostPro 是目前最好用的WordPress自动采集发布插件&#xff0c;最大的特点是可以采集来自于任何网站的内容并自动发布到你的WordPress站点。真正做到可以采集任何网站的内容并自动发布&#xff0c;采集过程完全自动进行无需人工干预&#xff0c;并提供内容过滤、HTML标签…

C++从入门到精通——模板

模板 前言一、泛型编程二、函数模板函数模板的概念函数模板格式示例 函数模板的原理函数模板的实例化隐式实例化显式实例化示例 auto做模板函数的返回值模板参数的匹配原则总结 三、类模板类模板的定义格式类模板的实例化 前言 C模板是C语言中的一种泛型编程技术&#xff0c;可…

用ESP32的ADC引脚,结合分压电路测量电压

该代码基于ESP32&#xff08;Arduino库&#xff09;实现ADC&#xff08;模拟数字转换器&#xff09;数据采集。它配置ADC参数、获取校准特性&#xff0c;循环采样并计算平均值&#xff0c;将ADC读数转换为电压&#xff0c;考虑分压电阻影响&#xff0c;计算实际电压值&#xff…

SpringBoot 根据不同环境切换不同文件路径

最简单的办法就是使用多个 application.yml 配置文件 。一个叫 application-test.yml 测试用&#xff1b;另一个是正式使用的 application-prod.yml 。win环境下大部分是开发测试时候使用的&#xff0c;服务正式上线需要部署在Linux服务器上又换成了Linux。但开发初期或者项目…

SEGGER Embedded Studio IDE移植FreeRTOS

SEGGER Embedded Studio IDE移植FreeRTOS 一、简介二、技术路线2.1 获取FreeRTOS源码2.2 将必要的文件复制到工程中2.2.1 移植C文件2.2.2 移植portable文件2.2.3 移植头文件 2.3 创建FreeRTOSConfig.h并进行配置2.3.1 处理中断优先级2.3.2 configASSERT( x )的处理2.3.3 关于系…

Unity3D 爆火的休闲益智游戏工程源码/3D资源 大合集

Unity3D休闲益智游戏工程源码大合集 一、关卡类游戏工程源码二、跑酷类游戏工程源码三、消除合成类游戏工程源码四、棋牌类游戏工程源码五、RPG(角色扮演)类游戏工程源码六、FPS&#xff08;射击&#xff09;类游戏工程源码十、Unity3D工艺仿真六、Unity游戏资源1、Unity3D 吃鸡…