第一章:图神经网络基础:从图论到图神经网络,为什么股票市场需要图结构?
1.1 图论:不只是七桥问题
说起图论,很多人第一反应就是柯尼斯堡七桥问题。嗯,那个经典问题确实重要,但咱们做量化的人,更关心的是图论怎么帮我们赚钱。
图论的核心就三个东西:节点、边、权重。节点就是实体,边就是关系,权重就是关系的强弱。我刚开始接触图论时,觉得这玩意儿太抽象了。直到有一次我在做行业轮动策略,发现传统的时间序列模型根本抓不住股票之间的联动关系——这时候我才意识到,图结构才是描述金融市场的天然语言。
核心概念速览:
- 节点(Vertex):股票、行业、因子、事件
- 边(Edge):相关性、产业链上下游、资金流向
- 权重(Weight):相关系数、交易量、影响力分数
你想想看,A股市场4000多只股票,它们之间难道只是独立个体吗?当然不是。茅台涨了,白酒板块跟着动;宁德时代跌了,新能源产业链都得抖三抖。这就是图结构在起作用。
1.2 从传统神经网络到图神经网络
传统的深度学习模型,比如CNN、RNN,处理的数据都是规规矩矩的——图像是网格,文本是序列。但股票市场的数据呢?它是一张错综复杂的网。
我记得2018年刚入行时,用LSTM做股票预测,效果还行,但总觉得少了点什么。后来我意识到,LSTM只能看到时间维度上的信息,却看不到股票之间的空间关系。说白了,它是个「瞎子」,只知道自己,不知道邻居。
图神经网络(GNN)的出现,就是为了解决这个问题。它的核心思想很简单:每个节点的特征,应该由它自己和邻居节点共同决定。这就像你在朋友圈里,你的状态很大程度上受朋友影响——股票也是一样。
我的经验:在实盘回测中,加入图结构的模型比纯时序模型,在行业轮动策略上的夏普比率提升了约0.3-0.5。这不是玄学,是信息利用率的提升。
1.3 图注意力机制:让模型学会「看人下菜碟」
普通的GNN有个问题:它把所有邻居一视同仁。但现实中,股票之间的关系有强有弱。茅台和五粮液的关系,跟茅台和工商银行的关系,能一样吗?
图注意力网络(GAT)引入了注意力机制,让模型自己学会给不同的邻居分配不同的权重。说白了,就是让模型知道「谁更重要」。
# 图注意力层的核心计算逻辑(伪代码)
def graph_attention_layer(node_features, adjacency_matrix):
# node_features: [N, F] N个节点,每个节点F维特征
# adjacency_matrix: [N, N] 邻接矩阵
# 1. 线性变换
h = W @ node_features # [N, F']
# 2. 计算注意力系数
e = LeakyReLU(a @ [h_i || h_j]) # 拼接后计算
# 3. softmax归一化
alpha = softmax(e, dim=1) # 邻居权重
# 4. 加权聚合
h_out = alpha @ h # 新特征
return h_out
这段代码看着简单,但实际调参时坑不少。我曾经因为注意力头数设置不当,导致模型过拟合,在验证集上表现很好,一上实盘就崩。后来我总结了一个经验:注意力头数不要超过8,否则容易学到噪声。
1.4 为什么股票市场天生需要图结构?
这个问题我问过很多同行,答案五花八门。我个人认为,最核心的原因有三个:
| 原因 | 传统模型的问题 | 图结构的优势 |
|---|---|---|
| 关系复杂性 | 只能处理独立同分布数据 | 天然支持非欧几里得结构 |
| 信息传播 | 无法捕捉传导效应 | 消息传递机制模拟真实市场 |
| 动态演化 | 静态假设,不适应市场变化 | 支持动态图更新 |
举个例子你就明白了。2020年疫情刚爆发时,医药股先涨,然后带动医疗器械、疫苗、甚至线上办公概念股。这种传导效应,传统模型根本抓不住。但图结构可以——因为节点之间的边会传递信息,就像病毒传播一样。
避坑指南:我曾经在构建股票关系图时,直接用相关系数矩阵作为邻接矩阵。结果模型学到的全是同涨同跌的「抱团股」,完全没有捕捉到产业链上下游的因果关系。后来我改用「格兰杰因果检验」来构建有向边,效果好了很多。
1.5 图结构在量化选股中的典型应用
目前业界用得比较多的场景,我列几个:
- 行业轮动策略:用图结构捕捉行业间的资金流动和情绪传导
- 因子挖掘:把因子作为节点,自动发现因子间的交互作用
- 风险传导分析:模拟黑天鹅事件在股票网络中的传播路径
- 关联交易检测:识别异常的资金往来和关联交易
我个人最看好的方向是「动态图选股」。传统的图模型都是静态的,但市场每分钟都在变。如果能构建一个随时间演化的动态图,让模型实时更新股票之间的关系,那效果会非常惊人。
1.6 本章知识体系总览
下面这张图是我自己总结的,把本章的核心逻辑串起来了。你看完应该能对图神经网络在选股中的应用有个整体认识。
这张图把我们从图论基础到图注意力网络,再到实际应用的路径都串起来了。你仔细看会发现,整个体系的核心就是「如何让模型理解股票之间的关系」——这也是我们这门课要解决的根本问题。
一个小建议:刚开始学图神经网络时,别急着调参。先把图结构本身搞明白——你的节点是什么?边怎么定义?权重怎么算?这些基础问题没想清楚,模型再花哨也没用。我见过太多人一上来就上GAT,结果连邻接矩阵都构建错了。
好了,第一章的内容就到这里。图结构在股票市场中的应用远不止这些,后面我们会一步步深入。记住一句话:在金融市场里,关系比个体更重要。理解了这一点,你就抓住了图神经网络选股的灵魂。