4、网络构建基础:从关系数据到图结构

各位同学,今天我们来聊聊投资知识网络里最核心的一步——网络构建

说白了,就是把那些散落在Excel表格、数据库里的关系数据,变成一张能跑能算的图。我刚开始做投资分析时,总觉得数据就是数据,直到有一次我试图找出两家看似无关的公司之间的隐性关联,手动翻了三天报表……嗯,从那以后,我彻底明白了:没有图结构,你永远看不到关系的全貌

4.1 关系数据 vs 图结构:到底差在哪?

你想想看,传统的关系数据长什么样?

一张表,行是实体,列是属性。比如「公司信息表」里,一行就是一家公司,列是名称、行业、市值。另一张「投资关系表」里,一行就是一笔投资,列是投资方、被投方、金额。

这种结构,查单条记录很快。但如果你想问:「A公司投过的所有公司里,有哪些后来又投了B公司的竞争对手?」——嗯,SQL写起来能让你怀疑人生。

图结构就不一样了。它把实体变成节点,把关系变成。节点可以带属性(比如公司名称、行业),边也可以带属性(比如投资金额、时间)。

我个人习惯把图结构想象成一张「关系网」。你站在一个节点上,顺着边一跳,就能找到所有关联。这种直觉,是传统表格给不了的。

核心区别一句话: 关系数据擅长「查什么」,图结构擅长「查怎么连」。

4.2 邻接矩阵:最直观的数学表达

说到图结构,第一个绕不开的概念就是邻接矩阵

假设我们有4家公司:A、B、C、D。它们之间的投资关系如下:

  • A 投资了 B
  • A 投资了 C
  • B 投资了 D
  • C 投资了 D

用邻接矩阵表示,就是一个4x4的方阵:

    A  B  C  D
A   0  1  1  0
B   0  0  0  1
C   0  0  0  1
D   0  0  0  0

行表示投资方,列表示被投方。1表示有关系,0表示没关系。

我在项目中遇到过一个问题:当节点数量超过1000时,邻接矩阵会变得非常稀疏——大部分格子都是0。存储起来浪费空间,计算起来也慢。所以,邻接矩阵更适合小规模、稠密的网络分析。

小技巧: 如果你用Python做分析,可以用NumPy的稀疏矩阵来存储邻接矩阵,能省不少内存。

4.3 边列表:实战中最常用的格式

邻接矩阵虽然直观,但实际工作中,我更常用边列表

边列表就是一张两列(或三列)的表:

源节点 目标节点 权重(可选)
A B 500万
A C 300万
B D 200万
C D 150万

你看,每一行就是一条边。简单、清晰、容易扩展。我处理过最大的边列表有上亿条记录,用CSV格式存储,配合Python的pandas库,处理起来毫无压力。

为什么会这样?因为边列表只存储有关系的边,没有冗余的0。对于稀疏网络来说,这是最经济的方式。

避坑指南: 我曾经因为边列表里混入了重复边,导致网络分析结果完全跑偏。记得在导入数据前,一定要做去重和校验。

4.4 图数据库简介:为什么需要Neo4j?

当你的网络规模大到一定程度——比如几百万个节点、几千万条边——内存里放不下,硬盘上查不动,这时候就需要图数据库了。

我个人最常用的是Neo4j。它原生支持图结构,查询语言叫Cypher,写起来非常直观。

举个例子,你想查「A公司投资过的所有公司」:

MATCH (a:Company {name: 'A'})-[r:INVESTED_IN]->(b:Company)
RETURN b.name, r.amount

是不是很像在画图?你几乎是在用自然语言描述「从A出发,沿着投资边,找到目标公司」。

Neo4j的底层存储就是邻接表——每个节点都存着它所有邻居的指针。所以遍历关系时,不需要全表扫描,速度极快。

我记得有一次帮一个基金做尽调,需要分析一个包含50万家公司、200万条投资关系的网络。用传统数据库查一个「三层关联」的路径,跑了20分钟还没出结果。换成Neo4j,同样的查询,0.3秒

什么时候该用图数据库?
  • 你的数据中,关系比实体本身更重要
  • 你需要频繁做多跳查询(比如查「朋友的朋友的朋友」)
  • 你的网络规模超过10万节点

4.5 本章知识体系总览

下面这张图,是我自己梳理的本章知识结构。你可以把它当作一张「地图」,随时回来对照。

网络构建基础 关系数据 图结构 图数据库 邻接矩阵 边列表 节点 + 边 属性(节点/边) Neo4j Cypher 查询 从表格 → 矩阵/列表 → 图数据库,逐步升级

这张图把本章的核心脉络串起来了。从左到右,是从数据格式到存储引擎的演进;从上到下,是每个分支的具体实现方式。你可以把它当作一个「导航图」,随时回来对照。

我的建议: 刚开始做网络分析时,先用边列表+Python把原型跑通。等数据量大了,再迁移到Neo4j。不要一上来就上图数据库,容易过度设计。

好了,这一章的内容就到这里。网络构建是投资知识可视化的地基,地基打牢了,后面画图、分析、挖掘才会顺手。下一章我们会聊到「布局算法」——也就是怎么把这张网画得既好看又好懂。


蓝海数据掘金营,专注资料整理