发明内容
本申请提供了一种图神经网络模型的节点修改方法和相关装置,解决了现有的现有节点类别的修改方式是通过修改模型参数实现的,此时该节点对任何输入都输出指定类别的技术问题。
有鉴于此,本申请第一方面提供了一种图神经网络模型的节点修改方法,包括:
获取待修改的图神经网络模型和所述图神经网络模型中待修改的目标节点;
获取用于修改目标节点的目标触发器,其中,所述目标触发器由节点特征为目标特征的触发节点构成,且所述目标触发器的分类类别为预置类别;
将所述目标触发器连接至目标节点,以使得通过所述目标触发器修改所述目标节点的分类类别为所述预置类别。
可选地,所述目标触发器的计算公式包括:
xu=gtop(-δt;q);
式中,xu为目标触发器,gtop(·)目标触发器中梯度向量最大的节点特征,δt为预置类别t和其他标签之间的特征偏好差,q为修改预算。
可选地,所述触发节点的目标特征的配置过程包括:
获取初始触发器,其中,所述初始触发器为空触发器;
将所述初始触发器连接至所述目标节点,以激活所述初始触发器;
根据预置触发器优化算法,对所述初始触发器中触发节点的节点特征进行优化得到目标特征。
可选地,根据预置触发器优化算法,对所述初始触发器中触发节点的节点特征进行优化得到目标特征,具体包括:
步骤S11、对所述初始触发器进行第i次迭代,1≤i≤p,i为自然数,p为迭代次数;
步骤S12、计算第i次迭代时,所述初始触发器的各节点特征对应的梯度向量;
步骤S13、将第i-1次迭代时选择的节点特征过滤后,从其他节点特征中选择梯度向量最大的节点特征作为目标特征;
步骤S14、将所述目标特征添加至所述初始触发器中得到新触发器;
步骤S15、将所述新触发器作为所述初始触发器后返回步骤S11,直至i等于所述迭代次数,停止迭代。
可选地,所述步骤S15之前还包括:
将所述新触发器按照预置投影方法投影后,将投影后的触发器作为所述新触发器。
可选地,所述触发节点的目标特征的配置过程包括:
获取触发节点的节点特征可行解;
计算各节点特征可行解对应的梯度向量;
将梯度向量最大的N个特征作为所述目标特征。
本申请第二方面提供了一种图神经网络模型的节点修改装置,包括:
第一获取单元,用于获取待修改的图神经网络模型和所述图神经网络模型中待修改的目标节点;
第二获取单元,用于获取用于修改目标节点的目标触发器,其中,所述目标触发器由节点特征为目标特征的触发节点构成,且所述目标触发器的分类类别为预置类别;
修改单元,用于将所述目标触发器连接至目标节点,以使得通过所述目标触发器修改所述目标节点的分类类别为所述预置类别。
可选地,所述目标触发器的计算公式包括:
xu=gtop(-δt;q);
式中,xu为目标触发器,gtop(·)目标触发器中梯度向量最大的节点特征,δt为预置类别t和其他标签之间的特征偏好差,q为修改预算。
本申请第三发明提供了一种图神经网络模型的节点修改设备,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行如第一方面所述的图神经网络模型的节点修改方法。
本申请第四方面提供了一种存储介质,所述存储介质用于存储程序代码,所述程序代码用于执行如第一方面所述的图神经网络模型的节点修改方法。
从以上技术方案可以看出,本申请具有以下优点:
本申请提供了一种图神经网络模型的节点修改方法,包括:获取待修改的图神经网络模型和所述图神经网络模型中待修改的目标节点;获取用于修改目标节点的目标触发器,其中,所述目标触发器由节点特征为目标特征的触发节点构成,且所述目标触发器的分类类别为预置类别;将所述目标触发器连接至目标节点,以使得通过所述目标触发器修改所述目标节点的分类类别为所述预置类别。
本申请中,目标触发器由节点特征为目标特征的触发节点构成,当将目标触发器连接至目标节点后,目标触发器相当于是目标节点的邻居节点,而邻居节点的分类类别会影响目标节点的分类类别,故此时将目标触发器连接至目标节点后,便可通过目标触发器修改目标节点的分类类别,本申请中无需修改模型参数也可对目标节点的分类类别进行修改,从而解决了现有节点类别的修改方式是通过修改模型参数实现的,此时该节点对任何输入都输出指定类别的技术问题。
具体实施方式
本申请实施例提供了一种图神经网络模型的节点修改方法和相关装置,解决了现有节点类别的修改方式是通过修改模型参数实现的,此时该节点对任何输入都输出指定类别的技术问题。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,本申请实施例中一种图神经网络模型的节点修改方法的实施例一的流程示意图。
本实施例中的一种图神经网络模型的节点修改方法包括:
步骤101、获取待修改的图神经网络模型和图神经网络模型中待修改的目标节点。
步骤102、获取用于修改目标节点的目标触发器,其中,目标触发器由节点特征为目标特征的触发节点构成,且目标触发器的分类类别为预置类别。
可以理解的是,在一种实施方式中,目标触发器的计算公式包括:
xu=gtop(-δt;q);
式中,xu为目标触发器,gtop(·)目标触发器中梯度向量最大的节点特征,δt为预置类别t和其他标签之间的特征偏好差,q为修改预算。
在一种实施方式中,触发节点的目标特征的配置过程包括:
获取初始触发器,其中,初始触发器为空触发器;
将初始触发器连接至目标节点,以激活初始触发器;
根据预置触发器优化算法,对初始触发器中触发节点的节点特征进行优化得到目标特征。
具体地,根据预置触发器优化算法,对初始触发器中触发节点的节点特征进行优化得到目标特征,即此时的目标特征是通过GB-FGSM过程配置的,具体包括:
步骤S11、对初始触发器进行第i次迭代,1≤i≤p,i为自然数,p为迭代次数;
步骤S12、计算第i次迭代时,初始触发器的各节点特征对应的梯度向量;
步骤S13、将第i-1次迭代时选择的节点特征过滤后,从其他节点特征中选择梯度向量最大的节点特征作为目标特征;
步骤S14、将目标特征添加至初始触发器中得到新触发器;
步骤S15、将新触发器作为初始触发器后返回步骤S11,直至i等于迭代次数,停止迭代。
可以理解的是,步骤S15之前还包括:
将新触发器按照预置投影方法投影后,将投影后的触发器作为新触发器,即此时的目标特征是通过GB-PGD过程配置的。
在一种实施方式中,触发节点的目标特征的配置过程包括,此时对应的目标特征是通过GB-IG过程配置的:
获取触发节点的节点特征可行解;
计算各节点特征可行解对应的梯度向量;
将梯度向量最大的N个特征作为目标特征。
步骤103、将目标触发器连接至目标节点,以使得通过目标触发器修改目标节点的分类类别为预置类别。
节点特征是一个离散向量,图神经网络使用一种递归的邻居聚集机制,即通过将邻居节点的特征聚集到中心节点得到每个节点的表示。经过L次迭代后,每个节点的表示能够捕获到L阶邻居节点的节点特征。
本实施例中,目标触发器由节点特征为目标特征的触发节点构成,当将目标触发器连接至目标节点后,目标触发器相当于是目标节点的邻居节点,而邻居节点的分类类别会影响目标节点的分类类别,故此时将目标触发器连接至目标节点后,便可通过目标触发器修改目标节点的分类类别,本申请中无需修改模型参数也可对目标节点的分类类别进行修改,从而解决了现有节点类别的修改方式是通过修改模型参数实现的,此时该节点对任何输入都输出指定类别的技术问题。
以上为本申请实施例提供的一种图神经网络模型的节点修改方法的实施例一,以下为本申请实施例提供的一种图神经网络模型的节点修改方法的实施例二。
本实施例中的一种图神经网络模型的节点修改方法对中触发节点的目标特征的配置进行详细说明。
目标触发器的主要问题是如何生成触发节点的目标特征。考虑输入节点特征是离散的情况,特征为1表示该特征存在,0表示不存在,以下介绍本实施例中几种目标特征的配置方式。
1)方式一:GB-FGSM过程
如图2所示,第一行是GB-FGSM过程。首先,将一个初始的空触发器连接到目标节点上,激活该触发器。左下角的权重矩阵表示模型参数,
表示用于计算触发节点中节点特征的梯度向量。
表示从梯度向量中选取最大的一个梯度向量生成对应的节点特征,将该节点特征添加到初始触发器中并开始下一次迭代。在q次迭代之后,就得到了由GB-FGSM生成的目标触发器。
本方式中一共需要q次迭代,在第p次迭代时,计算梯度向量
t为预置类别,对特定的目标节点v,使用h
v(x
u)∈R
k表示节点v在连接了触发器x
u后的输出;
随后将已经选择过的节点特征对应的梯度向量过滤掉,γ(p)=γ(p)*(1-xu);
然后从剩余的梯度向量中选取最大的梯度向量对应的节点特征,添加到初始触发器中,xu=xu+gtop(γ(p);1);
在q次迭代完成后,输出的xu就是所需的目标触发器。
2)方式二:GB-PGD过程
为了能直接使用梯度向量更新触发器的参数,将触发器xu∈{0,1}d松弛为xu∈[0,1]d,因此扰动空间松弛为一个连续空间P={xu|1Txu≤∈,xu∈[0,1]d},然后在这个连续空间上对目标函数投影为:
[xu](p)=ΠP([xu](p-1)-ηpγ(p))
其中[x
u]
(p)表示第p次迭代时的初始触发器,该初始触发器由梯度向量γ
(p)迭代更新,η
p是学习率,投影运算符
用于确保x
u在优化过程中始终位于扰动空间内,它具有封闭解,其中Π
P()的表达式为:
P[0,1](x)=x if x∈[0,1],0 if x<0,1 if x>1。
该投影操作将超出约束的触发器向量平移回扰动空间,同时保留了触发器元素之间的相对大小关系。在T轮迭代的投影梯度下降之后,本实施例得到了一个具有连续值的触发器[xu](T)∈[0,1]d,现在需要将其转换为离散的触发器xu∈{0,1}d。如果将[xu](T)视为一个随机特征向量,则可以定义一个函数grnd(·)从这些随机特征中随机抽样,生成离散的触发器:
grnd([xu](T))=I([xu](T)>r)
其中,I是指示函数,输入为真值时输出1,输入为非真时输出0。r是随机向量,其每一个元素都服从均匀分布r
i~
i.i.d.U[0,1]。这样,梯度越大的特征越可能出现在输出的目标触发器中。考虑到此过程的不确定性,设置∈=q,然后将该过程执行K次,然后选择一个能使得目标函数最小的并且特征数少于q的触发器。其中参数可以设置为:T=100,
K=20。
本方式中同样一共需要q次迭代,具体的实施步骤为:
随后将已经选择过的节点特征对应的梯度向量过滤掉,γ(p)=γ(p)*(1-xu);
然后从剩余的梯度向量中选取最大的梯度向量对应的节点特征,添加到初始触发器中,xu=xu+gtop(γ(p);1),得到新触发器;
将新触发器按照预置投影方法后,将投影后的触发器作为新触发器;
在q次迭代完成后,输出的xu就是所需的目标触发器。
3)方式三:GB-IG过程
GB-IG过程:一种集成梯度的方法,具体步骤为:
获取触发节点的节点特征可行解;
计算各节点特征可行解对应的梯度向量;
将梯度向量最大的N个特征作为目标特征。
即以离散形式下,集成梯度定义如下:给定目标函数l:Rk→R,预置类别为t,触发器xu∈Rd作为输入,全部初始化为1的触发器1d作为基线输入。考虑一条在xu和1d之间的直线路径,l对于的xu集成梯度是通过在该路径上均匀采样m个点并累积每个点的梯度而获得的:
上式中参数取值为m=20,通过该公式计算每个特征的集成梯度,得到梯度向量γ,再选择最大的q个特征作为触发器:xu=gtop(γ;q)。
4)方式四:
本方式中,目标触发器的计算公式包括:
xu=gtop(-δt;q);
式中,xu为目标触发器,gtop(·)目标触发器中梯度向量最大的节点特征,δt为预置类别t和其他标签之间的特征偏好差,q为修改预算。
上述的三种方式生成的目标触发器。需要许多迭代步骤和复杂的梯度计算,本方式效率更高,且本方式不需要访问数据集。
以上为本申请实施例提供的一种图神经网络模型的节点修改方法的说明,以下为本申请实施例提供的一种图神经网络模型的节点修改装置的实施例。
请参阅图3,本申请实施例中一种图神经网络模型的节点修改装置的实施例的结构示意图。
第一获取单元301,用于获取待修改的图神经网络和图神经网络模型中待修改的目标节点;
第二获取单元302,用于获取用于修改目标节点的目标触发器,其中,目标触发器由节点特征为目标特征的触发节点构成,且目标触发器的分类类别为预置类别;
单元303,用于将目标触发器连接至目标节点,以使得通过目标触发器修改目标节点的分类类别为预置类别。
本实施例中,目标触发器由节点特征为目标特征的触发节点构成,当将目标触发器连接至目标节点后,目标触发器相当于是目标节点的邻居节点,而邻居节点的分类类别会影响目标节点的分类类别,故此时将目标触发器连接至目标节点后,便可通过目标触发器修改目标节点的分类类别,本申请中无需修改模型参数也可对目标节点的分类类别进行修改,从而解决了现有节点类别的修改方式是通过修改模型参数实现的,此时该节点对任何输入都输出指定类别的技术问题。
本申请实施例还提供了一种图神经网络模型的节点修改设备的实施例,本实施例中的图神经网络模型的节点修改设备包括处理器以及存储器;存储器用于存储程序代码,并将程序代码传输给处理器;处理器用于根据程序代码中的指令执行如实施例一或实施例二的图神经网络模型的节点修改方法。
本实施例中实施例还提供了一种存储介质的实施例,本实施例中的存储介质用于存储程序代码,程序代码用于执行如实施例一或实施例二的图神经网络模型的节点修改方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个待安装电网网络,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。