zoukankan      html  css  js  c++  java
  • 10-graph-gen 图机器学习之图生成模型

    图深度生成模型 deep generative models for graph

    回顾上一节课中的图编码,图卷积等

    今天,来学习图深度解码,也就是反编码,最终输出一个图结构


    Problem of Graph Generation图生成需要解决的问题
    给定一个真实图,生成一个合成图
    那么,什么才是好的生成模型?

    图生成的意义
    生成→深入探索图行程的过程
    异常检测
    预测——从过去预测未来
    新网络的仿真
    图填充
    如果。。。场景??
    图生成的任务:
    真实图的生成
    目标导向图的生成,例如分子生成
    为什么如此吸引人?
    药物分子发现

    发现一个全新的结构
    网络科学:真实网络的空模型?

    图生成为什么如此有难度:
    大的且多变的输出空间  n^2

    非唯一的表达,因为如果输出是邻接矩阵,那么根据节点的顺序不同,矩阵也是不同的

    复杂的依赖→边的形成有远程的依赖关系



    ML Basics for Graph Generation
    图生成的机器学习基础

    输入与输出:
    输入:G
    目标:学习G的分布;生成G?
    起初:假设我们有图的数据集{xi}
     p_data(x):数据分布,是未知的,但是我们可以抽样知道一些
    p_model(x;θ) :参数为θ的模型,用于近似p_data(x)
    目标:
    p_model(x;θ) 趋近于 p_data(x)
    可以从p_model(x;θ)中抽样,形成新图

    核心思想:最大似然

    p_model(x;θ)中抽样,也就是,输入一个噪声,输出一个近似的网络。采用神经网络的方式

    深度生成模型的分类,本节采用的是自动回归模型,该模型是基于过去预测未来
    自动回归模型:
    p_model(x;θ)用于密度估计和抽样
    应用链式规则:联合分布是条件分布的积


    GraphRNN 生成真实图谱
    与RNN的思想同源,通过节点和边序列的迭代输入生成一个图


    那么,首先,需要将图看做序列
    一个图,当顺序固定时,可唯一通过序列标识?

    那么,序列有两个层次:节点层次(添加节点,一个一次);边层次(从现有节点中添加边)

    总结:一个图+节点顺序=一个序列
    节点顺序是虚机选择的

    因此,将图生成,转变为序列的生成
    因此,需要两个步骤的模型:
    生成新节点,生成新边
    方法:使用RNN


    GraphRNN:两个层次的RNN
    node-level rnn生成初始状态,可应用于edge-level rnn
    edge-level rnn为新节点生成边,探后更新node-level rnn的状态


    rnn的基础


    用于序列生成的RNN
    如何初始化s0,x1?什么时候停止生成?→使用开始符和结束符

    yt=前面t-1个的生成
    rnn的每一步都输出一个概率向量
    从该向量中抽样,并喂入下一步

    测试时,

    训练时:y是边,采用教师模式,即输入是真实的数据用于修正模型
    损失函数:交叉式
    训练的过程
    节点1已经在网络中了,现在添加节点2
    edge rnn预测节点1是否与节点2关联;
    edge rnn得到监督结果,并输入修正;
    新的边用来更新node rnn;
    预测节点3与节点2是否关联
    edge rnn得到监督结果,并输入修正;
    新的边用来更新node rnn;
    节点4与其他点不相连,停止生成
    回传,梯度更新
    测试
    小结:



    让graphrnn更易于管控

    每个节点可以跟前面的任一节点相连
    边生成的步骤太多:需生成一个全的邻接矩阵;负责的过长的边依赖关系
    如何限制复杂度?

    解决方案:使用广度优先,只需要两步而不是n-1步


    如何评估生成的网络?
    定义网络的相似度量,但没有有效的网络同构测试
    解决方案:视觉相似度;图的统计相似度
    视觉相似度


    Applications and Open Questions
    应用于开放问题
    药物发现

    基于规则的图卷积网络:将图卷积与强化学习相结合,同时还有对抗训练












  • 相关阅读:
    datanode报错Problem connecting to server
    使用命令查看hdfs的状态
    Access denied for user root. Superuser privilege is requ
    ElasticSearch默认的分页参数 size
    SparkStreaming Kafka 维护offset
    【容错篇】Spark Streaming的还原药水——Checkpoint
    251 Android 线性与相对布局简介
    250 Android Studio使用指南 总结
    249 如何解决项目导入产生的中文乱码问题
    248 gradle更新问题
  • 原文地址:https://www.cnblogs.com/combfish/p/12271487.html
Copyright © 2011-2022 走看看