本发明属于深度学习和网络表征学习领域,具体涉及一种基于互信息最大化的多层属性网络表征学习方法。
背景技术:
网络具有强大的表示能力,可以在分子网络,蛋白质相互作用网络,推荐系统,社交网络,引文网络等各个领域表示实体及其之间的关系。近年来,有效的网络分析技术提供了挖掘数据潜在信息的方法,由此产生广泛的应用,例如社区检测,链接预测、节点分类等。然而,很多网络分析方法在处理大规模网络时需要较高的时间、空间复杂度。此外,许多机器学习算法尝试将网络结构化数据作为输入,通常可以将其表示为向量。传统方法使用统计参数,核函数或手工设计的特征来描述结构信息,但这些设计代价昂贵且无法在算法学习过程中进行调整。网络表征学习是解决此类问题的最有效方法之一。它将高维稀疏网络信息转换为低维密集实值向量,机器学习算法可以高效利用这些向量,从而使许多下游任务受益。
目前,在单层网络表征学习方面已有很多方法,但是,现实世界中的网络通常包含多种关系,每种关系都可以独立形成一层网络,称为多层网络。与单层网络相比,多层网络的实体之间具有更复杂的关系和更丰富的语义。假设每层网络具有独立的语义空间,我们可以逐层嵌入多层网络,然后获得各层拼接的嵌入结果,但是这种方式只能独立保存每一层的信息。这对于每层之间具有较大变化的多层网络是可行的。然而,现有的单层网络表征学习方法在应用于多层网络表征时具有以下问题:(1)许多多层网络并非简单地由多个单层网络的随机组合形成,它们的层间网络表现出显著的相关性。通过拼接和加权求和这类简单操作融合嵌入的方法使得各个层级间的联系缺失,忽视了层间相关性。(2)每个单独的层通常是稀疏的和有偏置的,这导致独立嵌入的拼接可能具有强偏置。(3)多层网络由不同关系的网络组成,不同关系产生的不同层网络具有潜在的一致性和互补性。拼接和加权求和这类简单操作难以利用潜在的一致性和互补性。
技术实现要素:
本发明针对现有技术的不足,提供一种基于互信息最大化的多层属性网络表征学习方法,以解决现有单层属性网络表征学习方法难以直接应用于多层属性网络表征的问题。
本发明的技术方案提供了一种基于互信息最大化的多层属性网络表征学习方法,其特征在于,包含以下步骤:
步骤1,结合属性维度、网络层数、网络节点总数构建多层属性网络,并引入目标表征空间维度;
步骤2,结合多层属性网络的属性维度、网络层数、网络节点总数和目标表征空间维度,利用互信息最大化原理构建多层属性网络表征学习模型、多层属性网络表征学习模型的损失函数;
步骤3,随机初始化多层属性网络的节点表征矩阵,结合多层属性网络表征学习模型的损失函数训练多层属性网络表征学习模型,输出优化后的多层属性网络的节点表征矩阵;
作为优选,步骤1中所述的多层属性网络中每一层为一个无向网络;
步骤1中所述的多层属性网络定义为:
g={g(1),g(2),…,g(r),x}={v,e,x},
其中,步骤1中所述的网络层数为r,r为正整数且r>1,g(l)表示第l层网络,多层属性网络每一层的连边对应于一种实际语义关系,共有r种关系,对应于r层网络,l∈[1,r];
步骤1中所述网络节点总数为n,n为正整数,v={v1,v2,…,vn}为节点集合,vi表示多层属性网络g中的第i个节点,i∈[1,n];每一层网络的节点集合是相同的,但连边集合是不同的,e={e(1),e(2),…,e(r)}为网络连边集合,e(l)为第l层网络的连边集合;
步骤1中所述的属性维度为f,f为正整数,
步骤1中所述的目标表征空间维度为d,d<<n,n为多层属性网络节点总数;
作为优选,步骤2中所述多层属性网络的属性维度为f,步骤2中所述多层属性网络的网络层数为r,步骤2中所述多层属性网络的网络节点总数为n,步骤2中所述多层属性网络的目标表征空间维度为d;
步骤2中所述的互信息最大化方法是通过最大化互信息的一个下界实现,即
其中,x、y表示两个变量,mi(x;y)表示变量的互信息,是两个变量之间非线性相关性的一种复杂度量,
步骤2中所述的多层属性网络表征学习模型,具体构建步骤如下:
对于多层属性网络的第l层网络g(l),l∈[1,r],采用的单层属性网络表征学习模型为gl,其可训练的模型参数集合为
定义多层属性网络节点表征矩阵为可训练的参数矩阵
步骤2.1,对于l∈[1,r],输入g(l),x到该层属性网络表征学习模型gl,获得输出yl;
步骤2.2,采用行洗牌函数
步骤2.3,对于l∈[1,r],将多层属性网络的第l层网络的节点表征矩阵yl、多层属性网络节点表征矩阵z输入鉴别器
其中,i∈[1,n],n为多层属性网络节点总数,鉴别器
σ是sigmoid非线性函数,
步骤2中所述的多层属性网络表征学习模型的损失函数采用正负例的二元交叉熵损失,形式如下:
其中,r为多层属性网络的网络层数,
作为优选,步骤3中所述的多层属性网络的节点表征矩阵为可训练的参数矩阵
步骤3中结合模型的损失函数训练多层属性网络表征学习模型,所述的训练方法采用网格搜索进行多层属性网络表征学习模型超参数搜索,即在所有候选的参数中,通过循环遍历尝试每一种参数组合的可能性,表现最好的参数就是最终的结果,所述的超参数包括:模型gl的待调整的超参数集合为
步骤3中所述的优化后的多层属性网络的节点表征矩阵为多层属性网络表征学习模型训练调整后的参数矩阵z。
本方法使用互信息融合单层属性网络表征矩阵可以使融合后的多层属性网络表征矩阵使用较低的维度来包含有关输入的尽可能多的信息,并专注于每一层输入中的频繁模式。在变量的重新参数化下,互信息是不变的。此属性可以减少在训练过程引入的一些不必要的噪声。另外,本方法可以将现有的单层属性网络表征学习方法扩展到多层属性网络表征学习中。
附图说明
为了更清楚地说明本发明实施例或现有技术方案,下面对实施例或现有技术进行简单地介绍,下面描述中的附图是本发明的一些实施例:
图1:是本发明实施例的基于互信息最大化的的多层属性网络表征学习方法的流程图。
图2:是本发明实施例的一种基于互信息最大化的多层属性网络表征学习模型的流程图。
具体实施方式
本发明主要基于深度学习技术最大化多层属性网络表征矩阵与每一层属性网络表征矩阵的互信息以实现多层属性网络表征学习,本方法可以将现有的单层属性网络表征学习方法扩展到多层属性网络表征学习中。
本发明提供的方法能够用计算机软件技术实现流程。为使本发明实施例的目的、技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明的第一实施例为一种基于互信息最大化的多层属性网络表征学习方法,其特征在于,包含以下步骤:
步骤1,结合属性维度、网络层数、网络节点总数构建多层属性网络,并引入目标表征空间维度;
步骤1中所述的多层属性网络中每一层为一个无向网络;
步骤1中所述的多层属性网络定义为:
g={g(1),g(2),…,g(r),x}={v,e,x},
其中,步骤1中所述的网络层数为r=2,r为正整数且r>1,g(l)表示第l层网络,多层属性网络每一层的连边对应于一种实际语义关系,共有r种关系,对应于r层网络,l∈[1,r];
步骤1中所述网络节点总数为n=1000,n为正整数,v={v1,v2,…,vn}为节点集合,vi表示多层属性网络g中的第i个节点,i∈[1,n];每一层网络的节点集合是相同的,但连边集合是不同的,e={e(1),e(2),…,e(r)}为网络连边集合,e(l)为第l层网络的连边集合;
步骤1中所述的属性维度为f=200,f为正整数,
步骤1中所述的目标表征空间维度为d=32,d<<n,n为多层属性网络节点总数;
步骤2,结合多层属性网络的属性维度、网络层数、网络节点总数和目标表征空间维度,利用互信息最大化原理构建多层属性网络表征学习模型、多层属性网络表征学习模型的损失函数;
步骤2中所述多层属性网络的属性维度为f=200,步骤2中所述多层属性网络的网络层数为r=2,步骤2中所述多层属性网络的网络节点总数为n=1000,步骤2中所述多层属性网络的目标表征空间维度为d=32;
步骤2中所述的互信息最大化方法是通过最大化互信息的一个下界实现,即
其中,x、y表示两个变量,mi(x;y)表示变量的互信息,是两个变量之间非线性相关性的一种复杂度量,
步骤2中所述的多层属性网络表征学习模型,具体构建步骤如下:
对于多层属性网络的第l层网络g(l),l∈[1,r],r=2,采用的单层属性网络表征学习模型为gl,其可训练的模型参数集合为
定义多层属性网络节点表征矩阵为可训练的参数矩阵
步骤2.1,对于l∈[1,r],r=2为多层属性网络的网络层数,输入g(l),x到该层属性网络表征学习模型gl,获得输出yl;
步骤2.2,采用行洗牌函数
步骤2.3,对于l∈[1,r],r=2为多层属性网络的网络层数,将多层属性网络的第l层网络的节点表征矩阵yl、多层属性网络节点表征矩阵z输入鉴别器
其中,i∈[1,n],n=1000为多层属性网络节点总数,鉴别器
σ是sigmoid非线性函数,
步骤2中所述的多层属性网络表征学习模型的损失函数采用正负例的二元交叉熵损失,形式如下:
其中,r=2为多层属性网络的网络层数,
步骤3,随机初始化多层属性网络的节点表征矩阵,结合多层属性网络表征学习模型的损失函数训练多层属性网络表征学习模型,输出优化后的多层属性网络的节点表征矩阵;
步骤3中所述的多层属性网络的节点表征矩阵为可训练的参数矩阵
步骤3中结合模型的损失函数训练多层属性网络表征学习模型,所述的训练方法采用网格搜索进行多层属性网络表征学习模型超参数搜索,即在所有候选的参数中,通过循环遍历尝试每一种参数组合的可能性,表现最好的参数就是最终的结果,所述的超参数包括:模型gl的待调整的超参数集合为
所述的多层属性网络表征学习模型学习率可采用如下:
lr∈[0.0001,0.0005,0.001,0.005],
所述的正则化项系数可采用如下:
λ∈[0.00001,0.0001,0.001,0.01],
所述的控制不同层互信息的重要度的超参数取值可采用如下:
ω1∈[0.6,0.8,2.0,3.0],
ω2∈[0.6,0.8,2.0,3.0],
步骤3中所述的优化后的多层属性网络的节点表征矩阵为多层属性网络表征学习模型训练调整后的参数矩阵z。
本发明的第二实施例结合单层属性网络表征学习方法deepgraphinfomax(dgi)描述,步骤如下:
步骤1,结合属性维度、网络层数、网络节点总数构建多层属性网络,并引入目标表征空间维度;
具体实施时,步骤1中所述的多层属性网络中每一层为一个无向网络;
步骤1中所述的多层属性网络为:
g={g(1),g(2),x}={v,e,x},
其中,步骤1中所述的网络层数为r=2,r为正整数且r>1,g(1)表示第1层网络,g(2)表示第2层网络;
步骤1中所述网络节点总数为n=1000,n为正整数,v={v1,v2,…,vn}为节点集合,vi表示两层属性网络g中的第i个节点,i∈[1,n];每一层网络的节点集合是相同的,但连边集合是不同的,e={e(1),e(2)}为网络连边集合,e(1)为第1层网络的连边集合,e(2)为第2层网络的连边集合;
步骤1中所述的属性维度为f=200,f为正整数,
步骤1中所述的目标表征空间维度为d=32,d<<n,n为多层属性网络节点总数;
步骤2,结合多层属性网络中属性维度、网络层数、网络节点总数和目标表征空间维度,利用互信息最大化原理构建一种多层属性网络表征学习模型和模型的损失函数;
步骤2中所述多层属性网络的属性维度为f=200,步骤2中所述多层属性网络的网络层数为r=2,步骤2中所述多层属性网络的网络节点总数为n=1000,步骤2中所述多层属性网络的目标表征空间维度为d=32;
图2结合单层属性网络表征学习模型deepgraphinfomax(dgi)给出了多层属性网络表征学习模型流程,
步骤201,输入多层属性网络和目标表征空间维度,多层属性网络为g={g(1),g(2),x},多层属性网络的目标表征空间维度为d=32;
步骤202,通过行洗牌函数随机扰乱节点属性矩阵生成多层属性网络负样本,即
其中,
步骤203,将每一层的原始属性网络和负样本属性网络通过编码器编码到目标表征空间中,获取每一层网络的原始节点局部表征向量和负样本节点局部表征向量;
所述的原始属性网络指{a(1),x}和{a(2),x},所述的负样本属性网络指
y(l)为第l层原始节点局部表征矩阵,
步骤204,将每一层网络的原始节点局部表征向量输入readout函数获取每一层网络表征的全局向量;
所述的readout函数采用平均池化函数,具体形式如下:
其中,
步骤205,将每一层的原始节点局部表征向量和网络表征的全局向量输入到用于层表征的鉴别器,获取输出;
所述的层表征的鉴别器采用双线性函数实现,其形式如下:
其中,
步骤206,将每一层的负样本节点局部表征向量和网络表征的全局向量输入到用于层表征的鉴别器,获取输出;
所述的层表征的鉴别器与步骤205的层表征的鉴别器共享,其形式如下:
其中,
步骤207,将每一层的原始节点局部表征向量和多层属性网络节点表征向量输入到用于多层属性网络表征的鉴别器,获取输出;
所述的多层属性网络表征的鉴别器采用双线性函数实现,其形式如下:
其中,
步骤208,将每一层的负样本节点局部表征向量和多层属性网络节点表征向量输入到用于多层属性网络表征的鉴别器,获取输出;
所述的多层属性网络表征的鉴别器与步骤207中鉴别器共享,其形式如下:
其中,
步骤2中所述的损失函数形式如下:
其中,ωl为控制不同层互信息的重要度的超参数,λ是正则化项系数,θattr={w(1),w(2),m1,m2,z}为模型参数正则化项,n=1000为多层属性网络的网络节点总数,
步骤3,随机初始化多层属性网络的节点表征矩阵,结合多层属性网络表征学习模型的损失函数训练多层属性网络表征学习模型,输出优化后的多层属性网络的节点表征矩阵;
步骤3中所述的多层属性网络节点表征矩阵为可训练的参数矩阵
步骤3中结合模型的损失函数训练多层属性网络表征学习模型,所述的训练方法可采用网格搜索进行多层属性网络表征学习模型超参数搜索,即在所有候选的参数中,通过循环遍历尝试每一种参数组合的可能性,表现最好的参数就是最终的结果,所述的超参数包括:{lr,λ,γ,ω1,ω2},其中,lr为模型学习率,λ是损失函数正则化项系数,γ为编码器gcn控制节点自身的重要度的参数,ω1、ω2为控制第1、2层网络互信息的重要度的超参数;
所述的多层属性网络表征学习模型学习率可采用如下:
lr∈[0.0001,0.0005,0.001,0.005],
所述的正则化项系数可采用如下:
λ∈[0.00001,0.0001,0.001,0.01],
所述的编码器gcn控制节点自身的重要度的参数可采用如下:
γ∈[1.0,2.0,3.0,4.0,5.0],
所述的控制不同层互信息的重要度的超参数取值可采用如下:
ω1∈[0.6,0.8,2.0,3.0],
ω2∈[0.6,0.8,2.0,3.0],
所述的训练方法可采用梯度下降法最小化多层属性网络表征学习模型的损失函数,其中,{w(1),w(2),m1,m2,z}为可训练的模型参数集合;
步骤3中所述的优化后的多层属性网络的节点表征矩阵为多层属性网络表征学习模型训练调整后的参数矩阵z。
本发明提供的方法具有如下优点或者有益技术效果:
本发明提出了一种基于互信息最大化的多层属性网络表征学习方法。该方法使用互信息最大化原理融合单层属性网络节点表征矩阵可以使融合后的多层属性网络节点表征矩阵在较低维度的空间中表达尽可能多的信息,并专注于每一层属性网络中的频繁模式。在变量的重新参数化下,互信息是不变的。利用此属性可以减少在训练过程引入的一些不必要的噪声。另外,该方法可以将现有的单层属性网络表征学习方法扩展到多层属性网络表征学习方法中。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1.一种基于互信息最大化的多层属性网络表征学习方法,其特征在于,包含以下步骤:
步骤1,结合属性维度、网络层数、网络节点总数构建多层属性网络,并引入目标表征空间维度;
步骤2,结合多层属性网络的属性维度、网络层数、网络节点总数和目标表征空间维度,利用互信息最大化原理构建多层属性网络表征学习模型、多层属性网络表征学习模型的损失函数;
步骤3,随机初始化多层属性网络的节点表征矩阵,结合多层属性网络表征学习模型的损失函数训练多层属性网络表征学习模型,输出优化后的多层属性网络的节点表征矩阵。
2.根据权利要求1所述的基于互信息最大化的多层属性网络表征学习方法,其特征在于:
步骤1中所述的多层属性网络中每一层为一个无向网络;
步骤1中所述的多层属性网络定义为:
g={g(1),g(2),...,g(r),x}={v,e,x},
其中,步骤1中所述的网络层数为r,r为正整数且r>1,g(l)表示第l层网络,多层属性网络每一层的连边对应于一种实际语义关系,共有r种关系,对应于r层网络,l∈[1,r];
步骤1中所述网络节点总数为n,n为正整数,v={v1,v2,...,vn}为节点集合,vi表示多层属性网络g中的第i个节点,i∈[1,n];每一层网络的节点集合是相同的,但连边集合是不同的,e={e(1),e(2),...,e(r)}为网络连边集合,e(l)为第l层网络的连边集合;
步骤1中所述的属性维度为f,f为正整数,
步骤1中所述的目标表征空间维度为d,d<<n,n为多层属性网络节点总数。
3.根据权利要求1所述的基于互信息最大化的多层属性网络表征学习方法,其特征在于:
步骤2中所述多层属性网络的属性维度为f,步骤2中所述多层属性网络的网络层数为r,步骤2中所述多层属性网络的网络节点总数为n,步骤2中所述多层属性网络的目标表征空间维度为d;
步骤2中所述的互信息最大化方法是通过最大化互信息的一个下界实现,即
其中,x、y表示两个变量,mi(x;y)表示变量的互信息,是两个变量之间非线性相关性的一种复杂度量,
步骤2中所述的多层属性网络表征学习模型,具体构建步骤如下:
对于多层属性网络的第l层网络g(l),l∈[1,r],采用的单层属性网络表征学习模型为gl,其可训练的模型参数集合为
定义多层属性网络节点表征矩阵为可训练的参数矩阵
步骤2.1,对于l∈[1,r],输入g(l),x到该层属性网络表征学习模型gl,获得输出yl;
步骤2.2,采用行洗牌函数
步骤2.3,对于l∈[1,r],将多层属性网络的第l层网络的节点表征矩阵yl、多层属性网络节点表征矩阵z输入鉴别器
其中,i∈[1,n],n为多层属性网络节点总数,鉴别器
σ是sigmoid非线性函数,
步骤2中所述的多层属性网络表征学习模型的损失函数采用正负例的二元交叉熵损失,形式如下:
其中,r为多层属性网络的网络层数,
4.根据权利要求1所述的基于互信息最大化的多层属性网络表征学习方法,其特征在于:
步骤3中所述的多层属性网络的节点表征矩阵为可训练的参数矩阵
步骤3中结合模型的损失函数训练多层属性网络表征学习模型,所述的训练方法采用网格搜索进行多层属性网络表征学习模型超参数搜索,即在所有候选的参数中,通过循环遍历尝试每一种参数组合的可能性,表现最好的参数就是最终的结果,所述的超参数包括:模型gl的待调整的超参数集合为
步骤3中所述的优化后的多层属性网络的节点表征矩阵为多层属性网络表征学习模型训练调整后的参数矩阵z。
技术总结