跳到内容

数据库/好奇图

存储库文件导航

利用人类好奇心探索图形结构数据

高水平

当信息来源具有自然的图结构时,人类好奇心的两种理论提供了探索背后内在动机的图论公式。我们可以将知识的当前状态表示为环境中访问的节点所诱导的子图。信息鸿沟理论(IGT)认为,好奇心旨在调节当前知识状态下的信息鸿沟数量——形式化为拓扑空洞。压缩过程理论(CPT)认为,信息获取寻求建立更可压缩的状态表示,形式化为网络可压缩性。在这项工作中,我们采用这两种理论为基于GNN的代理设计奖励函数,以探索图形结构数据。我们训练代理使用强化学习探索图形环境,同时优化信息缺口数量或网络可压缩性。

代码概述

这个图形RL/文件夹包含以下文件:

  1. 环境.py:定义图形环境并在模拟期间处理代理-环境交互。
  2. 代理_基线.py:实现最大程度、最小程度和随机基准代理。
  3. 代理_GNN.py:实现GNN代理。
  4. 助手_模拟.py:包含模拟代理-环境交互的代码和由训练循环组成的函数。
  5. 帮助者_监护人.py:包含用于计算拓扑空洞数量和网络可压缩性的函数。
  6. 助手_其他.py:定义用于培训和性能评估的助手函数和类。

合成环境培训

  1. 使用位于的笔记本构建合成图形环境笔记本/数据处理_合成.ipynb。生成的网络放置在环境/文件夹。
  2. 列车_GNN_综合.py,指定培训过程的参数:
    1. 运行:在中创建文件夹跑步次数/存储特定于当前训练运行的训练和验证曲线以及模型检查点。
    2. 网络类型:指定用于构建合成图形环境的模型;'合成_ER','合成_BA','合成_RG',或'合成_WS'.
    3. 大小:指定培训、验证和测试数据集的大小;选项包括“迷你”,“小”,“中等”,或“大型”; 注意,必须首先根据步骤1创建数据集。
    4. 功能_模式:指定节点属性;我们对每个节点使用本地度配置文件“LDP”;选项包括“随机”和“常量”。
    5. 奖励函数:指定GNN针对哪个勘探目标进行培训,IGT为“betti_numbers”,CPT为“compressibility”;任何接受网络作为输入并输出标量的函数句柄都是有效的规范。
  3. 定义上述参数后,可以通过运行列车_GNN_综合.py脚本。

我们使用带有回放缓冲区和目标网络的DQN算法来训练GNN。训练的超参数可以在图形RL/helpers_miscellaneous.py文件。有关培训过程的算法详细信息,请参见补充.pdf此提交中的文件。

基线

可以使用评估_基线_合成.py脚本。结果存储在基线/文件夹。

绘图

要沿着基线绘制GNN代理的性能,请使用绘图_合成.py文件。确保指定与要为其生成图形的训练运行相对应的绘图参数。

真实世界图培训

现实世界的图形数据集可以用作培训和测试的环境。首先,创建一个与您想要训练的网络对应的邻接矩阵,并将其放置在文件夹中。然后编辑列车_ GNN_实际.py在进行完整的训练跑之前,根据需要进行归档。基线结果和性能图可以使用生成评估_基线_真实.py绘图_实际.py分别是。

个性化的基于好奇度的中心

用于计算主手稿中研究的三个真实世界图形数据集中每一个基于好奇度的中心性结果的自带笔记本都包含在相应的文件夹中。

实验笔记本

我们在笔记本电脑/文件夹,用于轨迹和环境大小泛化实验,以及生成表1的汇总结果。

关于

基于人类好奇心网络理论的内在动机图形探索

话题

资源

星星

观察者

叉子

发布

未发布版本

包装

未发布包

语言文字