|||
原文见:https://patricknicolas.substack.com/p/from-nodes-to-complexes-a-guide-to
蛋白质相互作用、网络安全、交通预测和分子工程等应用通常需要超越传统基于图的表示方法的全局洞察。为了捕捉这种复杂性,这些领域受益于建立在更丰富的拓扑结构上的模型,例如单纯复形、胞腔复形和超图。
1. 为什么这很重要
目的:仅通过几何视角观察图往往无法捕捉复杂数据中固有的非局部关系和高阶依赖性。在许多现实应用中——从物理系统、社会影响到交通预测、蛋白质相互作用和分子设计——数据自然表现出丰富的拓扑结构,例如边、三角形、四面体和团(cliques)。
受众:本文内容专为从事几何深度学习和图神经网络的数据科学家及研究人员而设计,旨在帮助他们扩展对拓扑驱动建模的理解。
价值:您将深入了解拓扑数据分析(TDA)的核心原理,学习包括单纯复形、胞腔复形、组合复形和超图在内的拓扑领域,并沿着清晰的路线逐步掌握拓扑神经网络。
2. 模型和设计原则
2.1. 概述
本文是使用TopoX和NetworkX库进行拓扑深度学习系列文章的第一篇。它介绍了拓扑深度学习的基础概念,为后续将要推出的实践文章奠定了基础,这些文章将探讨在单纯复形、胞腔复形和拓扑网络等结构上的计算方法。
2.2. 一些说明
定义拓扑深度学习(TDL)的一种简单方法是将其与人工智能领域的相关领域进行对比,例如拓扑数据分析和更广泛的几何深度学习领域。
图1. 欧氏几何与非欧几何的数据表示
2.3. 拓扑数据分析
拓扑数据分析(Topological Data Analysis,TDA)和拓扑深度学习(Topological Deep learning,TDL)之间的区别可能会令人困惑,因为两者都源自代数拓扑学。
TDA 支持对输入数据形状(例如异常值、聚类等)的分析,而TDL 用于构建学习模型(例如图、节点、单纯形分类),该模型同时利用输入数据和 TDA 的输出,如下所示:
图2. TDA/TDL数据处理流程
1. 目标:
+ TDA:从输入数据中提取拓扑特征
+ TDL:将拓扑特征作为先验知识用于深度学习模型
2. 范围:
+ TDA:特征工程与处理
+ TDL:模型设计、训练、验证和测试
TDA技术可独立于TDL应用于异常检测、形状聚类、不连续性及空隙识别。
2.4. 机器学习流程
人们可能会问,纳入拓扑域如何影响训练和评估机器学习模型的工作流程。
1. 预处理阶段必须扩展,以包括拓扑结构的构建——例如单纯形或组合复形,这些结构可作为建模阶段的丰富输入。
2. 拓扑深度学习模型采用了图神经网络(GNN)的核心架构原则,例如消息传递。
3. 模型评估将传统的机器学习指标与拓扑感知度量相结合,包括持久同调和等变性分数,以评估模型捕捉和保持拓扑特征的能力。
以下比较表格说明了传统机器学习流程与TDL流程之间的区别。
表1。 TDL与传统机器学习流程中部分元素的比较
2.5. 几何深度学习
TDL被广泛认为是几何深度学习(GDL)的一个子领域。
几何深度学习是指研究和设计在非欧几里得域上运行的神经网络,例如图、流形、李群、单纯复形和胞腔复形、黎曼结构等。它统一了预先考虑数据中几何先验、对称性和结构的方法,包括空间局部性、等变性和关系约束。
下表详细说明了一些细微的差异。
表2. TDL与GDL流程中部分元素的比较
2.6. 图神经网络
图神经网络是拓扑深度学习的一种一维特殊情况,它能够实现对超越图结构的深度学习,具有更丰富的关系拓扑。
表3. 拓扑神经网络与图神经网络的比较
2.7. 相关术语
以下按字母顺序排列的术语列表,同时适用于数据分析(TDA)和建模(TDL):
+ 贝蒂数(Betti number):一种重要的拓扑不变量,用于计算空间中特定类型拓扑特征的数量。它为描述空间的形状和结构提供了一个简洁的总结,尤其是在处理高维或复杂数据集时(维度0:连通分量;维度1:孔洞、环路;维度2:三维孔洞和空腔)。
+ 范畴论(category theory):数学的一个分支,研究数学结构的抽象化及其之间的关系。它关注的是整个结构如何通过态射(morphism)相互关联和变换。
+ 胞腔(或CW、Cell)复形:一种拓扑空间,由一系列拓扑圆盘(胞腔)的不交并构成,其中每个胞腔都与欧氏球体的内部同胚。这是一种通用且灵活的结构,用于从称为胞腔的基本单元构建拓扑空间,这些胞腔可以是点、线段、圆盘以及更高维的类似物。
+ 共链(Cochain)或k-共链:一种信号,即从秩为k的组合复形到实向量的函数。
+ 共链映射(Cochain map):一种利用关联矩阵作为变换的共链空间之间的映射。
+ 共链空间(Cochain space):共链构成的空间
+ 组合复形(Combinatorial Complex):一种由简单基本单元(如顶点、边、三角形等)组成的结构化集合,以适合代数和计算分析的方式对数据的形状进行建模。
+ 过滤(Filtration):一种从数据构建而成的嵌套拓扑空间序列(通常是单纯复形或胞腔复形),其中每个空间都包含前一个空间。这些拓扑空间中的每一个都代表了数据在特定尺度或分辨率下的拓扑结构。
+ Hausdorff空间:一种拓扑空间,其中任意两点都是可分离的,并且可以被包含在其不相交的开邻域中。
+ 超图(Hypergraph):超图是对传统图的一种推广,其中的边(称为超边)可以连接任意数量的节点,而不仅仅是两个节点。与图中的边表示二元关系不同,超图则用于表示一组节点之间的高阶关系。
+ 同胚(Homeomorphism):两个拓扑空间之间的态射,是一个双射映射,其函数及其逆函数都是连续的。
+ 同伦(Homotopy):拓扑学中的一个基本概念,指通过连续变形将一个形状变为另一个形状,例如拉伸、弯曲或扭转,但不允许撕裂或粘合。
+ 关联矩阵(Incidence Matrix):在单纯复形中对k维与(k-1)维单纯形(节点、边、三角形、四面体等)之间关系的一种编码。
+ 持久同调(Persistent Homology):一种来自拓扑数据分析(TDA)的方法,用于捕捉数据在多个尺度上的形状。它追踪拓扑特征(如连通分量、环和空洞)在不断增长的单纯复形族中出现和消失的过程。
+ 点云(point cloud):在三维空间中定义的一组数据点集合。这些点代表物体的外部表面。点云具有空间坐标(x, y, z)和内部表示,但不包含有关点之间如何连接的信息(例如边、面等)。
+ 池化操作(pooling operation):池化操作是一种用于降低拓扑输入空间(如图、单纯复形或胞腔复形)复杂度,同时保留其基本拓扑特征的机制。
+ 偏序集(Poset):一种出现在因果结构、分层空间和奇异流形中的偏序集合。一个偏序集是一个集合P,配备有一个偏序关系“≤”,满足(自反性、反对称性、传递性)。
+ 前推运算(Push-forward Operation):一种将定义在一个拓扑域上的函数或信号转移到另一个拓扑域的方法,通常沿连续映射或保持结构的映射进行,它起源于微分几何和代数拓扑学。
+ 关系(relation):由基数(例如二元关系中的2)所刻画的顶点集合的子集。
+ 层(Sheave):一种数学工具,用于追踪空间上的局部数据,并描述其在重叠区域中如何一致地粘合在一起。层通过允许更丰富的数据类型,推广了持久同调的概念。
+ 单纯形(Simplex):三角形、四面体等边界形状的推广形式。
+ 单纯复形(Simplicial Complex):一种图的推广,用于建模数据元素之间的高阶关系——不仅包括成对(边),还包括三元组、四元组及更高阶的关系(0-单纯形:节点,1-单纯形:边,2-单纯形:三角形,3-单纯形:四面体)。
+ 集合型关系(Set-type Relation):一种关系类型,其存在性并不由图中的其他关系所隐含(例如超图)。
+ 拓扑数据(Topological Data):一组特征向量,这些特征向量支持着拓扑空间中的关系。
+ 拓扑数据分析(TDA):一种利用拓扑学概念来研究数据形状和结构的框架。它通过构建单纯复形并计算贝蒂数等拓扑不变量,捕捉高维模式,例如聚类、环路和空洞。TDA尤其适用于揭示在噪声或复杂数据集中跨多个尺度持续存在的稳健几何特征。
+ 拓扑深度学习(TDL)。一种将拓扑学,特别是代数拓扑学的思想融入深度学习的方法。它关注数据的内在全局特性,这些特性在连续形变(如拉伸或弯曲)下保持不变,而非数据的局部结构。
+ 拓扑群(Topological Group):一种同时具备以下两种结构的数学对象:
+ 群(一种代数结构,具有结合二元运算、单位元和逆元);
+ 拓扑空间(一种具有连续性概念、开集等性质的集合)。
+ 拓扑空间(Topological Space):一个集合X,以及一个称为X的开集的子集族T,,满足以下条件:
+ 空集属于T
+ 集合X属于T
+ 开集的并集是开集
+ 开集的交集是开集。
+ 反池化操作(Unspooling Operation):与池化过程相对应的操作,它将经过粗化的拓扑结构重构或扩展回更高分辨率的空间,通常用于在神经网络中实现解码、上采样或重建。
+ Vietoris-Rips过滤:一种过滤方法,用于捕捉拓扑特征(如簇、环、空洞)如何随着尺度变化而出现和消失。这种持久性以条形码或持久性图的形式可视化。VR过滤是TDA中最常见的构造之一,用于从点云中提取拓扑特征。
2.8. 拓扑深度学习
如前所述,拓扑深度学习(TDL)是几何深度学习的一个子领域,其特点在于定义局部邻域的方式。
在基于连续流形构建的几何模型中,一个点周围的邻域通常由局部欧几里得空间表示,这一空间通常被形式化为切空间或流形单位元处的李代数。
相比之下,如下图所示,TDL 将节点(或嵌入向量)的邻域定义为其在拓扑上相关的节点集合——无论这些节点是通过相似性、边、单纯形或其他更高阶连接关系而相互关联的。
图3. 从数据点/特征/节点的邻域角度说明GDL与TDL之间的差异
点云具有空间坐标(x, y, z)和特征(实向量),但不包含任何有关点之间连接关系(边、面等)的信息。
+ 点云中某个数据点周围的邻域可以被建模为拓扑空间中的离散集合。
+ 通过定义这些元素之间的关系,它们可以表示为由边连接的图中的节点。
+ 这种图结构可以扩展以捕获更高阶的拓扑关系,例如:
- 面(如三角形、四面体),形成单纯复形
- 超边,形成超图
- 拓扑圆盘的不相交并集,生成胞腔复形
- 异构形状的集合,产生组合复形。
2.9. 拓扑神经网络
由于拓扑神经网络建立在图神经网络(GNN)的基础之上,我们首先简要概述图神经网络的核心组件和基本概念。
2.9.1. 重新审视GNN
图神经网络(GNN)是对图的所有属性(节点、边和全局上下文)进行优化变换,同时保持图的对称性(置换不变性)。GNN以图作为输入,并生成或预测出另一个图作为输出。
流形上的数据通常可以表示为一个图,其中流形的局部结构通过邻近点之间的连接来近似。图神经网络(GNN)及其变体(如图卷积网络(GCN))通过利用图结构来处理非欧几里得域上的数据,从而将神经网络扩展到这一领域,而这种图结构可能近似于底层的流形。
在图神经网络(GNN)上需要执行的任务有3种类型:
1. 图级任务,即预测整个图的属性,例如分类问题。
2. 节点级任务,即预测节点是否属于特定类别,或者图像分割、单词词性等。
3. 边级任务,即预测节点之间的关系,这些关系可以被分类(发现实体或节点之间的连接)。
有三组层:
1. 预处理层:将节点数据编码为每个节点的向量特征的前馈层。
2. 消息传递层:在每一层执行消息传递和聚合操作。
3. 后处理层:对消息传递层的输出进行解码的前馈层,并预测节点、链接或图。
图4. 前处理/后处理以及带有消息传递的图神经层示意图。
图神经网络(GNN)的每一层都执行消息传递操作,随后进行聚合(通常是求和)步骤。这两个组件的具体设计——消息如何交换和聚合——决定了GNN的整体架构,从简单的形式到更复杂的结构,例如:
1. 卷积型GNN
2. 基于注意力机制的GNN
3. 通用消息传递型GNN
2.9.2. 拓扑网络架构
鉴于图网络与拓扑域之间存在概念上的相似性,因此自然可以基于最初为基于图的分类和回归任务而开发的成熟架构和工具进行扩展。
然而,存在几个关键的区别:
1. 编码:编码器不仅需要为节点生成嵌入,还需要为更高阶的拓扑结构(如单纯复形或超图)生成嵌入。
2. 消息传递:与标准图神经网络(GNN)中消息传递仅在相邻节点之间进行不同,拓扑模型必须扩展这一机制,使其能够在节点和更高维的拓扑实体上运行。
图5 前/后处理及拓扑神经层的示意图
2.9.3. 消息聚合
在图神经网络中,聚合通常涉及从直接的节点邻居收集消息。相比之下,拓扑神经网络引入了一种两层聚合过程:
1. 节点之间的邻域内聚合
2. 跨拓扑域(例如面、超边或胞腔)的邻域间聚合
为了做好铺垫,我们首先回顾图神经网络中标准的消息传递和聚合过程。
图6. 图神经网络中的消息传递与聚合示意图
消息传递和聚合过程同样在每个拓扑域内进行,例如下图所示的单纯复形:
图7 TDL中邻域内消息传递与聚合的示意图
最后,来自每个高阶域的消息被处理并汇总。
图8 TDL中的邻域间消息传递与聚合示意图
正如你所看到的,拓扑神经网络与图神经网络并没有太大区别。
3. 库
本博客以向读者提供各种主题的实践经验为荣。因此,若不介绍支持TDL的重要Python工具和库,就不算完整。
3.1. NetworkX
NetworkX 是一个基于 BSD 许可的、功能强大且灵活的 Python 库,用于创建、操作和分析复杂网络与图。它支持多种类型的图,包括无向图、有向图和多重图,使用户能够高效地对关系和结构进行建模。
NetworkX 提供了广泛的图论和网络分析算法,例如最短路径、聚类、中心性度量等。它旨在处理拥有数百万个节点和边的图,因此适用于社交网络、生物学、交通系统及其他领域的应用。凭借其直观的API和丰富的可视化功能,NetworkX 是研究者和开发者处理网络数据时不可或缺的工具。
该库支持许多标准图算法,如聚类、链接分析、最小生成树、最短路径、团、着色、割集、Erdos-Renyi模型或图多项式。
>pip install networkx
3.2. TopoX
TopoX为科学家和工程师提供工具,用于构建、操作和分析拓扑域(如细胞复合体、单纯复形、超图和组合结构),并设计利用这些拓扑组件的先进神经网络。
我们将在未来文章中使用的两个软件包是
1. TopoNetX,用于探索关系数据和建模拓扑结构的API
+ 原子:表示基本拓扑实体(例如单元、单纯形)的类
+ 复形:用于构建和操作单纯复形、胞腔复形、路径复形、组合复形以及超图的类
+ 报告:用于检查和描述原子与复形的工具
+ 算法:用于计算邻接矩阵、关联矩阵及各种拉普拉斯算子的实用程序
+ 生成器:用于创建合成拓扑结构的函数
> pip install toponetx
2. TopoModelX,一个提供拓扑神经网络模板实现的库,支持在拓扑域上应用卷积、消息传递和聚合操作
> pip install topomodelx
3.3. Gudhi
GUDHI(高维几何理解)库是一个专注于拓扑数据分析(TDA)的开源框架,特别强调对高维几何的理解。与TopoX类似,它为研究人员提供了构建和操作各种复形(包括单纯复形、胞腔复形、立方复形、Alpha复形和Rips复形)的工具。
GUDHI支持过滤器的创建以及持久同调和上同调等拓扑描述子的计算。此外,它还提供用于处理和转换点云数据的功能。
> pip install gudhi
4. 要点总结
✅ TDA用于分析数据的形状,而TDL则用于利用拓扑空间构建线性模型
✅ TDL是几何深度学习的一个子集,通过形状分析和拓扑特征提取扩展了传统机器学习
✅ 拓扑空间的列表包括拓扑集合、图、单纯复形、胞腔复形、组合复形以及超图
✅ 拓扑神经网络通过在现有特征列表中添加拓扑结构(例如复形)和信号,并调整消息传递和聚合方案,扩展了图神经网络
✅ TopoX、NetworkX和Gudhi是用于研究TDA和TDL的关键开源库。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-8-18 04:01
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社