【图机器学习】cs224w Lecture 16 - 图神经网络的局限性
转自本人:https://blog.csdn.net/New2World/article/details/106626551
这一个 Lecture 前还有一个关于 Knowledge Graph 的 slide 我打算跳过,因为 KG 我现在还没有深入研究,可能以后有空会系统地写一个系列,因此现在就不要先入为主了。后面也还有一个 slide 讲 GNN 的应用的,其实就是将前面的内容投入实际场景,没有太多新的 technique,因此也就不整理了。
而这一个 Lecture 我感觉才是比较重要的,它介绍了 GNN 的一些缺陷和限制。
Capturing Graph Structure
GNN 的模式是将一个节点根据它周围的图结构展开成一个计算图,然后做 aggregation。这么看来 GNN 的目的和功能就是抽象图结构,那为什么说这反而是它的 limitation 呢?我们针对现有的 GNN 的模型来逐个分析:

首先是 GCN,它的 aggregation 使用的是 mean pooling。对于上图中情况 (a) 和 (c),节点 v 和 v' 使用 mean pooling 得到的结果是一样的,然而这两个的结构明显不同。
然后是 GraphSAGE,它的 aggregation 使用的是 max pooling。对于图中情况 (a) 和 (b) 它都不行,因为 (a) 的 max 都是蓝色点,而 (b) 的 max 要么是红色要么是绿色,反正 v 和 v' 得到的结果都一样,因而无法区分这两个不同的图结构。
那么问题到底出现在哪里?很显然是 aggregation 函数。理想情况下,我们希望 aggregation 函数是 injective 的,即内射的。这样就能形成一个一对一的关系,将任何不同的输入映射到不同的输出。max pooling 和 mean pooling 显然不满足这个条件。
这里有个 Theorem,说任何内射的 multi-set 函数都能被表示为 \(\phi(\sum\limits_{x\in S}f(x))\) 其中 \(\phi(\cdot)\) 和 \(f(\cdot)\) 都是非线性函数。但问题是如何定义这两个关键性的函数?这还不简单,MLP 呗。
Graph Isomorphism Network
由此 GIN 诞生了,它的 aggregation 采用 MLP + sum pooling。只要 MLP 设计训练得好,它就是 injective 的。如此一来就能将对图的分辨能力 discriminative power 最大化。那么这个分辨能力到底有多强呢?
回答这个问题,首先需要了解什么事 Weisfeiler-Lehman Graph Isomorphism Test,它是一种能区分现实世界中大部分图结构的方法。形象地理解, WL test 对展开后的各个节点染色,不同的展开结构对应不同颜色,然后通过对比节点颜色和对应数量来判断是否是 isomorhpism。

这和 GIN 在操作上异曲同工,因此理论上来说 WL test 是 GIN 的上界。然而 WL test 也并非打遍天下无敌手,遇到类似下面这种图 WL test 也会犯错,因为每个节点周围的局部展开图都一样。

Vulnerability to Noise
其实这个问题可以归结于数据“攻击”,即图像中通过修改部分不易被人眼察觉的像素来达到 adversarial attack 的目的。对于 graph,这种“攻击”是怎么实现的?假设要“攻击”某购物网站,使得它给特定用户瞎推荐东西。分两种情况讨论
- 能获得这个特定用户的账号,那么事情就简单了。可以通过
- 修改该用户的信息,比如性别、年龄。这会导致系统推荐对应性别和年龄段可能感兴趣的东西;
- 关注收藏一些奇奇怪怪的商品;
- 取消关注一些已关注收藏的商品;
- 如果无法获得这个特定账号,那我们就“黑掉”几个 Ta 的朋友作为 attacker
- 修改这些 attacker 的用户信息;
- 关注奇怪的东西;
- 取消关注和目标账号的关注相关的东西;
用数学来表示 noise 对 GCN 的影响如下

好,formulation 出来了,解!不好意思,解不了…… 原因有二:其一,图结构上的修改是离散的,不能单纯的用梯度下降来优化;其二,内循环需要重新训练 GCN,太奢侈了。因此需要用 approx. 的方法来近似,比如用贪心算法一步一步的修改图结构。这里没有介绍太多细节,只是提到了 18 年 KDD 的一片文章可以参考。不过由此我们得到的结论是 GNN 对对抗攻击不具有鲁棒性。
至此,cs224w 图机器学习系列更新完毕。之后不定时会整理更新一些之前看过的论文,也会继续新的系列。
【图机器学习】cs224w Lecture 16 - 图神经网络的局限性的更多相关文章
- 【图机器学习】cs224w Lecture 15 - 网络演变
目录 Macroscopic Forest Fire Model Microscopic Temporal Network Temporal PageRank Mesoscopic 转自本人:http ...
- 图机器学习(GML)&图神经网络(GNN)原理和代码实现(前置学习系列二)
项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4990947?contributionType=1 欢迎fork欢迎三连!文章篇幅有限, ...
- 【cs224w】Lecture 1 & 2 - 图的性质 及 随机图
目录 Lecture 1: Introduction Lecture 2: Properties and Random Graph Degree Distribution Path Length Cl ...
- 知识图谱与机器学习 | KG入门 -- Part1-b 图深度学习
介绍 我们正在定义一种新的机器学习方法,专注于一种新的范式 -- Data Fabric. 在上一篇文章中,我们对机器学习给出了新的定义: 机器学习是一种自动发现Data Fabric中隐藏的&quo ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 16—Recommender Systems 推荐系统
Lecture 16 Recommender Systems 推荐系统 16.1 问题形式化 Problem Formulation 在机器学习领域,对于一些问题存在一些算法, 能试图自动地替你学习到 ...
- 【GCN】图卷积网络初探——基于图(Graph)的傅里叶变换和卷积
[GCN]图卷积网络初探——基于图(Graph)的傅里叶变换和卷积 2018年11月29日 11:50:38 夏至夏至520 阅读数 5980更多 分类专栏: # MachineLearning ...
- HighCharts之2D柱状图、折线图的组合多轴图
HighCharts之2D柱状图.折线图的组合多轴图 1.实例源码 SomeAxis.html: <!DOCTYPE html> <html> <head> < ...
- HighCharts之2D柱状图、折线图的组合双轴图
HighCharts之2D柱状图.折线图的组合双轴图 1.实例源码 DoubleAxis.html: <!DOCTYPE html> <html> <head> & ...
- 第三方Charts绘制图表四种形式:饼状图,雷达图,柱状图,直线图
对于第三方框架Charts(Swift版本,在OC项目中需要添加桥接头文件),首先要解决在项目中集成的问题,集成步骤: 一.下载Charts框架 下载地址:https://github.com/dan ...
随机推荐
- Vue刷新页面的三种方式
我们在写项目的时候,经常会遇到,用户执行完某个动作,改变了某些状态,需要重新刷新页面,以此来重新渲染页面 1.原始方法: location.reload(); 2.vue自带的路由跳转: this.$ ...
- LightOJ1220
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1220 题目大意: 给你一个 x,请求出一个最大的 p 使得 np = x(n为 ...
- Unity实现精灵资源动态加载
private Sprite LoadSourceSprite(string relativePath) { //把资源加载到内存中 UnityEngine.Objec ...
- 实验四:Linux系统C语言开发环境学习
项目 内容 这个作业属于哪个课程 班级课程主页链接 这个作业的要求在哪里 作业要求 学号-姓名 17043133-木腾飞 作业学习要求 1.学习Linux系统中如何查看帮助文档:2.在Linux系统中 ...
- vue中使用jsx
vue中使用jsx 为什么需要使用jsx呢?这个需要搞清楚 其实vue官方也说了,对于那些非常多v-if v-else的情况,就可以尝试使用render函数或者jsx,不过render函数写简单的结构 ...
- [C# WPF] 关于将文本框竖起来(旋转文字)
xx.xmal.cs 后台代码中动态添加控件到 UI 文字显示在一个 Canvas 中(定位用Canvas.SetLeft() / Canvas.SetTop() ), 为了实现排版效果,可适当在 T ...
- 前端基础进阶(十一):详细图解jQuery对象,以及如何扩展jQuery插件
早几年学习前端,大家都非常热衷于研究jQuery源码.我还记得当初从jQuery源码中学到一星半点应用技巧的时候常会有一种发自内心的惊叹,“原来JavaScript居然可以这样用!” 虽然随着前端的发 ...
- Linux实验
实验一 Linux系统安装与简单配置 一.实验目的 1.掌握Linux系统安装的分区准备. 2.掌握Linux系统的安装步骤. 3.掌握Linux系统分区的挂载和卸载. 4.掌握Linux系统的启动和 ...
- Oracle数据库表被锁死的处理方法
(1)锁表查询的代码有以下的形式: select count(*) from v$locked_object; select * from v$locked_object; (2)查看哪个表被锁 se ...
- Rocket - tilelink - AtomicAutomata之二
https://mp.weixin.qq.com/s/XDUtw0uPrVXC4CChbydF_A 分析在透传和代理两种模式下,AtomicAutomata可能出现的问题. 1. 透 ...