第 1 课你已知 KGC 只吃外生;第 2 课 HCM 不碰外生。这一课把 KGC 的精确数据流拆开:统计先验 $S$ 从哪来、双线性公式为何等价两条投影支路、log-gating 怎么掐断零先验、条件如何注入 $Y_s$ 变成 $\tilde Y_s$。读完后你应能默写 Eq.10–14,并说清"为什么不直接把 $S$ 拼到输入上"。
KGC 要解决什么
纯数据驱动的内生–外生注意力(TimeXer 式交叉注意、简单拼接)容易学到训练集里的静态伪相关。在确定性预测里这已经有害;在概率生成的多步 ODE 积分里,错误相关会沿轨迹滚雪球放大,OOD 关系漂移时更脆。
朴素做法是"把先验权重直接拼到输入端"。论文明确反对:这改不了注意力投影空间本身——投影仍不随统计环境移动。KGC 改在查询投影子空间里做先验调制:让 $s_{ij}$ 插值两套投影,而不是在输入上加一个 bias。
链上角色:KGC 定义"有条件模式 $v_\theta(\cdot,c)$ 里 $c$ 如何进入网络"。它回答 how to condition,不回答 how hard to condition(那是 CFG 的 $\gamma$)。
统计先验 $S$:一张 $N\times D$ 的依赖图
$$S=\{s_{ij}\mid 1\le i\le N,\,1\le j\le D\}\in\mathbb R^{N\times D}$$
$s_{ij}$ = 第 $i$ 个内生变量与第 $j$ 个外生变量的统计关联强度。从输入上下文显式提取(非学习),主实验用 Pearson 相关;消融含 Granger 因果(附录 B.2 有伪代码)。
- Pearson:线性共变强度。适合"同期一起动"的关系。
- Granger:过去外生是否对预测内生提供额外信息。适合"过去驱动现在"的关系。
消融结论(组会可用):同阶段 Pearson 整体优于 Granger;混合时历史 Granger + 未来 Pearson 最好——因果贴"过去驱动",相关贴"同期/未来协变"。
进入注意力前先归一化到 $[0,1]$:
$$\tilde S=\mathrm{Norm}(|S|)\in[0,1]^{N\times D}.$$
核心公式:双线性插值投影空间
$$\boxed{\mathrm{Attn}(q_i,k_j)=q_i\,(W_1+s_{ij}\,W_2)\,k_j^\top}\qquad\text{(Eq.10)}$$
把括号展开,立刻看清两路:
$$q_i W_1 k_j^\top + s_{ij}\,(q_i W_2 k_j^\top).$$
- 第一项:数据驱动子空间 $W_1$,始终参与。
- 第二项:先验注入子空间 $W_2$,强度由 $s_{ij}$ 缩放。
$s_{ij}$ 大 → 更听 $W_2$ 方向的交互;$s_{ij}=0$ → 完全退回 $W_1$ 的纯数据驱动。这就是"按先验强度在两套投影之间动态插值"。
别把 Eq.10 理解成加性 bias:$s_{ij}$ 不是加到 attention score 上的偏置,而是改了 query 投影矩阵本身($W_1+s_{ij}W_2$)。投影空间随统计环境移动——这才是相对"输入端拼先验"的结构优势。
实现分解:不显式构造满双线性矩阵
Eq.10 对每个 $(i,j)$ 都有不同的投影矩阵 $W_1+s_{ij}W_2$,直接实现代价高。论文用两条因子化 query–key 支路等价实现,不显式形成满双线性矩阵。
以历史外生注入为例(query 来自流状态 $Y_s$,key 来自 $X_{\text{exo}}$):
$$
\begin{aligned}
A_b &= \frac{(Y_s W_{1,q})\,(X_{\text{exo}} W_{1,k})^\top}{\sqrt d},\\
A_g &= \frac{(Y_s W_{2,q})\,(X_{\text{exo}} W_{2,k})^\top}{\sqrt d}.
\end{aligned}
\qquad\text{(Eq.11–12)}
$$
权重形状(历史侧):
- $Y_s\in\mathbb R^{N\times F}$,$X_{\text{exo}}\in\mathbb R^{D\times T}$
- $W_{1,q},W_{2,q}\in\mathbb R^{F\times d}$(query 从 $F$ 步状态投到 $d$)
- $W_{1,k},W_{2,k}\in\mathbb R^{T\times d}$(key 从 $T$ 步历史外生投到 $d$)
- 故 $A_b,A_g\in\mathbb R^{N\times D}$——内生 $\times$ 外生依赖图
与 Eq.10 的对应:
- $A_b$ 的 $(i,j)$ 元 $\approx q_i W_1 k_j^\top$(数据支)
- $A_g$ 的 $(i,j)$ 元 $\approx q_i W_2 k_j^\top$(先验支)
- 用 $\tilde S\odot A_g$ 实现 $s_{ij}\cdot(q_i W_2 k_j^\top)$
最终注意力矩阵再加 log-gating:
$$\boxed{A=\mathrm{Softmax}\!\big(A_b+\tilde S\odot A_g+\log(\tilde S+\delta)\big)}\qquad\text{(Eq.13)}$$
其中 $\delta$ 是数值稳定的小常数。
log-gating:先验为零就掐断
$\log(\tilde S+\delta)$ 是加性门控:
- $\tilde s_{ij}\to 0$ 时,$\log(\tilde s_{ij}+\delta)\to\log\delta$,取 $\delta$ 足够小则该项 $\to-\infty$,Softmax 后对应权重 $\approx 0$。
- $\tilde s_{ij}$ 大时,$\log$ 项有限,不主导,主要靠 $A_b+\tilde S\odot A_g$ 决定分数。
论文原话:当统计知识为零时,"attention score is strongly suppressed"。直觉:若先验说"这对变量无关",就不该让数据驱动注意力偷偷学出假相关——log-gating 是硬闸门,不只是软缩放。
三层防护:$A_b$(总有)+ $\tilde S\odot A_g$(先验缩放的第二子空间)+ $\log(\tilde S+\delta)$(零先验硬掐)。三者叠在一起,才叫"知识引导",不是"知识提示一下"。
条件注入:从 $A$ 到 $\tilde Y_s$
$$\boxed{\tilde Y_s=A\,X_{\text{exo}}\,W_v+Y_s\in\mathbb R^{N\times F},\qquad W_v\in\mathbb R^{T\times F}}\qquad\text{(Eq.14)}$$
张量形状走读:
- $A\in\mathbb R^{N\times D}$:每个内生变量对 $D$ 个外生变量的注意力权重
- $X_{\text{exo}}\in\mathbb R^{D\times T}$:$A X_{\text{exo}}\in\mathbb R^{N\times T}$——按注意力加权聚合外生历史
- $(A X_{\text{exo}})W_v\in\mathbb R^{N\times F}$:把 $T$ 步聚合结果投影到 $F$ 步预测空间
- $+Y_s$:残差连接,保留原流状态
$\tilde Y_s$ 才是喂给速度场网络的条件化状态。源仍是 $Y_0$;KGC 改的是路径上每一步状态如何听外生。
顺序注入:先历史、后未来
历史外生 $X_{\text{exo}}$ 与未来外生 $Y_{\text{exo}}$ 顺序用同一套方法注入。演示用历史侧;未来侧时间维从 $T$ 换成 $F$,对应 key/value 投影权重形状随之变为 $F\times d$、$F\times F$ 一类。未来外生不可用时,跳过该步即可——这是 KITE 兼容"仅历史外生"设定的接口。
Y_s (N×F) ──┬── W1,q ──► Q1 ──┐
│ ├──► A_b = Q1 K1^T / √d
X_exo (D×T) ─┼── W1,k ──► K1 ──┘
│
├── W2,q ──► Q2 ──┐
│ ├──► A_g = Q2 K2^T / √d
└── W2,k ──► K2 ──┘
S (N×D) ──► |·| ──► Norm ──► S̃ ∈ [0,1]^{N×D}
│
A = Softmax( A_b + S̃ ⊙ A_g + log(S̃+δ) ) ∈ R^{N×D}
│
┌───────────────┘
▼
A · X_exo · W_v ∈ R^{N×F} + Y_s = Ỹ_s
│
▼
(可选)再用 Y_exo 同样注入一次
│
▼
条件化状态 ──► v_θ(·, s, c̃)
一张表收口
组会上讲 KGC,建议这条线:"我们不把统计先验拼到输入上,而是改 query 投影:Attn = q(W1 + s·W2)k^T。实现上拆成两条支路 Ab(数据)和 Ag(先验),用 S̃ ⊙ Ag 做缩放,再用 log(S̃+δ) 在先验为零时硬掐注意力。query 来自流状态 Ys,key 来自外生,A 是 N×D 的内生–外生依赖图,最后 A·X_exo·Wv 残差加回 Ys 得到条件化状态。历史/未来外生顺序注入。这样先验改的是投影空间本身,而不是输入上的一个偏置——这是抗伪相关的结构关键。"
自测
Check 1
Eq.10 里 $s_{ij}$ 作用在哪里?
对。$s_{ij}$ 调制的是投影矩阵本身,不是 score 上的加性 bias。这是相对"输入端拼先验"的结构差异。
Check 2
$\log(\tilde S+\delta)$ 在 $\tilde s_{ij}\to 0$ 时做什么?
对。$\log(\tilde s+\delta)\to-\infty$,Softmax 后该 $(i,j)$ 权重≈0——先验说无关时硬掐,防数据支偷偷学假相关。
Check 3
$A_b+\tilde S\odot A_g$ 与双线性展开的对应是?
对。展开 $q(W_1+sW_2)k^\top=qW_1k^\top+s(qW_2k^\top)$,正是 $A_b+\tilde S\odot A_g$ 的两条支路。这是"实现分解=双线性公式"的关键桥梁。
组会高频追问:KGC 和 CFG 谁先谁后?——KGC 定义有条件通路的结构;CFG 在"有 $c$ / 无 $c$"两种速度之间外推。若 KGC 学到的条件差本身被伪相关污染,加大 $\gamma$ 等于放大脏信号。所以 KGC 是 CFG 的前提,不是可选项。下一课讲 CFG 时会把这条链钉死。