【NLP基础知识系列课程-Tokenizer的前世今生第四课】生物信息中的 Tokenizer 策略:如何切开一段基因?

发布于:2025-05-28 ⋅ 阅读:(30) ⋅ 点赞:(0)

引子:非语言序列,也能“tokenize”吗?

在人类语言中,“词语”是天然的表达单位。而在 DNA、RNA、蛋白质、分子结构等生物序列中,没有空格、没有句读、更没有语义词边界。看起来这是一种“无词语言”,但这恰恰是构建生物智能系统的起点。

在这一篇博客中,我们将详细拆解生物信息领域的 tokenizer 策略,从字符级滑窗到数据驱动的可学习 tokenizer,从静态 K-mer 到结构感知的动态编码,深入理解:

模型如何理解生命的语言?


一、为什么生物序列不能直接喂给模型?

乍看之下,DNA 不过是“ATCG”的重复组合,似乎直接按字符输入 Transformer 就能工作。但现实并不理想。

以下是几个核心难点:

问题类型 表现形式 后果
语义跨度过长 一个蛋白质序列可能上千个氨基酸 输入 token 长度暴涨,注意力计算难以承受
功能稀疏 功能区域只集中在少数 motif(如“RRACH”) 模型注意力容易分散,难以捕捉关键位点
缺乏边界信息 无空格、无标点,无法分辨功能单元 静态分词方式易错分或漏分
多尺度机制 蛋白质结构常常同时表现一级、二级、三级结构 单一粒度 token 无法兼顾局部细节与全局结构

因此,设计一个合适的 tokenizer,决定了模型能否有效“读取”生命语言的语义单元。


二、K-mer 滑窗:最早期的字符切片方式

K-mer 是生物序列建模中最基本的分词方式,最初用于序列比对与 motif 提取。

定义: 将序列按固定长度 k 进行滑动分割,可设定是否允许 overlap。

示例:对序列 ACTGAC 执行 3-mer 分词:

  • overlap: ACT, CTG, TGA, GAC
  • non-overlap: ACT, GAC

优点:

  • 结构简单,易于实现
  • 可以训练词向量,如 ProtVec(蛋白质)
  • Token 长度可控,适配早期 shallow model

缺点:

  • 无法学习变长片段或 context-aware 分词
  • 无语义聚合机制,常常包含大量冗余
  • 无法适应功能多变的序列环境

代表方法与模型:

  • DeepSEA(使用 one-hot 3-mer 作为 CNN 输入)
  • ProtVec(构建蛋白质词向量)
  • BioVec(基因文本嵌入)

三、借用 NLP:BPE 和 WordPiece 在 DNA 上的尝试

随着 Transformer 模型逐渐替代传统 CNN/RNN,研究者尝试将 NLP 中的子词建模策略引入 DNA、RNA 等序列建模中。

3.1 WordPiece:统计合并的 motif 学习者

以 DNABERT 为代表,它使用 WordPiece 构建 DNA 子词表:

  • 初始词表:A, C, G, T
  • 统计组合片段出现频率,合并高频片段(如 “CG”, “TGA”, “ACG”)
  • 得到子词表,用于对新序列分词

优势:

  • 可学习 motif 模板
  • 与 BERT 模型完美对接

劣势:

  • 合并规则无生物结构监督,可能将不相关片段合并
  • 无法处理语义变异性(如突变后功能变化)
3.2 Unigram + 子词正则化

TAPE 和 Nucleotide-transformer 使用 Unigram 模型:

  • 从大词表出发,根据语言模型概率剪枝
  • 保留多个 token 分割路径(增强泛化)

子词正则化: 在训练时随机选择切分方式,让模型适应“不同的分词视角”,类似数据增强。


四、化学语言的 tokenizer:SMILES 与 SELFIES 的对决

SMILES(Simplified Molecular Input Line Entry System)将化学分子式编码为一串 ASCII 字符:

示例:苯 → C1=CC=CC=C1

SMILES 与自然语言非常相似,是大模型学化学的主流输入方式。

4.1 按语法结构 token 化:
  • 原子:C, N, O
  • 键:=, #
  • 环:1, 2, 3
分词策略:
  • SMILES-BPE:基于频率的片段合并
  • SMILES-PE(Pair Encoding):按“反应片段”进行合并

问题: 错误切分常常导致结构非法(生成出不存在的分子)

4.2 SELFIES:语义安全的化学表达

SELFIES 是一种对 SMILES 的改造,每个 token 都是一个合法的化学组件,天然带有边界标识,如:

[C][=O][O][H]

优势:

  • 不会生成非法分子
  • Token 粒度语义清晰

代表模型: MolGPT、Chemformer、Graphormer-Mol、MolBERT


五、学习型 tokenizer:MxDNA 与结构感知划分

静态 tokenizer 面临泛化性差、结构难对齐的问题。学习型 tokenizer 是“由数据说话”的方法。

5.1 MxDNA
  • 输入 DNA 序列
  • 基于 EM 优化划分子词:最大化信息增益,最小化冗余
  • 与 attention mask 联动,提升关键区域权重
5.2 ProtTokenizer(ACL 2023)
  • 构建氨基酸的分块候选集
  • 用结构数据引导切分(如螺旋、β折叠等二级结构)
  • 使用对比学习监督:同块增强 + 异块区分

额外机制:

  • Token Dropout:提升鲁棒性
  • R-Drop 双视角训练:增强 token 表达一致性

这些 tokenizer 不再依赖人类规则,而是通过任务驱动自我调整结构。


六、面向任务的多粒度 tokenizer 策略

不同生物任务对应不同 token 粒度:

任务类型 推荐粒度 切分目标 典型模型
位点识别 精细(1-3mer) 捕捉单残基功能 DeepBind, ESM
折叠预测 中等(5-15mer) 表达局部结构 + 远程依赖 AlphaFold, ESMFold
分类/筛选 粗略(>15mer) 表达全局特征 BioGPT, MolBERT
蛋白-药物对接 可调(嵌套 token) 联合表达多模态交互结构 Drugformer, UniMol

现代 tokenizer 开始支持:

  • 层次切分(Hierarchical tokenization)
  • 语义动态选择(Context-aware token gating)
  • 多粒度融合(Hybrid token stream)

七、总结:Tokenizer 是生命序列建模的压缩语言

在生物信息领域,Tokenizer 不再是可选模块,而是控制信息表示质量的核心环节:

  • 控制输入长度,压缩非线性结构
  • 显式聚焦功能片段,避免模型注意力稀释
  • 引入结构先验或从数据中自学习切分规律

正如语言模型需要“分词”,蛋白质语言模型、分子语言模型、甚至交互药理模型,也需要找到它们的“词语单位”。

Tokenizer,不再是文本处理的工具,而是知识结构的剪刀

未来,它将进一步融入结构建模、信号表达、合成建模任务中,成为生物智能系统的“语言入口”。