新知一下
海量新知
5 9 0 9 7 5 7

超硬核!聚焦数据安全,如何进一步提升模型鲁棒性以对抗潜在攻击?|2021KDD Trustday精彩回顾

算力智库 | 最深度的数字经济产业智库 2021/09/05 09:07

新知达人, 超硬核!聚焦数据安全,如何进一步提升模型鲁棒性以对抗潜在攻击?|2021KDD Trustday精彩回顾

今天报告题目是大规模图模型的鲁棒性学习,所以其实之前的嘉宾老师已经讲了很多像可信计算,怎么提高数据安全这一块的思路,这些都非常的好。

现在我跟我学生主要的研究方向是大规模社交或者信息网络的挖掘,所以我们的一些研究工作往往会基于一个图数据展开,主要包含4个层面,1个是异常检测,所谓异常检测就是说我们给定这个图,可能大部分的节点都是正常的用户,正常的关系,但也会有存在一些少量的害群之马,比如说一些诈骗用户或者玩游戏的时候,大家会经常碰到一些Boss等,我们怎么样可以快速有效,并且带有一定可解释的,把这些异常节点给识别出来,这是我们一个工作方向。

第二部分就是图的表示学习,所谓表示学习就是比如我们人在看一个图的时候,其实有一个非常直观的认知,比如说有多少个节点,这些节点之间大概呈现怎样互相连接的关系,但计算机其实是不能感知到这么一个图数据的,计算机它只能去handle一些,比如说像做一些数值的加减存储等,我们就希望把我们这么一个图数据,从它原始的拓扑空间映射到计算机比较擅长处理的输入空间上面,然后在那个空间上我们再对这个图进行一些操作跟处理,这样可以发挥我们计算机所擅长的power。

第三部分会结合我们的图模型、图算法开展一些计算社会学的研究。比如说之前我们研究一个外来群体,他到达一个大都市以后,怎么样跟本地人融入在一起,什么样的人可以融入比较好,什么样的人可能相对融入不太好。

最后一个方向是我们最近在推的,怎么样可以结合图数据来对时间序列建模,提升模型的可解释性,另外我们的一个理念,就是一个好的研究工作不光要发表高水平论文,才能真正的为社会带来一些创造和价值。

我们今天的主角是图数据,图数据其实在我们日常生活或工作中无处不在,比如说我们大家接触比较多的在线或者线下社交网络,描述的是人与人之间的关系。

再比如说我们可以用一个图来描述一些病毒疾病与一些Drugs之间的关系。

再比如说现在每天我们的生活离不开互联网,这些图数据其实给我们提供了非常丰富的信息,可以帮助我们做一些好玩的事儿,以一个我们跟信也科技的合作,作为一个案例,我们这个工作是希望能够打造一个风控模型,大家可能会说风控这个事情用机器学习来做,好像已经有非常悠久的历史了。

确实以前传统的工作,可能往往是基于一个用户他过往的借贷记录来实现风控。比如说这个用户他以前每个月来借1000块钱,这个月他突然心血来潮借了1万块钱,可能用户相对会比较异常一些,就是说我们可以在Model上捕捉这种异常的Pattern,但是我们发现有超过61%的诈骗用户,他们在第一次申请贷款的时候就会行骗了,不跟你废话上来就骗。

所以对于这些用户,我们就没有他过往的借贷记录,传统的机器学习就没法去handle这样的case,但是这样的case占的比例又比较高,这个时候该怎么办? 即使没有用户的借贷记录,我们依旧可以根据用户和用户之间关系所组成的一个social network来进行风控的识别。

这个问题的输入包含我们刚才说的社交网络,其中的每一个节点就表示一个用户,然后如果两个用户之间他们存在某种关系,比如说微博上的互粉关系,就在他们之间联调。

那么在图中我们说存在三种节点,一种是曾经已经借贷过的,并且信用评级一直是非常良好的,我们叫它正常用户,也存在一些曾经借贷过,然后没有按时还款,在行业内一般说没有在90天内及时还款的用户,我们就把它叫做逾期诈骗用户。

当然也存在第三类,就刚刚申请贷款的,还没有任何信用评级分值的新来用户,然后他们当前到底是一个正常用户,还是一个异常用户,这是未知的。我们的目标就根据这么一个社交网络来对这些带有问号的节点,来识别他到底是一个蓝色的正常用户,还是一个红色异常用户。

具体这个模型不是今天的重点,我想说的是在我们开展这个过程中,其实发现了我们应该怎么样去Design Model,怎样去实现这个模型?可能会更加挑战一些问题,也就是在数据层面,我们说在一些实际的现实案例中,我们的图数据它往往不是非常干净的,而且往往会带有大量的噪音。这个噪音数据要分成两个层面,第一个层面是说这个数据本身可能带有一些Noise,比如说两个用户,他们之间比如说辛普森先生跟蜘蛛侠他们之间可能本来是没有关系的,但是因为在数据通信或者在数据采集的一些逻辑上出现了一些问题,使得我们的底层数据出现了一条多余的边,我们把这种叫做噪音点或者叫做冗余点,可能还有相对的两个用户,本来蜘蛛侠跟绿灯侠,它们之间本来应该是有边的,但因为比如说数据传输出现一点问题,我们这条边缺失了,那么把这种边叫做缺失点,也就是说这个数据本身带有一些噪音,我们怎么样让我们的Model可以handle这种噪音。

第二类噪音Somehow可能更加的挑战,但从某个层面来说也更加的有趣。比如说,本拉登先生他来申请一笔贷款,我们看因为它周围只有一个邻居,并且这个邻居是一个异常节点。所以说一些常见的图模型,解读会大概率的把本拉登同志分成一个异常节点,分成一个诈骗分子。

如果说诈骗分子他有一些数据挖掘或者机器学习的能力,并且他感知到我们在用图模型进行风控的话,其实他可以做这么一个事情,他可以在恶意的申请贷款以前,恶意的去跟一些信用评级非常良好的用户去创造一些边,比如说去关注他们的微博账号,从而它这些生成出来的边就会干扰我们的模型。

从这个角度来看,我们会发现这个用户周围有挺多信用评级都挺好的用户,所以模型可能就会认为它是一个正常的节点,这样的话就会使得我们的模型给出一个错误的答案。

我们把这种case叫做这个图上面的Adversary Samples,今天我整个talk其实就是想 介绍怎么样让我们的模型更加鲁棒,能够handle带有噪音的数据,能够handle这种带有对抗样本的数据。

首先来看网络噪音,我们提出了一个叫做网络增强的问题,这个问题的输入就是一个带有噪音边和缺失边的图数据,我们希望通过某种算法某种模型能够对这个图数据进行降噪。也就是说对于多出来的这种噪音边或者冗余边,把它给去掉。对于这些缺失边,我们能把它进行一个补全。

我们从两个层面尝试去解决这个问题。最开始我跟我学生讨论,就是说到底什么样的边才是一条噪音点。当时我们提出来说黑猫白猫,能抓老鼠的都是好猫,什么意思?也就是说你甭管这条边是噪音边还是什么边,如果把这条边保留下来,能够对我们的下游任务,比如说对于我们的风控,能够更好的提升它的效果,那么它就是网络结构好的一条边。

新知达人, 超硬核!聚焦数据安全,如何进一步提升模型鲁棒性以对抗潜在攻击?|2021KDD Trustday精彩回顾

如果反过来,如果一个网络结构的一条边,它会对我们的下游任务起到一个负面的影响,让效果反而变得更差了,我们就说它是一条噪音点。基于这一个想法,我们就提出了第一套方案:基于强化学习的方案。

大致来说,我们这个方案首先把图的降噪过程转化为了图中路径的一个生成问题,也就是说我们在这个图中生成很多条path,然后把这么多条path进行合并,其实就得到了一个新的图,我们把这个图丢给一个下游任务的机器学习模型,比如说一个风控模型,来测试一下,然后以这个模型的效果作为一个reward,反馈给我们负责生成这些路径的一个智能体,这是这个模型的大致思路。

具体来说,怎么样来生成这些路径,其实也很简单,最开始我们输入一个带有噪音的网络数据,然后我们会有一些可爱的智能体在网络上进行一些操作,每个智能体首先随机在网络中选择一个节点,比如说选中了C节点,作为一个起始节点,然后智能体会进行一个决策,我下一步要走到哪一个节点去,可以是 C的一个邻居节点,也可以是原来没有边相连的一个节点。

我们把它决定下一步走到哪个节点上去,作为整个强化学习框架中的一个action。它走若干步以后其实就生成了一条路径,这条路径中AC本来是有边的,我们就说它保留了这条边。如果说它生成了一条,比如说 B-C之间如果也生成了一条边的话,那么我们就说它是我们补全的一条边,这就是基于强化学习的一套解决方案。

我们可以来看一下它的效果,从一些更加量化的测试,我们可以看到包括在金融领域数据或者电信领域数据,在电信数据上面我们是根据用户之间的通话网络,来识别电信诈骗用户。

我们会发现经过降噪以后,可以对金融诈骗用户以及电信诈骗用户等都能更好的去进行识别,具体来说它的performance提升有超过25%。

上面这个工作它有一个局限性,就是整套降噪其实是依赖于某一个具体的下游任务,有的时候我们希望能够得到一个更general的一套降噪方案,也就是说降噪完的网络,它仅仅可以用在某一个比如说风控场景中,它还能用在各种各样其他的一些场景,让它更加的泛化,具体怎么样实现,我们就提出了一套基于自制监督学习的一套框架。

我们以原图中的边的一个预测就是link prediction作为我们自监督的一个标签,来构造学习图的一个表示,这个框架它的一个特别之处,就是说它考虑了noisy links和missing links两种噪音之间的cooperation。我就举个例子,比如说我们现在想问说 BD之间是否存在一条missing links?如果说我们光看这么一个网络结构的话,我们会说 B跟D他们其实有很多公共邻居,A跟C其实跟他们都有关系,其实是在这种情况下,BD之间应该是大概率是有边的。

但如果说我们发现A跟D以及B跟C这两条边,其实实际上是不应该存在的。在这种情况下,B和D就没有公共邻居了,也就是说他们之间有边的概率其实就应该比较低。也就是说这种冗余边的存在,会影响到缺失边的检测结果,反之一样,是否可以把缺失边找出来,也会影响到冗余边。

新知达人, 超硬核!聚焦数据安全,如何进一步提升模型鲁棒性以对抗潜在攻击?|2021KDD Trustday精彩回顾

首先想问一个问题就是从攻击者的角度来实现对模型的攻击,这件事情有多难。

新知达人, 超硬核!聚焦数据安全,如何进一步提升模型鲁棒性以对抗潜在攻击?|2021KDD Trustday精彩回顾

之前也有一些已有的工作做了假设,比如说最开始大家做模型攻击的,会假设白盒攻击,也就是说假设我的攻击者,知道我目标模型的一切信息,他知道这个模型的参数,训练用的标签和模型结构,当然这非常不合理。

现实中不太能要求一个攻击者知道这么多信息,所以之后就慢慢开始有了一系列的相关工作,比如说最近有人提出黑盒攻击,也就是攻击者不知道模型参数,不知道训练标签,不知道模型结构,但是它可以给这个模型发送一些query,然后通过这些query可以间接地获取一些模型信息。

我们做了这么一件事情,就是如果攻击者他不知道任何模型信息,也不能跟模型进行任何互动,不能发送query的情况下,它还能不能实现这么一个攻击行为。最后结论是说即使没有任何信息,我们这个图模型的攻击仍旧是可行的。

具体来说,我们提出了一个叫Query-free Black-box Attack,并且攻击者他只需要知道我们的攻击目标是一个图模型就可以了。为了实现这个攻击,我们首先提出了一个非常泛化的 Graph filter, Graph filter它cover了现在市面上常见的图神经网络和图模型算法,也就是说我们一些常见的图模型都可以用 graph filter进行实例化。

新知达人, 超硬核!聚焦数据安全,如何进一步提升模型鲁棒性以对抗潜在攻击?|2021KDD Trustday精彩回顾

我们攻击的目标就希望从我们得到的图中去选择一些节点对,然后来改变这个节点对之间的连接情况,本来有边的让他们之间没有边,本来没有边的来增加一条边,从而我们的目标是什么?目标是我们用改变以后的图来训练我们的模型,影响我们的graph filter,使得我们这个graph filter能被改变影响的尽可能大。

因为 Graph filter的一个变化的计算,它的时间复杂度比较高,所以相应的在数学上会有一些理论支撑,用一些数学工具来帮我们加速计算,

当然我们的目标不是攻击,我们的目标是能够抵御住这种攻击,所以我们就提出怎么样可以来增强这个图模型的鲁棒性,抵御这种攻击行为。

具体来说我们希望现在不管在学术界还是工业界,业界应用范围比较广的图模型的预训练框架下面来实现防御,这是一个现在市面上常见的一个图的预训练框架,我们可以看到我们会input一些graph data,然后把 graph data给一个graph encoder,然后 encoder它就可以把我们的图映射成一个图表示,然后这个图表示可以somehow丢给一些下游任务的模型,比如说一个节点分类的浅层模型或者一个link prediction的浅层模型,这是一个大致的框架。

比如说我们现在有人来对这个图数据进行一个攻击,我们会发现这种攻击会影响到下游的各个任务。

这个时候我们做防御其实有两种选择,第一种选择也是现在已有工作做的比较多的选择,就是在这种浅层模型上进行一个防御,它的优势就在于它目标非常明确,我就是要保护节点分类的结果,或者我就是要保护链接预测的结果,所以它比较好做,但它缺点也比较明显。

也就是说比如我们在原始图上做完攻击以后,因为这个改变了节点的feature,这个行为其实会影响到各个下游任务,也就是说我们要在每一个项目任务对应的浅层模型上面都要部署这么一套防御系统,这样的话我们部署这套防御的代价就会比较的高,我们希望能够在graph encoder层面进行一个防御。

所以说大家可以看,我们在这个层面把这个攻击给抵挡下来以后,这些攻击的样本就不会影响到我们任何一个下游任务,所以它的成本就会比较低,当然它的挑战也是非常明确的,最大的挑战就在于我们就失去一个具体要保护的一个目标了,

我们不知道我们到底是要去保护节点分类还是链接预测。为了解决这个问题,我们提出了一个跟下游任务标签无关的一套指标,这套指标可以用来衡量图的一个鲁棒性的程度。它主要基于我们input的图数据以及我们选出来的图表之间的Nautral Information。

虽然我们这个指标本身是没有任何下游任务标签相关联的信息,但我们仍旧去探索了在理论层面它能不能依旧跟我们各个项目标签产生一些关联性。

比如说我们在理论上探索,如果我们的标签y只跟图的拓扑关系相关,那么其实可以得到我们提出来的一个指标和另外一个跟下游任务标签相关联的另一个指标,存在一个上下界的关系。

如果说我们的标签只跟节点feature相关的话,那么可以直接从原先与标签相关的指标进行一个换算,我们进一步的把这两种情况推到一个更general的一个case。

经过防御以后,我们其实可以看到我们的Model在各个下游任务中,都可以得到比较明显的防御效果。

文章所载观点仅代表作者本人

 且不构成投资建议

敬请注意投资风险

更多“数据安全”相关内容

更多“数据安全”相关内容

新知精选

更多新知精选