Advertisement

Session-based Recommendation with Hypergraph Attention Networks sdm2021

阅读量:

要明白超图,我的理解就是一个边上可以有很多个节点。一般的理解是2介超图,一条线上有两个节点是我们一般理解的,但是超图就是说一条边上有多个节点。

摘要

基于会话的推荐器系统旨在改进在许多平台上都可以找到的短期会话中的推荐。关键的挑战是在这些简短的会议中,仅以有限的证据准确地建模用户意图。例如,查看鲜花花束是作为购买婚礼的一部分还是用于家居装饰?这种不同的观点极大地影响了下一步应该推荐的内容。因此,本文提出了一种基于超图注意力网络的基于会话的新型推荐系统。该方法的三个独特特性是:(i)为每个会话构造一个超图,以同时对会话中各个上下文窗口定义的项目相关性进行建模,以揭示项目的含义; (ii)它配备了超图注意层,可通过灵活地聚合会话中相关项目的上下文信息来生成项目嵌入; (iii)汇总每个会话的动态项目表示以推断出通用和当前需求,并对其进行解码以推断会话中的下一个有趣项目。通过在三个基准数据集上进行的实验,我们发现所提出的模型与现有技术相比,可以有效地生成信息丰富的动态项嵌入并提供更准确的建议。

介绍

一个关键问题是如何在这种基于会话的推荐方法中处理项目。个人物品可以揭示用户意图,但它们只能提供有限的证据。就是说不通的用户对同一个物品的购买意图使用的方面是不一样的。一朵花可能是送人的,可能是用来做跟结婚相关的

通过上下文的窗口获取用户的准确的意图

为此,我们采用超图[1,4,6,29]结构来对每个会话中不同上下文窗口中项目之间的相关性进行建模。 在会话超图中,每个节点表示一个项目,一个超边缘连接在上下文窗口中一起显示的项目集合。 这种超图结构支持捕获由上下文窗口定义的项之间的相关性,根据使用情况,这些相关性可以是任意顺序。 (2)在会话超图内传播和汇总用户意图证据时,有些项目提供了信息,而另一些则没有。 此外,不同的上下文窗口可能会带来有关项目表示方式的不同级别的证据。 因此,一个关键的挑战是如何仔细突出每个超边上的信息项,以及如何强调影响较大的超边上的证据。

针对上述挑战,我们提出了SHARE:一种基于会话的超图注意网络推荐方案

贡献:

  • 首先,它通过滑动窗口捕获上下文信息,从而使出现在同一窗口中的项目与超边缘相连。通过在会话序列上应用多个滑动窗口,能够在超图结构中同时考虑不同大小的上下文窗口来对会话建模。
  • 其次,它结合了一个精心设计的超图注意力网络来从上下文窗口中提取用户意图证据,该网络能够更多地关注信息项(节点),同时也能够突出上下文窗口(超边)中具有较大影响的证据
  • 第三,由一堆超图关注层产生的会话式项目嵌入然后可以被馈送到自我关注层,以推断会话中的一般意图和当前兴趣,这些兴趣被联合解码以生成针对该会话的下一项推荐。

模型

在本节中,我们使用Hypergraph Attention Networks提出一种基于会话的新颖推荐模型,以利用每个单独会话中的上下文窗口。 在下文中,我们从问题设置开始,然后围绕三个研究问题构建SHARE的设计:(i)鉴于属于同一上下文窗口的项目是相关的,我们如何为每个会话构造一个超图以对相关性进行建模 在各种上下文窗口中同时显示? (ii)考虑到这些上下文窗口,我们如何更新嵌入在上下文窗口内和跨上下文窗口传播的用户意图证据的项? (iii)通过这些按会话分类的项目嵌入,我们如何通过提取会议的总体兴趣和当前需求来推断下一个有趣的项目?

我们要根据会话s中的动作序列(一系列用户项目交互)为I中的所有项目生成偏好得分。 然后,可以将前K个首选项视为推荐候选项

利用上下文窗口来为每一个会话构建一个超图。每个超边缘e∈Es将连接所有落入特定上下文窗口的项目。用在同一窗口中的项目与超边相连接
在这里插入图片描述
使用不同的窗口得到不同的超边,最后把他们放到一起。
(一个会话中的item是固定的,用不同长度的超边给他们连接起来)
在这里插入图片描述
超边上的节点的作用不相同,所以使用注意力机制。

如何学习使用节点很重要。通过特殊的超图结构,我们首先将每个超边缘视为节点之间的中间层,然后汇总通过超边缘传播的所有信息,而不是直接用相邻节点信息更新每个节点
在这里插入图片描述
在这里插入图片描述

n表示节点的第一层输入
在这里插入图片描述
表示经由超边j从第(1)个HGAT层上的节点 t 传播的信息。
(第一层上在超边j上进过节点t传播的信息)

通过注意操作聚合来自超边 j 连接的每个节点的信息,以生成表示
在这里插入图片描述
在这里插入图片描述
下面是在解释3.1中α的式子的S
其中Nj表示由超边缘j连接的所有节点,而u(1)表示第(1)个HGAT层的可训练节点级上下文向量。 W(1)1和Wˆ(1)1是变换矩阵,并且αjt表示节点t在超边缘j上的注意力得分。 我们使用函数S(·,·)计算节点嵌入和上下文向量之间的相似度。 根据经验,我们使用定点产品乘积来计算注意力得分[14,26],其定义为:
在这里插入图片描述
mtj 指的是从点到边聚合信息:
mjt 值的是从边到点,更新节点的信息,

要更新节点的嵌入,我们需要汇总其所有连接的超边缘的内容。 同样,我们利用注意力机制执行聚合,以对不同超边缘的重要性进行建模。 令m(1)j→t表示从超边缘j到节点t的信息(用户意图证据)。 给定连接到节点t的超边缘集合Yt,其更新嵌入计算为:
在这里插入图片描述
先把节点信息汇聚到边上,然后通过边的信息来更新节点

高阶传播。 虽然单个HGAT层可以捕获来自直接邻居的信息,但我们通过堆叠多个HGAT层来构建超图注意网络,以对超图中的多跳高阶信息传播进行建模。 在此Hypergraph Attention网络中,第(l-1)个HGAT层的输出是第l层的输入。 因此,来自最后一层(L)的输出(即,节点嵌入)继承了来自所有先前层的上下文信息,并且可以用于表征该会话中的项目。对于每个会话超图,这样的超图注意网络能够通过突出显示每个超边缘上的信息项,并强调来自具有较大影响的超边缘的证据,来生成会话级项嵌入,以反映会话中用户的意图。
(我的理解是多层HGAT)

预测

为了推断下一个有趣的项目,我们的目标是生成一个嵌入,该嵌入可以对会话的总体兴趣和当前需求进行编码。 我们从自我注意[14,26]中采纳这一思想来实现此目标。 由于总的兴趣可以通过所有项目的汇总来发现,而当前的需求可以通过最后一个项目来揭示,因此我们希望在会议中汇总这些项目,同时更加关注与上一个项目高度相关的那些项目。 因此,我们可以将会话中的最后一个项目视为查询,并将会话中的项目序列视为键和值,从而导致图2中的自我注意层的设计。
在这里插入图片描述
根据以前的研究[14,32]的观察,项目的顺序不太可能与短期序列中的一般兴趣相关,并且可能在建模此类短期序列时引入噪声。 在基于会话的推荐中处理项目序列时,我们会省略顺序信息。

实验

全部评论 (0)

还没有任何评论哟~