[Session] Dual Sparse Attention Network For Session-based Recommendation 阅读笔记,AAAI21

Info

本文首发于公众号:code路漫漫,欢迎关注
在这里插入图片描述
官方代码:https://github.com/SamHaoYuan/DSANForAAAI2021
思维导图地址:https://github.com/hhmy27/MyNotes

这篇文章是 AAAI21 的文章
模型图
在这里插入图片描述

实验结果
在这里插入图片描述

1 Motivation

作者提了两个问题

  1. 以往工作直接用 last click item embedding 用来表示 current preference 不妥
  2. session 中所有的 item 并不一定能反映用户偏好,有些交互可能是因为误触、浏览无关的促销广告等行为产生的

对于 1,例子如下
在这里插入图片描述
例子中使用最后一个 item 预测的物品集合里面不存在真实的 target item

两个问题都是很直观的问题,下面看看它怎么解决的

解决方法:

  1. 论文提出了一个可学习的 embedding 用来刻画用户的 current preference,称为 target embedding
  2. 论文引入了 alpha-entmax 函数,其中 alpha 也是可习得的参数,用来消除小权重 item 的影响。考虑到小权重 item 的语义正是那些不能反映用户偏好的 item。

2 Contribution

  1. 提出了 DSAN 这个新框架,它由 self-attention 和 vanilla attention 组成。通过 item-level collaborative information 学习 target embedding ,使用不同的 query, key and value 向量作为高阶信息去建模session推荐
  2. 引入基于上下文的 adaptively sparse attention mechanism 去寻找 session 中可能无关的 item,保留高权重给有关 item
  3. 实验表示达到了最优的效果

3 Solution

论文里面细节比较多,这里先简单概括一下怎么做的,写一下用到的 embedding 符号,后面再细说具体做法

首先论文引入了两个 attention 机制,第一个称为 Sparse Attention Network,第二个是 Vanilla Attention Network,两个 attention network 是串联机制,最终产生 session 的 embedding 和 current preference embedding(论文中称为 target embedding)。

这里产生的 session embedding 是考虑到 current preference embedding 的,以往工作大多都直接对 item 进行 embeedding,然后再聚合得到 session 的 embedding。而这篇文章在计算 session embedding 的过程中加入了 current preference embedding,同时训练两个 embedding

得到 session embedding 之后,我们将它和原始的 item embedding 结合起来,进行预测,即可得到结果

具体而言,生成 session embedding 的步骤如下

  1. 把 input session 转换成两个向量,一个是 item embedding,另一个是 positional embedding,存储着 item 的位置信息
    在这里插入图片描述

  2. 把 item embedding 和 positional embedding 结合起来,得到每个 item 的表示,此时属于预处理部分,没有输入到网络中
    在这里插入图片描述
    需要注意的是,这里有一个红色的 Cs,它是我们要计算的 target embedding,能够反应 current preference embedding

  3. 输入第一个 att,得到 item-level 的信息
    在这里插入图片描述

  4. 继续输入第二个 att,最终通过聚合得到 session 的表示 hs(是一个值)
    在这里插入图片描述

  5. 进一步结合 target embedding 聚合信息
    在这里插入图片描述

  6. 进行预测
    在这里插入图片描述

下图总结了流程中出现的符号以及意义
在这里插入图片描述

文章中session embedding 的构造还是挺复杂的。。

下面我们分步骤来看

3.1 初步 embedding

在这里插入图片描述
在这里插入图片描述

生成两个 embedding,xi 和 pi,然后结合起来得到 ci

c i = C o n c a t ( x i , p i ) ci = Concat(xi, pi) ci=Concat(xi,pi)

3.2 Target embedding learning

在这里插入图片描述
传入第一个 att,计算 target embedding 和初步的 session embedding
在这里插入图片描述
计算公式就不细说了,就是传统的 attention 机制运用方法
在这里插入图片描述
值得注意的是,这里出现的 alpha-entmax 替代了传统的 softmax,观察它的图像我们可以知道,alpha 越大,较小的权重将越有可能直接标记为0
在这里插入图片描述
同时 alpha 这个参数也是通过 MLP 习得的

最终结果:
在这里插入图片描述
其中 E = { e 1 , e 2 , . . . , e t , e s } E = \{e_1,e_2,...,e_t,e_s\} E={e1,e2,...,et,es}

3.3 学习进一步的 session 表示

在这里插入图片描述
符号含义
首先按公式 9 计算 β,即权重,图中没有画出来
在这里插入图片描述
alpha 同样是计算得出
在这里插入图片描述

然后按照 h s = ∑ p = 1 β p c p h_s = \sum_{p=1} \beta_pc_p hs=p=1βpcp 聚合得到 session 的表示

3.4 聚合信息并进行预测

在这里插入图片描述
在这里插入图片描述

这一步我有一个疑问,h_s 生成过程中已经使用了 e_s,为什么还要再聚合一遍?感觉挺奇怪的

在这里插入图片描述
z 表示模型的最后输出
在这里插入图片描述
这一步还要各自正则化后做点积,得到预测分数

目标函数选择交叉熵

4 Evaluation

由于官方放出了 code,这一步就不细说了,我们直接看结果
数据集划分
实验结果
消融实验部分:
消融实验结果
三个变形

  1. DSAN-NS
    没有 target embedding
  2. DSAN-NT
    没有 target attention layer
  3. DSAN-DA
    把两个 att 变成平行结构而不是顺序结构,同时没有 target embedding

超参部分:
超参影响

5 Summarization

回顾提出的两个问题:

  1. 以往工作直接用 last click item embedding 用来表示 current preference 不妥
  2. session 中所有的 item 并不一定能反映用户偏好,有些交互可能是因为误触、浏览无关的促销广告等行为产生的

解决方法:

  1. 学习 target embedding
  2. 使用 alpha-entmax

个人感觉
既然表示的是 current preference,应当用末尾的几个物品来综合考虑,论文直接使用所有 item 的 embedding 学习 target embedding,从语义上来说,不是和 global preference 撞车了吗,感觉这方面还可以再改进下
另外学习 target embedding 的过程又训练了 session embedding,得到 session embedding 之后又和原始的 item embedding 进行聚合,文中也没有解释,给人一种 “是实验显示这么处理效果好所以要这么做” 的感觉

使用 alpha-entmax 是 make sense 的

论文提出了将来的研究方向:

In the Future work, we plan to explore the way of using automated machine learning to delete the unrelated item in the session before entering into the network, so that the model can learn more useful information.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
扩散稀疏子空间聚类(Diffusion-based Sparse Subspace Clustering)是一种用于对高维数据进行聚类的方法。在高维数据中,每个样本通常代表一个在低维子空间上存在的潜在结构。通过识别这些子空间,并将在同一子空间中的样本归为一类,可以实现对数据的有效聚类。 扩散稀疏子空间聚类方法基于两个关键观察: 1. 相似样本倾向于属于相似的子空间。因此,如果两个样本在低维空间中较接近,它们很可能属于同一子空间。 2. 子空间中的样本可以表示为其他子空间样本的线性组合。在同一子空间中的样本可以以较低的维度表示,通过使用其他子空间样本的线性组合表示。 扩散稀疏子空间聚类方法通过以下步骤实现聚类: 1. 构建样本图:通过计算样本之间的相似度,构建一个图表示样本之间的连接关系。 2. 构建相似性矩阵:基于样本图,构建一个相似性矩阵,用于表示每对样本之间的相似程度。 3. 构建稀疏图:通过对相似性矩阵进行稀疏化处理,得到一个稀疏图,仅保留与每个样本最相关的邻居之间的连接。 4. 扩散聚类:利用稀疏图进行扩散聚类,将每个样本向其最相关的邻居进行扩散,最终将同一子空间中的样本迭代归为一类。 扩散稀疏子空间聚类方法具有较好的鲁棒性和高效性,适用于各种类型的数据集。同时,该方法在处理噪声和离群点时也有一定的鲁棒性,可以减少它们对聚类结果的影响。这使得扩散稀疏子空间聚类方法在图像处理、模式识别和数据挖掘等领域得到广泛应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值