本課講 2018 年的一篇文章。DeepMind 公司的 Santoro 和同事們把電腦的記憶分成幾個「抽屜」,還讓抽屜們互相商量。他們管它叫關係記憶核心。
先用一張紙蓋住下面方框裡的字。請同伴慢慢念一遍,只念一遍。你只聽,不許寫。
小明 1 米 32,小紅 1 米 45,小剛 1 米 28,小麗 1 米 39,小軍 1 米 35,小芳 1 米 41。
第 ① 題只要記住一件事。第 ②③④ 題難多了:你得同時記住 6 個人,還要拿他們互相比。這節課的主角,就是一種擅長「記住好幾樣,再互相比」的電腦記憶。
第 2 課的 LSTM 有一條記憶傳送帶,靠三扇門挑著擦掉、寫進。可是傳送帶上只有一份記憶。讀到的所有東西,都要揉進這一份裡。這就像把所有東西倒進同一個大口袋。
想問「小紅和小芳誰高」,得先從口袋裡把兩個人翻出來,才能比。東西一多,口袋裡就亂成一團。第 17 課的格子板能分開放,但是格子之間不說話。
Santoro 他們的新零件叫關係記憶核心,英文縮寫是 RMC。「關係」就是東西和東西之間的聯繫,比如「誰比誰高」「誰離誰遠」。
RMC 把記憶分成幾個記憶槽。你可以把記憶槽想成抽屜,一個抽屜放一份記憶。抽屜的數量是固定的,比如 4 個或 8 個。每個抽屜放什麼,沒有人規定。電腦在訓練中自己學會怎麼分。
大口袋:所有東西混在一起,要用時先翻找、再拆開。
格子板(第 17 課):分開放了,可是格子之間不交流。
RMC 的抽屜:分開放,抽屜之間還會互相看、互相比。這是它最特別的地方。
RMC 也像第 1 課那樣,一樣一樣往下讀。每讀到一樣新東西,它就做下面 4 件事:
第 1、2 步就是第 13 課講過的注意力:每個「字」抬頭看一看大家,決定該多關注誰。只是這一次,抬頭的不是句子裡的字,而是記憶裡的抽屜。
誰來提問?只有抽屜會提問。新東西不提問,只被抽屜們看。所以看完以後,抽屜還是那麼多個。
好幾組同時看:和第 13 課一樣,抽屜們分好幾組同時看。
門從哪來?第 4 步借用了第 2 課的門。這裡用兩扇:遺忘門管擦掉多少舊的,輸入門管寫進多少新的。
還記得第 19 課的比較器嗎?它把一張圖裡的東西兩兩拿來比。可是它只能比同時擺在眼前的東西。RMC 要比的東西是先後讀到的,所以得先放進抽屜,再讓抽屜互相比。你可以說:RMC 把第 19 課的兩兩比較,搬進了記憶裡。
科學家專門出了一道考「記住再比較」的難題,叫第 N 遠任務。電腦一個一個讀進 8 個點的位置。讀完後回答:離第幾號點第幾遠的,是哪一個點?
真正的考題裡,每個點不在紙上,而是用一串數字表示。我們畫在方格紙上,換成 6 個點來體會(示意):
問題:離 3 號點第 2 遠的是哪個點?
先量出 3 號點到其他每個點的距離,再從遠到近排隊:
2 號 → 5 號 → 1 號 → 6 號 → 4 號
排第 2 的是 5 號。如果問「第 3 遠」,答案就是 1 號。
這道題難在哪?每個點都可能是答案,所以一個也不能丟。還要拿它們和指定的點一個一個比距離,再排隊。這正是「記住好幾樣,再互相比」。
8 個點裡挑 1 個,瞎猜只能 8 次對 1 次。LSTM 大約 10 次對 3 次。RMC 大約 10 次對 9 次。抽屜加上互相比較,差別就這麼大。
論文還考了別的題:
· 讀一小段簡單的電腦程序,說出運行結果:多數情況下比 LSTM 好。
· 玩吃豆子走迷宮的 Mini PacMan 等遊戲:把 LSTM 換成 RMC,得分更高。
· 讀維基百科、老書和新聞,猜下一個詞:猜得比 LSTM 更準。
說實話,RMC 這個零件後來沒有流行起來。第 13 課的 Transformer 贏了。電腦夠快時,乾脆讓整段話裡的每個字都互相看,比一步步更新幾個抽屜更簡單。
· 可是抽屜的問題又回來了:ChatGPT、Claude 這些聊天 AI 聊得越久,要回頭看的字就越多,越來越慢、越來越貴。科學家又在研究「只用固定幾個格子的記憶」。他們要回答的,正是 RMC 的問題。
· 分條記、再比較:有的 AI 助手會把記住的事分成一條一條存起來。用的時候,挑出有關的幾條,再和眼前的問題對照。
準備:A 念卡片。B 當「大口袋」,用一條畫了 12 個方格的紙。C 當「抽屜」,用 4 張各畫 3 個方格的便利貼。一格寫一個字或數字。
1. A 說明最後問「誰跳得多」。再念 6 張卡片,每張念一遍,停 10 秒:A 85、B 72、C 93、D 80、E 66、F 88(1 分鐘跳幾下)。
2. B 只往紙條裡寫,可以擦改,不許畫線和箭頭。C 每個抽屜最多寫 3 格,抽屜之間可以畫寫著「>」的箭頭。唸完後,A 蓋住卡片,問下表的問題。
| 問題 | 第 1 多 | 第 2 多 | 第 3 多 | 比 D 多的人數 |
|---|---|---|---|---|
| 大口袋 B | ||||
| 抽屜 C |
你會發現:格子一樣多,抽屜卻更好用。新卡片來了,只改一個抽屜。箭頭讓「誰比誰多」一眼就能看出。大口袋的字擠成一串,得先拆開才能比。
1. A 在方格紙上點 6 個點,編 1 到 6 號。A 問「離 3 號點第 2 遠的是幾號?」B 用尺子量 3 號點到每個點的距離,填進下表,再從遠到近排隊回答。
| 3 號點到 | 1 號 | 2 號 | 4 號 | 5 號 | 6 號 |
|---|---|---|---|---|---|
| 距離(釐米) |
2. A 再問「第 4 遠是幾號?」B 還要重新量嗎?
3. 挑戰:A 在新紙上點 6 個點。B 看 30 秒後蓋住,憑記憶答「離 5 號點第 2 遠的是幾號?」答對了嗎?
你會發現:排好的隊,換個「第幾遠」也能用。憑記憶就難多了:6 個點都得記住,還要互相比距離。
給家長和老師:本課講的是 Adam Santoro、Ryan Faulkner、David Raposo 等人 2018 年發表在 NeurIPS 的論文 Relational recurrent neural networks。論文提出關係記憶核心(RMC):隱狀態是若干記憶槽組成的矩陣,每步用多頭點積注意力更新(查詢只來自記憶,鍵和值來自記憶加新輸入),再做逐行 MLP,最後用類似 LSTM 的輸入門和遺忘門控制保留多少。第 N 遠任務上,RMC 約 91%,LSTM 約 30%。RMC 在程序求值、Mini PacMan 等強化學習環境和 WikiText-103 等語言建模數據集上也超過 LSTM。
講義把記憶槽說成「抽屜」,逐行 MLP 說成「自己整理一下」,多頭注意力說成「好幾組同時看」。「LSTM 像大口袋」是比喻,指它的記憶是一個向量。「瞎猜約 12%」是按 8 選 1 算的參考線,不是論文數據。熱身題、口袋和抽屜圖、抽屜互相看的圖、6 個點的方格圖(論文依次輸入 8 個多維向量)、兩個動手遊戲都是我們編的示意。想深入可看本站的 第 20 天中文導讀,代碼見開源項目 30u30 第 20 天目錄(英文)。
極客教育 jikejiao.com 原創講義 · 2026-10