2024/1/7周报

文章目录

  • 摘要
  • Abstract
  • 文献阅读
    • 题目
    • 引言
    • 贡献
    • 相关工作
      • Temporal Recommendation
      • Sequential Recommendation
    • 方法
      • Problem Formulation
      • Input Embedding
      • Self-Attention Structure
      • Model Training
    • 实验
      • 数据集
      • 实验过程
      • 实验结果
  • 深度学习
    • Self-attention
      • 多头机制
      • 堆叠多层
  • 总结

摘要

本周阅读了一篇基于多时间嵌入的混合注意机制的顺序推荐的文章,为了解决以前模型的局限性,文章提出了MEANTIME(混合的Attention机制与多时间嵌入),它采用多种类型的时间嵌入,旨在捕捉各种模式,从用户的行为序列,和一个注意力结构,充分利用这种多样性。此外,还对self-attention的内容进行进一步的补充学习、复习。

Abstract

This week, an article on order recommendation based on multi-time embedded mixed Attention mechanism is readed. In order to solve the limitations of previous models, the author proposes MEANTIME (mixed attention mechanism and multi-time embedding), which uses various types of time embedding to capture various patterns, from the user’s behavior sequence and an attention structure, and make full use of this diversity. In addition, the content of self-attention is further supplemented and reviewed.

文献阅读

题目

MEANTIME: Mixture of Attention Mechanisms with Multi-temporal Embeddings for Sequential Recommendation

引言

背景:从用户的历史记录中获取用户的偏好对于做出有效的推荐至关重要,因为用户的偏好和项目的特征都是动态的;此外,用户的偏好在很大程度上取决于上下文;因此,sequential recommendation旨在通过用户的历史记录来预测用户可能更喜欢的下一组事物。

问题:大多数顺序推荐算法忽略了interactions’ timestamp values,虽然TiSASRec成功地结合了时间信息,但它却仅限于单个嵌入方案。由于timestamp values中的信息十分重要,因此探索多种形式的时间嵌入是有益的,而且这些嵌入可以充分提取不同的模式,以及可以充分利用这些多样性的模型架构。

方案:论文提出了MEANTIME,它引入多个时间嵌入,以更好地编码序列中用户项交互的绝对位置和相对位置。此外,论文使用了多个单独处理每个位置嵌入的自注意头,专注于特定的用户行为模式。

贡献

1)论文提出多样化用于编码序列中用户项交互位置的嵌入方案,通过将多个内核应用于序列中时间戳的位置/值来创建唯一的嵌入矩阵来实现的。
2)论文提出了一种新的模型架构,该架构同时操作多个self-attention heads,其中每个头通过利用提出的位置嵌入从用户的行为中提取特定模式。
3)通过实验证明了论文方法在真实世界数据集上的有效性,以及提供了一项全面的消融研究,帮助了解模型中各个组件的影响。

相关工作

Temporal Recommendation

Temporal Recommendation包含上下文信息,对推荐性能非常关键。TimeSVD++和BPTF将时间因子引入到矩阵分解方法中,Time-LSTM为LSTM配备了几种形式的时间门,以更好地模拟用户交互序列中的时间间隔,。CTA在时间信息上使用多个参数化核函数来校准自注意机制。

Sequential Recommendation

Sequential Recommendation的目的是根据用户的顺序历史来推荐相关的项目。SASRec成功地采用了自我注意机制,这在NLP领域取得了巨大的成功。BERT 4 Rec通过采用Transformer 和基于Cloz任务的训练方法改进了SASRec。TiSASRec通过将时间戳信息合并到自注意操作中来增强SASRec。论文工作旨在进一步扩大这一趋势,提出了一种新的模型架构,使用多种类型的时间嵌入和self-attention操作,以更好地捕捉用户行为的不同模式。

方法

本文设计了一种新的模型架构,为每个注意力头部注入各种时间嵌入,如下图所示:
在这里插入图片描述

Problem Formulation

基于给定的历史(Vu,Tu),预测用户u可能在目标时间戳与之交互的下一个项目。

Input Embedding

相对嵌入通过利用时间差信息来编码序列中每个交互对之间的关系。首先,我们定义了一个时间差矩阵,其元素定义为dab=(ta − tb)/T,其中T为可调整的单位时间差。如下所示,编码函数:
在这里插入图片描述
在这里插入图片描述

每一个嵌入都提供了对时间数据的独特视图。例如:Sin捕获周期性事件,较大的时间间隔要么在Exp中迅速衰减为零,要么在Log中可管理地增加;Pos可以从以前的模型中学习模式;最后Con完全消除了位置偏差,因此注意力只能集中在项目之间的关系上。

Self-Attention Structure

Attention Architecture:基于自注意力机制的模型采用了简单的绝对位置编码,将EItem和EPos的总和作为输入;EPos被仅依赖于阵列的位置索引之间差异的相对位置嵌入ER所取代,并且位置信息不再用于键和值编码器;参数bI和bR分别用作全局内容/位置偏差。对于绝对嵌入,论文也采用了前面的结构。

Stacking Layers:将Position-wise前馈网络应用于self-attention的结果,以完成单层,然后堆叠L个这样的层,为每个子层应用残差连接以促进训练:
在这里插入图片描述
在这里插入图片描述

Prediction Layer:给定最后一层的输出,通过以下方式获得每个位置的项目得分分布:
在这里插入图片描述

Model Training

从(Vu,Tu)中对项目v和时间戳t的子序列进行采样,并以概率ρ用[MASK]随机屏蔽其中的一部分,将v转换为v’;然后我们将v′和t送到模型中以获得P,,损失函数如下:
在这里插入图片描述

实验

数据集

在四个不同领域具有稀疏性的数据集上评估了模型:MovieLens 1M、MovieLen 20M、Amazon Beauty和Amazon Game。其中遵循通用数据预处理过程,将每个数据集转换为隐式数据集,将每个数值评级或评论视为用户项交互的存在,最后按用户ID对交互进行分组,按时间戳对它们进行排序,丢弃了少于五次交互的用户和项目,以确保数据集的质量。

对于每个用户的项序列,将最后一个项用于测试,将倒数第二个项用于验证。剩下的用来训练。为了对排名列表进行评分,使用两个常用指标:Recall和Normalized Discounted Cumulative Gain (NDCG)。
Recall@K and NDCG@K都被设计为ground truth item在前k列表中排名较高时具有较大的值。设置K = 5和10。

实验过程

作者使用PyTorch实现了MEANTIME 1。
参数设置如下:
隐藏维度h ∈ {16,32,64,128},头数n ∈ {2,4},丢弃率∈ {0.2,0.5},权重衰减wd ∈ {0,0.00001}。对所有基于transformer的模型使用相同的最大序列长度(MovieLens为N = 200,Amazon为N = 50)和层数(L = 2)

实验结果

与最好基线相比,论文提出的模型在所有指标和数据集中都具有最优的性能。
在这里插入图片描述

多时间嵌入的效果:
下图比较了在ML-1M和Amazon Game数据集上所有可能的时间嵌入组合情况,结果表明具有不同特征的数据集需要精心选择的时间嵌入,以提供对用户-项目交互上下文的正确看法。
在这里插入图片描述

深度学习

Self-attention

例子:
以两个词的输入为例来解释self-attention的大致过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时每个词看的是整个输入序列,不再只看之前的序列,并且是并行计算,同时计算出所有的输出结果。

再以四输入四输出的例子进行补充说明:
在这里插入图片描述

其中只有Wq、Wk、Wv是机器需要学习的参数。

多头机制

CNN中,可以设置不同的filter来进行卷积,self-attention中也可以设置多组q,k,v的值得到不同的特征表达,这就是multi-headed机制。一般情况下,只做8组head即可,通过不同的head得到多个特征表达。多组结果z可以拼接在一起通过全连接层进行降维得到最终的结果。

堆叠多层

在这里插入图片描述

Self-attention输入输出都是向量,可以将self-attention也进行多层堆叠。10层以上都是很常见的。

补充说明:
结果需要通过Add和normalize,并且也可以类似CNN使用残差网络同等映射,以防在堆叠过程中出现结果变差的情况。

总结

本周继续学习了transformer中的核心机制self-attention并进行手动模拟推导,这有利于进一步理解transformer。decoder与encoder类似,只是attention的计算略有不同以及添加了mask机制。在decoder中,只能利用序列中已得出的结果,不能用后面未推导出的部分。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

静态网页设计——宠物狗狗网(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1nk4y1X74M/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…

深度学习|4.1 深L层神经网络 4.2 深层网络的正向传播

4.1 深L层神经网络 对于某些问题来说,深层神经网络相对于浅层神经网络解决该问题的效果会较好。所以问题就变成了神经网络层数的设置。 其中 n [ i ] n^{[i]} n[i]表示第i层神经节点的个数, w [ l ] w^{[l]} w[l]代表计算第l层所采用的权重系数&#xff…

【响应式编程-05】Lambda方法引用

一、简要描述 Lambda的方法引用也叫引用方法 方法引用初体验方法引用的底层实现方法引用的语法格式方法引用举例 静态方法引用构造方法引用普通方法引用super和this方法引用数组的方法引用 二、方法引用初体验 为什么出现方法引用? 引用已存在方法,避免重…

数据结构第八弹---队列

队列 1、队列的概念和结构2、队列的实现2.1、头文件包含和结构定义2.2、初始化2.3、销毁2.4、判断是否为空2.5、入队2.6、出队2.7、获取队头数据2.8、获取队尾数据2.9、获取有效数据个数 3、代码汇总总结 1、队列的概念和结构 队列:只允许在一端进行插入数据操作&am…

给定0-1数组,找出连续1最长和次最长的2个子数组的起始位置和结束位置。

题目 给定0-1数组,找出连续1最长和次最长的2个子数组的起始位置和结束位置。 要求: 子数组长度大于等于1。 如果有多个子数组满足条件,按照数组下标由小到大只输出满足条件的前2个数组的起始位置和结束位置, 如果只有1个满足&…

Multisim各版本安装指南

Multisim下载链接 https://pan.baidu.com/s/1En9uUKafhGOqo57V5rY9dA?pwd0531 1.鼠标右击【Multisim 14.3(64bit)】压缩包(win11及以上统需先点击“显示更多选项”)选择【解压到 Multisim 14.3(64bit)】。 2.打开解压后的文件夹,双击打开【…

深度学习中的知识蒸馏

一.概念 知识蒸馏(Knowledge Distillation)是一种深度学习中的模型压缩技术,旨在通过从一个教师模型(teacher model)向一个学生模型(student model)传递知识来减小模型的规模,同时保…

UAV | 多算法在多场景下的无人机路径规划(Matlab)

近年来,无人机(unmanned aerial vehicle,UAV)由于其灵活度高、机动性强、安全风险系数小、成本低等特点,被广泛应用于搜索巡逻、侦察监视、抢险救灾、物流配送、电力巡检、农业灌溉等军用或民用任务。路径规划是无人机执行任务的关键&#xf…

C# Attribute特性实战(1):Swtich判断优化

文章目录 前言简单Switch问题无参Swtich方法声明Swtich Attribute声明带有Swtich特性方法主方法结果 有参Switch修改代码修改运行过程运行结果 总结 前言 在经过前面两章内容的讲解,我们已经简单了解了如何使用特性和反射。我们这里解决一个简单的案例 C#高级语法 …

Spring依赖注入的魔法:深入DI的实现原理【beans 五】

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Spring依赖注入的魔法:深入DI的实现原理【beans 五】 前言DI的基本概念基本概念:为什么使用依赖注入: 构造器注入构造器注入的基本概念:示例&#xff1a…

RK3568 学习笔记 : 解决 linux_sdk 编译 python 版本报错问题

前言 最近买了 【正点原子】 的 RK3568 开发板,下载了 开发板的资料,包括 Linux SDK,这个 Linux SDK 占用的空间比较大,扩展了一下 VM 虚拟机 ubuntu 20.04 的硬盘空间,编译才正常通过。 编译 RK3568 Linux SDK 时&am…

二维地图组件开发

很多的业务项目中,都会用到二维地图,二维地图功能简洁,并且很多在很多的业务中采用,维护难度也比三维地图小一些。而开发二维地图的开源库有QGis, Mapwingis等。 采用mapwingis开发了一个二维地图组件,可以…

Jmeter事务控制器聚合报告

Jmeter 事务控制器。 在Jmeter中,默认一个取样器就是一个事务 事务控制器控制其子集取样器,合并为一个事务 添加:逻辑控制器/Logic Controller -> 事务控制器/Transaction Controller TPS: 服务器每秒处理的事务数 在事务控制器下添加多…

Http与Tcp协议的原理以及应用

OSI七层模型和相关协议 七层模型从上到下如下所示: 应用层:负责应用之间的通信,处理请求和响应的具体格式表示层:对于数据格式进行处理会话层:负责建立和断开通信连接,传输层:负责建立端口之间…

gdal平面几何空间关系

关于平面几何的空间关系判定,gdal提供了8个函数,分别是:Intersects(相交),Equals(相等),Disjoint(不相交),Touches(接触&a…

LeetCode做题总结 15. 三数之和、18. 四数之和 (Java)

不会做,参考了代码随想录和力扣官方题解,对此题进行整理。 X数之和 15. 三数之和代码思路20240103重写错误1错误2Java语言点总结 18. 四数之和代码思路20240104(伪)错误1 第一次剪枝错误2 第二次剪枝错误3 溢出 15. 三数之和 代码…

C#使用纯OpenCvSharp部署yolov8-pose姿态识别

【源码地址】 github地址:https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8-Pose算法是一种基于深度神经网络的目标检测算法,用于对人体姿势进行准确检测。该算法在Yolov8的基础上引入了姿势估计模块,通过联合检测和姿势…

vue icon 本地正常 线上打包失败变乱码

出现这个原因是因为sass解析的问题 Node版本高的话可以通过升级sass版本 并且配置vue.config规避这个问题 //给sass配置的东西 这个对应的版本是sass 1.39.0 本人node版本v14 升级sass版本后出现报错css: {loaderOptions: {scss: {additionalData: import "/styles/var…

网络请求 - 异步编程详解

一、概述 网络管理模块主要提供以下功能: HTTP数据请求:通过HTTP发起一个数据请求。WebSocket连接:使用WebSocket建立服务器与客户端的双向连接。Socket连接:通过Socket进行数据传输。 HTTP和WebSocket都是啥? 比如我…

速记计算机网络传输介质分类

计算机网络中的传输介质是指用于在不同设备之间传递数据的物理媒介。传输介质的选择对于网络的性能和可靠性至关重要。在计算机网络中,常见的传输介质可以分为有线传输介质和无线传输介质两类。本文将对这两类传输介质进行详细的分类和介绍。 一、有线传输介质 有…