为什么生物序列数据天然适合循环网络来读
为什么生物序列数据天然适合循环网络来读
在深度学习进入生物信息学之前,处理生物序列数据的主要方法是位置权重矩阵、隐马尔可夫模型和条件随机场。这些方法各有优势,但有一个共同的局限:它们对序列中元素之间依赖关系的建模能力有限。
20世纪90年代,循环神经网络(RNN)开始被引入生物序列分析。和之前的方法不同,RNN 天然地按顺序处理输入——它一个一个地读取序列中的元素,每读一步就更新一次内部状态,这个状态就相当于对”到目前为止读过的内容”的记忆。
需要先说明一个前提:RNN 和 LSTM 并没有”过时”。 Transformer 的热度让很多人觉得循环网络已经是被淘汰的技术。但在生物信息学的实际工作中,RNN/LSTM 到今天仍然在特定场景下有不可替代的价值——不是因为怀旧,而是因为有些生物问题的计算特性恰好就是 RNN 最擅长的那一种。这篇文章要解释的是:为什么 RNN 适合处理生物序列,它的核心能力是什么,以及这个逻辑在今天还成不成立。
生物序列的”顺序性”
DNA、RNA、蛋白质都是一维序列。但它们和一段随机的字符串不同——序列中元素的排列顺序本身就携带了重要的生物学信息。
密码子的阅读框。 核糖体翻译 mRNA 时,每三个碱基读成一个密码子,决定一个氨基酸。如果阅读框偏移一个碱基,整个蛋白质序列就完全不同。这意味着,碱基之间的相对位置不是无关紧要的——相邻三个碱基作为一个整体才有意义。
剪接信号的上下文。 真核生物的基因中,外显子和内含子交替排列。剪接体需要识别剪接供体位点(通常是 GT)和剪接受体位点(通常是 AG),但判断一个 GT 或 AG 是否真的是剪接位点,需要看它前后的序列上下文。同样的二核苷酸出现在不同的上下文中,可能是一个剪接信号,也可能只是一个偶然的序列巧合。
蛋白质的局部序列决定二级结构。 一条蛋白质链上连续的氨基酸残基决定了局部的二级结构——α 螺旋、β 折叠、转角。这些结构元素是按顺序排列的,一个残基的构象倾向受到它前后邻居的影响。
这些例子有一个共同特征:序列中的信息不仅取决于每个位置的元素是什么,还取决于这些元素出现的顺序和上下文。 这正是 RNN 被设计来处理的问题类型。
RNN 如何工作
循环神经网络的核心思想很简单:在处理序列的每一步,它不只看当前的输入,还结合之前所有步骤积累的信息。
具体来说,RNN 在每个时间步做两件事:
- 接收当前输入(比如序列中当前位置的碱基或氨基酸)
- 结合上一步的隐藏状态(也就是”记忆”),更新当前的隐藏状态
这个隐藏状态会在下一步被传递下去,和新的输入一起被处理。这样,序列中早期的信息可以通过隐藏状态逐步传递到后面的位置。
打个比方: 读一句话时,你不会在读到最后一个词的时候把前面的词全部忘掉。你对当前词的理解建立在对前面内容的积累理解之上。RNN 做的事情类似——它在”读”序列时,维护一个不断更新的内部状态来积累上下文信息。
但原始 RNN 有一个严重的问题:梯度消失。 当序列很长时,早期信息在通过多步传递后会逐渐衰减,导致网络”记不住”远处的内容。这就好比你读了一篇很长的文章,到结尾时已经忘了开头的细节。
LSTM:让网络学会”选择性记忆”
1997年,Hochreiter 和 Schmidhuber 提出了长短期记忆网络(LSTM),专门解决 RNN 的长程记忆问题。
LSTM 的核心改进是引入了三个”门”:
遗忘门决定上一步的隐藏状态中有多少信息需要丢弃。不是所有历史信息都对当前步骤有用——有些信息过时了,应该被清理掉。
输入门决定当前输入中有多少新信息值得写入记忆。不是每个输入都同等重要——有些位置的碱基对功能很关键,有些则相对无关紧要。
输出门决定当前的记忆中有多少信息需要输出到下一步和当前的预测中。
这三个门都是通过学习得到的——网络在训练过程中自动学会什么时候该记住、什么时候该遗忘、什么时候该输出。这种”选择性记忆”机制让 LSTM 能够在几百甚至上千步的序列中保持有用的信息。
需要指出的是,LSTM 的”记忆”并不等同于真正的理解。 它学会的是在统计上哪些信息对当前任务有用,而不是在语义上理解序列的生物学含义。这是一个重要的边界——LSTM 提升了序列建模的能力,但没有从根本上解决”理解”的问题。
RNN/LSTM 在生物信息学中的早期应用
RNN 和 LSTM 在生物信息学中最早取得成功的领域之一是剪接位点识别。
前面提到,判断一个 GT 或 AG 是否是真正的剪接信号,需要看它的上下文。RNN 天然适合这个问题——它可以从序列的两端分别向中心读取(双向 RNN),在剪接位点的位置汇聚上下文信息。双向 LSTM 在剪接位点识别上的准确率可以达到 95% 以上。
另一个重要应用是蛋白质功能预测。给定一条蛋白质序列,预测它的功能——比如它是否具有某种酶活性、是否参与某种信号通路。蛋白质的功能往往由序列中的特定模式决定,而这些模式可能是分散在序列中不同位置的多个元素的组合。LSTM 能够逐步读取氨基酸序列,积累特征信息,最后输出功能预测。
DanQ(2016)是一个值得一提的混合架构。它把 CNN 和 RNN 结合在一起:CNN 先提取序列中的局部 motif 特征,RNN 再建模这些 motif 之间的顺序关系。这种设计充分利用了两种架构的优势——CNN 的局部模式识别加上 RNN 的序列上下文建模。DanQ 在 DNA 功能元件的预测上取得了比单独使用 CNN 或 RNN 更好的效果。
RNN/LSTM 在时间序列数据中的独特价值
除了生物序列,RNN/LSTM 在另一类生物数据上也有天然优势:时间序列数据。
生物学中有大量时间维度的数据。基因表达的时间序列、药物响应的动态变化、细胞分化的过程、疾病的进展轨迹——这些数据本质上都是按时间顺序排列的观测值序列。
基因表达时间序列预测是其中的一个典型应用。在实验中,研究者在不同时间点测量基因的表达水平,形成一个时间序列。LSTM 可以学习这些序列中的模式,预测未来的表达趋势。这类分析有助于理解基因调控的动态过程——哪些基因先被激活、哪些基因的响应是延迟的、哪些基因之间存在先后因果关系。
需要明确的是,时间序列预测和因果推断是两回事。 LSTM 可以学习序列中的统计规律并做出预测,但这不等于它理解了背后的生物学机制。一个模型预测准确,不代表它已经揭示了因果关系。这是在使用这类工具时需要时刻记住的边界。
药物响应预测是另一个方向。细胞在药物处理后的反应往往不是即时的——有些效应在几小时后才出现,有些在几天后才达到峰值。这种时间维度上的动态变化可以用 LSTM 来建模,帮助预测在不同给药方案下细胞的响应模式。
RNN 与 CNN 的分工
在上一个批次的文章中,我们讨论了 CNN 为什么在生物信息学中早期取得成功。CNN 擅长的是局部模式识别——在序列中找到短的、有生物学意义的 motif。
RNN 和 CNN 处理的是不同类型的计算挑战:
CNN 看局部。 它的卷积核在序列上滑动,识别局部的模式——比如一个 6-20 个碱基长的转录因子结合位点。同一个 motif 出现在序列的不同位置,CNN 都能用同样的方式识别。
RNN 看顺序。 它按顺序读取整个序列,维护一个累积的上下文状态。它关注的不只是某个局部片段是什么,而是这个片段和它前后内容的关系。
在实际应用中,这两种能力经常被组合使用。DanQ 就是一个例子——CNN 负责提取局部特征,RNN 负责建模全局的序列上下文。这种分工让模型既能识别局部模式,又能理解这些模式在整体序列中的位置和关系。
但这种分工并不意味着 RNN 只能做 CNN 的”搭档”。 在剪接位点识别、基因表达时间序列分析等任务上,RNN/LSTM 可以独立工作,不需要 CNN 的辅助。具体选择哪种架构,取决于问题的核心计算需求是什么。
RNN 的局限
RNN/LSTM 在生物信息学中的价值是真实的,但它的局限也是真实的。
顺序处理的计算效率低。 RNN 必须按顺序处理序列——第 100 个位置的计算必须等第 99 个位置完成才能开始。这意味着它无法利用现代 GPU 的并行计算能力。对于短序列这不明显,但对于基因组级别的长序列(数百万到数十亿碱基对),训练时间会变得很长。
长程依赖仍然有衰减。 虽然 LSTM 大大缓解了梯度消失问题,但并没有完全解决。在超长序列中(比如跨越数十万个碱基对的增强子-启动子调控关系),LSTM 的记忆能力仍然有限。BiLSTM(双向 LSTM)可以部分弥补这一点——从序列两端分别向中间读取——但在极端长程的场景下仍然力不从心。
Transformer 的自注意力机制提供了另一种方案。 Transformer 可以直接建模序列中任意两个位置之间的关系,不受距离限制。在蛋白质语言模型(ESM、ProtBERT)、DNA 语言模型(DNABERT)等任务上,Transformer 已经在很大程度上取代了 RNN。
但说”Transformer 取代了 RNN”过于简化。 实际情况是:不同的架构适合不同类型的计算挑战。Transformer 在需要全局上下文建模的任务上更强,RNN 在需要逐步处理、在线学习、或者计算资源受限的场景下仍然有优势。它们之间更多是分工关系,不是完全的替代关系。
对今天的意义
理解 RNN/LSTM 为什么适合生物序列数据,和理解 CNN 为什么早期成功,背后是同一个逻辑:在生物信息学中,理解问题的计算特性比追逐技术潮流更重要。
生物序列的顺序性是一个客观特征——碱基和氨基酸的排列顺序携带信息,序列中的元素之间存在上下文依赖。RNN 的设计恰好对应了这个特征:按顺序处理、维护上下文状态、逐步积累信息。这不是巧合,是计算方法和数据特性之间的匹配。
这个逻辑在今天仍然适用。面对一个具体的生物问题,首先要问:
- 这个问题的数据是局部模式驱动还是顺序依赖驱动?
- 需要建模的是短程的局部关系还是长程的全局关系?
- 数据是静态的快照还是时间序列?
- 计算资源和延迟要求是什么?
不同的答案对应不同的架构选择。CNN、RNN、Transformer、GNN——每种架构解决的是不同类型的计算挑战。没有一种架构能包打一切,也没有一种架构已经被完全淘汰。
回头看这段历史,不是为了怀旧。 恰恰相反——正是因为 RNN 的成功建立在对生物序列特性的深刻理解上,它才提醒我们:在生物信息学中,方法的选择应该从问题出发,而不是从技术热度出发。这个原则不会因为任何新架构的出现而过时。
参考文献
Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735-1780.
Quang, D., & Xie, X. (2016). DanQ: a hybrid convolutional and recurrent deep neural network for quantifying the function of DNA sequences. Nucleic Acids Research, 44(11), e107. https://doi.org/10.1093/nar/gkw226
Singh, N., et al. (2022). Splice-site identification for exon prediction using bidirectional LSTM-RNN approach. Biochemistry and Biophysics Reports, 31, 101298. https://doi.org/10.1016/j.bbrep.2022.101298
Zhou, Y., et al. (2022). Prediction of Time-Series Transcriptomic Gene Expression Based on Long Short-Term Memory with Empirical Mode Decomposition. International Journal of Molecular Sciences, 23(14), 7532. https://doi.org/10.3390/ijms23147532
Zou, J., et al. (2019). A primer on deep learning in genomics. Nature Genetics, 51(1), 12-18. https://doi.org/10.1038/s41588-018-0295-5
Bao, Y. C., et al. (2024). Progress on deep learning in genomics. Yi Chuan, 46(9), 701-715. PMID: 39275870