学习日记-0407(Inductive Matrix Completion Using Graph Autoencoder)
论文阅读:Inductive Matrix Completion Using Graph Autoencoder
代码:swtheing/IMC-GAE
总而言之就是设计了一个不同评分下的邻接图,然后对每一个评分图T进行独立GNN编码。这个 GNN 编码器主要由三个组件构成:嵌入层、消息传递层和累积层。其中嵌入组成为用户向量,item向量,评分向量三部分组成,然后由于这样子训练参数就要3*T ,参数量太大,于是让user和item向量共享,降低到T个 rating embedding+2;然后进行节点聚合,由于节点类型有两种,user和item,利用双线性运算得到e(i,j)user_i和item_j的关系,然后进行归一化,得到每个评分T的e(i,j)向量,最后进行加权求和计算预测值。中间还有一些细节,比如计算loss的时候尽量让相邻评分下的向量表示相近(这样提高泛化性),以及在聚合时逐层变化的dropout 概率。
Layer-wise node dropout 是一种逐层调整节点丢弃概率的方法,旨在让模型更专注于局部图结构,避免过度平滑,并提高模型的泛化能力。
IMCGAE,集成了基于GAE的模型和IGMC,获得了一个更有效的真实推荐系统的模型。然后,我们在图1中展示了IMC-GAE的概述。特别是IMC-GAE是一个基于关联的模型由三个主要组件组成: 1)嵌入层的输入特征包括节点,相同的特性和角色感知特性,2)关系GCN编码器,3)双线性解码器结合目标节点的表示重建链接表示。
3.3异构图上的特征编码器
接下来,IMC-GAE 在每个评分子图上独立地应用了一个节点级别的 GNN 编码器,以学习每个节点在不同评分类型下的表示。这个 GNN 编码器主要由三个组件构成:嵌入层、消息传递层和累积层。
3.3.1 Embedding Layer
目的与设计
具体实现
-
问题转化:模型将评分矩阵看作一个异构图,其中用户和物品为节点,不同评分(例如1星、2星等)对应不同的边类型。
-
评分子图:对于图中的每种评分类型 TTT,所有具有该评分的边被收集到一个“评分子图”中,每个评分子图都包含相同的节点集合,但边的连接方式反映了在该评分下的交互信息。
-
目标:为每个节点构造初始表示,以便后续的消息传递能够捕捉到不同评分类型下的局部图结构信息以及节点自身的特性。
-
三种嵌入:在每个评分子图中,节点的初始表示由三种嵌入组成:
-
identical node embedding (ut):捕捉节点的基本或标识性特征。
-
role-aware embedding (rt):区分节点角色(例如区分用户和物品),帮助模型分辨不同类型节点之间的交互。
-
rating embedding (lt):专门用于表示与评分相关的信息,反映在当前评分子图中的交互模式。
-
-
参数共享策略:
-
如果每个评分子图都独立使用这三种嵌入,则每个节点需要学习 3×T 个嵌入,参数量非常大。
-
为了降低参数量并增强模式学习的稳健性,论文中将 identical embedding 和 role-aware embedding 在所有评分子图中共享;只有 rating embedding 针对每个评分类型单独学习。
-
因此,每个节点总共只需学习T 个 rating embedding 加上 2 个共享的嵌入,合计 T+2 个嵌入。
-
-
嵌入组合:
-
在每个评分子图 t 中,通过拼接(concatenation)这三种嵌入,得到节点 i 的初始表示
-
3.3.2 Message Passing Layer
目的
具体实现
3.3.3 Accumulation Layer
目的
具体实现
总结
这部分内容讲解了 IMC-GAE 模型中 GNN 编码器的构造流程,包括三个主要组件:
整个过程将异构图中不同类型的评分信息有效整合,并为后续的链接重构(例如通过 bilinear decoder)提供高质量的节点表示。
- 这个 xt0[i]就是节点 i 在评分子图 t 中的嵌入向量,作为后续消息传递层的输入。
-
局部信息聚合:利用图卷积网络(GCN)的消息传递机制,在每个评分子图中聚合节点邻居的信息,捕捉局部图结构特征。
-
多层特征融合:经过多层消息传递后,节点会有来自不同层的信息。如何有效融合这些信息,以兼顾浅层(更接近原始输入)和深层(抽象特征)的优势,是设计关键。
-
多层消息传递堆叠:
-
在每个评分子图中,模型堆叠 LLL 层消息传递层,并在层与层之间使用 ReLU 激活函数。
-
-
加权融合:
-
参考先前的工作,节点 iii 在评分子图 ttt 中的最终表示 ht[i]h_t[i]ht[i] 由各层输出的加权和构成:
-
这里每一层的权重为 1/(l+1),使得较低层的信息(接近原始输入的细节)获得较大权重。
-
-
跨评分子图的融合:
-
将节点 i 在所有 T 个评分子图中的最终表示 ht[i]累加,得到该节点的整体表示。这一步实现了不同评分类型信息的整合,为后续链接预测或评分重构提供综合特征。
-
-
Embedding Layer:为每个评分子图中的节点构造融合了身份、角色和评分信息的初始表示,并通过共享策略减少参数量。
-
Message Passing Layer:采用标准的 GCN 机制,通过对称归一化将邻居信息聚合进来,捕捉局部图结构特征。
-
Accumulation Layer:通过对多层输出加权求和,再跨评分子图累加,形成每个节点的最终综合表示。
3.4 Bilinear decoder
IMC-GAE 模型中 bilinear decoder 的设计思想,其主要目标是利用双线性运算重构用户和物品之间的链接(即评分),并将每个评分级别视为一个独立的类别进行建模。
1. 针对不同评分级别建模
-
评分子图(Rating Subgraph):假设评分矩阵中有 TTT 个评分级别(比如评分 1~5),模型为每个评分级别构造一个对应的评分子图。每个子图中的链接表示在该评分下用户与物品之间的交互。
2. 双线性运算计算链接表示
-
用户和物品的表示:经过 Encoder 处理后,每个用户 i和物品 j都有一个最终表示,分别记作 n[i]和 n[j]。
-
双线性运算:对于每个评分级别 ttt,模型使用一个可学习的参数矩阵 WtW_tWt 来对用户和物品的表示进行双线性融合,公式为:
这一步骤的作用是:
-
将用户和物品的表示通过 WtW_tWt 进行组合,
-
得到一个标量 et[i,j],它衡量了在评分 t下用户 i与物品 j 之间的交互强度或相似性
-
3. 整合各评分级别的输出
-
链接表示向量:对于一对用户 iii 和物品 jjj,在所有 TTT 个评分子图中,会得到一个包含 TTT 个分量的向量:
-
Softmax 归一化:对这个向量应用 softmax 操作,将每个评分级别的得分转换成概率分布,记为 St(e(i,j))S_t(e(i,j))St(e(i,j)),其中 StS_tSt 表示在第 ttt 个评分类别上的 softmax 概率。
-
最终评分预测:通过对所有评分类别的概率进行加权求和,得到最终的评分预测:
这表示模型结合了每个评分级别的信息,输出一个综合评分预测。
总结
-
Bilinear Decoder 的核心:利用用户和物品的表示以及对应的可学习参数矩阵 WtW_tWt,通过双线性运算计算出在各个评分级别下的交互得分。
-
独立建模评分级别:每个评分级别都被单独建模,这样可以更细致地捕捉不同评分对应的交互模式。
-
Softmax 组合:将所有评分级别的得分通过 softmax 转换为概率,再合并为最终预测分数,这样可以看作是对不同评分可能性的加权平均。
这种设计既保留了评分间的差异性,也使得模型能够在预测评分时利用多个子模型的输出,增强了预测的准确性和鲁棒性。
当在IMC-GAE- 2的顶部进一步堆叠传播层时,我们发现IMC-GAE-3导致了ML-100k上的性能下降,但在豆瓣和雅虎音乐上的性能有所提升。这可能是由于更深的层具有更高的节点丢弃概率,可能会在潜在链接表示中引入噪声。更具体地说,更深的层(例如IMC-GAE-3中的第三层)失去了原始图的连通性,使得模型无法从邻居中学习潜在链接表示。此外,其他两个数据集上的边际改进验证了超出1跳邻居的局部图模式仍然能提高模型在稀疏评分矩阵中的性能。