作者:Yong Wang, Zhihua Jin, Qianwen Wang, Weiwei Cui, Tengfei Ma and Huamin Qu

本文发表于VIS2019, 来自于香港科技大学的可视化小组(屈华民教授领导)的研究

1. 简介

图数据广泛用于各个领域,例如生物信息学,金融和社交网络分析。在过去的五十年中,已经提出了许多图布局算法,来满足所需的视觉要求,例如更少的边缘交叉,更少的节点遮挡以及更好的聚团保护。传统的图布局算法大致可以分为两个方向:基于弹簧,能量模型和基于降维模型。当用户使用特定的图布局时,取得好的可视化效果往往需要许多参数的实验,对于没有相关经验的用户来说,是一个不小的挑战。由于特定于算法的参数和布局效果通常取决于输入的图结构,因此我们考虑是否可以使用深度学习来学习别人的布局算法。

这个问题有以下三个挑战:

  1. 模型选择: 图布局算法不同与普通的分类问题,它的输入是复杂的图结构,输出是点的坐标(不定长二维数组)。
  2. 损失函数设计: 图布局的结果很难判断好坏(很多时候是主观的印象),除此之外,图布局通过旋转和放缩之后,依然具有相同的结构。
  3. 训练数据的缺少:不同于图像领域有 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的更多相关文章

  1. [论文阅读] A Discriminative Feature Learning Approach for Deep Face Recognition (Center Loss)

    原文: A Discriminative Feature Learning Approach for Deep Face Recognition 用于人脸识别的center loss. 1)同时学习每 ...

  2. 《3-D Deep Learning Approach for Remote Sensing Image Classification》论文笔记

    论文题目<3-D Deep Learning Approach for Remote Sensing Image Classification> 论文作者:Amina Ben Hamida ...

  3. 论文笔记之:From Facial Parts Responses to Face Detection: A Deep Learning Approach

    From Facial Parts Responses to Face Detection: A Deep Learning Approach ICCV 2015 从以上两张图就可以感受到本文所提方法 ...

  4. 论文笔记(1):Deep Learning.

    论文笔记1:Deep Learning         2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...

  5. [论文阅读笔记] Structural Deep Network Embedding

    [论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...

  6. 收藏:左路Deep Learning+右路Knowledge Graph,谷歌引爆大数据

    发表于2013-01-18 11:35| 8827次阅读| 来源sina微博 条评论| 作者邓侃 数据分析智能算法机器学习大数据Google 摘要:文章来自邓侃的博客.数据革命迫在眉睫. 各大公司重兵 ...

  7. Deep Learning 和 Knowledge Graph howto

    领军大家: Geoffrey E. Hinton http://www.cs.toronto.edu/~hinton/ 阅读列表: reading lists and survey papers fo ...

  8. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 本文结构 解决问题 主要贡献 算法原理 参考文 ...

  9. ZH奶酪:【阅读笔记】Deep Learning, NLP, and Representations

    中文译文:深度学习.自然语言处理和表征方法 http://blog.jobbole.com/77709/ 英文原文:Deep Learning, NLP, and Representations ht ...

随机推荐

  1. python+爬虫+微信机器人 打造属于你的网购价格监督利器

    写在最前 程序是为人类服务的,最近正好身边小伙伴们在做球衣生意,当然是去nikenba专区购买了,可是有些热门球衣发布几分钟就被抢完,有些折扣球衣也是很快就被抢售一空,那么我们只能靠自己的眼睛一直盯着 ...

  2. pyinstaller打包django项目成exe以及遇到的一些问题

    1. 环境 环境为:win7 + Python3.6 + Django (2.1.10) + PyInstaller (3.5) 注意: 这里的PyInstaller,笔者是直接使用pip安装,中间会 ...

  3. 第一次appium自动化

    今天,自己独自做了一下app自动化,从搭环境到写好一个脚本花了很长时间.用的主要环境是python3.7+appium+sdk+夜神模拟器.appium环境搭建较于复杂,这里就不累述,参考百度教程. ...

  4. Android Studio和 adb 的一些常用技巧

    AS和ADB的随身手册 工欲善其事,必先利其器. 最近因为换了Mac,很多地方有些不太适应,刚好最近有想写一篇记录一些小工具技巧的文章,顺便就把Mac中AS常用的快捷键也一并对应记录起来吧. 以下为A ...

  5. 简单的JavaScript字符串加密解密

    简单的JavaScript字符串加密解密 <div> <input type="text" id="input" autofocus=&quo ...

  6. 代码解读 | VINS 视觉前端

    本文作者是计算机视觉life公众号成员蔡量力,由于格式问题部分内容显示可能有问题,更好的阅读体验,请查看原文链接:代码解读 | VINS 视觉前端 vins前端概述 在搞清楚VINS前端之前,首先要搞 ...

  7. Ion内存的带cahce与不带cache问题分享

    一次开发中,遇到一个问题:YUV图像(由本地磁盘文件读到ION内存中)缩放时,对于缩放模块的输入源来说,使用带cache的方式要比不带cache的方式速度快数10倍. 为什么会出现这个情况呢? 在解释 ...

  8. .netcore 分布式事务CAP2.6之控制台使用

    上一编讲了cap2.6的快速入门,这次我们来讲讲在控制台中如何使用cap2.6.因为cap2.6的内存模式目前已经可以使用了,相关组件已经更新,所以这次我们以简单的内存模式为例. 1:创建项目 创建一 ...

  9. ST算法 Sliding Window algorithm template

    ST算法(Sliding Window):A easy way to slove the substring problems algorithm template to slove substrin ...

  10. 2019dx#7

    Solved Pro.ID Title Ratio(Accepted / Submitted)   1001 A + B = C 10.48%(301/2872)   1002 Bracket Seq ...