TiSASRec:时间序列优化之时间间隔感知

admin 2025年4月25日10:24:55评论1 views字数 2161阅读7分12秒阅读模式

一、背景

序列化推荐系统通过探索用户的交互顺序,以此基于他们最近所做过的事情的上下文预测他们的下一个动作。之前有马尔可夫链以及循环神经网络RNN和Self Attention可以解决类似的问题。

但是大多数序列化推荐模型都有一个简化的假设,即这些模型都将交互历史视为一个有顺序的序列,没有考虑这个序列中交互物品之间的时间间隔(即只是建模了时间顺序没有考虑实际上的时间戳)。

本文提出的模型叫TiSASRec (Time Interval Aware Self-Attention for Sequential Recommendation), 不仅考虑物品的绝对位置,还考虑序列中物品之间的时间间隔。

二、内容回顾

self-attention

首先这个文章定位是在self-attention机制上。得说清楚self-attention的研究的对象和解决的问题。

说self-attention一定要谈到SASRec[1]这个文章,该文章是2018年发表在ICDM会议上的论文,主要是针对的是召回的工作,提出SASRec序列推荐模型。作者受到Transformer启发,采用自注意力机制来对用户的历史行为信息建模,提取更为有价值的信息。最后将得到的信息分别与所有的物品embedding内容做内积,根据相关性的大小排序、筛选,得到Top-k个推荐。

Self-attention的意义:对于下一次的物品推荐,依赖于用户行为序列的各个物品的权重是不同的,这与“推荐场景有关”(context上下文),因为当用户物品交互较少时:在一个稀疏数据集下,用户行为较少,行为相隔时间可能相差几天,甚至几个月,那么“此时相近时间的历史物品信息表现得更为重要”;相反,当用户物品交互频繁时:在一个密集型数据集下,用户行为多,例如在电商场景下,那么“相近的物品信息就不是非常重要”。例如,对于某个用户,他在电商场景的一个Session中,行为是:手机--电脑--衣服---鼠标---裤子,那下一个用户感兴趣的是电子产品、服装都有可能,上述历史行为都很重要。即,不同环境下(数据集),模型的self-attention机制关注的重点是不同的(这就是这个图的目的)

TiSASRec:时间序列优化之时间间隔感知

位置感知

     在 transformer中并没有包含RNN或CNN模块,因此它对物品位置是不能感知的,为了解决这个问题,提出了两个办法:

    ① 第一种办法是在输入中添加位置编码,这个编码可以是确定性函数或者是一个可学习的位置嵌入;     ② 另一种解决方案是使用相对位置表示,也就是将两个输入元素之间的相对位置建模成成对关系。

受到第二种用相对位置的self-attention的启发,本文结合了绝对位置和相对位置去设计一个时间感知的self-attention,以此建模物品的位置和时间间隔。这应该是本文的动机。

TiSASRec:时间序列优化之时间间隔感知

上图解释的是在给定用户的商品序列的前提 下,如果设置不同的时间间隔,那么得到的结果也是不同的。

三、优化处理

1.  时间特征处理

特征样例如下:

item_id

position_id

timestamp_value

item_1

1

1

item_2

2

5

item_3

3

10

经过处理后的 timestamp_value:

item_1

item_2

item_3

item_1

0

4

9

item_2

4

0

5

item_3

9

5

0

最终形成的模型输入特征如下:

  1. item-embedding

 我们为物品创建一个embedding 矩阵TiSASRec:时间序列优化之时间间隔感知,d是latent dimension。因为我们固定了物品序列的长度为n,所以如果长度大于n,那我们通过embedding look-up操作截取前n个物品 的embedding,然后将他们堆叠在一起, 形成 TiSASRec:时间序列优化之时间间隔感知

TiSASRec:时间序列优化之时间间隔感知

我们使用两个不同的可学习的位置嵌入(positional embedding)矩阵TiSASRec:时间序列优化之时间间隔感知分别对应self-attention中的keys和values,通过学习,可以得到

TiSASRec:时间序列优化之时间间隔感知

同样地,我们也为相对时间间隔学习两个embedding 矩阵,分别为:

TiSASRec:时间序列优化之时间间隔感知

2. Time Interval-Aware Self-Attention

受相对位置self-attention机制的启发,我们提出考虑序列中两个物品之间的不同时间间隔以扩展self-attention。但是,只考虑时间间隔也是不够的,因为用户交互序列中可能出现在同一个时间戳有多个交互实例的情况,在这种情况下,模型将变成没有任何位置或关系信息的self-attention,所以我们还要考虑序列中物品的位置。

对一个固定长度为n的输入序列TiSASRec:时间序列优化之时间间隔感知计算一个新的序列TiSASRec:时间序列优化之时间间隔感知,这里TiSASRec:时间序列优化之时间间隔感知的每个元素TiSASRec:时间序列优化之时间间隔感知计算公式为:

TiSASRec:时间序列优化之时间间隔感知

这里的特征输入由三个部分组成,一个是TiSASRec:时间序列优化之时间间隔感知,代表 item 的向量特征经过线性变换后,得到的 value 向量,

TiSASRec:时间序列优化之时间间隔感知代表 item-i 和 item-j 之间的时间间隔嵌入后的向量,并且经过线性变换得到 value 向量。

TiSASRec:时间序列优化之时间间隔感知代表 item-j 的位置特征嵌入后的向量,并且经过线性变换得到 value 向量。

将三个向量相加后,乘上相应的注意力TiSASRec:时间序列优化之时间间隔感知进行加权和后,得到更新向量TiSASRec:时间序列优化之时间间隔感知

TiSASRec:时间序列优化之时间间隔感知

TiSASRec:时间序列优化之时间间隔感知的计算本质上是对TiSASRec:时间序列优化之时间间隔感知使用了激活函数 softmax,所以注意力权重的计算是怎么去计算TiSASRec:时间序列优化之时间间隔感知

TiSASRec:时间序列优化之时间间隔感知和上面的 value 的计算逻辑是一样的,只是改用 key 向量进行计算。将相加结果和TiSASRec:时间序列优化之时间间隔感知进行内积。

TiSASRec:时间序列优化之时间间隔感知代表是item-i 的 query 向量。

TiSASRec:时间序列优化之时间间隔感知

原文始发于微信公众号(风物长宜 AI):TiSASRec:时间序列优化之时间间隔感知

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月25日10:24:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   TiSASRec:时间序列优化之时间间隔感知https://cn-sec.com/archives/3953682.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息