MHCN论文阅读笔记

MHCN阅读笔记

1.摘要部分

​ 在开篇,作者提出了使用超图来建模高阶关系,使用多通道的超图卷积网络,利用高阶用户关系来增强社会推荐,之后通过聚合多个渠道学习的嵌入,获得了全面的用户表示来生成推荐结果

​ 但是聚合操作会掩盖不同类型的高阶连接信息的特征,所以我们将自监督学习整合到超图卷积网络的训练中,采用的是分层互信息(mutual information)最大化的方式来重新获得连通性信息

高阶的用户关系举例

pP2mXuV.png

其实,上面的三个三角在后面分别代表三个通道,分别是Social Motifs,Joint Motifs以及Purchase Motif

2.引言

​ 作者提到了,人们倾向于与其他与他们有相似偏好的人建立联系,这被称为同质性。所以,社会关系经常会整合到推荐系统当中,以减轻数据稀疏性问题,如果用户和物品的互动很少,该系统就会依赖与朋友的互动来推断该用户的偏好

​ 之后作者提到了GNN的模型无法捕捉高阶的用户关系,比如两个有社会联系并且购买了同一商品的用户比那些只有社会联系的用户有更强的关系。

​ 然后作者提到了超图推广了边的概念,为建模用户之间复杂的高阶关系提供了一种自然的方法,所以本文采用了一种多通道超图卷积网络(MHCN),使用统一形成特定三角形关系的节点来构建超图,在社会推荐系统中,每个通道的超图卷积网络编码不同的超图,通过对多个通道学习的多个用户嵌入进行聚合,我们可以得到包含多种高阶关系信息的综合用户表示。但是聚合操作可能掩盖不同类型的高阶连接信息的固有特征,因此该作者提出了将一个自监督任务集成到多通道卷积网络的训练中。

​ 这个自监督学习任务的具体思想如下:利用超图结构的层次结构,分层最大化user embedding,sub-hypergraph以及global hypergraph的互信息。这个互信息测量了子超图和整个超图的结构信息性,从而通过减少局部和整体结构的不确定性来推断用户特征。

​ 最后,作者通过将推荐任务统一在一个主要的和辅助的学习框架下,联合优化两个任务并利用所有组件的相互作用

3.正文

1.模型

整体的模型结构为

pP2Un3V.png

超图构建:

作者提出的这个模型根据图的结构来构建超边,使用一组精心设计的motifs来描述社交网络中常见的三角形结构模型,从而指导超图的构造

pP2NueH.png

我们使用\(H^s,H^j,H^p\)来分别代表三种类型的超图

多通道超图卷积

作者使用三通道设置,包括社交通道,联合通道和购买通道来应对三种三角形主题

因为不同的模式可能会对最终的推荐性能表现出不同的重要性,所以不能直接将全部用户嵌入提供给所有通道,为了控制用户嵌入到每个通道的信息流,作者设计了一个门控过滤器

pP2N66U.png

作者将超图卷积定义为

\(P_c^{(l+1)}=D_c^{-1}H_cL_c^{-1}H_c^TP_c^{(l)}\)

作者去除了线性变换的可学习矩阵和非线性激活函数,可以通过使用任何一种\(H^s,H^j,H^p\)来代替\(H_c\)

乘法操作\(H_c^TP_c^{(l)}\)定义了从节点传递到超边的消息

后面的有关三角形的各种证明略过

得到一个新公式

\(P_c^{l+1}=\hat{D_c^{-1}A_cP_c^{l}}\)

其中\(A_c\)有三种,\(A_s,A_j,A_p\)

\(A_s=\sum_{k=1}^{7}A_{M_k}\)

\(A_j=A_{M_8}+A_{M_9}\)

\(A_p=A_{M_{10}}-A_j\)

pP2UEAs.md.png

学习综合用户表示

在经过L层传播用户嵌入后,我们对每层获得的嵌入进行平均,最终形成特定于通道的用户表示

\(P_c^*=\frac{1}{L+1}\sum_{l=0}^LP_c^{l}\)

来避免过平滑问题,然后利用注意力机制选择性地聚合来自不同特定通道的用户嵌入的信息,形成全面的用户嵌入

注意力函数的定义为

pP2UfKS.png

并且综合用户表示为

\(P^*=\sum_{c\in\{s,j,p\}}\alpha_cP_c^*\)

最终整个模型的图卷积定义为

pP2UhDg.md.png

\(P_r^l\)是简单的图卷积的用户嵌入

\(P_m^l\)是综合的用户嵌入

最终的用户嵌入和模型嵌入为

\(P=P^*+\frac{1}{L+1}\sum^{L}_{l=0}P_r^l,Q=\frac{1}{L+1}\sum^{L}_{l=0}Q^l\)

损失函数采用BPRLoss

pP2wfKK.md.png

2.使用自监督学习增强MHCN

这里主要是利用了最大化互信息的方式来作为辅助的自监督学习任务

pP20PGn.md.png

主要思想是利用包含有一个用户嵌入\(p_u\)的子图做聚合操作得到\(z_u\),然后使用破坏掉的包含有用户嵌入的子图做聚合操作得到\(\tilde{z}\),之后使用整个图来做聚合操作得到\(h_u\)

之后,我们需要增大用户嵌入与普通子图嵌入之间的互信息,降低用户嵌入与破坏掉的子图之间的互信息,这是局部结构方面的,全局结构方面就是要增大普通子图嵌入与全图嵌入的互信息以及降低破坏掉的子图与全图嵌入的互信息。

自监督学习的损失函数如下:

pP2ozee.md.png

最后,统一了联合学习的推荐任务的目标和最大化层次互信息的任务,最后总体损失函数为

\(L=L_r+\beta L_S\)

posted @ 2023-09-13 15:22  ANewPro  阅读(182)  评论(0编辑  收藏  举报