一、代码结构分析
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 (嵌入模块)