如果观察过去三十年的神经网络架构,会发现一个很有意思的现象:很多曾经非常重要的结构逐渐退出了主流舞台,但门控机制(Gating Mechanism)却一直存在。
从早期的 Mixture of Experts,到 LSTM、GRU,再到 Highway Network、GLU;从 Transformer 中广泛使用的 SwiGLU,到今天大语言模型中的 Sparse MoE、Gated Attention,门控机制不断以不同形式出现。这些模型看起来差异很大,但背后其实共享着一个非常简单的思想:
让神经网络自己决定,哪些信息应该通过,哪些信息应该被抑制,以及哪些计算应该被执行。
从这个角度看,门控机制的发展过程,也是神经网络从"固定的信息处理流程"逐渐走向"输入相关的动态计算"的过程。
门控机制提出的背景以及发展脉络
1. 为什么神经网络需要"门"?
最基本的神经网络计算通常可以写成:y=f(Wx+b)y=f(Wx+b)y=f(Wx+b)对于给定的网络结构,每个输入基本都会经过相同的计算路径。这种方式简单有效,但也存在一个问题:**并不是所有信息在任何时候都同等重要。**例如,在处理一句话时:
- 有些信息需要被长期保存;
- 有些信息使用之后应该被遗忘;
- 有些特征应该传递给下一层;
- 有些特征应该被抑制;
- 有些 token 可能需要某一类参数处理;
- 另一些 token 可能更适合另一组参数。
如果网络只能不断执行x→f(x)→f(f(x))→⋯ x \rightarrow f(x) \rightarrow f(f(x)) \rightarrow \cdots x→f(x)→f(f(x))→⋯那么所有输入基本共享同样的处理方式。门控机制提供了另一种可能:y=g(x)⊙f(x)y=g(x)\odot f(x)y=g(x)⊙f(x)其中 (g(x)) 是一个由输入决定的 gate。于是网络除了学习:"应该计算什么?"
,还可以学习:"计算出来的信息应该通过多少?"。这成为后来很多神经网络架构的重要设计思想。
2. 1991:Mixture of Experts------决定"让谁来计算"
如果从广义的 gating 来看,门控机制在神经网络中的重要早期应用甚至早于 LSTM。
1991 年,Jacobs、Jordan、Nowlan 和 Hinton 提出了 Adaptive Mixtures of Local Experts 。其基本结构包含多个 Expert:E1(x),E2(x),⋯ ,En(x)E_1(x),E_2(x),\cdots,E_n(x)E1(x),E2(x),⋯,En(x),同时使用一个 Gating Network:g(x)=softmax(Wgx)g(x)=\operatorname{softmax}(W_gx)g(x)=softmax(Wgx)决定不同 Expert 对最终结果的贡献:y=∑igi(x)Ei(x)y=\sum_i g_i(x)E_i(x)y=i∑gi(x)Ei(x)这里的 gate 控制的不是某个神经元,而是:当前输入应该交给哪个专家处理。这形成了门控机制的一条重要发展路线:
Gate → 动态选择计算路径。
三十多年以后,大语言模型中的 Sparse Mixture of Experts,本质上仍然延续着这个思想。
3. 1997:LSTM------决定"记住什么"
另一条影响更大的门控路线来自循环神经网络。传统 RNN 使用:ht=f(Wxxt+Whht−1)h_t=f(W_xx_t+W_hh_{t-1})ht=f(Wxxt+Whht−1)不断更新隐藏状态。理论上,hth_tht可以保存之前的信息;但在训练过程中,普通 RNN 很难学习非常长距离的依赖关系,其中一个重要原因就是梯度消失或梯度爆炸。1997 年,Hochreiter 和 Schmidhuber 提出了 Long Short-Term Memory(LSTM)。
LSTM 的关键思想之一就是:不要让隐藏状态无条件更新,而是显式学习如何控制信息流 。现代常见的 LSTM 包含:Input Gate,Forget Gate,Output Gate。例如遗忘门:ft=σ(Wfxt,ht−1+bf)f_t=\sigma(W_fx_t,h_{t-1}+b_f)ft=σ(Wfxt,ht−1+bf)输入门:it=σ(Wixt,ht−1+bi)i_t=\sigma(W_ix_t,h_{t-1}+b_i)it=σ(Wixt,ht−1+bi)然后更新记忆状态:ct=ft⊙ct−1+it⊙c~tc_t=f_t\odot c_{t-1}+i_t\odot \tilde c_tct=ft⊙ct−1+it⊙c~t从直觉上看:
- ftf_tft:过去的信息保留多少;
- iti_tit:新的信息写入多少。
需要注意的是,1997 年原始 LSTM 与今天教科书中常见的 LSTM 并不完全相同。后来广泛使用的 Forget Gate 是 Gers、Schmidhuber 和 Cummins 在后续工作中引入的,用于让 LSTM 主动清除不再需要的内部状态。
从此,门控机制有了一个非常经典的解释:
神经网络不仅拥有记忆,还应该拥有管理记忆的机制。
4. 2014:GRU------更简洁的门控状态更新
2014 年提出的 Gated Recurrent Unit(GRU) 进一步简化了 LSTM。GRU 主要使用两个 gate:Reset Gate,Update Gate。Update Gate 决定:
当前状态应该保留多少旧信息,又应该加入多少新信息?
因此 GRU 的状态更新可以理解为旧状态和新状态之间的一种数据相关插值。这一时期,门控已经形成一种比较稳定的设计范式:
不要让状态无条件变化,而是让网络学习"变化多少"。
5. 2015:Highway Network------从时间维度走向网络深度
LSTM 中的 gate 主要控制信息如何沿着时间维度 传播。Highway Network 则把类似思想应用到了网络深度 。一个典型的 Highway Layer 可以表示为:
y=H(x)⊙T(x)+x⊙(1−T(x)) y=H(x)\odot T(x)+x\odot(1-T(x)) y=H(x)⊙T(x)+x⊙(1−T(x))其中:H(x)H(x)H(x) 是非线性变换;T(x)T(x)T(x) 是 Transform Gate。网络可以学习:
当前这一层究竟应该对输入做多少变换,又应该保留多少原始信息。
这实际上与后来 Residual Connection 所解决的问题非常接近:如何让信息和梯度更容易穿过深层网络。只不过 ResNet 使用的是固定的 identity shortcut,而 Highway Network 使用的是可学习的 gate。
因此门控机制的作用从:控制时间上的记忆 扩展到了:控制深层网络中的信息流。
6. 2016--2020:GLU 与 SwiGLU------门进入基本计算单元
随后,一个更加简洁的门控结构开始产生重要影响:Gated Linear Unit(GLU) 。
其经典形式为:GLU(x)=(xW1+b1)⊙σ(xW2+b2) \operatorname{GLU}(x)=(xW_1+b_1)\odot\sigma(xW_2+b_2) GLU(x)=(xW1+b1)⊙σ(xW2+b2)可以把它理解为两条并行分支:第一条负责产生内容:xW1xW_1xW1,第二条负责产生 gate:σ(xW2)\sigma(xW_2)σ(xW2)。然后两者逐元素相乘,也就是说: 一条支路产生信息,另一条支路决定这些信息应该通过多少。 后来,人们把 sigmoid 替换为不同激活函数,产生了:ReGLU,GEGLU,SwiGLU。例如 SwiGLU 可以写成:SwiGLU(x)=Swish(xW1)⊙(xW2) \operatorname{SwiGLU}(x) =\operatorname{Swish}(xW_1)\odot(xW_2) SwiGLU(x)=Swish(xW1)⊙(xW2) 2020 年,Noam Shazeer 系统研究了这些 GLU 变体在 Transformer FFN 中的效果。此后,SwiGLU 逐渐成为许多大语言模型 Feed Forward Network 的常见设计。这件事很值得注意:Transformer 虽然淘汰了 LSTM,但并没有淘汰 gating。 门控只是从 recurrent state 中迁移到了 Transformer 的基本计算单元中。
7. 2017 之后:Sparse MoE------从控制信息流到控制计算流
与此同时,另一条源自 1991 年的 MoE 路线重新受到关注。2017 年,Shazeer 等人提出 Sparsely-Gated Mixture-of-Experts Layer。
核心思想是:假设网络中存在大量专家:E1,E2,⋯ ,EN E_1,E_2,\cdots,E_N E1,E2,⋯,EN 对于每一个输入,不必运行全部专家。Router / Gate 只选择少数几个:S(x)=TopK(g(x)) S(x)=\operatorname{TopK}(g(x))S(x)=TopK(g(x)) 最终:y=∑i∈S(x)gi(x)Ei(x)y=\sum_{i\in S(x)}g_i(x)E_i(x) y=i∈S(x)∑gi(x)Ei(x) 这样带来一个非常重要的结果:Total Parameters≠Activated Parameters \text{Total Parameters} \neq \text{Activated Parameters} Total Parameters=Activated Parameters 模型可以拥有非常大的总参数量,但一次前向传播只使用其中的一小部分。这就是 Conditional Computation。 因此,gate 控制的对象发生了明显变化:
LSTM 中哪些信息应该传播 ?MoE 中哪些参数和计算应该被激活?
8. 2020 年代:MoE 成为大语言模型的重要扩展路线
进入大模型时代之后,MoE 开始快速发展。GShard、Switch Transformer、GLaM 等模型证明了 Sparse MoE 可以显著增加模型容量,而不要求计算量与总参数量同比增长。
随后,Mixtral、DeepSeekMoE 等模型进一步推动了这一架构的发展。例如 Mixtral 8×7B 在每一层拥有 8 个 Feed Forward Experts,但每个 token 只选择其中 2 个。也就是说,不同 token 实际上可能经过不同的 FFN:TokenA→E1,E4 Token_A\rightarrow E_1,E_4 TokenA→E1,E4 TokenB→E2,E7 Token_B\rightarrow E_2,E_7 TokenB→E2,E7
DeepSeek-V3 则进一步展示了这种思路在超大规模模型中的效果:模型拥有约 671B 总参数,但每个 token 激活约 37B 参数。因此,在现代 MoE 大模型中,仅仅询问:"这个模型有多少参数?" 已经不足以描述其计算特征。还必须询问:"每个 token 实际激活多少参数?",而连接这两个数字的核心机制,就是 Router / Gate。
9. 2025 之后:Gate 又进入 Attention
更加有意思的是,近年来 gating 又重新出现在 Transformer 的 Attention 模块中。2025 年的工作 Gated Attention for Large Language Models 系统研究了在 Softmax Attention 中加入不同形式 gate 的效果。
其中一种简单有效的方法是在 Scaled Dot-Product Attention 输出之后加入一个由当前 query 决定的、head-specific 的 sigmoid gate:Oh=σ(gh(x))⊙Attentionh(Q,K,V)O_h= \sigma(g_h(x)) \odot \operatorname{Attention}_h(Q,K,V) Oh=σ(gh(x))⊙Attentionh(Q,K,V)也就是说,Attention 首先回答:"应该从哪些 token 获取信息?" ,Gate 随后回答: "获取到的信息应该输出多少?"
实验表明,这种设计不仅可以改善模型性能,还与训练稳定性、attention sink 以及长上下文外推等问题有关。这一形式后来被实际应用到了 Qwen3-Next 等模型中。
至此,一个现代大语言模型中可能同时存在多层含义完全不同的 gate:
- FFN 中的 SwiGLU;
- MoE 中的 Router;
- Attention 中的 Output Gate;
- 一些高效序列模型中的状态更新 Gate。
从这个角度来看,门控从来没有离开神经网络。它只是不断改变自己的位置。
门控机制的基本原理
虽然 LSTM、GLU、MoE 的结构看起来完全不同,但它们其实可以抽象成一个统一形式。
假设网络产生一个候选信息:v=f(x)v=f(x)v=f(x),同时产生一个控制信号:g=h(x)g=h(x)g=h(x),最终输出为:y=g⊙vy=g\odot vy=g⊙v。这里:vvv 决定"内容是什么",ggg 决定"内容通过多少"。这就是门控机制最基本的思想:Content×Control \boxed{\text{Content} \times \text{Control}} Content×Control
1. Soft Gate:连续的信息控制
最常见的是 sigmoid gate:g=σ(Wx+b)g=\sigma(Wx+b)g=σ(Wx+b),因此:0<gi<10<g_i<10<gi<1。
-
如果 gi≈0g_i\approx0gi≈0,意味着该维度的信息基本被阻断;
-
如果 gi≈1g_i\approx1gi≈1,意味着该维度的信息基本完整通过;
-
如果 gi=0.3g_i=0.3gi=0.3,则信息只保留一部分。
所以 sigmoid gate 并不是传统程序中的:
text
if condition:
pass
else:
block
而是一个:连续、可微、可以通过梯度下降学习的软开关。 这也是神经网络门控机制最重要的特点。
2. Multiplicative Interaction:为什么通常使用乘法?
门控通常采用:y=g⊙xy=g\odot xy=g⊙x,而不是 y=g+xy=g+xy=g+x。原因在于乘法天然能够控制信号强度。
- 当 g=0g=0g=0 时,可以直接关闭一条信息通路。
- 当 g=1g=1g=1 时,可以完整保留原信息。
因此 multiplicative interaction 非常适合实现"控制"。从更广义的角度看,很多现代网络中的 feature modulation,都可以看成某种形式的 gating。
3. Gate 不一定是 sigmoid
需要注意的是:现代深度学习中的 gate 已经不一定严格限定在 (0,1) 范围。
例如 SwiGLU:SwiGLU(x)=Swish(xW1)⊙xW2 \operatorname{SwiGLU}(x) =\operatorname{Swish}(xW_1)\odot xW_2 SwiGLU(x)=Swish(xW1)⊙xW2
Swish 的输出并不是严格的 0 到 1。
因此今天所说的 gating 更广泛地指:
使用一个数据依赖的信号,对另一组表示进行乘性调制。
4. Sparse Gate:从"调节多少"到"选不选择"
MoE 中的 gate 又进一步发生变化。假设 Router 得到:p=softmax(Wx)p=\operatorname{softmax}(Wx)p=softmax(Wx),随后只保留 Top-K:S=TopK(p)S=\operatorname{TopK}(p)S=TopK(p),这时 gate 不再只是调节信息大小,而是在进行:计算路径选择。 因此可以把现代 gating 粗略分成两类:
- 信息门控控制 :Information Flow\text{Information Flow}Information Flow 例如:LSTM,GRU,Highway Network,GLU,Gated Attention
- 计算门控控制 :Computation Flow\text{Computation Flow}Computation Flow 例如:Mixture of Experts,Sparse Router,Conditional Computation
而现代大模型正在同时使用这两类机制。
门控机制的应用案例
从实际应用来看,可以通过几个典型案例理解门控机制到底解决了什么问题。
案例一:LSTM------控制长期记忆
考虑一句话:
I grew up in France ... I speak fluent French.
模型在预测 "French" 时,需要保留很早以前出现的 "France"。
普通 RNN 会不断覆盖隐藏状态。LSTM 则可以通过 gate 学习:
France information→retainct \text{France information} \xrightarrow{\text{retain}} c_t France informationretain ct与此同时,大量与最终预测无关的局部信息可以逐渐被遗忘。因此 LSTM 中 gate 的核心作用是:选择性保存历史信息。
案例二:SwiGLU------控制特征表达
在 Transformer 中,FFN 通常负责对每一个 token 的表示进行非线性特征变换。
传统 FFN 可以写成:FFN(x)=W2ϕ(W1x)FFN(x)=W_2\phi(W_1x)FFN(x)=W2ϕ(W1x),SwiGLU 则引入另一条输入相关分支:FFN(x)=W3Swish(W1x)⊙W2xFFN(x)=W_3 \operatorname{Swish}(W_1x) \odot W_2xFFN(x)=W3Swish(W1x)⊙W2x于是模型不仅学习新的特征,还可以让一组特征动态调制另一组特征。
Gate 在这里控制的是:当前 token 的哪些内部特征应该被增强或抑制。 这种设计后来被广泛用于大语言模型的 FFN。
案例三:Mixture of Experts------控制参数激活
MoE 是现代大模型中最直观的 gating 应用。假设一个模型拥有:64个 experts。对于某个 token,Router 可能选择:Expert3,Expert17Expert_{3},Expert_{17}Expert3,Expert17,而对于另一个 token: Expert8,Expert42Expert_{8},Expert_{42}Expert8,Expert42
因此网络不再要求:所有输入→所有参数\text{所有输入}\rightarrow\text{所有参数}所有输入→所有参数,
而变成:不同输入→不同参数子集\text{不同输入}\rightarrow\text{不同参数子集}不同输入→不同参数子集 它带来的核心优势是:模型容量可以增加,而单 token 的计算量不必按照同样比例增加。 以 Mixtral 8×7B 为例,每层有 8 个专家,每个 token 由 Router 选择其中 2 个。DeepSeek-V3 则拥有约 671B 总参数,但每个 token 激活约 37B 参数。这也是这里讨论 MoE 时最重要的两个概念:Total Parameters,Activated Parameters。两者之间的差距,本质上就是 gating 创造出来的。
案例四:Gated Attention------控制 Attention 输出
传统 Attention 计算:O=softmax(QKTd)VO=\operatorname{softmax} \left( \frac{QK^T}{\sqrt d} \right)VO=softmax(d QKT)V,其主要目标是决定:从哪里获取信息。 Gated Attention 则继续增加一个控制过程:O′=g(x)⊙OO'=g(x)\odot OO′=g(x)⊙O。于是模型拥有两个不同维度的决策:
- Attention:哪些信息值得关注?
- Gating:关注到的信息值得输出多少?
这是一个很有意思的变化。过去我们通常把 Attention 本身理解为一种动态信息选择机制。但近年来的研究表明:即使已经有了 Attention,在 Attention 输出之后再增加一层 gating,仍然可能产生额外价值。
实际上,Attention 决定"如果我要读取信息,应该从哪里读";Gate 决定"这一次到底值不值得读取,以及读出的信息应该相信多少"。
2025 年NeurIPS 有篇系统研究 Gated Attention 的论文,正是发现 在 SDPA 输出之后增加 query-dependent、head-specific sigmoid gate 后,可以明显减少 attention sink,同时改善训练稳定性和长上下文外推。论文比较了 30 多种 gating 变体,并在 1.7B dense 模型和 15B MoE 模型、最高 3.5T tokens 的训练规模上进行了验证。
最明确的实际案例就是 Qwen3-Next。Qwen 官方在 Qwen3-Next 中采用了:3×Gated DeltaNet+1×Gated Attention。这样的重复结构。也就是大约 75% 的层使用高效的 Gated DeltaNet,25% 的层保留 full attention;而这些 full attention 层又加入了论文中的 attention output gating。Qwen 官方明确说明,他们采用了这项 output gating 机制来改善 attention 的低秩等问题。
总结
如果把三十多年的发展压缩成一条主线,可以得到:

但更准确的理解并不是"一个模型取代另一个模型"。实际上,门控机制沿着两条路线不断发展:


两条路线背后的思想实际上高度一致:
不是所有信息都应该无条件传播,也不是所有参数都应该为每一个输入无条件参与计算。
从 LSTM 到今天的大语言模型,Gate 控制的对象从几个神经元,扩展到了隐藏状态、特征、Attention Head、Expert,甚至整个模型的计算路径。
如果说 Attention 让神经网络学会了:"我应该看哪里?" ,那么 Gating 解决的则是另一个更基础的问题: "哪些东西应该真正通过?"
随着模型规模越来越大、上下文越来越长、计算成本越来越高,这个问题不仅没有消失,反而正在变得越来越重要。门控机制不只是 LSTM 留下来的一个技巧,它可能代表着神经网络从"学习参数"走向"学习如何使用参数"的另一条主线。
参考文献
-
Jacobs, R. A., Jordan, M. I., Nowlan, S. J., & Hinton, G. E. (1991). Adaptive Mixtures of Local Experts. Neural Computation, 3(1), 79--87.
-
Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735--1780.
-
Gers, F. A., Schmidhuber, J., & Cummins, F. (2000). Learning to Forget: Continual Prediction with LSTM. Neural Computation, 12(10), 2451--2471.
-
Cho, K., et al. (2014). Learning Phrase Representations using RNN Encoder--Decoder for Statistical Machine Translation.
-
Srivastava, R. K., Greff, K., & Schmidhuber, J. (2015). Highway Networks.
-
Dauphin, Y. N., et al. (2017). Language Modeling with Gated Convolutional Networks. ICML.
-
Shazeer, N. (2020). GLU Variants Improve Transformer.
-
Shazeer, N., et al. (2017). Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer. ICLR.
-
Fedus, W., Zoph, B., & Shazeer, N. (2021). Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity.
-
Jiang, A. Q., et al. (2024). Mixtral of Experts.
-
DeepSeek-AI. (2024). DeepSeek-V3 Technical Report.
-
Qiu, Z., et al. (2025). Gated Attention for Large Language Models: Non-linearity, Sparsity, and Attention-Sink-Free. NeurIPS 2025.