论文阅读 | DeepDrawing: A Deep Learning Approach to Graph Drawing
作者:Yong Wang, Zhihua Jin, Qianwen Wang, Weiwei Cui, Tengfei Ma and Huamin Qu
本文发表于VIS2019, 来自于香港科技大学的可视化小组(屈华民教授领导)的研究
1. 简介
图数据广泛用于各个领域,例如生物信息学,金融和社交网络分析。在过去的五十年中,已经提出了许多图布局算法,来满足所需的视觉要求,例如更少的边缘交叉,更少的节点遮挡以及更好的聚团保护。传统的图布局算法大致可以分为两个方向:基于弹簧,能量模型和基于降维模型。当用户使用特定的图布局时,取得好的可视化效果往往需要许多参数的实验,对于没有相关经验的用户来说,是一个不小的挑战。由于特定于算法的参数和布局效果通常取决于输入的图结构,因此我们考虑是否可以使用深度学习来学习别人的布局算法。
这个问题有以下三个挑战:
- 模型选择: 图布局算法不同与普通的分类问题,它的输入是复杂的图结构,输出是点的坐标(不定长二维数组)。
- 损失函数设计: 图布局的结果很难判断好坏(很多时候是主观的印象),除此之外,图布局通过旋转和放缩之后,依然具有相同的结构。
- 训练数据的缺少:不同于图像领域有 Imagenet, MNIST 等数据集,图布局算法并没有这方面的数据集
本文提出一种基于graph-LSTM的方法来直接根据输入图的拓扑结构生成图布局结果。本文使用广度优先搜索(BFS)将图拓扑信息转换为一系列邻接矩阵,其中每个子向量对序列中每个节点及其相邻节点之间的连接信息进行编码。还提出了一种基于Prostats Statistics的损失函数,该函数对于图的平移,旋转和缩放基本上是不变的,以此评估学习质量并指导模型训练。在训练过程中,使用了三种图数据集(网格图,星形图和随机图)。
2. 相关工作
- 传统的图布局算法大致可以分为两个方向:基于弹簧,能量模型和基于降维模型。基于弹簧,能量模型最著名的有力引导模型,ForceAtlas等。基于降维有PivotMDS以及tsNET等算法。除此之外还有一些基于层次布局和空间索引树的优化,比如FM3算法。
- 图神经网络被用于各种图相关学习的研究,过去基于谱(Spectral)卷积的算法往往只能用于固定结构的图数据研究,除了谱卷积之外,非谱方法还可以直接在图上进行卷积,此类算法将节点的邻域定义为传入范围,并且提出了各种方法,例如Semi-Supervised Classification with Graph Convolutional Networks等。他们大多应用于点预测,边预测,与本文的任务还是有所区别。
- 已有一些研究将深度学习,机器学习应用到图布局当中,比如Kwon et al.(VIS 2017)提出了一种机器学习方法,为用户提供了图布局的快速预览,并使用了图的拓扑结构信息来计算不同图结构之间的相似度。H. Haleem et al.提出了基于神经网络的方法来评估图布局绘制结果。
3. 算法与模型
问题定义
图布局算法的输入是$G=(V,E) \quad V={v_{1},v_{2}...v_{n}} \quad E\subseteq V \times V \(,输出是\)C = {c_{v}|v ∈ V}\(, 其中\)c_v$属于二维向量。
传统的图布局算法考虑不同的评价标准来设计算法,在本文中,我们将图布局算法转化为学习问题,一旦成功训练了深度学习模型,当给定一个新图数据,它就可以自动分析图结构并直接生成一个带有训练数据特性的布局效果。

模型设计
- 由于图布局的输出是一个不定长的二维数组,cv领域常用的CNN网络并不适用于此类问题,第一CNN网络无法处理图数据的输入,其次CNN网络的输出一般是一个定长的数组。
- 本文使用LSTM(长短期记忆)作为基础模型,LSTM是RNN(循环神经网络)的变种,一开始用于自然语言处理方向。 他可以同时参考过去网络中的最新信息以及较久的信息。我们可以使用点的特征序列作为输入向量,顺序输出每个点的二维坐标。LSTM的结构和公式如下图所示, \(c_{t-1}, h_{t-1}, x_{t}\)是他的输入,\(h_{t}, c_{t}\)是他的输出。


- 但是这样的方案并没有考虑到图中边的信息,所以参考skip-connection的技术,可以对于LSTM网络进行改进,将边作为两个神经元之间的联系,如下图所示,其中\(P(t)\)表示该点的领域, 和标准LSTM的主要区别在于,本文的模型进一步考虑了图中边的信息。除此之外本文还使用了双向LSTM的技术,使其能更全面考虑所有点对某个点的贡献。

- 所以本文的模型如下所示。输入点的顺序是图的BFS(广度优先搜索)序列,每个节点都由一个邻接向量表示,该向量编码了与先前节点的连接情况。 黄色的虚线箭头传播了先前节点对后续节点图形的总体影响,而弯曲的绿色箭头(图的边)反映了实际的图结构,为了生成最终的2D节点布局,还考虑前后的信息(双向LSTM)。

- 本文还对于loss function进行了重新的设计, 考虑了旋转,放缩不变性等原理。基于Prostats Statistics提出了一种损失函数。

4. 实验
- 本文设计了三种不同的图数据:网格,星形,随机网络,使用PivotMDS 和 ForceAtlas2算法生成布局结果,并对于数据集进行了训练,验证,测试集的划分。总共有30000以上的数据行,每个数据在20-50点左右。
- 通过实验发现,双向4层LSTM具有较好的效果, 将其作为和本算法比较的baseline。实验中,在三种数据集上分别训练baseline 和 本文算法,将输入向量定为35的长度。其中随机网络的可视化如下所示。

- 本文还从Prostats loss(模型loss),边交叉(\(A_{ec}\)),点聚集(\(A_{no}\)),聚团覆盖(\(A_{co}\)),运行时间这几个指标进行了评估,实验结果如下所示。左上模型loss,右上运行时间,下面是剩余三种指标。

总结
本文从结构来看非常完整,工作量也很足。但还是有很多不足之处,比如:生成输入向量的算法依然不稳定,只在小数据(20-50点)work,模型无法解释,学习不同的布局数据需要重新训练等问题。作者也提出了要把算法改进到大规模图数据上的设想,除此之外作者提出能否将方法应用到动态图当中。
论文阅读 | DeepDrawing: A Deep Learning Approach to Graph Drawing的更多相关文章
- [论文阅读] A Discriminative Feature Learning Approach for Deep Face Recognition (Center Loss)
原文: A Discriminative Feature Learning Approach for Deep Face Recognition 用于人脸识别的center loss. 1)同时学习每 ...
- 《3-D Deep Learning Approach for Remote Sensing Image Classification》论文笔记
论文题目<3-D Deep Learning Approach for Remote Sensing Image Classification> 论文作者:Amina Ben Hamida ...
- 论文笔记之:From Facial Parts Responses to Face Detection: A Deep Learning Approach
From Facial Parts Responses to Face Detection: A Deep Learning Approach ICCV 2015 从以上两张图就可以感受到本文所提方法 ...
- 论文笔记(1):Deep Learning.
论文笔记1:Deep Learning 2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...
- [论文阅读笔记] Structural Deep Network Embedding
[论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...
- 收藏:左路Deep Learning+右路Knowledge Graph,谷歌引爆大数据
发表于2013-01-18 11:35| 8827次阅读| 来源sina微博 条评论| 作者邓侃 数据分析智能算法机器学习大数据Google 摘要:文章来自邓侃的博客.数据革命迫在眉睫. 各大公司重兵 ...
- Deep Learning 和 Knowledge Graph howto
领军大家: Geoffrey E. Hinton http://www.cs.toronto.edu/~hinton/ 阅读列表: reading lists and survey papers fo ...
- [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings
[论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 本文结构 解决问题 主要贡献 算法原理 参考文 ...
- ZH奶酪:【阅读笔记】Deep Learning, NLP, and Representations
中文译文:深度学习.自然语言处理和表征方法 http://blog.jobbole.com/77709/ 英文原文:Deep Learning, NLP, and Representations ht ...
随机推荐
- tensorflow学习笔记——多线程输入数据处理框架
之前我们学习使用TensorFlow对图像数据进行预处理的方法.虽然使用这些图像数据预处理的方法可以减少无关因素对图像识别模型效果的影响,但这些复杂的预处理过程也会减慢整个训练过程.为了避免图像预处理 ...
- Oracle中的字符函数
Oracle中常用的字符串函数有以下几种: 1.upper()---将字符串的内容全部转换为大写.lower()---将字符串的内容全部转换为小写.具体用法: select upper('test' ...
- c11标准
在编译器vs13及其以上可以使用 编译器对语言的一种优化 1.变量初始化 int a=0,a(10),a{10};定义a的值的三种方式 2.nullptr 相当于c的null 有类型 更加的安全 3. ...
- Ubuntu系统开发环境完整搭建
安装搜狗输入法 点击我下载哦 idea快捷键冲突 输入发占用快捷键.撤掉输入法的快捷键.还有系统自带快捷键也要取消. 安装deepin-terminal 在tools工具包中找到deepin-term ...
- 100天搞定机器学习|day45-53 推荐一本豆瓣评分9.3的书:《Python数据科学手册》
<Python数据科学手册>共五章,每章介绍一到两个Python数据科学中的重点工具包.首先从IPython和Jupyter开始,它们提供了数据科学家需要的计算环境:第2章讲解能提供nda ...
- k好数(动态规划)
问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22 ...
- 亲,麻烦给个五星好评!—RatingBar
引言 上一篇的CheckBox已经让大家越来越接近实战演练了,本章我们继续分享干货给大家,今天介绍一个实用的UI控件RatingBar(星级评分条),对于使用过电商APP(某东,某宝等)的小伙伴们来说 ...
- 怒改springMVC项目为springBoot项目
背景:公司最近在做项目升级,融合所有项目,但是目前使用的一个系统还是最原始的框架 springMVC+spring+mybatis ,前端还是jsp,easyui(技术老的掉牙),终于出手了,结果.. ...
- MySQL之修改默认引擎和字符集
一.数据库引擎 1.1 查看数据库引擎 mysql> show engines; +--------------------+---------+------------------------ ...
- 体验RxJava
RxJava是 ReactiveX在 Java上的开源的实现,简单概括,它就是一个实现异步操作的库,使用时最直观的感受就是在使用一个观察者模式的框架来完成我们的业务需求: 其实java已经有了现成的观 ...