Heterogeneous Global Graph Neural Networks for Personalized Session-based Recommendation

面向个性化会话推荐的异构全局图神经网络

发表于:

存在的问题:在现有的工作中,建模用户偏好时往往忽略了用户历史会话,导致不能实现个性化推荐。现有的基于会话的个性化推荐仅限于当前用户的会话,忽略了其他用户历史会话中有用的项目转换模式。

作者提出:提出了一种新的异构全局图神经网络(HG-GNN),利用所有会话中的项目转换,以便更好地从当前和历史会话中推断用户偏好。为了有效利用用户在所有会话中的项目转换,我们的全局图包含会话的项目转换、用户项目交互和全局共现项目。此外,为了从会话中全面捕获用户偏好,我们提出了一种图增强偏好编码器来学习会话表示。在HGNN的基础上,我们提出了个性化会话编码器,将当前会话的一般用户偏好和时间兴趣结合起来,生成个性化的会话表示以供推荐。

当前方法中,大多数方法都没有考虑用户历史会话,因为假定用户是匿名的,这会导致非个性化的推荐。这些方法主要依靠当前会话的项目信息形成会话表示,然后利用项目相关性进行推荐,而忽略了用户特征和历史行为的影响。

给定用户A和B,假设他们有相似的会话序列,如上图,以前的方法通常会为不同的用户生成相同的候选项,但用户有可能已经登陆,或存在某种形式的用户标识符。在这种情况下,可以合理地假设历史会话中的用户行为在提供个性化建议时是有用的。

其次,现有的基于个性化会话的推荐模型研究仅基于会话的用户偏好,而忽略了其他用户历史会话中有用的项目转换模式。这些方法捕获历史会话对用户当前会话的影响,以通过基于RNN或基于GNN的模型获得个性化会话表示。从概念上讲,利用其他会话的项目转换可以捕获更复杂的项目相关性,并可能有助于建模用户偏好。

为了解决上述限制并实现个性化的基于会话的推荐,我们提出了异构全局图神经网络(HG-GNN),该方法以一种微妙的方式利用所有会话上的项目转换,以便更好地从当前和历史会话推断用户偏好。为了有效地利用用户在所有会话中的项目转换,我们首先提出了一种新的由用户节点和项目节点组成的异构全局图。特别是,我们利用用户项历史交互在图中构造用户项边,以捕获长期用户偏好。然后,我们在会话序列中采用成对项目转换来构建项目之间的连接。为了获取潜在的相关性,我们基于全局共现信息计算相似项对来构建项边。此外,为了从会话中全面捕获用户偏好,我们建议通过图增强偏好编码器从异构全局图中学习偏好表示。我们在异构全局图上提出了一种新的异构图神经网络(HGNN),用于学习具有丰富语义的长期用户偏好和项目表示。此外,个性化会话编码器将当前会话的项目信息和一般用户偏好相结合,生成个性化会话表示,用于生成更准确、更个性化的推荐列表。

PRELIMINARY

定义V=\left\{ v_1,v_2,...,v_{\vert v \vert}  \right\} U=\left\{ u_1,u_2,...,u_{\vert u \vert } \right\} 分别为项目集和用户集,每个用户的交互记录为S_{u_i}=\left\{ S_{u_{i,1}},S_{u_{i,2}},...,S_{u_{i,n}} \right\} ,其中为用户u_i的历史session序列,S_{u_{i,j}}是用户u_i的第j个session序列。会话S_{u_{i,j}}=\left\{ v_1^{u_{i,j}},v_2^{u_{i,j}},...,v_l^{u_{i,j}} \right\} 是按时间排序的项目,其中v_t^{u_{i,j}}\in V表示用户u_i在时间t处的交互,l表示为会话长度。

给定历史信息\left\{ S_{u_{i,1}},S_{u_{i,2}},...,S_{u_{i,t-1}} \right\} 和用户u_i的当前会话S_{u_{i,t}},个性化推荐的目标是预测用户最后可能点击的下一项。

方法

如图所示,为了有效地利用用户在所有会话中的项目转换,我们提出了一种新的异构全局图来组织历史会话并精确获取全局信息。我们利用用户项历史交互边在图中构造用户项边,以捕获用户偏好。为了利用潜在相关性,我们基于全局共现信息计算相似项对来构造项边。会话序列中的成对项转换也用于构建连接。

此外,我们还建议通过图增广会话偏好编码器从异构全局图学习会话表示。具体而言,我们在异构全局图上提出了一种新的异构图神经网络,用于学习具有丰富语义的长期用户偏好和项目表示。此外,我们还采用了个性化会话编码器,该编码器结合了用户的一般偏好和当前会话的项目,全面生成个性化会话表示。

异构全局图的构造

构造具有两条元路径的异构全局图:项到用户以及项到项

项到项:项目过渡信息是基于会话的建议的基础。项目之间的转换关系可以包括会话中相邻的交互行为和同一会话之间频繁的共现行为。这两种行为是相辅相成的。在会话中定义v_i到v_j的两条边(v_i,v_j,r_{in})(v_j,v_i,r_{out}),同时,对于每个节点,生成它的边的权重,对于每条边,利用它在所有历史会话中的频率作为边缘权重,为了确保项目的相关性,只对图G中节点vi的S个权重最大的边抽样。

此外,我们采用共现信息来构造项目之间的边。两个项目在不同会话中的频繁共现行为可以显示出较强的项目相关性。对于项目vi,我们基于所有的历史会话计算它的共现项,去共现次数最大的前k个。因此,定义两个共现项vi和vj的边为(v_i,v_j,r_{similar}),vi和vj共线的频次可以计算为

N(v_i)表示出现vi的会话集,在两个项目中可能会同时出现两条边r_{in}、r_{similar},这时我们只需要保留前一条边

避免引入过多噪声,使用vi的前K个相邻节点,因此,对于节点vi,只有K_{v_i}^{’}可以被构建为r_{similar}

项到用户:项目到用户元路径直接表示用户与项目之间的交互行为,揭示了用户隐含的长期偏好。将项目与用户之间的交互转换为图中两种类型的有向边:(u_j,u_i,r_{interact})(u_i,u_j,r_{interacted by}),定义为用户ui和用户uj之间有交互。

综上所述,构造了一个新的具有两种节点的异构全局图G,此全局图包含会话中的基本成对项转换、用户项历史交互和全局共现信息。利用全局图统一用户和项表示的学习,并捕获项目相关性和长期用户偏好。

异构全局图神经网络

在有向异构全局图上提出了一种异构图神经网络HGNN来编码用户和项目的表示。项IDq_{u_i}^{(0)}和用户IDp_{v_j}^{(0)}在模型中被嵌入到d维向量空间中作为初始节点特征。在GNN层中,存在三种连接项目邻居的边,r_{in},r_{out},r_{similar},有一种连接用户邻居的边类型r_{interactedby}。对于每种边类型,收集所有邻居信息N_{r_x}^{(v_j)},聚合过程为:

N_{r_x}^{(v_j)}定义为边类型rx的节点vj的邻居节点,||为串联操作,b_{r_x}^{(k+1)}为边类型特定参数。f()为relu激活函数

对于每个项目,聚合不同类型的边传播的不同信息,并更新项节点表示

r_ur_{interactedby}的缩写,accum()为均值mean()

更新后的用户节点表示为:

r_vr_{interact}的缩写

K层HGNN后,我们将每个层中的嵌入进行组合,形成用户和项目的最终全局表示

a_k\geq 0表示第k层输出的价值

在实验中,将a_k统一为1/(K+1)。通过HGNN,可以了解长期的用户偏好和全局级别的项目嵌入。

Personalized Session Encoder

用户的下一次交互行为是灵活的,并且会受到长期稳定的用户偏好的影响。因此,我们提出了一个基于注意机制的一般偏好学习模块来捕获一般偏好。

当前偏好学习

为了捕获当前会话中用户的主要目的并将当前会话表示为嵌入向量,采用了一种项目级注意机制,

连接由HGNN得到的反向位置表示p_{v_i}和反向位置信息:

基本会话表示为会话的项目表示的平均值:

用软注意机制来学习会话中每个项目的相应权重:

给定session的当前表示C_u被定义为:

一般偏好学习

由HGNN层学习到的用户嵌入q_u包含用户u的长期稳定的偏好,考虑当前会话中项目与用户总体偏好之间的相关性,并通过注意机制学习相应的权重:

线性组合项目表示,获得当前会话的一般偏好:

在构建集成表示时,这两种不同类型的偏好表示可能有不同的贡献。一般会话偏好O_u考虑了用户长期偏好的影响,而当前偏好表示C_u包含当前会话的基本项目信息。最终的会话偏好表示S_u

预测

当前会话中候选项的推荐概率为:

交叉熵损失:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容