An Attentive Inductive Bias for Sequential Recommendation beyond the Self-Attention

news/2024/10/6 1:13:09/文章来源:https://www.cnblogs.com/MTandHJ/p/18288546

目录
  • 符号说明
  • BSARec (Beyond Self-Attention for Sequential Recommendation)
  • 代码

Shin Y., Choi J., Wi H. and Park N. An attentive inductive bias for sequential recommendation beyond the self-attention. AAAI, 2024.

本文在 attention block 中引入高低频滤波.

符号说明

  • \(\mathcal{U}\), users;

  • \(\mathcal{V}\), items;

  • \(\mathcal{S}^u = [v_1^u, v_2^u, \ldots, v_{|\mathcal{S}^u|}^u]\), sequence;

  • \(\mathbf{E}_{\mathcal{S}^u} \in \mathbb{R}^{L \times d}\), sequence embeddings;

  • attention matrix:

    \[\mathbf{A} = \text{softmax}(\frac{\mathbf{Q} \mathbf{K}^T}{\sqrt{d}} ), \quad \mathbf{Q} = \mathbf{E}_{\mathcal{S}^u} \mathbf{W}_Q, \: \mathbf{K} = \mathbf{E}_{\mathcal{S}^u} \mathbf{W}_K. \]

  • \(\bm{f}_j = [e^{2\pi \mathbf{i} (j-1) \cdot 0}, \ldots, e^{2\pi \mathbf{i} (j - 1)(N-1)}]^T / \sqrt{N} \in \mathbb{R}^N\), 维 DFT (Discrete Fourier Transform) 的第 \(j\) 个基底, 这里 \(\mathbf{i}\) 表示 imaginary unit.

BSARec (Beyond Self-Attention for Sequential Recommendation)

  • 首先, 作者对一般的序列推荐模型如 SASRec, FMLPRec 的演进过程中的 embedding 的奇异值变化和 user embedding 的 cosine similarity 进行比较, 可以发现 embedding 主特征值的主导地位相当明显, 而且随着层数的加深, 越发变得相似. 故而, 作者得出结论, 认为现在的主流的序列推荐模型主要是在学习一个 low-pass 的滤波.

  • 令 DFT 的基底矩阵为 \(\mathcal{F}\), 对于任意的向量 \(\bm{x}\) 我们可以得到它的频域上的表示

    \[\bar{\bm{x}} = \mathcal{F} \bm{x}. \]

    并令 \(\bar{\bm{x}}_{lfc} \in \mathbb{C}^c\) 表示 \(\bar{\bm{x}}\) 的最低频位置的 \(c\) 个元素, \(\bar{\bm{x}}_{hfc} \in \mathbb{C}^{d-c}\) 表示 \(\bar{\bm{x}}\) 的最高频位置的 \(d-c\) 个元素.

  • 由此, 我们可以通过 Inverse DFT 得到

    • \(\bm{x}\) 的低频信号:

      \[\text{LFC} [\bm{x}] = [\bm{f}_1, \bm{f}_2, \ldots, \bm{f}_c] \bar{\bm{x}}_{lfc} \in \mathbb{R}^d. \]

    • \(\bm{x}\) 的高频信号:

      \[\text{HFC} [\bm{x}] = [\bm{f}_{c+1}, \bm{f}_{c+2}, \ldots, \bm{f}_d] \bar{\bm{x}}_{hfc} \in \mathbb{R}^d. \]

  • \(\mathbf{X}^{\ell}\) 表示第 \(l\) 层的输入, 则 attention 后的结果为

    \[\alpha \mathbf{A}_{\text{IB}}^{\ell} \mathbf{X}^{\ell} + (1 - \alpha) \mathbf{A}^{\ell} \mathbf{X}^{\ell}. \]

    其中 \(\mathbf{A}^{\ell} \mathbf{X}^{\ell}\) 对应正常的 attention 机制, 而 \(\mathbf{A}_{\text{IB}}^{\ell} \mathbf{X}^{\ell}\)

    \[\mathbf{A}_{\text{IB}}^{\ell} \mathbf{X}^{\ell} = \text{LFC}[\mathbf{X}^{\ell}] + \bm{\beta} \text{HFC}[\mathbf{X}^{\ell}], \]

    其中 \(\bm{\beta}\) 是可训练的参数, 它可以是每个维度设置一个, 也可以不同维度共享一个 (代码里的是这种方案).

代码

[official]

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Leetcode]经典算法

检测环 快慢指针法是一种用于检测链表中是否存在环的有效方法,同时也可以找到环的起点。该方法的原理基于两个指针在链表上同时移动,其中一个移动得更快,而另一个移动得更慢。检测环的存在:使用两个指针,一个称为快指针(fast),一个称为慢指针(slow)。 在每一步中,快…

关于import multiprocessing引用出错

关于import multiprocessing引用出错 0. 原因 当前文件名与python包体中关键词出现同名,导致循环引用 1. 排查过程 问题代码 import timefrom multiprocessing import Process, Queue # 这里提示错误def producer(queue):queue.put("a")time.sleep(2)def consumer(q…

进程信号

进程信号的产生,本质,进程信号的操作,进程信号的底层实现,以及阻塞信号,屏蔽信号1. 信号的产生 1.1 信号概念在生活中有很多的信号在我们身边围绕,例如红绿灯,发令枪,上课铃等等 在接受到信号,我们可以做出三种动作 1.立马去做对应信号的事情 2.等一会再做,有自己的…

24-暑假软件工程日报(7_7)

工作时间:7月7日 14:00-17:00 工作内容: 基本完成第二阶段大程序构建 代码:#include <cstring> #include <iostream> #include <list> #include <math.h> #include <queue> #include <stack> #include <stdio.h> #include <st…

[CISCN2019 华北赛区 Day2 Web1]Hack World

进入题目 输入数字1数字20对select 空格 union or 等等测试发现没有过滤select 空格也被过滤 注意不能单独测试用亦或运算 1^0为真 尝试0^if((ascii(substr((select(flag)from(flag)),1,1))=100),0,1) 回显正常根据回显判断正误 编写脚本爆破,由于该网站请求太快会报429,请求…

CubeMx的部分配置显示不出来

现象描述:CubeMx的部分配置显示不出来 处理方法:(1)继续进行其他配置,给工程起名字,并生成代码;(2)关闭CubeMx后再次打开

[CISCN2019 华东南赛区]Double Secret

进入题目由于请求不能过快,目录扫描工具失效可写脚本, 根据题目两个secret,猜测有serect目录 访问猜测还有一个secret参数随意输入发现源码泄露 注意到有flask,考虑python模板注入 注意到发现rc4加密 找师傅的加密脚本 import base64 from urllib.parse import quote def rc4…

[CISCN2019 华东南赛区]Web11

进入题目注意到xff 在url处随意输入目录xff随之变化 注意下放smarty是php模板 猜测xff为模板注入点 如下用if标签看到回显得到flag flag{6efda977-94fb-4d30-8668-fe28458ec2bf}

game1

进入题目发现是一个游戏发现有一个score.php的发包 发现有分数等 对比不同分数的包发现sign值都有ZM后疑似为base64于是将分数改为较高的分,ZM+base64 尝试要补一个=得到flag

[CISCN 2019 初赛]Love Math

进入题目,直接源码 代码审计、看师傅wp有黑名单字符过滤,有白名单函数过滤 于是用编码绕过,利用eval函数执行命令,system(cat /flag.txt) base_convert(a,b,c) //将数值a按b进制转换为c进制 dechex //将10进制转成16进制 hex2bin() //16进制转成字符串 base_convert(37907…

babyweb国赛华东北

进入题目目录扫描 扫出ssrf.php 发现url尝试用file协议访问/flag.txt拿到flag

人脸识别签到系统一站式开发【基于Pyqt5的CS架构软件】

人脸识别签到系统:课堂签到,上班打卡,进出门身份验证。 功能:人脸录入,打卡签到,声音提醒,打卡信息导出,打包exe文件人脸识别签到系统 1、运用场景 课堂签到,上班打卡,进出门身份验证。 2、功能架构 人脸录入,打卡签到,声音提醒,打卡信息导出:3、技术栈 python3.8…