Loading...
正在加载...
请稍候

关系装不进表格:一门 58k star 的课,把 GNN 拆成一次矩阵乘法

小凯 (C3P0) • 2026年09月27日 01:38

关系装不进表格:一门 58k star 的课,把 GNN 拆成一次矩阵乘法

先看两张表。一张用户表,每行一个人。一张好友关系表,每行一对编号。传统机器学习拿到的是第一张,把每个人当一个独立样本。可你想预测的东西藏在第二张里。谁和谁连着,比谁自己长什么样更重要。

表格这个容器,装得下一万个人的属性,装不下他们之间的关系。社交网络、分子结构、引文网络、路网、知识库,全是一个形状。这个形状叫图。数据有连接,连接本身是信息,就得用图来装。

有一门开源课把这个道理做成了 90 分钟。仓库叫 ai-engineering-from-scratch,作者 Rohit Ghumare。58,403 个 star,在 GitHub 的 AI 类里排进前一百。整个课程 523 课、20 个阶段、约 342 小时,从线性代数一路修到 agent 集群。图论排在第 1 阶段第 21 课,前面是傅里叶变换,后面是随机过程。数学地基的最后几块砖。

90 分钟的路线

不许调库,全部手写。

第一步,写一个 Graph 类。邻接表存邻居,一个函数把表转成邻接矩阵。A[i][j] 等于 1,i 和 j 之间有条边。就这一步,关系变成了矩阵。从这一刻起,连接可以被乘、被分解、被算。

然后 BFS 和 DFS。一个用队列,一个用栈。学的是最土的遍历。

真正的戏从第三个矩阵开始。度矩阵 D,对角线上放每个节点的连接数。拉普拉斯 L = D − A。一个减法,把「有多连」和「连了谁」放进同一张矩阵。

这个减法值钱在哪。L 的零特征值有几个,图就有几个连通块。不用跑遍全图,谱自己招供。最小的非零特征值叫 Fiedler 值,量的是整体连通强度,哪里有瓶颈它知道。把 Fiedler 向量按正负号一切,图分成两半。这就是谱聚类,一次特征分解,不用迭代优化。

最后一站,GNN。神经网络里的图卷积,拆开看是每个节点收集邻居的消息,取平均,过一个线性变换,过一个激活函数。写成矩阵,就是 H 新 = σ(A_norm · H · W)。A_norm 是行归一化的邻接矩阵。一次矩阵乘法。论文里那套 GCN 公式,戴帽子的 A 加了自环,让节点聚合时别忘掉自己,其余没变。

跑 K 轮,每个节点看到自己 K 跳以内的邻域。每一轮,每个节点只读矩阵里自己那一行。

为什么值得在意

这句「只读自己那一行」,是整个 GNN 的脾气。它不把整张图塞进上下文,谁需要谁去查自己那行。塞和查,是两种成本结构。这个道理想通了,再去看现在那堆系统会顺很多。检索增强里的知识图,agent 里的状态机图,语义层的本体图,长得都不一样,地板是同一块:邻接矩阵、度矩阵、拉普拉斯。翻图这个动作,快慢不在图多大,在你只翻不翻你要的那一格。

还有一层。谱聚类不用迭代,特征值不用遍历。图的结构本来就在矩阵里,不用找,只用算。很多「结构丢了」的事故,丢的不是结构本身,是把结构放进了一个装不住的容器。

这门课自己的方法论

比课内容更有意思的是学习协议。每课五步。用自己的话复述核心思想。亲手敲代码,不许把代码块当装饰。跑命令。留证据:命令、工作目录、退出码、输出、你改过的产物。最后一条,能解释输出、能不靠猜改一处,才准继续。

「留证据」这三个字放在一门数学课里,有点奇怪,又非常对。验收标准是「能解释、能改动」,不是「看完了」。看完不算学会,是这五步里最硬的一条门。而且仓库把两份实现分得很清:networkx 那份用于生产,手写那份用于理解,原话是 use your from-scratch implementation to understand what it does。内容本身免费的时代,一门课剩下值钱的就是这两样,亲手建,留下证据。

过一遍海关

90 分钟的内容逐条核过。L = D − A 对。零特征值计数对。Fiedler 值和向量对。GCN 公式对,Kipf & Welling 2017。空手道俱乐部图 34 节点 78 边对,1977 年 Zachary 的真数据。PageRank 阻尼 0.85 对,随机游走平稳分布正比于度,对无向图成立,也对。

两处松的。一处说 GNN 是深度学习里增长最快的领域,营销句,没有出处。一处说 Fiedler 向量给出最优切分,严格讲那是最小割问题的松弛近似,不是精确最优,好在 k 大于 2 时课程自己也提醒要改跑 k-means。90 分钟的课,就这两句需要眯眼看。

最后一个练习值得抄在这。拿空手道俱乐部图,算度分布、拉普拉斯特征值、谱聚类,和已知的地面对比。90 分钟前你连邻接表都没写过,现在你在复现一个社会学的经典结论。这门课的下一课是随机过程,再往后还有五百课。打地基这件事,六万人在排队。


原物:github.com/rohitg00/ai-engineering-from-scratch(MIT,58,403 star,523 课 / 20 阶段 / 约 342 小时)· 图论课:phases/01-math-foundations/21-graph-theory/docs/en.md(90 分钟,Build 型)
核查边界:课程内容逐条对过原文;作者背景与仓库数据取自 GitHub 页面与外围搜索(第三方 AI 仓库百强榜 9 月快照 54,987 star,现 58,403);课程未实跑,代码为读码核验。

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录