菜单
本页目录

一、代码结构分析

1.Graph Features Extraction

文件目录

  • features-Copy1-2.ipynb
  • features-Copy1-3.ipynb
  • features-Copy1.ipynb
  • features-Copy2.ipynb
  • features-Copy4.ipynb
  • main.ipynb

功能描述

  • 这些文件主要用于从图数据中提取特征。不同的Jupyter Notebook文件实现了不同的特征提取逻辑,如 In_Unique_Usr, In_Unique_Src, In_Unique_UsrSrc, Out_Unique_Usr, Out_Unique_Dst, Out_Unique_UsrDst, Out_Day_Avg_Usr, Out_Day_Avg_Dst, Out_Day_Avg_UsrDst 等特征。
  • main.ipynb:包含构建网络数据集的图形映射的实现,是特征提取的基础。

2.Jbeil

文件目录

  • evaluation
    • evaluation.py
  • model
    • temporal_attention.py
    • tgn.py
    • time_encoding.py
  • modules
    • embedding_module.py
    • memory_updater.py
    • memory.py
    • message_aggregator.py
    • message_function.py
  • utils
    • data_processing.py
    • preprocess_data.py
    • und.py
    • utils.py
    • train_self_supervised.py

功能描述

  • evaluation
    • evaluation.py:用于评估模型性能,包括计算边预测的准确性等。
  • model
    • temporal_attention.py:实现时间注意力层,用于计算节点的时间嵌入并通过注意力机制聚合邻居节点信息。
    • tgn.py:实现TGN模型(Temporal Graph Network),整合了多个模块,用于动态时间图的归纳学习和图表征。
    • time_encoding.py:实现时间编码器,将时间戳转换为特定维度的嵌入。
  • modules
    • embedding_module.py:定义嵌入模块,负责计算节点在时间图中的嵌入。TGN模型会调用这个模块来生成节点嵌入。
    • memory_updater.py:定义记忆更新模块,包括GRU和RNN记忆更新器,用于更新节点的记忆状态。TGN模型会用这个模块来处理节点记忆的更新。
    • memory.py:实现记忆模块,用于存储和处理节点的长期信息。TGN模型依赖这个模块来管理节点的记忆。
    • message_aggregator.py:实现消息聚合器,用于聚合具有相同节点ID的消息。TGN模型在处理节点间信息传递时会用到这个模块。
    • message_function.py:定义消息函数,用于计算节点之间交互事件的信息。这些函数被TGN模型调用,用于处理节点之间的消息传递和特征计算。
  • utils
    • data_processing.py:负责数据的加载和处理,包括将数据划分为训练、验证和测试集。
    • preprocess_data.py:用于数据预处理,包括读取数据文件、重索引和生成特征矩阵等。
    • und.py:包含一些实用函数,例如获取GPU内存状态的函数。
    • utils.py:包含工具类和函数,例如MergeLayer类用于合并节点特征和邻居特征。
    • train_self_supervised.py:负责模型的训练过程,包括参数设置、训练循环和模型评估等。

model与modules的关系

其中,model目录和modules目录关系密切,共同构成了图表征模块的实现。具体来说,model目录中的文件定义了核心模型结构和主要算法,而modules目录中的文件则实现了模型所需的各种辅助功能和模块。这些辅助模块被核心模型调用和集成,用于实现特定的功能和计算。

TGN 模型
  |
  +-- 调用 -- temporal_attention.py (时间注意力层)
  |
  +-- 调用 -- time_encoding.py (时间编码器)
  |
  +-- 集成 -- modules/ (已按照 TGN 调用顺序列出子文件)
        |
        +-- memory.py (记忆模块)
        |
        +-- message_aggregator.py (消息聚合器)
        |
        +-- message_function.py (消息函数)
        |
        +-- memory_updater.py (记忆更新模块)
        |
        +-- embedding_module.py (嵌入模块)