本課講 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