引子:非语言序列,也能“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,不再是文本处理的工具,而是知识结构的剪刀。
未来,它将进一步融入结构建模、信号表达、合成建模任务中,成为生物智能系统的“语言入口”。