本课讲 2017 年的一篇文章。Gilmer 等 5 位科学家让电脑看懂分子:分子里的每个原子像同学一样,给旁边的原子传纸条。传几轮以后,电脑就能猜出整个分子的性质。
有一种“图”不是图片,而是用点和线画成的一张网。点代表东西,线代表“这两个连着”。请填一填:
今天的主角也是这样一张网。它小得用眼睛看不见,它就是分子。
水、空气、你的书包,都是由极小极小的颗粒搭起来的。这种颗粒叫原子。几个原子手拉手连在一起,就组成一个分子。原子之间的“手拉手”,叫化学键。把原子画成点,化学键画成线,分子就变成了一张点线网。科学家把它叫作图。
O 是氧,H 是氢,C 是碳。二氧化碳里,碳和每个氧都拉着 2 只“手”,所以画 2 条线,叫双键。
化学家想知道分子的性质,比如它带着多少能量,会不会溶在水里。有一种电脑算法叫 DFT(密度泛函理论),算得很准,可是算一个分子要很久。要挑的分子太多,一个一个算实在等不起。
科学家的想法:让电脑学会“快速猜”。先用 DFT 算好一大批分子,当作标准答案。再让电脑看着分子图猜性质,对照答案改正,这就是第 1 课讲过的训练。这篇文章的练习册叫 QM9,有 13 万多个小分子。每个分子最多有 9 个不算氢的原子,带着 13 种性质的答案,比如能量多少、加热时升温快不快。
这篇文章的办法很像传纸条。每个原子是一个同学,化学键是同学之间的连线。规矩是:纸条只能传给和你连着线的同学,他们叫你的邻居。
↻ 第 2 步和第 3 步重复几轮
这种沿着连线传纸条的办法,叫消息传递。为什么要传好几轮?下图中 5 个原子连成一排,1 号有一个秘密,黄色表示已经知道它(示意):
每传一轮,秘密往前走一步。传 3 轮以后,每个原子都知道了 3 步以内的情况。
你给好朋友和给新同学写纸条,写法不一样。这篇文章让电脑按连线是 1 条还是 2 条、原子离得多远,决定纸条怎么写。这是它效果最好的一招。
我们要的是整个分子的性质。所以最后要把所有原子的想法合成一个答案,这一步叫读出,也就是“汇总”。
原子没有先后顺序,就像第 16 课的“一袋水果”。所以换了顺序,汇总的答案也不能变。把大家的想法加在一起就行,像第 16 课的榨果汁。这篇文章效果最好的汇总办法,正是第 16 课的“摊开多看几眼”。
和第 19 课是一家人。第 19 课把东西两两配对比较,再把结果加起来。这就像每个同学都和所有同学连着线,传一轮纸条再汇总。
第一件:统一说法。作者发现,以前 8 种处理图的电脑程序其实都在传纸条,只是 3 件事做法不同:消息(纸条写什么)、更新(读完怎么改想法)、读出(怎么汇总)。这样就能比较哪种做法好。
第二件:拼出更好的版本。化学家给每种性质定了一条“够用线”,叫化学精度。误差小于它,结果就能拿来用。作者把每一步最好的做法拼在一起,QM9 的 13 种性质里有 11 种达到了化学精度。把氢原子也画进图、告诉电脑原子离多远,都能猜得更准。
找新药、找新材料。科学家先让传纸条的电脑快速猜一遍,留下有希望的分子,再做实验确认。今天很多算分子、算材料的 AI 都用这个思路,比如 DeepMind 寻找新材料的 GNoME。
别的点线网。地图上路口是点,马路是线;社交网站上人是点,好友是线。传纸条的办法也被用来估计路上要走多久,或者推荐朋友。
聊天 AI。第 13 课的 Transformer 里,每个字都抬头看所有的字。这就像每个字都和所有字连着线,互相传纸条。
不是越多越好。轮数太多,大家的想法会越来越像,最后分不清谁是谁。
1. 在地上按右图贴 6 个号码,每人站一个号码。两人之间有线,才是邻居。
2. 每人偷偷在本子上写一种动物,这是你的“秘密”。
3. 传一轮:每人把自己知道的所有秘密抄在纸条上,给每个邻居各传一张。所有人同时传。
4. 读完纸条,把新知道的秘密记进本子。数一数,你现在知道几个人的秘密(算上自己),填进表里。
5. 一共传 3 轮。
| 号码 | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| 第 1 轮后知道几个 | ||||||
| 第 2 轮后知道几个 | ||||||
| 第 3 轮后知道几个 |
你会发现:传几轮,秘密就能走几步远。中间的 2 号和 3 号最先知道所有秘密,边上的人要多等一轮。原子传消息也是这样一步一步传开的。
1. 照着说明,用圆点和线画出每个分子。圆点里写 H、C、N 或 O(N 是氮)。
2. 数一数原子和线,填进表里。
3. 检查:氢有 1 只“手”,氧 2 只,氮 3 只,碳 4 只。每个原子的线数等于手数吗?
| 分子和说明 | 画在这里 | 原子 | 线 | 容易溶在水里吗 |
|---|---|---|---|---|
| 甲烷:1 个碳连着 4 个氢 | 很难溶 | |||
| 氨:1 个氮连着 3 个氢 | 非常容易溶 | |||
| 过氧化氢:2 个氧连在一起,每个氧再连 1 个氢 | 能和水随便混 | |||
| 酒精(乙醇):2 个碳相连。第 1 个碳连 3 个氢;第 2 个碳连 2 个氢和 1 个氧;氧再连 1 个氢 | 能和水随便混 |
找规律:容易溶在水里的 3 个分子,图里都有什么一样的地方?
你会发现:它们都有 O 或 N 直接连着 H,就像水本身一样,甲烷没有。只看图的样子,你就找到了一条规律。传纸条的电脑也是这样,看过很多分子图,自己总结规律。(这条规律很粗略,只对这几个分子管用。)
给家长和老师:本课讲的是 Justin Gilmer、Samuel S. Schoenholz、Patrick F. Riley、Oriol Vinyals、George E. Dahl 2017 年的论文 Neural Message Passing for Quantum Chemistry(ICML 2017)。论文提出消息传递神经网络(MPNN)框架,用消息函数、更新函数、读出函数三部分描述图神经网络,并把此前 8 种模型写成它的特例。最佳组合是边网络消息函数、GRU 更新和 Set2Set 读出(来自第 16 天的论文)。在 QM9(约 13.4 万个最多含 9 个重原子的有机小分子,13 个 DFT 计算的性质)上,13 个目标中有 11 个达到化学精度;输入原子间距离、显式加入氢原子都明显降低了误差。
“传纸条”“改想法”“汇总”“纸条看连线写”分别对应消息函数、更新函数、读出函数和边网络。“几只手”是化合价的简化说法。五原子传播图、六人站位图和活动步骤都是示意;画分子图活动里“O 或 N 连着 H 就易溶”是对氢键与极性的粗略简化,不是论文内容。讲义没有写 DFT 与 MPNN 的具体耗时。想深入可看本站的 第 21 天中文导读,代码见开源项目 30u30 第 21 天目录(英文)。
极客教育 jikejiao.com 原创讲义 · 2026-10