序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成
本文使用 Zhihu On VSCode 创作并发布
本文一作实在是太大佬了,让我和小伙伴焦虑了好一阵子。作者主页送你们,将这份焦虑传递下去。
Introduction
图生成有很多用处:
- 建模physical and social interactions
- 发现新的化学和分子结构
- 构建知识图谱
本文摘要直接指出了图生成问题的难点:
图生成模型需要学习到图的结构分布,然而图具有非唯一 (non-unique),高维以及给定图的边之间存在复杂、非局部的依存关系。
因此直接对复杂的图分布直接进行建模,并从这些分布中进行有效采样是一项挑战。
目前,图生成面临的挑战有:
- 要让模型在没有图结构假设的情况下,从一组观察到的图中直接学习生成模型;
- 具备从多个图以及大图中学习生成的能力;
- Large and variable output spaces:
个节点的图需要输出的值才能完整表示,且每个图的边和节点也不是固定的数值;
- Non-unique representations:如果我们想学习一个有
个节点的图的结构,然而它最多可以表示为个等效邻接矩阵,这会让训练变得很难。
- Complex dependencies:很明显,图中的边关系不可能简单地看作相互独立的,它们之间有复杂的依存关系。
GraphRNN
为解决上述问题,本文提出了 GraphRNN,以 autoregressive (or recurrent) 作为一系列新节点和边的添加方式绘制 graph,来捕获图中所有节点和边的复杂联合概率。
GraphRNN 可以视作一种级联形式,由两个RNN组成:
- graph-level RNN:维护图的状态并生成新节点;
- edge-level RNN:为新生成的节点生成新的边。
符号定义
GraphRNN 思路
Key Idea: 将不同节点顺序下的图表示为序列,并在这些序列上构建一个自回归的生成模型。
将graph建模成序列
定义从graphs到sequences的映射
其中,每个元素
由此,
在此基础上,对于图分布
这时,我们只需要学习
定义最后一个元素
GraphRNN 框架
即使
状态转移函数和输出函数:
- 是一个编码了到目前为止生成的图的状态的向量;
- 是最近一个生成节点的邻接向量;
- 指定了下一个节点邻接向量的分布。
文中指出,
两个GRU)。
算法总结为:
利用 BFS 处理变长度的序列
由于RNNs需要固定长度的输入向量,然而
利用 BFS (广度优先搜索) 的节点序列,而不是任意节点序列,来学习图的生成。这样做的好处,据说是不是一般性?
将式1改为
BFS 以一个随机顺序
好处如下:
BFS 是一对多的,一个 BFS 序列可以转化为多个节点排序。因此我们需要训练的数量少了。
BFS排序通过减少 edge-level RNN 中进行的边缘预测的数量,来使学习变得更容易。因为如果我们新加入一个节点,那么它的连接边只能处在BFS搜索前沿的节点(当搜索完成时,可以想象成树的叶子节点)定义描述就是:
Proposition 1. Suppose
is a BFS ordering ofnodes in graph, andbutfor somethenand这个性质是我们可以将可变长度的
定义为固定长度的 M 维向量,表示节点
与当前BFS队列中最大大小为M的节点之间的连通性:至于这个 M 怎么去估计,见本文附录吧。
扩展到具有节点、边特征的Graph
GraphRNN可以扩展到具有节点和边特征的Graph生成,在节点顺序
作者的开源代码好像并没有这部分,我已经在github上发了issues。
序列生成_PR Structured Ⅴ:GraphRNN——将图生成问题转化为序列生成相关推荐
- 通过.obj生成2d图像_自动生成 凹凸法线灯贴图 插件
CrazyBump疯狂凹凸自动生成凹凸法线灯贴图 CrazyBump是一款专业的法线贴图制作软件,人们一般称之为超级法线凹凸生成软件,用来做材质中贴图中的凹凸和法线贴图是非常不错的,CrazyBump ...
- highcharts 动态生成x轴和折线图
highchart 动态生成x轴和折线图 <!DOCTYPE HTML> <html><head><meta charset="utf-8" ...
- python 画折线图_Python让你的数据生成可视化图形
ID:pk哥 公众号:Python知识圈 最近的技术分享被老板说了,分享内容不错,可是这些统计图差了点.作为一个做技术的,这是不能忍受的.因为 Python 除了不会生孩子,其他的都会. 直接进入今天 ...
- 小程序快速生成朋友圈海报分享图
由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 Canvas 功能生成一张带有小程序码的图片,然后引导用户下载图片到本地后再分享到朋友圈.相信大家在绘制 ...
- mysql三国人物库_一文带你使用neo4j生成三国人物社交关系图
简介 最近给孩子买了三国演义,可是三国人物关系太复杂,就想着把三国人物关系做成一张图,这样方便看,整好neo4j图数据库非常适合社交关系的处理,下面就一起来看看,如何使用neo4j生成三国人物社交关系 ...
- 【深度学习】实验6布置:图像自然语言描述生成(让计算机“看图说话”)
DL_class 学堂在线<深度学习>实验课代码+报告(其中实验1和实验6有配套PPT),授课老师为胡晓林老师.课程链接:https://www.xuetangx.com/training ...
- 如何对ChatGPT进行Prompt逆向工程, Prompt engineering生成Prompt的核心是给出例子,反推生成例子的通用Prompt模板mjourney,给出图片生成该图的Prompt
如何对ChatGPT进行Prompt逆向工程 加上以下文本结合你的总结以下文本,得出ChatGPT的prompt生成规律: 例子问法 请分析以下文本的角色.风格.语气.长度.段落和emoji使用等特点 ...
- opencv2-3生成标定用的方格图
opencv2-3生成标定用的方格图 就想在A4纸上山寨打印一个标定图,就是黑白方格相间的那种.A4纸的标准大小为210*297mm.从每个像素的角度考虑,考虑其最终落入哪个小方块,如果落入小方块的行 ...
- 经验:EXCEL生成y=kx+b函数图,有x,y原始数据,求平均系数k
经验:EXCEL生成y=kx+b函数图,有x,y原始数据,求平均系数k 1.数据录入 2.生成图表 3.加入趋势线 4.得出公式 1.数据录入 将需要生成的数据录入excel 2.生成图表 框选数据, ...
最新文章
- 一切都是对象---JAVA编程思想
- 【数据竞赛】可能是全网特征工程实操最通透的...
- 开源-BDCI2018供应链需求预测模型第一名解决方案和代码
- Vim特定行行尾追加
- E:K-periodic Garland(DP)
- php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...
- centos7 安装小记
- ApacheCN C/C++ 译文集(二) 20211204 更新
- 《王者荣耀》又现登录异常 官方奉上皮肤碎片+战斗经验作补偿
- oracle中clob和blob,Oracle中的BLOB和CLOB
- MVP项目框架搭建-高级设计
- 犀牛系统连接服务器失败,犀牛5.0安装运行失败,Rhino安装失败解决方法
- sql计算字段中字数的个数
- 链表节点被删除时的资源释放
- Vue中native的用法
- 页面提示“百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥,或此密钥未对本应用的百度地图JavaScriptAPI授权。您可以访问如下网址了解如何获取有效的密钥:ht”
- TapTap排行榜能客观显示游戏的受欢迎程度吗?
- 自动驾驶分级 - 练习测验
- 漫画:如何给女朋友解释灭霸的指响并不是真随机消灭半数宇宙人口的?
- Tensorboard远程连接
热门文章
- 关于配置Webapck的 exclude 不过滤 node_modules Babel却没有处理转换node_modules的源码
- IOS 定义手势监听器详解,利用 UIGestureRecognizer 进行捏合、旋转、平移、点击、长按手势事件响应
- redis 高级实用教程
- mysql修改最大文件数_mysql更改最大打開文件數
- Python 小白从零开始 PyQt5 项目实战(7)折叠侧边栏的实现
- 点集的视点特征直方图的评估
- html编辑器查找与替换,织梦kindeditor文本编辑器增加“查找替换”功能
- python升级到最新版本windows64位安装哪个包_手把手windows64位配置安装python2.7
- Oracle特殊恢复原理与实战(DSI系列)
- 算法入门经典-第七章 例题7-2最大乘积