学习方式:1阅读全文框架
2精度(不了解内容,以及有疑问的地方问gpt)
将文章内容转化为通俗部分进行解读
将专有名词进行转换,寻找名词之间的内在联系
3 代码部分(拆解代码结构,将参数填入代码种)
学习内容 学习框架 同质图 异质图
关系图卷积神经网路
可学习参数正则化
同质图(Homogeneous Graph)和异质图(Heterogeneous Graph):
同质图:图中的所有节点和边都属于同一种类型。换句话说,同质图中的节点和边没有差异性,它们之间的关系是同质的。
异质图:图中的节点和边可以属于不同的类型,即图中存在不同类型的节点和边。这意味着异质图中的节点和边之间可能存在不同类型的关联关系。
关系图卷积神经网络(RGCN):
关系图卷积神经网络是一种用于处理图结构数据的神经网络模型。它主要应用于异质图,可以有效地对不同类型的节点和边进行建模和学习。
可学习参数正则化:
在神经网络中,正则化是一种用来约束模型复杂度的技术,它有助于减少过拟合并提高模型的泛化能力。可学习参数正则化是指对模型中的可学习参数进行正则化,以控制它们的大小或者稀疏性,从而防止模型过于复杂或者过拟合。这通常通过在损失函数中添加正则化项来实现,例如 L1 正则化或 L2 正则化。
在处理异质图数据时,关系图卷积神经网络(RGCN)是一种常用的模型。由于异质图中存在不同类型的节点和边,因此需要一种能够有效处理这种异质性的模型。
在训练关系图卷积神经网络时,可学习参数正则化非常重要。通过对模型中的可学习参数进行正则化,可以控制模型的复杂度,防止过拟合,提高模型的泛化能力。
正则化的形式可以是 L1 正则化或 L2 正则化等,它们可以帮助调节模型中的参数大小,使其更加平滑或者更加稀疏,从而提高模型的鲁棒性和泛化能力。(鲁棒性是指系统对于外部干扰或内部变化的稳定性和健壮性。在计算机科学和工程中,鲁棒性通常用来描述系统在面对异常情况、噪声或者输入数据变化时的表现能力。
具有鲁棒性的系统能够在不同的环境和条件下保持良好的性能,并且能够有效地处理异常情况。例如,在机器学习领域,一个具有鲁棒性的模型能够在面对数据中的噪声、缺失值或者特定领域知识不足等情况下仍然能够产生合理的输出。
在软件开发中,鲁棒性也是一个重要的概念。具有良好鲁棒性的软件能够处理各种输入错误、异常情况和不可预测的环境变化,从而提高了系统的可靠性和稳定性。
总之,鲁棒性是指系统在面对各种异常情况和变化时的稳定性和健壮性,是评估系统可靠性和性能的重要指标之一。)
在R-GCN中,𝑐𝑖,𝑟ci,r 是一个归一化常量,用于对节点 𝑖i 在关系 𝑟r 下的邻居数量进行归一化处理。这个常量可以通过学习得到,也可以事先设定。比如,𝑐𝑖,𝑟=∣𝑁𝑖𝑟∣ci,r=∣Nir∣,表示节点 𝑖i 在关系 𝑟r 下的邻居数量。
在R-GCN中,权重参数 𝑊𝑟(𝑙)Wr(l) 是与关系类型相关的。这意味着对于每种关系类型 𝑟r,都会有一个对应的权重参数矩阵,用于更新节点表示。通过对所有关系类型的邻居节点信息进行加和,实现了对所有关系类型的综合考虑。如果所有关系类型相同,则R-GCN就会退化为GCN。
聚合相同关系的邻居节点:
首先,对于每种关系类型,我们将该节点的邻居节点的特征进行聚合。这个过程是为了将来自相同类型的边的信息汇总起来,得到节点的一种表示。
学习不同类型边的权重:
接着,针对不同类型的边(包括入边、出边和自环),我们学习独立的权重参数。这些权重参数用于对不同类型的边上的信息进行不同的加权处理。
累积嵌入向量并归一化求和:
然后,将所有类型边的信息加权求和,得到一个综合的节点表示。这个过程是将来自不同类型边的信息融合到一起,形成节点的最终表示。
通过激活函数进行非线性变换:
最后,对累积的节点表示应用激活函数(例如 ReLU),以产生最终的节点表示。这个过程增加了模型的表达能力,并使得节点表示更具有区分度。
基底分解
基底矩阵:基底矩阵 𝑉𝑏(𝑙)Vb(l) 是一组 𝑑(𝑙+1)×𝑑(𝑙)d(l+1)×d(l) 的矩阵,表示了每种关系 𝑟r 下的权重矩阵 𝑊𝑟(𝑙)Wr(l) 的基础形式。这些基底矩阵可以看作是模型的一种参数。
基底的线性组合:每种关系 𝑟r 下的权重矩阵 𝑊𝑟(𝑙)Wr(l) 可以表示为基底矩阵的线性组合,其中每个基底矩阵 𝑉𝑏(𝑙)Vb(l) 都有一个对应的系数 𝑐𝑟𝑏(𝑙)crb(l)。通过这种线性组合,我们可以获得每种关系下的权重矩阵。
参数共享:基底分解实际上是一种参数共享的形式。因为每种关系下的权重矩阵都可以通过一组共享的基底矩阵和对应的系数来表示,这使得模型的参数量大大减少,并且能够更好地泛化到罕见的关系数据上
块对角矩阵分解的目的是为了减少神经网络中的参数数量,使得模型更加高效。具体来说,我们想要把一个大的权重矩阵分解成多个小的块对角矩阵,这样可以大大减少需要学习的参数量。
假设原本的权重矩阵是一个大的方阵,大小为 𝑑(𝑙+1)×𝑑(𝑙)d(l+1)×d(l),其中 𝑑(𝑙+1)d(l+1) 表示上一层的节点数,𝑑(𝑙)d(l) 表示当前层的节点数。我们把这个大的矩阵分解成多个小的块对角矩阵,每个块对角矩阵的大小为 (𝑑(𝑙+1)/𝐵)×(𝑑(𝑙)/𝐵)(d(l+1)/B)×(d(l)/B),其中 𝐵B 是分解后的块的数量。
通过这样的分解,我们可以把原本大的权重矩阵变得更加稀疏,因为每个块对角矩阵只需要学习一个小块的参数。这样做不仅可以减少计算量,还能够防止模型过拟合。
最后,我们把所有的小块对角矩阵按照一定的方式组合起来,形成整个权重矩阵。这样,我们就实现了将原本大的参数矩阵分解成多个小的块对角矩阵,从而减少了模型的参数数量。


