2023.1.15 学习周报

news2024/12/26 22:18:22

文章目录

  • 摘要
  • 文献阅读
    • 1.题目
    • 2.摘要
    • 3.介绍
    • 4.本文贡献
    • 5.PROPOSED METHOD
      • 5.1 Problem Formulation
      • 5.2 Personalized Time Intervals
      • 5.3 Embedding Layer
      • 5.4 Time Interval-Aware Self-Attention
        • 5.4.1 Time Interval-Aware Self-attention Layer
        • 5.4.2 Causality
        • 5.4.3 Point-Wise Feed-Forward Network
      • 5.5 Prediction layer
      • 5.6 Model Inference
    • 6.实验
      • 6.1 数据集
      • 6.2 评估指标
      • 6.3 比较方法
      • 6.4 实现细节
      • 6.5 实验表现
    • 7.结论
  • 深度学习
    • 1.多头注意力self-attention
    • 2.为什么要设置q k v?
    • 3.self-attention理解
  • 总结


摘要

This week, I read a paper about the self-attention mechanism, the main content of this paper is to model the time stamps of interactions within a sequence modeling framework to explore the influence of different time intervals on the prediction of the next project. To this, the paper proposes a serial recommendation model, TiSASRec, which takes into account both the absolute location of items and the time interval between them. Finally, experimental results show that the proposed method is superior to various advanced sequential recommendation models in sparse data sets, dense data sets and different evaluation indexes. In the study of self-attention, I learn about multi-head self-attention, try to explain why qkv was set, and show the understanding of self-attention that I have learned.

本周,我阅读了一篇关于自注意力机制相关的论文,论文主要内容是在一个序列建模框架内对交互的时间戳进行建模,以探索不同时间间隔对下一个项目预测的影响。对此,论文提出了一种时间间隔感知自我注意力的序列推荐模型TiSASRec,它既考虑到项目的绝对位置,也考虑到它们之间的时间间隔。最后,通过实验结果表明,在稀疏数据集和稠密数据集以及不同评价指标上,该方法均优于各种先进的序列推荐模型。在对self-attention的学习中,我学习了多头注意力self-attention,试图解释了为什么会设置qkv,以及展示了自己学习到的对self-attention的理解。


文献阅读

1.题目

文献链接:Time Interval Aware Self-Attention for Sequential Recommendation

2.摘要

Sequential recommender systems seek to exploit the order of users’ interactions, in order to predict their next action based on the context of what they have done recently. Traditionally, Markov Chains (MCs), and more recently Recurrent Neural Networks (RNNs) and Self Attention (SA) have proliferated due to their ability to capture the dynamics of sequential patterns. However a simplifying assumption made by most of these models is to regard interaction histories as ordered sequences, without regard for the time intervals between each interaction (i.e., they model the time-order but not the actual timestamp). In this paper, we seek to explicitly model the timestamps of interactions within a sequential modeling framework to explore the influence of different time intervals on next item prediction. We propose TiSASRec (Time Interval aware Self-attention based sequential recommendation), which models both the absolute positions of items as well as the time intervals between them in a sequence. Extensive empirical studies show the features of TiSASRec under different settings and compare the performance of self-attention with different positional encodings. Furthermore, experimental results show that our method outperforms various state-of-the-art sequential models on both sparse and dense datasets and different evaluation metrics.

3.介绍

背景:在电子商务、朋友建议、新闻推荐等应用程序中,对顺序交互进行建模是必不可少的。以下有两条重要的工作线试图挖掘用户的交互历史:时间推荐和顺序推荐,其中时间推荐侧重于对绝对时间戳进行建模,以捕获用户和商品的时间动态。

问题:基于马尔科夫链的方法已经成功地被采用来捕捉短期的项目转换以进行推荐。它们通过强有力的简化假设在高稀疏度环境中表现良好,但在更复杂的情况下可能无法捕捉到错综复杂的动态变化。RNN也被应用于这种环境,虽然RNN模型在用户的偏好上有很长的 “记忆”,但它们需要大量的数据,特别是密集的数据,才能优于最简单的基线。

方案:为了解决马尔科夫链模型和基于RNN模型的缺点,受到机器翻译的Transformer的启发,提出将self-attention机制应用于顺序推荐问题。

论文中认为用户交互序列应该被建模为一个具有不同时间间隔的序列。如下图所示,交互序列有不同的时间间隔,其中一些时间间隔可能很大。以往的工作省略了这些时间间隔及其对预测项目的影响。为了解决上述局限性,在相对位置表征的self-attention的启发下,论文提出了一个时间感知的self-attention机制。这个模型不仅考虑了SASRec中的绝对位置,而且考虑了任意两项之间的相对时间间隔。通过实验结果表明,论文提出的模型在稠密和稀疏数据集上都优于最先进的算法。

4.本文贡献

1)论文建议将用户的交互历史视为一个具有不同时间间隔的序列,并将不同的时间间隔建模为任意两个交互之间的关系。
2)论文结合了用于self-attention的绝对位置和相对时间间隔编码的优点,并设计了一种新颖的时间间隔感知self-attention机制,以学习不同项目的权重、绝对位置和时间间隔来预测未来项目。
3)论文进行了全面的实验,以研究绝对位置和相对时间间隔以及不同组件对TiSASRec性能的影响,并表明它在两个排名指标上优于最先进的基线。

5.PROPOSED METHOD

TiSASRec包含四个组件,分别是personalized time interval processing, an embedding layer, time-aware self-attention blocks, a prediction layer。TiSASRec的目标是捕获序列模式并探索时间间隔对序列推荐的影响。

5.1 Problem Formulation

U和I分别表示用户集和项目集,在time-aware SR中,对每个用户u,有一个用户的行为序列Su=(S_u,1, S_u,2, … ,S_u,|Su|),其中S_u,t∈I;还有一个与行为序列对应的时间序列Tu = (T_u,1, T_u,2, …, T_u,|Tu|)。在训练过程中,模型在时间步t上根据先前的t个物品以及物品i和j之间的时间间隔r_u,ij预测下一个物品。模型的输入(S_u,1, S_u,2, …, S_u,|Su-1|)和序列中任意两个物品之间的时间间隔Ru,其中Ru∈N(|Su|−1|×|Su|−1),期望的输出是(S_u,2, S_u,3, …, S_u,|S^u|)。

5.2 Personalized Time Intervals

对于原始输入序列Su和Tu,首先将它们的长度固定为n,如果大于n,则截取最近n个,如果小于n,则用最左边的物品及其对应的时间戳补齐至n。

论文将交互序列中的时间间隔建模为两个物品之间的关系。有些用户的交互比较频繁,但有些则比较少,因此在一个用户序列中考虑相对时间间隔长度。因此,对于所有时间间隔,我们除以零以外的最小时间间隔得到个性化间隔。具体来说,就是给定一个固定长度的用户时间序列t = (t1, t2, …, tn)。两个物品i和j之间的时间间隔定义为|ti - tj|,时间间隔集表示为Ru,这样一个用户u的最小时间间隔为r_u,min=min(Ru)。进行伸缩变换后的时间间隔为r_u,ij=(|ti - tj|/r_u,min)向下取整。因此,我们得到了用户u的关系矩阵Mu:
在这里插入图片描述

5.3 Embedding Layer

论文为物品创建一个embedding矩阵MI∈R(| I |×d),d是latent dimension。因为固定物品序列的长度为n,所以如果长度大于n,则需要通过embedding look-up操作截取前n个物品的embedding,然后将它们堆叠在一起,形成矩阵EI∈R(n×d),如果长度小于n,则用零向量进行补全。
在这里插入图片描述
论文使用两个不同的可学习的positional embedding矩阵M_P,K∈R(n×d), M_P,V∈R(n×d)分别对应self-attention中的keys和values,通过学习可以得到:
在这里插入图片描述
论文为相对时间间隔学习两个embedding 矩阵,分别为:
在这里插入图片描述

5.4 Time Interval-Aware Self-Attention

5.4.1 Time Interval-Aware Self-attention Layer

对一个固定长度为n的输入序列EI = (m_s1, m_s2, …, m_sn)计算一个新的序列Z = (z1, z2, …, zn),这里zi和m_si∈Rd.Z的每个元素zi计算公式为:
在这里插入图片描述
其中:每个zi就是线性变化的输入和关系以及位置嵌入的加权和,权重系数的计算公式为:
在这里插入图片描述
WQ∈R(d×d)\ WK∈R(d×d)分别是query和key的输入映射,根号d是为了避免内积的值过大。

5.4.2 Causality

由于序列的性质,在预测第t+1个物品时,是需要知道前t个物品的。因为时间感知的self-attention层的第t个输出包含所有输入信息,所以为了避免穿越问题,禁止所有Qi和Kj(j>i)之间的联系。
在这里插入图片描述

5.4.3 Point-Wise Feed-Forward Network

时间感知的自注意层可以自适应地选择权重合并所有前面的物品,绝对位置和相对时间信息,但它是通过线性组合实现的。为了使模型具有非线性,在每个time-aware self-attention层之后,应用两个以ReLU为激活函数的线性变换。
在这里插入图片描述
将self-attention和feed-forward堆叠起来后,就会出现过拟合、梯度消失和训练时间长等问题,因此通过使用layer normalization,residual connections和dropout regularization技术去解决这些问题:
在这里插入图片描述
其中:⊙是元素的乘积,μ和σ是x的均值和方差,α和β是学习的比例因子和偏差项。

5.5 Prediction layer

在堆叠self-attention block后,就会得到了物品,位置和时间间隔的组合表示,之后用潜因子模型计算用户对物品i的偏好分数:
在这里插入图片描述
其中:M_i,I是物品i的embedding,Z_t是给定前t个物品(s1, s2, …, st)以及它们与第t+1个物品之间的时间间隔(r_u,1(t+1), r_u,2(t+1), …, r_u,t(t+1))得到的表示。

5.6 Model Inference

给定物品序列S_u = (S_u,1, S_u,2, …, S_u,|Su|-1)和时间序列T_u = ( T_u,1, T_u,2, …, T_u,|T^u|-1),就会得到固定长度为n的两个序列s=(s1, s2, …, sn)和t=(t1, t2, …, tn),最后期望输出o = (o1, o2, …, on)。
在这里插入图片描述
因为用户交互式隐数据,所以不能直接优化偏好分数R_i,t。模型式给出一个物品排名列表,所以采用负采样去优化物品排名。对每一个期望输出oi,我们采样一个o’_i(不属于S_u)去生成一组成对的优先顺序。论文选择cross entropy为损失函数,并使用sigmoid函数将分数限制在(0, 1),用Adam优化器优化,并使用mini-batch SGD加速。
在这里插入图片描述

6.实验

6.1 数据集

论文在来自三个真实世界平台的六个数据集上评估提出的方法,这些数据集有不同的域、大小和稀疏度,并且都是公开可用的。
在这里插入图片描述

6.2 评估指标

论文采用两个常用的Top-N指标Hit Rate@10和NDCG@10来评估推荐性能,Hit@10统计了ground-truth条目在前10个条目中的比例,NDCG@10考虑位置,并将更高的权重分配给更高的位置。对于每个用户u,随机抽取100个负面项目,并将这些项目与ground-truth项目进行排序,最后根据这101个项目的排名计算Hit@10和NDCG@10。
在这里插入图片描述

6.3 比较方法

论文将TiSASRec与以下方法进行比较,这些方法包括不考虑顺序模式的经典通用推荐(如POP、BPR)、基于一阶马尔可夫链的方法(如FPMC、TransRec)和基于神经网络的方法(如GRU4Rec+、Caser和MARank)。

6.4 实现细节

论文在验证集上使用tensorflow和微调超参数实现TiSASRec,使用了两个时间间隔感知的self-attention层,并在嵌入层和预测层中学习了位置嵌入和间隔嵌入以及共享项目嵌入。所有数据集的learning rate为0.001,batch size为128,dropout为0.2。

6.5 实验表现

在所有密集数据集和稀疏数据集上,TiSASRec在两个指标上都比最好的基线方法有所改进。一方面,论文的模型利用了注意力机制,可以根据不同的项目、绝对位置和时间间隔来调整权重,而以前的模型只考虑前两者。另一方面,TiSASRec利用了注意力机制,使得可以在不同的数据集上适应性地关注不同范围内的项目。

7.结论

论文提出了一种时间间隔感知的序列推荐自注意力模型,TiSASRec对项目之间的相对时间间隔和绝对位置进行建模,以预测未来的相互作用。在稀疏数据集和稠密数据集上,大量实验结果表明模型优于最新的基线,并且证明了相对时间间隔对下一个项目预测任务的影响。

深度学习

1.多头注意力self-attention

上周学习的self-attention每个单元只有一个q k v,如果每个单元有多个q k v,我们就把它称为多头注意力,多个q k v是指在第一个q k v计算之后,再进行一次矩阵运算,分割成多个q k v来实现:
在这里插入图片描述
然后,不同头的q k v分别进行和单头一样的运算。
第一个:
在这里插入图片描述
第二个:
在这里插入图片描述
以两个头为例,进行矩阵运算来降维得到最后的结果:
在这里插入图片描述
多头与单头相比,多头中每个头关注点可能不一样,有的头会比较关注周围词的信息,有的头会比较关注长距离信息。

2.为什么要设置q k v?

其实可以将q k v设置为一样,但是这样会遇到一个问题,我们将三个信息设置一样,那么模型就没有其它未能想到的可能性。

如果在模型中加入w权重矩阵,让模型自己去构造和学习这三个信息,就会出现多种可能性,并且还能设置不同的权重矩阵和增加多头,就能让模型更加丰富。其实这里也就是构建一个线性模型,对信息向量进行一个线性模型运算,公式为:y = w[0] * x[0] + w[1] * x[1] + … + w[n] * x[n] +b

3.self-attention理解

自注意力机制计算公式:
在这里插入图片描述
除去归一化和除维度操作,简化公式为:
在这里插入图片描述
1)计算得分,score表示这个字与内部其它字的关系。
2)计算注意力值,Attention value表示”学“的加权值,”习“的加权值。
3)这样计算的作用是突出内部关联性强的字。
在这里插入图片描述
从上图中可以看出,学学的关联性比学习的关联性强,那么在最后的计算中,”学学 * 学 + 学习 * 习“中的学学 * 学就会主导计算结果(这个字与其余字的关联性)。在模型训练过程中,如果学习位于一句话中间,假设“学”相比“习”与label的关联性更大,那么”学学 * 学 + 学习 * 习“就会有更大的权重,从而使模型注意力集中。


总结

self-attention的优点是self-attention的计算基本都是矩阵计算,不包含任何RNN和CNN结构,可以解决序列的长依赖问题,同时矩阵计算可以并行化,使得计算非常快速。self-attention的缺点是self-attention中没有任何部分可以处理序列信息,因此需要额外的positional encoding模块;矩阵维度是n的平方,如果序列较长会非常消耗内存;虽然self-attention能对长依赖问题有效处理,但是对短程的上下文信息反而处理的不好。

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

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

相关文章

QT可直接安装的离线版最后版本5.14.2

以前用c#来做组态,自定义控件开发起来也还过得去,但QT的控件和graphics view貌似更有优势,个人观点吧!工控领域的组态用上QT还是不错的选择。 从2000前开始使用qt,算起来也有20多年了。个人感觉用起来最顺手的应该时Q…

【PHP】一文详解如何连接Mysql数据库(附源码)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

24考研——专业院校选报指南(3步决定专业选择、11大类本科对应考研专业简析、6步决定目标院校)

文章目录一、专业选择指导1.1 考研整体形势1.2 考研专业选报1.2.1 专业设置1.2.2 专硕专业设置1.2.3 专业代码含义1.2.4 区分“学硕和专硕”1.2.5 专业选择步骤(跨专业考研难度)1.2.6 跨专业考研简析(法硕/教育/会计、审计、图书情报/思想政治…

汇编【王爽】实验3、4

实验3 编程、编译、链接、跟踪 assignment 1 编译链接生成可执行文件 assignment 2 debug将程序载入内存,设置CS:IP:程序所在内存段的段地址为DS075CDS075CDS075C,则PSP的地址为075C:0075C:0075C:0,程序的地址为076C:0(075C1…

C++ 初了解模板

一. 泛型编程 我们若是想实现一个需要对各类数据通用的功能,在C语言中是不太现实的,而在C中,我们可以运用函数重载,但我们依然需要写出多个内容极其类似的函数,例如想要实现交换 void Swap(int& a, int& b…

2022这特殊的一年,再见!

望着窗外的夕阳以及还未完全融化的积雪,我想是时候给这特殊的一年写篇总结了。于是我翻看了2021年的,发现文末所定的2022年目标。终于明白为什么老人不玩手机可以坐一下午了,因为往事回想起来就和电视连续剧一样。年初参加了开运跑&#xff0…

【UE】pak的mount(带源码解析)

本文使用的引擎版本为UE4.27 为了方便理解,文中选取的代码均为部分截取,只截取与小节相关的部分 文章目录概述几个涉及到的结构Mount时机pak读取优先级目录优先级根据文件名定优先级综上所述概述 正常的散文件加载是使用FFileHelper::LoadFileToArray等…

【阶段四】Python深度学习06篇:深度学习项目实战:卷积神经网络进行狗狗图像分类项目

本篇的思维导图: 项目背景 应用Keras框架构建卷积神经网络进行狗狗图像分类的预测,以及模型的优化。主要用来熟悉Keras卷积层、池化层网络的使用以及模型的优化方法。 数据获取 本次建模数据来源于网络,数据项统计如下: 数据集为狗狗数据集,来自全国各地的狗狗图…

算法进阶指南:第一章练习题

1.The Pilots Brothers refrigerator 牛客竞赛-The Pilots Brothers refrigerator 116. 飞行员兄弟 - AcWing题库 开关问题的特点是每个开关只会作用某个特定范围,所以每个开关最多操作一次,且操作先后次序对最后结果无影响。用16位二进制存储状态&am…

Unity 过场工具(Cutscene)设计(一)

Unity 过场工具(Cutscene)设计(一) 游戏中通常会涉及到过场内容的制作,从而来进行一些强表现,从而来进行剧情相关的串联,使游戏表现类容更丰富。比较典型的游戏 像原神,天刀等等游戏。 过场工具制作选择 过…

Java程序设计实验2 | Java语言基础(1)

*本文是博主对Java各种实验的再整理与详解,除了代码部分和解析部分,一些题目还增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人自己的补充,以方便大家额外学习、参考。 目录 一、实验…

写在壬寅年末,2023年春节

先回顾过去几年写过的年末总结写在戊戌年末,2019年春节写在己亥年末,2020年春节写在庚子年末,2021年春节写在辛丑年末,2022年春节又一个农历年即将过去,写下这样的年末总结,已经是第5年,于是便有…

Nginx面试题(史上最全 + 持续更新)

尼恩面试宝典专题39:Nginx面试题(史上最全、持续更新) 本文版本说明:V27 《尼恩面试宝典》升级规划为: 后续基本上,每一个月,都会发布一次,最新版本,可以联系构师尼恩…

本周大新闻|传苹果MR开发样机已送出,比尔盖茨:不太看好Web3和元宇宙

本周大新闻,AR方面,苹果软件曝光“Reality OS”和“xrOS”;IVAS项目仅获批4000万美元;比尔盖茨:不太看好Web3和元宇宙;DigiLens工业AR眼镜ARGO;Kopin拆分部分OLED部门;LetinAR展示塑…

【Linux】gcc/g++的使用

这里写目录标题🚖gcc如何使用🚖函数库🌈动态库和静态库🚖gcc如何使用 ✒️预处理 预处理功能主要包括宏定义、文件包含、条件编译、去掉注释 实例: gcc -E myfile.c -o myfile.i “-E(大写)”&…

JVM(二)——参数调优

JVM参数调优 前言 你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值 使用jps和jinfo进行查看 -Xms:初始堆空间 1/64 -Xmx:堆最大值 1/4 -Xss:栈空间-Xms 和 -Xmx最好调整一致,防止JVM频繁进行收集和…

微信小程序项目实例——摇色子

微信小程序项目实例——摇色子 文章目录微信小程序项目实例——摇色子一、项目展示二、核心代码三、效果图文末项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 摇色子是一款简易的游戏类小程序 用户可以投出1-9个色子 二、核心代码 dice.wxml <!--pages/dic…

编解码标准-H.264

H.264是MPEG-4家族中的一员&#xff0c;即MPEG-4系列文档ISO-14496的第10部分&#xff0c;因此被称作MPEG-4 AVC&#xff0c;MPEG-4重点考虑灵活性和交互性&#xff0c;而H.264着重强调更高的编码压缩率和传输的可靠性。 1、H.264 编码流程 1.1、slice&block 第一步&…

字节面试官: 让你设计一个MQ每秒要抗几十万并发,怎么做?

目录 1、页缓存技术 磁盘顺序写2、零拷贝技术3、最后的总结 这篇文章来聊一下Kafka的一些架构设计原理&#xff0c;这也是互联网公司面试时非常高频的技术考点。 Kafka是高吞吐低延迟的高并发、高性能的消息中间件&#xff0c;在大数据领域有极为广泛的运用。配置良好的Kaf…

电商项目之如何迁移千万级别的数据表

1 背景 电商系统一般都会有一张表记录买家的浏览器信息&#xff0c;包含但不限于浏览器ip、浏览器cookie信息、浏览器user-agent、当前页面的url、当前页面的refer。买家在电商网站上每一次操作&#xff0c;都会记录到该表。该表的数量量至少达到千万级级别。该表有什么用处&a…