Hopfield Networks Is All You Need(论文精读笔记)
论文:Hubert Ramsauer 等,
arXiv:2008.02217v3(2021-04-28)
主题:把现代 Hopfield 网络(modern Hopfield networks)推广到连续状态,给出新的能量函数与更新规则,并证明其指数级存储容量与一次更新检索;更关键的是:其更新规则与 Transformer 的 key-value attention 完全等价。
1. 这篇论文到底做了什么(先给全局图景)
传统 Hopfield 网络是“联想记忆”:存一堆模式(patterns),给一个查询(query),通过迭代动力学把查询吸到最相似的记忆上。经典二值 Hopfield 的容量很有限(数量级随维度 $d$ 线性)。
这篇论文的核心贡献可以概括为四件事:
- (A) 给出连续状态的现代 Hopfield 能量函数:把原本主要用于二值/离散的现代 Hopfield(密集联想记忆、DAM)推广到连续向量。
- (B) 给出新的更新规则(一次前向即可)并证明收敛:提出的更新是能量下降的 CCCP 迭代,保证全局收敛到能量的驻点(局部极小或鞍点)。
- (C) 理论上给出强性质:在随机模式假设下,证明可存储的模式数对维度指数增长,并给出一次更新就能检索到固定点邻域、且检索误差指数小的界。
- (D) 关键等价:这个更新规则就是 Transformer/BERT 的 attention。因此 Transformer 的“注意力头”可以解释为:在 Hopfield 能量地形里落到全局平均点 / 亚稳态(metastable)/ 单个模式固定点之一。
2. 预备:符号与三个核心算子(lse、softmax、相似度)
论文设定:
- 存储(key)模式:$x_i \in \mathbb{R}^d$,$i=1,\dots,N$
组成矩阵 $X=(x_1,\dots,x_N)\in\mathbb{R}^{d\times N}$(以列向量存储)。 - 查询(state/query)向量:$\xi\in\mathbb{R}^d$
- 模式最大范数:$M=\max_i \|x_i\|$
- 温度(或锐度)参数:$\beta>0$
定义 log-sum-exp:
$$ \operatorname{lse}(\beta, z)=\frac{1}{\beta}\log\sum_{i=1}^N \exp(\beta z_i), $$
其中 $z\in\mathbb{R}^N$。当 $z=X^\top \xi$ 时,$z_i=x_i^\top \xi$ 表示查询与每个存储模式的点积相似度。
定义 softmax(向量形式):
$$ p=\operatorname{softmax}(\beta X^\top \xi)\in\mathbb{R}^N,\quad p_i=\frac{\exp(\beta x_i^\top \xi)}{\sum_{j=1}^N \exp(\beta x_j^\top \xi)}. $$
直觉:$\beta$ 越大,$p$ 越“尖”(更像 argmax);$\beta$ 越小,$p$ 越“平”(更像均匀平均)。
3. 连续状态现代 Hopfield:新的能量函数与更新规则
3.1 能量函数(Energy)
论文给出的新能量函数(为了连续状态可控、能量有界)为:
$$ E(\xi) =-\operatorname{lse}(\beta, X^\top \xi) \frac{1}{2}\xi^\top \xi \beta^{-1}\log N \frac{1}{2}M^2. $$
要点:
- $-\operatorname{lse}$ 是“吸向高相似度模式”的项(倾向让某些 $x_i^\top \xi$ 变大)。
- $\frac{1}{2}\|\xi\|^2$ 是二次正则项,用于防止连续状态下范数发散(经典二值 Hopfield 不需要,因为状态本来就固定范数)。
- 常数 $\beta^{-1}\log N+\frac12 M^2$ 用来把能量范围规范化;论文给出 $0\le E\le 2M^2$ 的界(见附录)。
3.2 更新规则(Update Rule)
关键更新:
$$ \xi^{\text{new}}=f(\xi)=X\,p=X\,\operatorname{softmax}(\beta X^\top \xi). $$
也就是说:先用 $\xi$ 与每个存储模式做相似度 $x_i^\top \xi$,softmax 得到权重 $p$,再对存储模式做一次加权平均得到新状态。
这条式子后面会直接变成 Transformer attention(见第 5 节)。
4. 理论性质:收敛、容量、一次更新检索与误差界
这一节是论文“把 Hopfield 当成可微层”成立的理论支柱:既要能量下降(训练稳定、可分析),又要一次更新就能“像一层网络那样”工作。
4.1 全局收敛(Theorem 1 & 2)
论文将更新解释为 CCCP(Concave-Convex Procedure) 对能量 $E$ 的优化迭代,结论是:
- Theorem 1(全局能量收敛):迭代 $\xi^{t+1}=f(\xi^t)$ 使能量 $E(\xi^t)$ 收敛到某个固定点能量 $E(\xi^*)$。
- Theorem 2(更强的收敛结构):$E(\xi^t)\to E^*$,且 $\|\xi^{t+1}-\xi^t\|\to 0$;序列要么收敛,要么其极限点集合是一个连通紧集;若该水平集上的驻点有限,则序列收敛到某个驻点。
工程意义:作为网络层使用时,一次更新就够;但如果你愿意,也可以多次更新来逼近固定点(论文也把它当作层的“额外功能”)。
4.2 “存储/检索”的定义(Definition 1)
论文用“每个模式周围一个球”来定义存储与检索:
- 若每个模式 $x_i$ 周围球 $S_i$ 内存在唯一固定点 $x_i^*$,且 $S_i$ 两两不交,则称 $x_i$ 被存储。
- 给定容差 $\varepsilon$,若一次更新得到 $\tilde x_i$ 满足 $\| \tilde x_i - x_i^*\|<\varepsilon$,称其被检索;检索误差常用 $\|\tilde x_i-x_i\|$ 表示。
4.3 指数级存储容量(Theorem 3)
结论(直观版):在随机模式(在球面上均匀采样)假设下,可存储模式数 $N$ 随维度 $d$ 指数级增长。论文给出一个带失败概率 $p$ 的下界形式(含 Lambert W 函数),并给出可行的数值例子(如 $d=20$ 或 $d=75$ 时的 $c$ 取值)。
原文给出的结论可整理为:
- 模式在半径
$$ M := K\sqrt{d-1} $$
的球面上随机取。
- 以至少 $1-p$ 的概率,可存储随机模式数满足
$$ N \;\ge\; p\cdot c^{(d-1)/4}, $$
其中 $c$ 由 Lambert W 函数表达并需满足论文中给出的条件(确保概率界成立;细节与推导见附录 Theorem A5)。
工程意义:把它当“记忆层”时,你可以通过增大关联空间维度(在 Transformer 里就是 $d_k$)来提升可“分辨/存储”的模式规模。
4.4 一次更新就能检索到固定点邻域(Theorem 4)
论文首先定义“分离度”(separation)来衡量某个模式 $x_i$ 与其他模式的区分程度:
$$ \Delta_i := x_i^\top x_i - \max_{j\ne i} x_i^\top x_j. $$
当 $\Delta_i$ 大(模式彼此更不相似)时,softmax 权重会更集中在 $i$ 上,从而一次更新就会非常接近对应固定点 $x_i^*$。
Theorem 4 给出一种典型形式的界:
$$ \|f(\xi)-x_i^*\|\le \|J_m\|_2 \,\|\xi-x_i^*\|, $$
并给出 $\|J_m\|_2$ 的上界,它随 $\Delta_i$ 增大而指数下降(因此一次更新误差指数小)。
4.5 检索误差指数小(Theorem 5)
Theorem 5 给出更直接的检索误差界(仍然体现对 $\Delta_i$ 的指数依赖):
$$ \|f(\xi)-x_i\| \le 2(N-1)\exp\!\Big( -\beta(\Delta_i - 2\max\{\|\xi-x_i\|,\|x_i^*-x_i\|\}M ) \Big)M. $$
并在进一步条件下得到近似更简洁的形式(核心仍是 $\exp(-\beta\Delta_i)$ 级别的衰减)。
工程意义:$\beta$ 越大、$\Delta_i$ 越大,检索越“硬”(更接近最近邻/原型);反之则更像“平均/聚合”。
5. 关键等价:Hopfield 更新规则就是 Transformer 的注意力
这一节是论文标题最“硬”的地方:attention = Hopfield update。
5.1 从 Hopfield 的 $\xi^{new}=X\operatorname{softmax}(\beta X^\top \xi)$ 到 attention
论文考虑:
- 存储(key)输入序列/集合:$y_i$(组成矩阵 $Y$,按行堆叠)
- 查询(query)输入序列/集合:$r_s$(组成矩阵 $R$,按行堆叠)
- 线性映射矩阵:$W_K, W_Q, W_V$
做映射:
$$ K = YW_K,\quad Q=RW_Q,\quad V = YW_KW_V, $$
并取
$$ \beta=\frac{1}{\sqrt{d_k}}. $$
将 Hopfield 的更新(对每个 query 做一次)乘上 $W_V$ 后,得到(论文的 Eq. (10)):
$$ Z = \operatorname{softmax}\!\Big(\frac{1}{\sqrt{d_k}}QK^\top\Big)\,V. $$
这就是标准 Transformer 的 scaled dot-product attention。
5.2 直觉解释:attention 其实是在做“能量下降的联想检索”
- $QK^\top$:每个 query 与每个 key 的相似度(点积)。
- softmax:把相似度转成概率权重。
- 乘 $V$:对 value 做加权平均,得到“检索结果”。
因此,一个 attention head 可以解释为:在 Hopfield 的能量地形上,query 被“吸”到某个能量驻点所代表的聚合上。
5.3 三类极小值/驻点(论文在摘要与第 2 节讨论)
论文强调该 Hopfield 动力学有三类典型“记忆态”:
- (1) 全局固定点:softmax 近似均匀 $p_i\approx 1/N$,输出近似所有模式的算术平均。
- (2) 亚稳态(metastable):某一簇模式互相相似、与其他模式分离,则出现对该子集的平均。
- (3) 单模式固定点:某个模式分离度很大时,softmax 近似 one-hot,输出近似该模式(或其固定点)。
这给“注意力头到底在干嘛”提供了一套能量/动力系统视角的解释框架。
6. Hopfield Layers:把注意力推广成“可存储/可迭代/可做池化”的通用层
论文把上述连续 Hopfield 网络包装成三类层,用于不同网络形态(传播向量 or 传播集合):
6.1 Hopfield:关联两个集合(set-to-set association)
- 输入:queries($R$)与 stored patterns($Y$)
- 输出:$Z$(与 $R$ 同形的集合输出)
- 本质:就是上节 attention 形式
- 关系:带残差/skip connection 的
Hopfield结构等价于 Transformer/BERT 的 attention block(论文明说)
适用:序列到序列、点集匹配、检索式方法、跨集合对齐。
6.2 HopfieldPooling:用可学习的“静态 query”对集合做池化/摘要
关键点:queries 是固定并可学习的 $Q$(少量 query 向量),用它去 memory(存储集合 $Y$)里“找”相关子集并做平均,从而把变长集合压成固定长度表示。
适用:
- 多实例学习(MIL):从一个 bag(大量实例)里挑出/聚合少数关键实例
- pooling/平均替代
- 类似 LSTM/GRU 的“记忆读出”(论文强调它可替代多种层)
6.3 HopfieldLayer:记住训练集/原型/参考集,并对输入做检索式映射
特点:
- memory 是固定集合(可以是训练集、参考集、原型集,或一个可学习矩阵)
- 输入是一组 queries $R$,输出也是一组 $Z$
论文指出它可模拟或替代:
- 近邻/加权近邻(kNN 视角)
- 学习向量量化(LVQ)
- 某些 SVM/原型方法(本质都是“相似度加权的标签/向量平均”)
- Transformer 的 encoder-decoder attention 也可视为
HopfieldLayer(memory 填 encoder 输出)
7. 实验与观察:为什么这个视角有用
7.1 BERT/Transformer 注意力头:大多是“亚稳态平均”
论文用一个指标衡量“一个头平均了多少个 token/模式”:
- 计算 softmax 权重里最少需要多少个最大的权重之和才能达到 0.90,记为 $k$
$k$ 越大,说明平均的范围越广(更接近全局固定点);$k$ 越小,说明更偏向少数 token(更像单模式或小亚稳态)。
把头按 $k$ 的大小分成 4 类(从“非常大范围平均”到“小范围平均”)。结论性观察:
- 低层更常见“非常大范围平均”(接近全局固定点)。
- 中层常出现“大亚稳态”和“小亚稳态”。
- 高层更多“中等大小亚稳态”。
7.2 多实例学习(MIL)与免疫组库分类
论文用 HopfieldPooling 做 MIL:一个可学习 query 去从 bag 中抓取与类别相关的实例并做平均。
报告的关键结论(正文给出代表性数字与表格):
- 在 Tiger/Elephant/UCSB 等 MIL 基准上取得(或接近)SOTA(见 Table 1)。
- 在免疫组库分类(每个样本包含约 30 万实例的超大 MIL)上表现强,并优于多种传统方法(如基于 k-mer 的 SVM、logistic、burden test 等)。
7.3 UCI 小数据集:深度学习通常吃亏,HopfieldLayer 借助“记忆”反而占优
论文强调:深度网络在小样本表格数据上经常不如 RF/SVM。HopfieldLayer 由于可以“存训练样本表示并做检索式读出”,在 75 个小数据集上取得新的 SOTA/最优平均排名(Table 2 给出统计显著性比较)。
7.4 药物设计(MoleculeNet 类任务)
用 HopfieldLayer 将训练数据作为 memory,以输入为 query,对标签/目标做相似度加权读出,报告在 SIDER、BACE 等数据集上达到 SOTA(正文给出例如 SIDER AUC $\approx 0.672$、BACE AUC $\approx 0.902$ 的结果,详见附录表格)。
8. 读完你应该带走的“可操作要点”
- attention 本质上是一次 Hopfield 更新:能量视角能解释“为什么会平均、什么时候会变成近似最近邻”。
- $\beta$ 控制检索硬度:$\beta$ 大更偏向单模式/小簇;$\beta$ 小更偏向大范围平均(可把它看成 temperature)。
- 分离度 $\Delta_i$ 决定是否会出现单模式固定点:模式/特征越可分,一次更新越像“直接检索到某个原型”。
- Hopfield layers 提供比标准 attention 更丰富的接口:
例如多步更新(更精确逼近固定点)、可学习静态 query(池化/MIL)、可把训练集当作显式记忆(小样本表格任务)。
9. 附录(论文给的“工具箱”)
论文附录结构非常完整,建议按目的查阅:
- A.1:连续现代 Hopfield 的完整理论分析(能量、收敛、固定点性质、学习关联等)
- A.2:softmax / lse / Legendre / Lambert W 的性质与引理
- A.4:从 Hopfield 到 Transformer attention 的更细推导
- A.6:
Hopfield layers的 PyTorch 实现与使用手册(包含多头、shape、更新步数等)