Abstract
我们提出了一种预训练的策略,通过考虑项目侧信息及其关系来学习项目表示。我们通过共同的用户活动来关联项目,例如,共同购买,并构建一个同质的项目图。该图提供了在多模态中的项目关系及其关联的边信息的统一视图。我们开发了一种新的采样算法,名为MCN采样,以选择上下文的邻居。所提出的预训练多模态图变换器(PMGT)学习项目表示,并有两个目标: 1)图结构重建和2)掩蔽节点特征重建。
Introduction
我们提出开发一个无监督预训练框架来充分利用多模态侧信息用于项目表示学习。如图所示,我们构造了一个项目多模态图,以提供项目及其相关的多模态侧信息的统一视图。在这个项目的多模态图中,每个节点都是一个项目,边代表它们的关系。然后,我们对该项目多模态图上的图神经网络进行预训练,使GNN模型能够捕获项目关系及其多模态侧信息。
模型的总体结构图如下:
其中GSR表示图结构重建,NFR表示掩码特征重建
项目多模态图中的关系是基于用户与项目的交互,这与项目之间的内容相似性无关。我们不会通过项目的文本和/或视觉特征来手动定义内容的相似性,因为我们的目标是在这些多模态特征的基础上部分地学习项目表示。此外,用户交互中的项目关系在推荐中也起着重要的作用。
统一的项目多模态图可以很好地将我们的工作与以往的研究区分开来,在以往的研究中,项目的边信息及其关系是分开研究的。我们认为,这两种类型的信息在解决推荐问题时可以相互补充。因此,我们关注于在这个项目的多模态图之上进行有效的预训练,以有利于项目推荐。
本文的贡献如下。首先,我们提出了一种新的预训练框架,即预训练的多模态图变换器(PMGT),通过无监督学习来利用项目的多模态信息。据我们所知,这是第一个利用推荐系统项目的多模态侧信息的深度预训练方法。其次,我们将PMGT的学习目标分解为两个子目标: (i)图结构重建和(ii)掩蔽节点特征重建。为了处理大规模的图数据,我们开发了一种算法,名为小批量上下文邻居采样(即MCN采样),用于有效和可伸缩的训练。此外,我们使用注意机制来聚合项目的多模态信息,并使用一个发散促进转换框架来建模项目和图中的上下文邻居之间的影响。
Method
PMGT包含四个主要组件:
- 上下文邻居采样
- 节点嵌入初始化
- 基于转换器的编码器
- 图重建
PMGT的目的是获取能够捕获节点的多模态信息和图结构的节点表示。然后,学习到的节点表示可以直接应用于下游任务中,或者通过微调等调整。
上下文邻居采样
对于每个节点h,图中都存在一些相关的节点,这可能有助于丰富其表示。这些相关的节点被称为h的上下文邻居。为了在PMGT训练过程中有效地选择一批节点的上下文邻居,我们开发了一种名为MCN采样的采样算法。
MCN采样算法的具体流程如下:
设\(s_{k-1}^h\)表示在第k-1步采样的节点袋,对于\(s_{k-1}^h\)中的每个节点t,在第k步时从t的一跳邻居\(N_t\)中随机抽取\(n_k\)节点进行替换。节点被采样的概率与节点之间的边值成正比,一个节点可能会在\(s_{k-1}^h\)中出现多次,但是我们将所有节点实例视为不同的节点并执行采样过程
在我们的采样算法中,我们通过考虑1) 一个节点的采样频率,2) 采样过程中目标节点h和一个被采样节点之间的采样步数来选择上下文邻居。对于每个节点t∈V \ h,我们在第k个采样步骤(k≤k)中通过经验定义其对目标节点h的重要性如下:
\(\begin{aligned}s_t^k=f_t^k\times(K-k+1)\end{aligned}\)
\(f_t^k\)表示节点t在\(S_h^k\)中出现的次数,也就是说,如果节点t的采样更频繁,并且对h的采样步骤更小,则认为节点t与目标节点h更相关。节点t到h的最终重要度得分定义如下:
\(s_t=\sum_{k=1}^Ks_t^k\)
然后,我们根据V \h中的所有节点按降序排序,选择排名靠前的S个节点作为h的采样上下文邻居。这部分算法描述的不是很清楚,要看上面的伪代码才好理解一下,上面繁琐从采样步骤只是为了计算节点t对目标节点h的重要性得分
节点嵌入初始化
在邻域采样后,我们将目标节点h与其有序的上下文邻域Ch连接起来,用\(\begin{aligned}\mathcal{I}_h=[h,h_1,h_2,\cdots,h_S]\end{aligned}\)表示。hj是Ch中的第j个节点,且1≤j≤s。对于每个节点\(t\in\mathcal{I}_h\),我们应用注意机制得到其多模态表示Mt,如下:
\[\begin{gathered} \mathbf{X}_t^i=\mathbf{x}_t^i\mathbf{W}_M^i+\mathbf{b}_M^i, \\ \mathbf{X}_t=\mathbf{X}_t^1\oplus\mathbf{X}_t^2\oplus\cdots\oplus\mathbf{X}_t^m, \\ \alpha_{t}=\mathrm{softmax}\bigg[\mathrm{tanh}(\mathbf{X}_{t})\mathbf{W}_{s}+\mathbf{b}_{s}\bigg] \\ \mathbf{M}_t=\sum_i^m\alpha_t^i\mathbf{X}_t^i, \end{gathered}\] 每个项目的多模态侧信息被连接起来,以有助于全面的表示学习。
一个节点在输入列表\(\mathcal{I}_h\)中的位置反映了其对目标节点h的重要性。因此,我们认为\(\mathcal{I}_h\)中节点的顺序在学习节点表示中是重要的。以下位置id嵌入用于识别输入列表的节点顺序信息:
\(\mathbf{P}_t=\textbf{P-Embedding}\bigg[p(t)\bigg]\)
其中p (t)为\(\mathcal{I}_h\)中节点t的位置id,Pt为t的基于位置的嵌入。
我们的主要目标是获得目标节点h的表示。直观地看,目标节点及其上下文邻居在预训练中应该发挥不同的作用。为了识别角色差异,我们在每个节点\(t\in\mathcal{I}_h\)中添加以下基于角色的嵌入,
\(\mathbf{R}_t=\mathbf{R}\text{-Embedding}\bigg[r(t)\bigg]\)
其中,r (t)和Rt分别表示节点t的角色标签和基于角色的嵌入。在实践中,我们将目标节点的角色标签设置为“目标”,将上下文邻居的角色标签设置为“上下文”。
基于上述嵌入,我们将它们聚合在一起,以定义一个节点\(t\in\mathcal{I}_h\)的初始输入嵌入,如下:
\(\mathbf{H}_t^0=\mathbf{Aggregate}\bigg(\mathbf{M}_t,\mathbf{P}_t,\mathbf{R}_t\bigg)\)
基于Transformer的图编码器
我们使用Transformer框架来建模一个节点与其上下文邻居之间的相互影响。
\[\begin{gathered} \mathbf{H}^{\ell}=\text{FFN}\bigg[\text{softmax}(\frac{\mathbf{Q}\mathbf{K}^{\top}}{\sqrt{d_h}})\mathbf{V}\bigg], \\ \mathbf{Q}=\mathbf{H}^{\ell-1}\mathbf{W}_Q^\ell,\mathbf{K}=\mathbf{H}^{\ell-1}\mathbf{W}_K^\ell,\mathbf{V}=\mathbf{H}^{\ell-1}\mathbf{W}_V^\ell \end{gathered}\] 对于目标节点h,Ch中可能存在一些采样节点,其表示与h的表达相似。假设所有采样的上下文邻居都与目标节点相关。我们希望所提出的模型能够通过专注于与目标节点相关但不是非常相似的节点,来捕获采样的上下文邻居的多样性。为了实现这一目标,我们设计了一种促进多样性的注意机制,并将其纳入Transformer的注意网络
\[\begin{gathered} \mathbf{S}=\mathbf{H}^{\ell-1}\mathbf{W}_S^{\ell}, \\ \mathbf{U}_1=\text{softmaх}\bigg(\mathbf{E}-\frac{\mathbf{S}\mathbf{S}^\top}{||\mathbf{S}||_2||\mathbf{S}||_2^\top}+\mathbf{I}\bigg), \\ \mathbf{U}_2=\text{softmax}(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d_h}}), \\ \mathbf{H}^{\ell}=\text{FFN}\bigg[(\beta\mathbf{U}_1+(1-\beta)\mathbf{U}_2)\mathbf{V}\bigg], \end{gathered}\]模型优化
对所提出的PMGT模型进行了预训练,目标有两个: 1)图结构重建,2)掩蔽节点特征重建。为了确保学习到的节点表示能够捕获图的结构,我们定义了以下损失函数:
\[\mathcal{L}_{edge}=\frac1{|\mathcal{V}|}\sum_{h\in\mathcal{V}}\frac1{|\mathcal{N}_h|}\sum_{t\in\mathcal{N}_h}\left[-\log\left(\sigma(\frac{\mathbf{h}^T\mathbf{t}}{||\mathbf{h}||_2||\mathbf{t}||_2})\right)\right.-\left.Q*E_{t_n\sim P_n(t)}\log(\sigma(-\frac{\mathbf{h}^T\mathbf{t}_n}{||\mathbf{h}||_2||\mathbf{t}_n||_2})\right] \] Pn和Q分别表示负抽样分布和负样本的数量。
节点特征重构任务侧重于捕获学习到的节点表示中的多模态特征。以前的方法,如GRAPH-BERT,设计了一个没有屏蔽操作的属性重构任务。因此,模型聚合不同节点特征的能力可能会受到限制。在本研究中,我们设计了一个掩蔽节点特征重建任务,旨在通过Ih中其他非掩蔽节点重构掩蔽节点的特征。由于需要目标节点h的表示来重建的图结构,我们不对目标节点h应用掩蔽操作。之后,我们在列表Ih\h中随机选择20%的节点进行屏蔽。如果选择节点t,我们将t替换为: 1)80%的屏蔽节点,(2)10%的随机节点,(3)10%不变节点t。然后,将掩码项列表输入到模型中,并利用输出的HL重构掩码节点的多模态特征。我们将[Mask]节点的输入特征设置为0,并定义特征重建损失如下:
\[\mathcal{L}_{feature}=\frac1{|\mathcal{V}|}\sum_{h\in\mathcal{V}}\frac1{|\mathcal{M}_h|}\sum_{t\in\mathcal{M}_h}\sum_i^m\left\|\mathbf{H}_t^L\mathbf{W}_r^i-\mathbf{x}_t^i\right\|_2^2, \]最终的损失函数如下
\(\mathcal{L}_{edge}+\mathcal{L}_{feature}\)
标签:PMGT,采样,mathbf,论文,笔记,模态,bigg,mathcal,节点 From: https://www.cnblogs.com/anewpro-techshare/p/18037211