引言
Transformer 是过去十年深度学习最重要的架构创新,它的核心是自注意力:让序列中每个位置根据与其他位置的相关性动态聚合信息。既然注意力本质上是「相似度加权的求和」,而量子计算擅长处理高维向量空间的内积与叠加,一个自然的问题就浮现了:能不能把注意力机制搬到量子电路上?
「量子 Transformer」正是这条思路的产物。它吸引人的地方在于:注意力矩阵的规模随序列长度平方增长,而量子态天然是 2^n 维的——如果能把 n 个 token 的注意力编码进 n 个量子比特,似乎就能获得指数级的表示效率。但这条路布满了陷阱:数据加载的 2^n 门槛、量子核方法的经典可模拟性、去量子化结果对「量子加速」的釜底抽薪。本文系统梳理这些线索,既讲清楚「量子注意力」的构造思路,也给出诚实的评估框架。
前置:量子机器学习入门 、变分量子算法与贫瘠高原 、HHL 与量子线性代数 。
目录
- 1. 经典 Transformer 与自注意力回顾
- 2. 把注意力放到量子电路上的两种思路
- 3. 数据加载问题与振幅编码
- 4. 量子核方法与量子特征映射
- 5. 量子神经网络与数据重上传
- 6. 变分量子分类器与训练瓶颈
- 7. 量子优势的理论依据与质疑
- 8. 现有实现与实验规模
- 9. 务实评估:何时量子机器学习才可能有用
- 速查表
- 延伸阅读
1. 经典 Transformer 与自注意力回顾
自注意力的计算:
输入:序列 X ∈ R^(L × d),L 为序列长度,d 为特征维
投影:Q = X W_Q,K = X W_K,V = X W_V(W 为可学习矩阵)
注意力:
Attention(Q, K, V) = softmax( Q K^T / √d_k ) · V
- Q K^T 是 L × L 的相似度矩阵(每个位置对每个位置)
- softmax 按行归一化 → 注意力权重
- 乘以 V 得到加权聚合的结果
多头注意力与堆叠:
多头:把 d 维切成 h 份,各自做注意力再拼接
MultiHead = Concat(head_1, ..., head_h) · W_O
前馈:每个位置独立过两层 MLP
残差与层归一化:保证深层可训练
→ 复杂度:注意力 O(L^2 · d),是序列长度的平方
为什么它「看起来适合量子」:
1. 注意力矩阵是 L × L 的「关联矩阵」
→ 与量子态密度矩阵的「关联结构」形式相似
2. QK^T 本质是高维内积
→ 量子态的保真度/内积是天然操作
3. L^2 的复杂度增长
→ 若能编码进 log(L) 个量子比特,似乎有指数优势
心智:自注意力的核心是「相似度加权的聚合」——QK^T 是内积、softmax 是归一化、乘 V 是加权求和。这三步在量子语言里都有对应物(内积 = 保真度、归一化 = 迹归一、加权 = 受控操作),这正是「量子注意力」的灵感来源。
2. 把注意力放到量子电路上的两种思路
思路一:量子自注意力(quantum self-attention)。把输入 token 编码为量子态,用量子线路实现「相似度计算 + 加权聚合」:
1. 编码:把每个 token x_i 编码为量子态 |x_i⟩(振幅或角度编码)
2. 相似度:用 SWAP 测试或 Hadamard 测试估计 ⟨x_i|x_j⟩
→ 得到注意力矩阵的元素(但每次测量只得到一个元素)
3. 加权:用受控旋转把相似度作为控制,作用到值态 |v_j⟩
4. 读出:测量得到聚合结果
问题:注意力矩阵有 L^2 个元素,逐个估计需 L^2 次测量
→ 指数表示效率被 L^2 次读出吃掉
思路二:把注意力矩阵编码为量子态(量子线性代数路线)。用 HHL 类算法「一次性」求注意力:
把 softmax(QK^T) V 看成线性代数问题:
- 构造一个「注意力算符」A,其矩阵元由 Q、K 决定
- 把 V 编码为量子态 |V⟩
- 用 HHL/QSVT 求解 A|x⟩ ∝ |V⟩
→ 理论上对序列长度 L 有指数加速
代价:需要 QRAM 高效制备 |V⟩、需要 A 良态、需要只求全局量
→ 与 HHL 的瓶颈完全同构
两种思路的对照:量子自注意力用 SWAP 测试估相似度加受控加权,理论优势是表示效率,瓶颈是 L^2 次测量读出;注意力量子线性代数用 HHL/QSVT 求逆,理论上对序列长度 L 指数加速,但继承 QRAM、条件数、只求全局量等全部前提;量子核注意力用核方法替换内积,特征空间更大,但面临经典可模拟的风险。
心智:两条思路都被「读出」与「数据加载」卡住——量子自注意力要 L^2 次测量才能拿到注意力矩阵,量子线性代数路线则继承 HHL 的全部前提。这正是量子机器学习反复出现的模式:表示效率的优势被输入输出瓶颈抵消。
3. 数据加载问题与振幅编码
振幅编码的 2^n 门槛:
振幅编码:把 N 维经典向量 x 编码为 n = log2(N) 个量子比特的振幅
|x⟩ = (1/||x||) Σ_{i=0}^{N-1} x_i |i⟩
问题:一般情况下的态制备需要 O(N) 的线路深度
→ 指数级的表示效率,但加载代价是 O(N)
→ 「2^n 门槛」:n 个比特承载 2^n 个数,但装进去要 2^n 步
可能的规避路径:
1. QRAM(量子随机存取存储器):
假设存在可对数时间查询的量子内存
→ 但 QRAM 的物理实现困难,且自身有噪声问题
2. 数据天然量子:数据由量子过程产生(如量子模拟输出)
→ 此时加载「免费」,但应用场景极窄
3. 结构化数据:低秩、可积函数、稀疏
→ 加载变便宜,但这也正是「去量子化」能奏效的场景
4. 角度编码:把数据编码为旋转角 θ_i(每比特一个特征)
→ 加载便宜(O(n)),但特征空间是单比特旋转的乘积,表达能力受限
| 编码方式 | 比特数 | 加载代价 | 表达能力 |
|---|---|---|---|
| 振幅编码 | log2(N) | O(N)(一般) | 强 |
| 角度编码 | N | O(N) | 弱(乘积态) |
| QRAM 振幅编码 | log2(N) | O(log N)(假设) | 强 |
| 数据重上传 | N | O(N·层数) | 中到强 |
心智:振幅编码的「指数表示」与「指数加载」是一体两面——n 个比特能装 2^n 个数,但装进去要 2^n 步。除非数据天然是量子的、或有 QRAM、或数据高度结构化,否则这个门槛会吃掉一切优势。
4. 量子核方法与量子特征映射
核方法的量子版本:
经典核方法:K(x, x') = ⟨φ(x)|φ(x')⟩,φ 是特征映射
量子核方法:
用量子线路 U(x) 制备 |φ(x)⟩ = U(x)|0⟩
核函数 K(x, x') = |⟨0| U†(x') U(x) |0⟩|^2
→ 用 SWAP 测试或 Hadamard 测试估计
→ 特征空间是 2^n 维的量子态空间
# PennyLane:量子核矩阵(用 adjoint 拼接特征映射的逆)
import pennylane as qml
from pennylane import numpy as np
dev = qml.device("default.qubit", wires=2)
def feature_map(x):
for i in range(2):
qml.Hadamard(wires=i)
qml.RZ(2 * x[i], wires=i)
@qml.qnode(dev)
def kernel(x1, x2):
feature_map(x1)
qml.adjoint(feature_map)(x2) # 逆映射 → 核即 |⟨0|...|0⟩|^2
return qml.probs(wires=[0, 1])
量子核的争议:
支持方:
量子态空间维数 2^n 远大于经典特征空间
→ 可能捕捉经典核无法表达的模式
质疑方:
1. 量子核矩阵可被经典算法在多项式时间内近似
(若特征映射是「浅」的,经典可模拟)
2. 大量实验显示量子核未必优于经典 RBF 核
3. 训练需要 L^2 次核函数估计(L 为样本数)→ O(L^2) 量子线路调用
→ 「量子核优势」目前缺乏稳健证据
心智:量子核方法把「特征空间更大」当作优势,但更大的空间不等于更好的泛化——核方法的性能取决于特征映射是否匹配数据分布,而非维度高低。加上量子核矩阵的经典可近似性,这条路目前难以证明优势。
5. 量子神经网络与数据重上传
量子神经网络(QNN):
结构:数据编码层 + 可训练变分层 交替堆叠
|ψ(x, θ)⟩ = U_V(θ_L) U_E(x) ... U_V(θ_1) U_E(x) |0⟩
输出:测量某个可观测量,如 ⟨Z_0⟩
→ 与经典神经网络类比:编码层 = 输入,变分层 = 权重
数据重上传(data re-uploading):
核心思想:反复把输入 x 编码进电路(不是只编码一次)
单比特情形:|ψ(x, θ)⟩ = Π_k R_z(θ_k) R_y(x) |0⟩
定理(Pérez-Salinas 等,2020):
单比特线路反复重上传,可逼近任意连续函数
→ 表达能力的来源不是比特数,而是「重上传层数」
# 数据重上传的单比特分类器(PennyLane)
import pennylane as qml
dev = qml.device("default.qubit", wires=1)
@qml.qnode(dev)
def circuit(x, weights):
qml.RY(x[0], wires=0) # 第一次编码
for w in weights:
qml.RZ(w[0], wires=0)
qml.RY(w[1], wires=0)
qml.RY(x[1], wires=0) # 重上传
return qml.expval(qml.PauliZ(0))
# 输出经 sigmoid 作分类概率,用交叉熵损失训练 weights
表达能力 vs 可训练性:
重上传层数越多 → 表达能力越强(可逼近更复杂的函数)
但层数越多 → 越接近随机电路 → 贫瘠高原风险越高
→ 与经典深度学习「越深越强但越难训」的张力一致
心智:数据重上传是量子 ML 里「用层数换表达力」的关键技巧——它证明了单比特线路也能逼近任意函数,但代价是层数增加带来的可训练性问题。这条张力与经典深度学习同构,也决定了 QNN 的实际规模上限。
6. 变分量子分类器与训练瓶颈
变分量子分类器的典型流程:
1. 编码:把样本 x 编码为 |ψ(x)⟩
2. 变分:施加 U(θ),得到 |ψ(x, θ)⟩
3. 测量:估计 ⟨Z⟩ 或某个可观测量 → 分类得分
4. 损失:交叉熵 / 均方误差
5. 梯度:参数移位规则(每参数 2 次线路评估)
6. 更新:经典优化器
三重训练瓶颈:
1. 梯度估计成本:
参数移位规则每参数需 2 次线路评估
加上采样(每次评估需多 shots)→ 训练成本 = 参数量 × shots × 迭代数
2. 贫瘠高原:
深层/随机 ansatz 下梯度方差随比特数指数衰减
→ 训练信号消失
3. 噪声:
NISQ 设备的门误差使深层线路的梯度被噪声淹没
噪声本身也会诱导贫瘠高原
→ 三者叠加使「大规模 QNN 训练」极其困难
除三重瓶颈外,数据加载(振幅编码的输入瓶颈)与读出(测量次数的输出瓶颈)也共同限制了变分分类器的实际规模。
心智:变分量子分类器的瓶颈是「三重叠加」——梯度估计成本、贫瘠高原、硬件噪声相互放大。这也是为什么量子 ML 的实验规模长期停留在「少量比特 + 浅线路 + 小数据集」的原因。
7. 量子优势的理论依据与质疑
支持量子 ML 的论点:
1. 希尔伯特空间维数 2^n 提供「指数大的特征空间」
2. 某些采样/学习问题被证明有量子加速
(如 Aaronson 的量子学习样本复杂度结果)
3. 量子核在某些构造问题上可分离经典核
(存在人为构造的数据集,量子核优于所有经典核)
去量子化(dequantization)的质疑:
Tang 等(2018 起)的结果:
若数据可「经典采样」且矩阵低秩
经典算法也能达到 poly(log N) 复杂度
→ 许多「量子 ML 加速」的根源是低秩/可采样假设,而非量子性
更广泛的质疑:
1. 量子核矩阵可被经典近似(对浅特征映射)
2. 分离量子核与经典核的数据集往往是人为构造的
3. 端到端优势需要「输入量子可得 + 输出只需全局量」
→ 至今没有「真实数据 + 真实硬件 + 可信基线」下的量子 ML 优势
综合来看:指数大的特征空间成立但不等于更好泛化;构造性问题上的量子分离成立但数据人为;采样复杂度加速在特定假设下理论成立;端到端实用优势尚未证实;而「去量子化」则说明对低秩、可采样的数据,经典算法同样能加速。
心智:「量子 ML 有优势」的论证必须过三关——特征空间大不等于泛化好、构造性分离不等于实用分离、低秩假设下的加速可能被去量子化。在这三关都被跨过之前,量子 ML 的实用优势仍是开放问题。
8. 现有实现与实验规模
主流框架的 QML 模块:
PennyLane:
qml.qnn 模块(TorchLayer / KerasLayer)与经典框架对接
qml.kernels 提供核矩阵工具,支持参数移位、有限差分、伴随等梯度
Qiskit:
qiskit-machine-learning 提供 QSVC、VQC、SamplerQNN 等
qiskit-algorithms 提供 VQE / QAOA 的通用实现
TensorFlow Quantum / TorchQuantum:与 TF / PyTorch 集成
实验规模现状:
- 分类任务:多为 2~8 比特、几十到几百样本
- 量子核:多为 4~20 比特、数百样本
- 量子 Transformer 实验:多为「量子注意力子模块」的玩具验证
序列长度 2~4,嵌入维数 2~8
- 与经典基线对比:多数报告「持平或略差」
→ 规模与经典深度学习的差距是 6~10 个数量级
# Qiskit Machine Learning:变分量子分类器骨架
from qiskit_machine_learning.algorithms import VQC
from qiskit.circuit.library import ZZFeatureMap, RealAmplitudes
feature_map = ZZFeatureMap(feature_dimension=4, reps=2)
ansatz = RealAmplitudes(num_qubits=4, reps=3)
# vqc = VQC(feature_map=feature_map, ansatz=ansatz, ...)
心智:现有量子 ML 实验的规模与经典深度学习相差 6~10 个数量级——这不是「再等几年就能追上」的差距,而是原理层面受制于比特数、相干时间与数据加载。量子 Transformer 的实验目前只是「注意力子模块」的玩具验证,离实用序列建模极远。
9. 务实评估:何时量子机器学习才可能有用
可能有用的一组条件(必须同时满足):
1. 数据天然是量子的
(由量子设备产生,加载「免费」)
2. 输出只需全局量
(期望值、范数,而非完整预测向量)
3. 问题结构匹配量子优势
(如量子化学、量子模拟相关的学习任务)
4. 经典方法在此问题上确实吃力
(不是 XGBoost 能轻松解决的问题)
5. 有容错或早期容错硬件可用
→ 五条同时满足的场景非常稀少
对工程团队的判断清单:
- 这个任务的经典基线是什么?强不强?
- 数据从哪来?是量子的还是经典的?
- 需要读出全部输出还是只要一个标量?
- 现有的量子 ML 论文,其基线是否公平(同数据、同算力)?
- 是否有「去量子化」结果覆盖了这个场景?
→ 五个问题里有任何一个答不上来,就不该投入
| 场景 | 量子 ML 是否可能有用 |
|---|---|
| 量子化学/量子模拟相关学习 | 有可能(数据天然量子) |
| 经典表格数据分类 | 不太可能(经典基线极强) |
| 大规模图像/语言建模 | 目前不可能(规模差数量级) |
| 依赖低秩假设的任务 | 经典也可去量子化 |
心智:量子机器学习的现实定位是「在量子数据、量子任务上的一把专用工具」——对经典大数据上的经典 ML 任务,它目前没有任何可信优势。把量子 ML 当「通用加速器」是最大的误解;它更像「量子模拟生态里的一个学习模块」。
速查表
| 主题 | 结论 |
|---|---|
| 自注意力 | softmax(QK^T/√d_k)·V,复杂度 O(L^2·d) |
| 量子自注意力 | SWAP 测试估相似度,需 L^2 次测量 |
| 注意力量子线性代数 | HHL/QSVT 求逆,继承全部 HHL 瓶颈 |
| 振幅编码 | n 比特装 2^n 个数,但加载需 O(2^n) |
| 角度编码 | 加载便宜(O(n)),但表达力弱 |
| 量子核方法 | 特征空间大,但经典可近似、优势未证 |
| 数据重上传 | 单比特可逼近任意函数,靠层数换表达力 |
| 变分分类器 | 编码 + 变分 + 测量 + 参数移位梯度 |
| 三重瓶颈 | 梯度成本 + 贫瘠高原 + 硬件噪声 |
| 去量子化 | 低秩/可采样数据上经典也可加速 |
| 实验规模 | 2 |
| 可能有用条件 | 量子数据 + 全局量输出 + 结构匹配 + 容错硬件 |
一句话记忆:「量子 Transformer」的灵感来自自注意力的「相似度加权聚合」与量子态的「高维内积」,但两条实现路线(SWAP 测试估相似度、HHL 类量子线性代数求注意力)分别被 L^2 次测量读出与 HHL 的全部前提卡住;振幅编码的「n 比特装 2^n 个数」与「加载需 2^n 步」是一体两面,数据加载是量子 ML 的输入瓶颈;量子核方法把「特征空间大」当优势,但更大的空间不等于更好泛化,且量子核矩阵可被经典近似;数据重上传证明了单比特线路也能逼近任意函数,代价是层数带来的贫瘠高原;变分量子分类器面临梯度成本、贫瘠高原、硬件噪声的三重叠加;去量子化结果提醒我们许多「量子 ML 加速」的根源是低秩假设而非量子性;量子 ML 的现实定位是「在量子数据、量子任务上的专用工具」,只有在量子数据、全局量输出、结构匹配、经典基线吃力、容错硬件这五条同时满足时才可能有用。(延伸见 量子机器学习入门 、变分量子算法与贫瘠高原 。)
延伸阅读
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。