Intent-aware Recommendation via Disentangled Graph Contrastive Learning论文阅读笔记
Intent-aware Recommendation via Disentangled Graph Contrastive Learning论文阅读笔记
Abstract
存在的问题:
- 如何学习复杂和多样的意图,特别是当用户的行为在现实中通常不充分时
- 是不同的行为具有不同的意图分布,因此如何建立它们之间的关系,以建立一个更可解释的推荐系统。
本文方法:
在本文中,我们提出了通过解耦图对比学习(IDCL)的意图感知推荐,它同时学习可解释的意图和在这些意图上的行为分布。具体来说,我们首先将用户行为数据建模为用户-项目-概念图,并设计一个基于GNN的行为分离模块来学习不同的意图。然后,我们提出了意图对比学习来增强意图分离,同时推断行为分布。最后,引入编码率降低正则化方法,使不同意图的行为正交
Introduction
详细描述存在的问题:
一是如何有效地学习复杂和多样的意图,特别是当观察到的行为数据在现实中非常稀疏时?如图1所示,尽管用户项的行为可以用这个图中的一条边来统一表示,但底层用户的意图实际上是非常不同的,发现用户意图对理解用户行为具有重要的作用,对改进和解释推荐系统具有很大的潜力。
另一个是一旦发现了用户意图,如何通过用户意图建立行为分布,建模行为分布可以描述不同用户意图的强度,从而更准确地理解用户偏好,即我们可以根据最接近的用户意图更好地学习行为表示。此外,来自不同意图的行为应该尽可能地分布在不同的子空间中,这使学习到的行为表示在不同的意图之间更具区别性。很少有基于GNN的方法通过计算每个意图子空间中用户与项目之间的相似性来学习行为分布,它忽略了意图的语义特征,导致学习到的分布可能会偏离特定的意图。此外,目前基于GNN的方法仍然不能保证行为表示在不同的意图子空间中正确分布。
在本文中,我们提出了通过解耦图对比学习(IDCL)的意图感知推荐,以同时学习可解释的用户意图和行为分布。首先,我们将用户行为数据建模为一个用户-项目-概念图,其中该概念表示项目的多方面语义(例如,电影类型)。然后通过扰动原始图得到一个增广图,并设计了一个行为解耦模块来学习来自这两个图的解耦行为表示。同时,通过概念嵌入的软聚类获得了一组概念感知的语义基,每个语义基都可以作为显式指导,便于理清有意义的意图。然后,我们提出了一个意图感知的对比学习,以进一步强制分离和推断行为分布。为了使不同意图的行为更加独立,从而使学习到的行为表征在不同意图之间更具区分性,我们引入了编码率降低正则化。我们的主要贡献可以总结如下:
- 我们研究了如何有效地学习复杂多样的用户意图,以获得更好的推荐系统,特别是在用户行为稀疏的情况下。
- 我们提出了一种通过解耦图对比学习(IDCL)模型的意图感知推荐,该模型能够充分利用概念和对比学习来更好地学习解耦用户意图以及行为分布。
Method
模型的示意图如下:
在本节中,我们将介绍所提出的IDCL模型,它主要包含四个模块:行为解耦(BA)、意图对比学习(ICL)、编码率降低正则化(CR)和预测。IDCL的工作流程如下。首先将用户历史行为数据建模为用户-项目-概念图,通过边缘缺失构造增广图,然后BA模块以这两个图作为输入,发现不同的用户意图,并推断出一组概念感知的语义基础,然后,提出了ICL模块来增强意图的解耦,并提供细粒度的自监督信息,同时通过基于语义基础的方法来推断行为分布。此外,CR模块作为一种基于信息论的准则,作为一种正则化约束,促进了不同意图行为之间的正交性。最后,该模型基于学习到的用户和项目表示进行预测。
问题定义
节点集合: V = U ∪ I ∪ C 涉及到所有的用户、项目和与项目相关的概念,边集E = O+∪P+表示观察到的用户行为和项目隶属关系。C = {c1,c2,···,cR}是R个项目相关的概念集,它表达了项目的特征,如类别、类型、流行程度。\(\mathcal{O}^+=\{e_{ui}|u\in\mathcal{U},i\in\mathcal{I}\}\)表示用户与项目之间的F个历史行为,其中eui表示用户u以前已经采用了项目i。\(\mathcal{P}^+=\{b_{ic}|i\in\mathcal{I},c\in\mathcal{C}\}\)表示项目i属于概念c。给定一个候选人对(u,i)组成的目标用户u和一个潜在的项目i,我们的目标是学习用户的解耦意图以及行为分布在意图,然后预测yui∈{0,1},这表明这个项目应该推荐给目标用户。
行为解耦
用户对一个项目的采用可能由多个复杂的意图驱动,这些意图通常与用户的个性和项目特征密切相关,忽略信息的任何一面都可能导致意图建模不充分和不准确。因此,我们希望使用用户和项目的组合来将潜在的意图从行为中分离出来
利用普通的图卷积获取用户的表示\(z_{u_i}\) 与普通的图卷积类似,我们可以得到项目的表示与意图的表示的卷积\(z_{i_j}\),于是用户与项目之间交互的行为表示为:
\(\mathbf{z}_e=\mathbf{z}_{u_i}\odot\mathbf{z}_{i_j}.\)
与以往单独对用户或项目进行解耦的工作不同,我们直接操作行为\(z_e\),它结合了用户和项目表示。假设存在K个潜在意图,在一定程度上与项目相关概念相关。因为每个概念都聚合了来自图中具有相同特性属性的所有项的语义。我们通过软聚类从项目相关概念\(\mathbf{Z}_c=\left\{\mathbf{z}_{c_r}\right\}_{r=1}^R\)中提取了K个高级语义基,首先,学习一个概率概念分配矩阵为:
\(\mathbf{S}=\text{softmax }(\mathbf{Z}_c\mathbf{W}_1)\in\mathbb{R}^{R\times K}\)
S的每一行都提供了概念节点的软分配。然后根据赋值S对概念节点Zc进行聚合,得到K个簇嵌入,然后由语义投影头gs(·)对这些簇嵌入进行特征转换,输出一组概念感知的语义基,如下所示:
\(\mathbf{Z}_B=g_s(\mathbf{S}^\top\mathbf{Z}_c)\in\mathbb{R}^{K\times\Delta d}\)
其中∆d=d/K和\(\mathbf{Z}_{B}=\{\mathbf{b}_{k}\}_{k=1}^{K}\),每个b(behavior 行为)对应不同的语义空间,则它们作为语义指导,并与行为嵌入相结合,促进解开有意义的意图:
\(\mathbf{z}_{e,k}=g_b^{(k)}\left(\mathbf{z}_e\parallel\mathbf{b}_k\right)\in\mathbb{R}^{\Delta d},\)
\(g_b^{k}\)是将组合映射到第k个意图空间的行为投影头,表示第k个意图。类似地,上面公式也用于通过$$g_b(\cdot)=\left{g_b{(k)}(\cdot)\right}_{k=1}K$$中的单独投影头计算所有剩余的意图,最终的解耦行为表示可以通过结合所有的意图来获得:
\(\mathbf{z}_e=\left[\mathbf{z}_{e,1};\mathbf{z}_{e,2};\ldots;\mathbf{z}_{e,K}\right]\)
意图方面的对比学习
然而,由于在现实中通常没有意图标记的数据,解耦学习非常希望考虑(内隐的)监督的作用,此外,意图上的行为分布可以进一步反映不同用户意图的强度,增加了推荐的可解释性。因此,在这个模块中,一个有意方面的对比学习被设计来强制执行有意义的分离和推断行为分布。
我们首先通过广泛使用的边缘退出策略构造原始图G的增广图G,并将共享图编码器和行为投影头都应用于增广视图,然后得到增广因子分解的行为嵌入$$\mathbf{z}{e}{}{\prime}=\left[\mathbf{z}_{e,1},\mathbf{z}{\prime},\ldots,\mathbf{z}_{e,K}\right]$$。意图的对比损失函数如下
\(\mathcal{L}_{icl}=\sum_{e\in\mathcal{O}^+}-log\mathbb{E}_{p_\theta(k|e)}[p_\theta(e^{\prime}|e,k)],\)
其中,pθ(k|e)表示行为e的第k个意图上的概率,而pθ(e‘|e,k)是在第k个意图下的行为对比学习子任务,我们的目标是学习能够最大化K个子任务的期望的最优K个意图。基于概念感知语义基础bk推断出对第k个意图的行为置信度:
\(p_\theta\left(k|e\right)=\frac{\exp\phi\left(\mathbf{z}_{e,k},\mathbf{b}_k\right)}{\sum_{k=1}^K\exp\phi\left(\mathbf{z}_{e,k},\mathbf{b}_k\right)},\)
值得一提的是,我们使用\(\{\mathbf{b}_k\}_{k=1}^K\)作为原型,而不是随机初始化,它包含了来自项目相关概念的可解释信号。
第k个意图的对比学习子任务为:
\(p_\theta(e^{\prime}|e,k)=\frac{\exp\phi\left(\mathbf{z}_{e,k},\mathbf{z}_{e,k}^{\prime}\right)}{\sum_{j\in\mathcal{O}^+,j\neq e}^{|\mathcal{O}^+|}\exp\phi\left(\mathbf{z}_{e,k},\mathbf{z}_{j,k}^{\prime}\right)},\)
为了降低计算复杂度,我们在一个小批上使用NT-Xent损失,并从每个训练批中随机抽取一部分行为
编码速率降低正则化
这部分没有看懂,就不记录了


浙公网安备 33010602011771号