神经网络门控机制探讨

如果观察过去三十年的神经网络架构,会发现一个很有意思的现象:很多曾经非常重要的结构逐渐退出了主流舞台,但门控机制(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))⊙Attention⁡h(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 留下来的一个技巧,它可能代表着神经网络从"学习参数"走向"学习如何使用参数"的另一条主线。


参考文献

  1. Jacobs, R. A., Jordan, M. I., Nowlan, S. J., & Hinton, G. E. (1991). Adaptive Mixtures of Local Experts. Neural Computation, 3(1), 79--87.

  2. Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735--1780.

  3. Gers, F. A., Schmidhuber, J., & Cummins, F. (2000). Learning to Forget: Continual Prediction with LSTM. Neural Computation, 12(10), 2451--2471.

  4. Cho, K., et al. (2014). Learning Phrase Representations using RNN Encoder--Decoder for Statistical Machine Translation.

  5. Srivastava, R. K., Greff, K., & Schmidhuber, J. (2015). Highway Networks.

  6. Dauphin, Y. N., et al. (2017). Language Modeling with Gated Convolutional Networks. ICML.

  7. Shazeer, N. (2020). GLU Variants Improve Transformer.

  8. Shazeer, N., et al. (2017). Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer. ICLR.

  9. Fedus, W., Zoph, B., & Shazeer, N. (2021). Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity.

  10. Jiang, A. Q., et al. (2024). Mixtral of Experts.

  11. DeepSeek-AI. (2024). DeepSeek-V3 Technical Report.

  12. Qiu, Z., et al. (2025). Gated Attention for Large Language Models: Non-linearity, Sparsity, and Attention-Sink-Free. NeurIPS 2025.

相关推荐
baopixiaoz1 小时前
AI量化策略师|Web3 量化交易研究员
大数据·人工智能·python·区块链
大模型码小白2 小时前
思维树提示:让AI探索多条推理路径
人工智能
程序员cxuan2 小时前
本地跑一个 Qwen 3.8,你将拥有一个 Opus 4.6
人工智能·后端·程序员
aidesignplus2 小时前
Anthropic 最新发布《2026 Agentic Coding Trends Report》粗浅解析
人工智能
能源革命2 小时前
AI日报 2026-08-15
人工智能
Uncommon.2 小时前
使用Pytorch自动计算梯度
人工智能·pytorch·python
安逸sgr2 小时前
循环神经网络 RNN、LSTM、GRU 是什么?为什么能处理序列?
人工智能·ai·大模型·agent·智能体
猿小猴子2 小时前
主流 AGENT 实战教程「OpenCodex」与「ChatGPT Work」与「Codex Record & Replay」介绍
人工智能·ai·chatgpt·codex·minimax·deepseek·opencodex
shdwak....sad2 小时前
版本管理&迁移kali-vmware&知识库
人工智能·网络安全
程序员cxuan3 小时前
OpenAI Linux 版来了!
人工智能·后端·程序员