1.本发明属于不平衡学习和神经网络领域,特别涉及一种基于图拓扑的过采样方法。
背景技术:
2.近年来图神经网络取得了惊人的成就,得益于它能有效的对图结构的数据进行编码使得图神经网络在现实生活中的广泛应用例如,药物发现及使用,文本分类,异常检测,推荐系统,等诸多领域。图神经网络的一个经典任务是节点分类,其目标是正确的分类每个节点属于哪个类。但是现实世界中的图数据往往是类不平衡的,训练样本的节点数通常呈现长尾类分布,头部类的样本数量有时会是尾部类样本数量的数百倍。这将会导致分类器倾向于多数类并造成少数类分类性能不佳。尾部类的样本虽然稀少但是十分重要,例如在异常检测中,使用长尾分布的数据集训练gnn会导致任务失败。
3.处理不平衡分类问题的主要目标是用不平衡的数据构建无偏分类器,其方法可以分为两类,采样方法和算法方法,采样方法主要是通过对少数类进行过采样,对多数类进行欠采样,或者是同时结合了过采样与欠采样优点的混合采样。在过采样方法中,smote是一种被广泛使用的采样方法,其核心思想是从现有的少数类方法中直接人工合成少数类样本。算法方法专注于设计一种更有效的算法来解决不平衡的分类问题。j9九游会真人的解决方案包括深度学习、成本敏感学习和阈值移动。他们修改模型结构和决策策略来处理问题。其中最常用的是成本敏感学习法,它利用成本矩阵来计算特定类分类错误的代价,从而修正分类器的分类边界。除此之外还有诸多经典算法,如support vector machines(svms),gan等方法。
4.基于图节点的不平衡分类问题,近年来也提出了一些方法来处理。imgagn提出利用gan网络生成次要节点的与生成节点之间的权重矩阵,当矩阵中的值大于设定的阈值时,则视为两个节点之间存在一条边的关系。同时利用权重矩阵插值生成节点特征。该方法主要针对二分类问题,在多类不平衡问题中需要训练多个模型。graphsmote通过对次要类中两个节点之间插值合成少数类节点,并使用预训练的边缘预测器确定合成节点与两个源节点站之间的连接性。但该方法仅使用少数类生成少数类,在长尾分布中,尾部类的节点数过少,因此该方法合成的节点样本多样性收到极大的挑战。graphens通过选取少数类节点和目标节点的一阶邻域节点合成少数类样本,并通过节点特征显著性混合所选节点特征,生成少数类节点的特征。该方法虽然显著的增加了样本的多样性。但是该方法中合成的节点的邻居仅限于少数类节点和其选中的目标节点的一阶邻居之间,生成节点的多样性依然受限。无法有效的提高过采样样本的多样性。
技术实现要素:
5.为了解决现有技术的不足,实现过采样节点的特征多样性,本发明采用如下的技术方案:
6.一种基于图拓扑的过采样方法,其特征在于,具体步骤如下:
7.步骤1,获取不平衡的图数据;
8.步骤2,利用图数据,搭建并训练图变分自编码器;
9.步骤3,使用图变分自编码器中的编码器和解码器的权重,搭建生成对抗网络模型;
10.步骤4,训练生成对抗网络模型;
11.步骤5,使用少数类标签和噪声作为网络输入,生成对应标签的少数类节点,以及过采样节点的边。
12.进一步地,在所述步骤2中搭建并训练图变分自编码器,其具体步骤如下:
13.步骤2.1,使用两层gcn建立编码器,其第一层gcn从原始图数据中提取隐藏层特征,第二层使用两个gcn分别提均值和标准差,每层gcn使用relu激活函数,其过程表示为:
[0014][0015][0016]
其中,μ=gcn
μ
(x,a),logσ=gcn
σ
(x,a),其中wi是权重矩阵relu(
·
)=max(0,
·
),gcn
μ
和gcn
σ
共享权重w0;
[0017]
步骤2.2,生成模型简单的采用两个隐表示的内积,其过程表示为:
[0018][0019]
其中p(a
ij
=1|zi,zj)=σ(z
it
zj)其中a
ij
是a的元素,σ(
·
)是sigmoid函数;
[0020]
步骤2.3,将图数据输入编码器,解码器输出图数据每个节点的均值和方差后,在方差上添加高斯噪声后与均值相加得到z,增强编码器的鲁棒性;
[0021]
步骤2.4,使用z作为嵌入图数据的嵌入在特征空间中的潜表示;
[0022]
步骤2.5,使用解码器解码潜表示z,将z生成图数据;
[0023]
步骤2.6,使用生成的图数据与原始图数据的邻接矩阵概率尽可能大,同时最小化kl损失,使用该方法构建的损失函数训练变分自编码器;
[0024]
步骤2.7,设置adam作为优化器,设置迭代次数为500次,开始训练。
[0025]
进一步地,在所述步骤3中搭建对抗生成网络,其具体步骤如下:
[0026]
步骤3.1,构建acgan网络的生成器模型,使用图变分自编码器中的编码器获取原始图的潜表示,只用噪声数据通过两层全连接网络生成过采样节点的潜表示,将原始图的潜表示和生成的潜表示拼接后,使用图变分自编码器中的解码器生成过采样图的权重矩阵,使用权重矩阵与原始图的节点特征相乘获得过采样节点的节点特征,同时设置阈值,当权重矩阵中的值高于阈值时置为1,其他为0,得到过采样图的邻接矩阵,其中全连接网络的输出维度分别为256和128;
[0027]
步骤3.2,构建acgan网络的判别器模型,使用两层gcn网络作为分类器,其中gcn网络的输出维度分别是256,128,在第二层gcn网络后连接两个全连接神经网络,分别输出样本类别和是否属于过采样节点。
[0028]
进一步地,在所述步骤4训练生成对抗网络模型,其具体步骤如下:
[0029]
步骤4.1,将噪声通过生成器g生成带有对应标签的样本x
fake
=g(c,z);
[0030]
步骤4.2,别器分别给出生成数据在源和类标签上的概率分布,p(s|x),p(c|x)=d(x);
[0031]
步骤4.3,损失函数ls和lc分别描述原和分类损失。分类器的目标是最大化ls lc而生成器的目标是最大化l
s-lc,其中ls和lc分别呗定义为,
[0032]
ls=e[logp(s=real|x
real
)] e[logp(s=fake|x
fake
)]
[0033]
lc=e[logp(c=c|x
real
)] e[logp(c=c|x
fake
)]
[0034]
步骤4.4,根据损失函数更新网络参数;
[0035]
步骤4.5,将adam作为优化器,迭代次数为2000,开始训练。
[0036]
进一步地,使用少数类标签和噪声作为网络输入,生成对应标签的少数类节点,以及过采样节点的边,其具体步骤如下:
[0037]
步骤5.1,根据数据中每个类别数量,计算每个类别需要生成的样本数量,要求每个类别的数量向样本对多的类看齐;
[0038]
步骤5.2,根据需要生成的样本数量和标签作为生成器的输入,生成对应标签的少数类样本和边;
[0039]
步骤5.3,将生成的少数类样本添加到原始图中,为了保证原始图节点中的数据不受到过采样节点的影响,因此只保留入度边。
附图说明
[0040]
图1为本发明一种基于图拓扑的过采样方法的总体结构图。
[0041]
图2为本发明一种基于图拓扑的过采样方法中基于潜在表示的图拓扑生成的总体结构图。
[0042]
具体实施方法
[0043]
下面结合附图,对本发明的技术方案作详细阐述。
[0044]
如图1所示,一种基于图拓扑的过采样方法,具体实现步骤如下:
[0045]
步骤1,获取不平衡的图数据;
[0046]
步骤2,利用图数据,搭建并训练图变分自编码器;
[0047]
步骤3,使用图变分自编码器中的编码器和解码器的权重,搭建生成对抗网络模型;
[0048]
步骤4,训练生成对抗网络模型;
[0049]
步骤5,使用少数类标签和噪声作为网络输入,生成对应标签的少数类节点,以及过采样节点的边。
[0050]
进一步地,在所述步骤2中搭建并训练图变分自编码器,其具体步骤如下:
[0051]
步骤2.1,使用两层gcn建立编码器,其第一层gcn从原始图数据中提取隐藏层特征,第二层使用两个gcn分别提均值和标准差,每层gcn使用relu激活函数,其过程表示为:
[0052]
[0053][0054]
其中,μ=gcn
μ
(x,a),logσ=gcn
σ
(x,a),其中wi是权重矩阵relu(
·
)=max(0,
·
),gcn
μ
和gcn
σ
共享权重w0;
[0055]
步骤2.2,生成模型简单的采用两个隐表示的内积,其过程表示为:
[0056][0057]
其中p(a
ij
=1|zi,zj)=σ(z
it
zj)其中a
ij
是a的元素,σ(
·
)是sigmoid函数;
[0058]
步骤2.3,将图数据输入编码器,解码器输出图数据每个节点的均值和方差后,在方差上添加高斯噪声后与均值相加得到z,增强编码器的鲁棒性;
[0059]
步骤2.4,使用z作为嵌入图数据的嵌入在特征空间中的潜表示;
[0060]
步骤2.5,使用解码器解码潜表示z,将z生成图数据;
[0061]
步骤2.6,使用生成的图数据与原始图数据的邻接矩阵概率尽可能大,同时最小化kl损失,使用该方法构建的损失函数训练变分自编码器;
[0062]
步骤2.7,设置adam作为优化器,设置迭代次数为500次,开始训练。
[0063]
进一步地,在所述步骤3中搭建对抗生成网络,其具体步骤如下:
[0064]
步骤3.1,构建acgan网络的生成器模型,使用图变分自编码器中的编码器获取原始图的潜表示,只用噪声数据通过两层全连接网络生成过采样节点的潜表示,将原始图的潜表示和生成的潜表示拼接后,使用图变分自编码器中的解码器生成过采样图的权重矩阵,使用权重矩阵与原始图的节点特征相乘获得过采样节点的节点特征,同时设置阈值,当权重矩阵中的值高于阈值时置为1,其他为0,得到过采样图的邻接矩阵,其中全连接网络的输出维度分别为256和128;
[0065]
步骤3.2,构建acgan网络的判别器模型,使用两层gcn网络作为分类器,其中gcn网络的输出维度分别是256,128,在第二层gcn网络后连接两个全连接神经网络,分别输出样本类别和是否属于过采样节点。
[0066]
进一步地,在所述步骤4训练生成对抗网络模型,其具体步骤如下:
[0067]
步骤4.1,将噪声通过生成器g生成带有对应标签的样本x
fake
=g(c,z);
[0068]
步骤4.2,别器分别给出生成数据在源和类标签上的概率分布,p(s|x),p(c|x)=d(x);
[0069]
步骤4.3,损失函数ls和lc分别描述原和分类损失。分类器的目标是最大化ls lc而生成器的目标是最大化l
s-lc,其中ls和lc分别呗定义为,
[0070]
ls=e[logp(s=real|x
real
)] e[logp(s=fake|x
fake
)]
[0071]
lc=e[logp(c=c|x
real
)] e[logp(c=c|x
fake
)]
[0072]
步骤4.4,根据损失函数更新网络参数;
[0073]
步骤4.5,将adam作为优化器,迭代次数为2000,开始训练。
[0074]
进一步地,使用少数类标签和噪声作为网络输入,生成对应标签的少数类节点,以及过采样节点的边,其具体步骤如下:
[0075]
步骤5.1,根据数据中每个类别数量,计算每个类别需要生成的样本数量,要求每
个类别的数量向样本对多的类看齐;
[0076]
步骤5.2,根据需要生成的样本数量和标签作为生成器的输入,生成对应标签的少数类样本和边;
[0077]
步骤5.3,将生成的少数类样本添加到原始图中,为了保证原始图节点中的数据不受到过采样节点的影响,因此只保留入度边。
[0078]
为了更好的说明本模型的有效性,通过对人工设置不平衡率为100的cora数据集进行测试,对比了origin,smote,oversampling,embed-smote,graphsmote_o,graphsmote_t,graphens。使用同一个gcn分类网络对数据集进行测试,得到各种不平衡指标性能。实验结果表明,使用我们提出的基于图拓扑的过采样方法,生成的图节点多样性更好,能够更有效地提升分类器性能。具体的实验情况如表1所示,acc、bacc、f1指标越高越好,gt-acgan代表本发明提出的方法。
[0079]
以上所述仅为本发明的实施例而已,并不用于限制本发明。凡在本发明的原则之内,所作的等同替换,均应包含在本发明的保护范围之内。本发明未作详细阐述的内容属于本专业领域技术人员公知的已有技术。
[0080]
表1cora数据集在1:100的不平衡比例下各类方法相关性能指标
[0081]