2. 金融数据与图结构基础

在金融场景中,数据天然具有关系属性:股票之间存在行业关联、供应链关系、股东交叉持股;用户之间存在转账、担保、共同交易等行为;机构之间存在同业拆借、债券持有、衍生品敞口等联系。传统表格数据只能描述“个体属性”,而图结构能够同时刻画“个体”与“个体之间的关系”,这正是图机器学习在金融领域快速落地的根本原因。本节将从金融数据类型出发,逐步建立图的基本定义,并重点区分同构图与异构图,为后续图神经网络建模打下基础。

一、金融数据类型:从表格到关系

金融数据按结构形态大致可分为三类。第一类是结构化数据,如行情快照、财务报表、交易流水,通常以二维表形式存储,每行代表一个实体或事件,每列代表一个字段。第二类是半结构化数据,如JSON格式的公告、XML格式的监管报送文件,它们有层级但字段不固定。第三类是非结构化数据,如研报文本、新闻、电话会议录音,需要经过NLP或语音处理才能转化为可用特征。

然而,无论哪类数据,在金融风控、量化投研、反洗钱等任务中,真正决定模型上限的往往是关系型数据。例如,在反欺诈场景中,一个可疑账户本身可能没有异常交易记录,但它与多个已知黑名单账户存在资金往来,这种“关系证据”只能通过图结构表达。因此,金融图机器学习的核心思路是:将实体映射为节点,将实体间的业务联系映射为边,从而把分散的表格数据组织成一张可计算的图。

关键认知:金融数据不是“没有关系”,而是关系被拆散在多个表的外键中。图建模的本质是显式地恢复这些关系,并让模型直接在关系上传播信息。

二、图的基本定义:节点、边与邻接矩阵

一个图 G 可以形式化表示为 G = (V, E),其中 V 是节点集合,E 是边集合。在金融场景中,节点可以是一只股票、一个账户、一家公司、一位基金经理;边可以表示持股、交易、担保、行业归属等关系。边可以是有向的(如资金从A流向B),也可以是无向的(如两家公司同属一个行业)。边还可以带权重,例如交易金额、持股比例、相关系数。

为了便于计算,图通常用邻接矩阵 A 表示。对于包含 n 个节点的图,A 是一个 n×n 的矩阵,A[i][j] 表示节点 i 到节点 j 的边权重。无向图的邻接矩阵是对称的,有向图则不一定。邻接矩阵的稀疏性在金融图中非常普遍:一家公司可能只与几十家供应商有直接关系,而全市场公司数量可能上万,因此实际存储时常用稀疏矩阵或边列表。

# 以Python字典表示一个简单的金融关系图
graph = {
    "股票A": {"股票B": 0.8, "股票C": 0.3},
    "股票B": {"股票A": 0.8, "股票C": 0.5},
    "股票C": {"股票A": 0.3, "股票B": 0.5}
}

# 对应的邻接矩阵(按A、B、C顺序)
# [[0.0, 0.8, 0.3],
#  [0.8, 0.0, 0.5],
#  [0.3, 0.5, 0.0]]

邻接矩阵不仅是存储结构,更是图神经网络中消息传递的数学基础。每一层GNN本质上都在做“用邻接矩阵加权聚合邻居特征”的操作,因此理解邻接矩阵的稀疏性、对称性和归一化方式,对后续调参至关重要。

三、同构图与异构图:金融图的两大范式

根据节点和边的类型是否单一,图可以分为同构图和异构图。同构图要求所有节点属于同一类型、所有边属于同一类型。例如,只考虑股票与股票之间的相关性网络,节点全是股票,边全是“价格相关”,这就是一个同构图。同构图的优点是结构简单、算法成熟,适合快速验证和中小规模场景。

异构图则允许存在多种节点类型和多种边类型。金融领域更常见的是异构图:节点可以是“公司”“股东”“高管”“行业”,边可以是“持股”“任职”“属于行业”“供应关系”。异构图能够保留更丰富的语义信息,但也带来挑战:不同类型节点的特征维度不同,不同类型边的传播机制需要区分,模型设计更复杂。

对比维度同构图异构图
节点类型单一多种
边类型单一多种
金融示例股票相关性网络公司-股东-行业网络
建模难度较低较高
语义表达能力有限丰富
典型算法GCN、GraphSAGEHAN、RGCN、Metapath2vec

常见误区:很多初学者会把“多种边”误认为异构图。实际上,如果所有节点仍是同一类型,只是边的关系不同(如股票间既有“同行业”边又有“高相关”边),通常称为多关系同构图,而非严格异构图。区分的关键在于节点类型是否多样。

四、案例与复盘:构建一张反洗钱异构图

假设我们要为一家银行构建反洗钱图。首先定义节点类型:账户、个人、公司、设备。然后定义边类型:账户-个人(开户)、账户-账户(转账)、个人-公司(任职)、账户-设备(登录)。这样得到的异构图可以支持多种分析:通过“账户-账户”边发现资金环路,通过“个人-公司”边识别实际控制人,通过“账户-设备”边发现团伙作案。

复盘时需要注意三点。第一,边的时间属性:金融交易有严格时序,忽略时间会导致未来信息泄露。第二,节点特征对齐:不同类型节点的特征需要分别处理,不能直接拼接。第三,采样策略:金融图往往极度不平衡,正常交易远多于可疑交易,负采样和邻居采样需要结合业务规则。

金融异构图:多类型节点与多类型边 账户A 账户B 个人X 公司Y 设备D 转账 开户 任职 登录 图例 账户 个人 公司 设备

从这张异构图可以看出,账户A与账户B之间的转账边、账户A与个人X之间的开户边、个人X与公司Y之间的任职边、账户B与设备D之间的登录边,分别承载了资金流、控制关系、任职关系和设备关联。后续建模时,我们可以针对不同边类型设计不同的聚合权重,例如在反洗钱任务中提高“转账”边的权重,在关联方识别任务中提高“任职”边的权重。这正是异构图相比同构图的核心优势:语义可区分,信息可定制。