本发明属于隐私信息保护领域,尤其是涉及一种基于梯度信息的关键链路保护方法。
背景技术:
网络已经成为描述现实世界各类复杂系统的重要工具之一。通过将个体表示为网络中的节点,个体间的相互作用表示为结点间的链路,我们可以将复杂的系统构建成一个网络模型。运用网络科学中的工具,我们可以分析复杂系统的特性,研究它的演化方向。而网络中的链路预测问题,一直都是网络科学中的重要研究方向。它旨在通过已知的网络结构信息,预测尚未有链路的两个节点间产生连接的可能性。
尽管在一些方面,链路预测能带给我们正面价值。比如,它可以作为商品推荐系统,给电子商务网站带来经济效益。但在另一方面,由于链路预测可以挖掘出未知的链路,它可以作为一种攻击手段,获取关键的隐私信息。链路预测攻击旨在通过已知的网络结构信息,挖掘出被数据发布者或者网络中个体刻意隐藏的链路。这些链路可能是不想被探查到的人际关系,也可能是个体之间一些秘密的联络。
为了使这些私密的链路免于被探查到,通常采用的做法是在原网络中,添加一些虚假的干扰链路,干扰链路预测算法的正常运作,使预测效果变差。然而,如何添加这些链路,一直是一个未被解决的问题。目前还没有方法能够针对性地对一条关键链路,产生有效且适量的干扰链路,保护关键链路免于链路预测攻击的威胁。另一方面,当前的保护算法通常是针对某一种或者某一类特定的链路预测算法,而现实中存在着多种链路预测算法,如何产生具有普适性的虚假干扰链路,使多数链路预测算法在目标敏感链路上均失效,更是一个待解决的问题。
综上所述,如何针对一条重要的链路,产生适量的且有普适性的干扰链路,干扰链路多种预测算法的正常运作,保护目标链路免于链路预测算法的威胁,具有重要的理论与实践意义。
技术实现要素:
本发明提供了一种基于梯度信息的关键链路保护方法,由于自编码器的泛化特性,在其上产生的干扰链路,对于多种链路预测方法,均有防御效果。
一种基于梯度信息的关键链路保护方法,包括以下步骤:
(1)在目标网络上,训练一个用于链路预测的自编码器模型;
(2)构造一个使自编码器模型在目标链路上错误预测链路的代价函数;
(3)利用代价函数计算自编码器模型对于目标网络的梯度信息,通过梯度信息生成干扰链路,获得对抗网络。
本发明的方法借助代价函数计算模型对于输入网络的梯度信息,通过梯度信息产生合适的干扰链路,生成对抗网络,使得多种链路预测算法在该目标链路上失效,达到保护关键链路免于被探测到的目的。由于自编码器的泛化特性,在其上产生的干扰链路,对于多种链路预测方法,均有防御效果。
本发明中,所述自编码器模型由图卷积层和内积层组成,图卷积层用于提取网络特征,获得网络中节点的节点向量;内积层通过对向量的内积操作,将节点向量还原成新网络。由于该模型的泛化特性,利用该模型的梯度信息生成的干扰链路,对其他链路预测模型亦能产生效果。
所述图卷积层操作的公式如下:
其中,
所述内积解码操作的计算公式如下:
其中,z为图卷积层输出的各个节点的表征,s为s形激活函数,
因此通过自编码器模型输出的新的网络包含了原网络中没有的链路,这些链路即自编码器模型利用已知的网络信息,预测到的未知或未观察到的链路。通过有监督的训练,我们可以得到一组优化后的模型参数w(0)和w(1),可以达到对未知链路预测的目的。
步骤(2)中,采用交叉熵函数构造代价函数,用来衡量错误预测的程度,公式为:
其中,yt∈{0,1}代表目标链路存在与否,
步骤(3)的具体过程为:
(3-1)初始化对抗网络为目标网络;
(3-2)利用代价函数和自编码器模型的参数,计算代价函数对于当前对抗网络中邻接矩阵的偏导数,得到包含所有梯度信息的梯度矩阵,其计算公式为:
(3-3)将梯度矩阵对称化,找到梯度最大值的位置(m,n)以及对应的最大梯度值
(3-4)根据梯度值和当前链路条件,构造干扰链路,获得对抗网络;
(3-5)返回步骤(3-2)进行迭代训练,直到干扰链路数目达到设定值,输出最终的对抗网络。
利用该代价函数可以计算得到模型对当前网络的梯度信息,由此可以较优地添加扰动。本发明中,干扰链路的生成是迭代的,每当执行到步骤3-5),只要没有到达干扰链路的数量上限,我们将回到步骤(3-2),重新计算模型对于当前时刻对抗网络
由于步骤(3-2)中得到的梯度矩阵不一定对称,而我们所输入无向网络的邻接矩阵是对称的。在利用梯度信息前,梯度矩阵需要先对称化。步骤(3-3)中,将梯度矩阵对称化时,只保留矩阵的上三角,公式如下:
其中,
步骤(3-4)中,构造干扰链路的具体方式为:
若最大梯度值
若最大梯度值
否则,对于其他情况,由于邻接矩阵只能取0和1这两个离散值,所以我们无法将干扰链路添加在已经有链路的位置。同理,也无法去除本就不存在的链路。在这种情况下,我们认为该最大梯度值无效,因此令该梯度值无效,即
依据最大值梯度,我们可以找到那些对目标链路预测影响最大的位置,从而更有效、更隐蔽地添加干扰。依据梯度值的正负,我们同时可以添加或者去除链路,这使得干扰更加多样、更难以被发现。
本发明将自编码器模型的梯度信息用于隐私链路保护,利用模型的梯度信息可以构造出对目标链路的预测影响最大的干扰链路,从而达到在较小扰动下的隐私信息保护的目的。梯度信息可以很好地引导干扰链路的生成,并且生成的干扰在近乎不可被发现的同时,也有很好的保护效果。由于自编码器模型的泛化能力,在其上生成的对抗网络,对其他链路预测模型也有较好的效果,可以用于防御其他链路预测模型对于隐私链路的挖掘。
附图说明
图1是本发明实施例一种基于梯度信息的关键链路保护方法的流程示意图;
图2为本发明实施例产生干扰链路的框图;
图3为本发明实施例添加了干扰链路的对抗网络与原网络的可视化对比图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。
如图1所示,一种基于梯度信息的关键链路保护方法,包括以下步骤:
(1)训练自编码器模型。本发明使用自编码器的是图卷积自编码器模型,它由图卷积层和内积层组成。
(1-1)图卷积层借助直接施加在网络结构上的卷积操作,可以提取得到网络特征,将网络中的每个节点都嵌入到高维度的向量空间。图卷积操作的计算公式如下:
其中,
(1-2)内积层则负责解码操作,通过向量的内积操作,将节点向量还原成新的网络。内积解码操作的计算公式如下:
其中,z为图卷积层输出的各个节点的表征,s为“s”形激活函数,
因此输出的新的网络包含了原网络中没有的链路,这些链路即自编码器模型利用已知的网络信息,预测到的未知或未观察到的链路。通过有监督的训练,我们可以得到一组优化后的模型参数w(0)和w(1),理论上可以达到对未知链路预测的目的。
(2)构造代价函数。该代价函数的优化目标是自编码器模型错误地预测目标链路,达到防御的目的。和训练过程一致,本发明采用交叉熵代价函数来衡量错误预测的程度:
其中,yt∈{0,1}代表目标链路存在与否,
(3)利用代价函数计算自编码器模型对于目标网络的梯度信息,通过梯度信息生成干扰链路,获得对抗网络。
(3-1)初始化对抗网络为原目标网络;
(3-2)利用代价函数和自编码器模型的参数,计算代价函数对于当前对抗网络中邻接矩阵的偏导数,得到包含所有梯度信息的梯度矩阵,计算过程如下:
由于得到的梯度矩阵不一定对称,而我们所输入无向网络的邻接矩阵是对称的。在利用梯度信息前,梯度矩阵需要先对称化。这里只保留了上三角:
其中,
(3-3)将梯度矩阵对称化,找到梯度最大值的位置(m,n)以及对应的最大梯度值
(3-4)根据梯度值和当前链路条件,构造干扰链路。
若
若
对于其他情况,由于邻接矩阵只能取0和1这两个离散值,所以我们无法将干扰链路添加在已经有链路的位置。同理,也无法去除本就不存在的链路。在这种情况下,我们认为该最大梯度值
(3-5)重复(3-2)至(3-4)的步骤,直到干扰链路数目达到设定值。在迭代时,步骤(3-2)中的偏导数的计算目标a,替换为当前的对抗网络
以下利用本发明的翻译方法进行具体的试验。
如图2所示,在已训练好图自编码器的情况下,首先计算了所有存在和不存在链路的梯度值,并对所有链路的梯度进行了排序,选取出梯度值最大的链路。根据梯度值的正负,将增加或者删去该链路,作为干扰添加到当前的对抗网络中。该过程是迭代进行的,对抗网络引出的箭头指向了图自编码器,表示将在当前的对抗网络上计算梯度值,并以同样的方式添加扰动。当干扰链路数到达设定值时,即得到了最终对抗网络,链路预测能在原网络上预测出目标链路,而无法在对抗网络中预测出目标链路。
如图3所示,在一个小尺度的社交网络上,通过本发明添加了干扰,保护原本被暴露的链路。可以注意到,保护的过程仅仅改变了两条链路,一条链路被去除,一条链路为新增链路,这使得干扰对原网络的影响较小,且难以被察觉到。
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换,均应包含在本发明的保护范围之内。