前言

目前已经有很多方法通过将会话建模为序列或图来完成对会话的嵌入,进而对 next-item 进行预测。这些方法将会话压缩为一个固定的表示向量,而不考虑要预测的目标项。之前的大多数方法的出发点就是通过对会话进行嵌入,期望能够捕获到用户意图信息完成对未来可能产生交互物品的预测。

本文的作者认为由于目标物品的多样性和用户的兴趣,固定的向量会限制推荐模型的表示能力。因此在本文中提出了一种新的目标注意图神经网络( TAGNN )模型用于基于会话的推荐。在TAGNN中,目标感知注意自适应地激活了用户对不同目标物品的不同兴趣。学习到的用户意图表示向量随目标物品的不同而变化,大大提高了模型的表达能力。此外,TAGNN利用图神经网络的力量来捕捉会话中的物品关系。

本文的创新点如下:

  1. TAGNN 将会话建模成会话图来捕获会话中物品的复杂关系,之后利用图神经网络的深度学习方法计算物品嵌入。
  2. 为了适应用户在会话中不断变化的意图,提出了一种针对于目标物品的注意力网络模型,所提出的目标注意模块能够揭示特定目标物品下历史动作的相关性,进一步改善了会话表示。

论文链接:https://arxiv.org/abs/2005.02844
github:https://github.com/CRIPAC-DIG/TAGNN

1. TAGNN

1.1 Problem Statement and Constructing Session Graphs

在会话推荐任务中,一个匿名会话可以表示为一个列表 s = [ v s , i ] i = 1 s n s=[v_s,i]^{s_n}_{i=1} s=[vs,i]i=1sn,根据时间戳的不同进行排列,基于此可以通过 V = { v i } i = 1 m V=\{v_i\}_{i=1}^m V={vi}i=1m 作为会话中用户产生过交互物品的集合。会话推荐的核心任务是给定一个会话 s s s 希望预测下一次最可能产生的交互对象 v s , s n + 1 v_{s,s_{n}+1} vs,sn+1。TAGNN 为所有候选物品产生一个概率排序列表,具有 top-k 概率值的物品将被选中进行推荐。

在 TAGNN 中选择将会话建模成有向图,表示为 G s = ( V s , E s , A s ) \mathcal{G_s=(V_s,E_s,A_s)} Gs=(Vs,Es,As),其中 V s , E s , A s \mathcal{V_s,E_s,A_s} Vs,Es,As 分别代表图节点集合、边的集合、邻接矩阵。图中的每一个节点代表一个物品 v s , i ∈ V v_{s,i}\in V vs,iVE s \mathcal{E_s} Es 代表用户连续与 v s , i − 1 v_{s,i-1} vs,i1v s , i v_{s,i} vs,i 产生交互。由于模型选择将会话序列建模为有向图,因此邻接矩阵是出邻接矩阵 A ( o u t ) \mathcal{A}^{(out)} A(out) 和入邻接矩阵 A ( i n ) \mathcal{A}^{(in)} A(in) 的级联。并且在这两个邻接矩阵中反映了边的权重关系。此处构建会话图的方法与 SR-GNN 相同。但是作者提到对于不同的基于会话的推荐场景,可以灵活地采用不同的构建会话图的机制。

1.2 Learning Item Embeddings

首先将所有节点特征映射到同一个特征空间,同时也是转换维度的过程,经过图神经网络的结果为 v i ∈ R d \mathbf{v}_i \in \mathbb{R}^d viRdd d d 维的特征向量。然后可以使用物品嵌入来表示每个会话 s s s 。图神经网络( graph neural network, GNN )是一类应用广泛的深度学习模型。GNN 在图拓扑上生成节点表示,图拓扑为复杂的物品连接建模。因此,它们特别适合基于会话的推荐。本文采用门控图神经网络来学习节点向量。其更新规则为:

其中 t t t 代表卷积层数, A s , i ∈ R 1 × 2 n \mathbf{A}_{s,i}\in\mathbb{R}^{1\times2n} As,iR1×2n 代表邻接矩阵的第 i i i 行对应于节点 v s , i v_{s,i} vs,i,此处为 2 n 2n 2n 的原因是 TAGNN 选择将会话建模成有向图,因此邻接矩阵包含了出邻接矩阵和入邻接矩阵。 H ∈ R d × 2 d , b ∈ R d \mathbf{H}\in\mathbb{R}^{d\times2d},\mathbf{b}\in\mathbb{R}^d HRd×2d,bRd 分别代表可训练的权重矩阵和偏置矩阵。基于此我们可以得到会话 s s s 的物品特征表示列表 [ v 1 ( t − 1 ) , … , v s n ( t − 1 ) ] [\mathbf{v_1^{(t-1)}},\dots,\mathbf{v_{s_n}^{(t-1)}}] [v1(t1),,vsn(t1)]z s , i ∈ R d × d , r s , i ∈ R d × d z_{s,i}\in\mathbb{R}^{d\times d},r_{s,i}\in\mathbb{R}^{d\times d} zs,iRd×d,rs,iRd×d 分别代表注意力机制的重置们和更新门。 σ ( ⋅ ) \sigma(\cdot) σ() 代表非线性激活函数,在本文中代表 Sigmoid 函数。 ⊙ \odot 代表点积。对于每一个会话图 G s \mathcal{G}_s Gs,门控神经网络在相邻节点之间传播信息。更新和重置门分别决定哪些信息被保留和丢弃。

1.3 Constructing Target-Aware Embeddings

以前的工作只使用会话内的物品表示来捕获用户的兴趣。在 TAGNN 中获得了每个物品的嵌入后,开始构建目标物品嵌入,自适应地考虑与目标物品相关的历史行为的相关性。在这里将目标物品定义为所有要预测的候选物品。通常,用户给出的推荐物品的操作只匹配部分兴趣。为了模拟这一过程,作者设计了一个新的目标注意机制来计算与每个目标物品有关的会话中所有项目的软注意分数。

作者引入了一个局部目标注意模块来计算会话 s s s 中所有物品 v i v_i vi 与每个目标物品 v t ∈ V v_t\in V vtV 之间的注意得分。首先,对每个节点-目标对应用一个权重矩阵 W ∈ R d × d W \in \mathbb{R}^{d×d} WRd×d 计算注意力得分。然后使用 Softmax 函数将注意力的分标准化:


最后对于每一个会话 s s s,用户对于目标物品 v t v_t vt 的兴趣可以表示为 s t a r g e t t ∈ R d s_{target}^t \in \mathbb{R}^d stargettRd,表示形式如下:

所得到的表示用户兴趣的目标嵌入随目标物品的不同而不同。

1.4 Generating Session Embeddings

至此已经得到了会话中物品的嵌入表示和对于每一个会话中用户对于不同目标物品的兴趣嵌入,之后进一步使用会话 s s s 中涉及的节点表示生成用户在当前会话 s s s 中显示的短期和长期偏好。

Local embedding

用户偏好的局部嵌入可以近似认为是会话中与用户产生交互的最后一个物品,所以简单地将用户的短期偏好表示为一个局部嵌入的 s l o c a l ∈ R d s_{local}\in\mathbb{R}^d slocalRd 也就是作为最后产生交互的物品 v s , s n v_{s,s_n} vs,sn 的表示。

Global embedding

通过聚集所有涉及的节点向量,将用户的长期偏好表示为全局嵌入 s g l o b a l ∈ R d s_{global}\in\mathbb{R}^d sglobalRd。作者在此处采用另一种软注意机制,使上次访问的物品与会话中所涉及的每一个物品之间具有相关性:

其中 q , c ∈ R d \mathbf{q,c} \in \mathbb{R}^d q,cRd 并且 W 1 , W 2 ∈ R d × d \mathbf{W_1,W_2} \in \mathbb{R}^{d \times d} W1,W2Rd×d 代表权重参数。

Session embedding

基于上述步骤,我们可以根据用户目标意图嵌入,局部意图嵌入,全局意图嵌入生成最终的会话嵌入表示,表示方式就是三者的级联加上变换矩阵:

其中 W 3 ∈ R d × 3 d \mathbf{W}_3\in\mathbb{R}^{d\times3d} W3Rd×3d 将三个向量投影到一个嵌入空间 R d \mathbb{R}^d Rd。此处需要注意的是对于每一个目标物品,生成了不同的会话嵌入表示

1.5 Making Recommendation

在得到所有的物品嵌入和会话嵌入后,通过物品嵌入 v t v_t vt 与会话表示 s s s 的内积,计算每个目标物品 v t ∈ V v_t\in V vtV 的推荐分数 z ^ t \hat{z}_t z^t。接下来,对所有目标物品的未归一化分数 z z z 使用 Softmax 函数,得到最终的输出向量:

其中 y ^ ∈ R m \hat{\mathbf{y}} \in \mathbb{R}^m y^Rm 表示物品在 s s s 中作为下一个交互对象的概率。在 y ^ \hat{\mathbf{y}} y^ 中具有 top- k 概率的物品将被选为推荐物品。

loss为预测和标签的交叉熵:

y \mathbf{y} y 为标签项的 one-hot 编码向量。使用反向传播(BPTT)算法来训练所提出的模型。

2. Experiments

SIGIR 2020 TAGNN: Target Attentive Graph Neural Networks for Session-based Recommendation相关推荐

  1. TAGNN: Target Attentive Graph Neural Networks for Session-based Recommendation论文阅读笔记

    论文标题:TAGNN: Target Attentive Graph Neural Networks for Session-based Recommendation 发表于:2020 SIGIR 作 ...

  2. cs224w(图机器学习)2021冬季课程学习笔记9 Graph Neural Networks 2: Design Space

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 1. A General Perspective on Graph Neural Networks ...

  3. AI医药论文笔记--GraphDTA: Predicting drug–target binding affinity with graph neural networks

    GraphDTA:用图神经网络预测药物-靶点结合亲和力 论文题目 GraphDTA: Predicting drug–target binding affinity with graph neural ...

  4. 【推荐系统->论文阅读】Dynamic Graph Neural Networks for Sequential Recommendation(用于序列推荐的动态图神经网络)

    Dynamic Graph Neural Networks for Sequential Recommendation(用于序列推荐的动态图神经网络) Mengqi Zhang, Shu Wu,Mem ...

  5. Self-supervised Graph Neural Networks for Multi-behavior Recommendation-IJCAI 2022 读书笔记

    0 作者 Shuyun Gu , Xiao Wang , Chuan Shi∗^∗∗ and Ding Xiao 1 动机 传统推荐系统一般只考虑购买行为,忽略了放入购物车.浏览行为: 本文将购买.放 ...

  6. 【阅读】A Comprehensive Survey on Distributed Training of Graph Neural Networks——翻译

    转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] (本文中,涉及到公式部分的翻译不准确,请看对应原文.) 另一篇:[阅读]Distributed Graph Neural Networ ...

  7. Paper:《Graph Neural Networks: A Review of Methods and Applications—图神经网络:方法与应用综述》翻译与解读

    Paper:<Graph Neural Networks: A Review of Methods and Applications-图神经网络:方法与应用综述>翻译与解读 目录 < ...

  8. 图神经网络(Graph Neural Networks,GNN)综述

    鼠年大吉 HAPPY 2020'S NEW YEAR 作者:苏一 https://zhuanlan.zhihu.com/p/75307407 本文仅供学术交流.如有侵权,可联系删除. 本篇文章是对论文 ...

  9. Paper:《Graph Neural Networks: A Review of Methods and Applications》翻译与解读

    Paper:<Graph Neural Networks: A Review of Methods and Applications>翻译与解读 目录 <Graph Neural N ...

最新文章

  1. 2022-2028年中国盲盒产业研究及前瞻分析报告
  2. ArcGIS Engine 编辑介绍
  3. 快速开发平台网格部件合并单元格。
  4. python apply_async执行不了_python – Django Celery apply_async不起作用
  5. 开源自动化配置管理工具Puppet入门教程
  6. 未能打开组策略对象 您可能没有合适的权限
  7. bzoj1088: [SCOI2005]扫雷Mine
  8. 计算机二级c语言填空题库,全国计算机二级C语言填空题库.doc
  9. 英语学渣如何看懂全英文的芯片数据手册
  10. Ubuntu 20.04桌面美化
  11. mac FileZilla下载与安装
  12. 2023高频经典前端面试题(es6+webpack+http网络+性能优化中篇,含答案)
  13. 将Word文档中指定内容锁定
  14. 系统集成考试口诀万金油记忆
  15. [BLE]低功耗蓝牙介绍
  16. obs媒体源没有声音_绝地求生的推荐直播参数和获取方法 在阅读本教程之前,请提前下载好斗鱼伴侣或者OBS直播软件,如还未下载,可进入...
  17. 程序员的乐趣,那些可爱的 Linux 命令
  18. Java中的三种代理模式解释
  19. 计算机B的IP地址是,IP地址202.117.17.255/22是什么地址?()。A.网络地址B.全局 - 信管网...
  20. SpringBoot打包部署成Windows服务的详细步骤

热门文章

  1. FastDFS自定义水印的文件上传(前端调用后端接口)
  2. VOC数据集制作 滑窗切分图片python
  3. 如何卸载 没有卸载程序或者提示需要使用msiexec来卸载
  4. ✔[77]组合(回溯,DFS)
  5. GDB再学习(6):断点调试之软件断点
  6. 网易云音乐用户画像资产治理及业务赋能
  7. SCRATCH弹球小游戏(免费教程)
  8. 高速光耦TLP109——匹配电阻选取
  9. VBScript MsgBox 函数
  10. 线性代数学习笔记6-3:行列式的计算、代数余子式