← 返回 2026-07-08

在哪里切、切多深:SMILES化学表示上的BPE与Unigram-LM对照研究 Where to cut, how deep: BPE and Unigram-LM on chemistry SMILES

Hunter Heidenreich 📅 2026-07-06 👍 4 2026-07-13 08:37
BPE SMILES Unigram-LM tokenizer 化学信息学 化学语言模型 子词分词

在固定化学基表下对照BPE与Unigram-LM,证明二者构建近乎不相交的子词词表。

前置知识

BPE (Byte-Pair Encoding, 字节对编码)

一种自底向上的子词分词算法:初始化为字符表,然后贪心地、确定性地把出现频率最高的相邻符号对合并成一个新符号,重复直到达到目标词表大小 $V$。它是自然语言处理里最主流的分词器(GPT系列、LLaMA均用BPE及其变体),化学领域的SPE、APE、Smirk-GPE本质上都是BPE变体。给定语料与目标 $V$,BPE的结果是确定的。

本文要回答的核心问题之一就是BPE这种贪心合并策略在化学小字母表上是否会让两种算法收敛,理解BPE的贪心、确定性、可组合封闭特性,是看懂'为什么BPE会把整环合并成单token'这一机制结论的前提。

Unigram-LM (Unigram语言模型分词)

一种自顶向下的子词分词算法:先种子化一个大候选词表,然后用EM(期望最大化)拟合每个子词片段的unigram概率分布,再剪掉删除后对语料似然损失最小的片段,迭代到目标大小 $V$。它能给出每条切分的概率,从而支持训练时的subword regularization。代表实现是HuggingFace tokenizers的UnigramTrainer,化学侧被BARTSmiles、ReactionT5等使用。

Unigram-LM是BPE的主要替代方案,它与BPE'方向相反'的构造方式是本文全部对比的另一半。理解它的概率剪枝、近原子化倾向,才能理解为什么它比BPE多切29–41%的token、以及为什么它倾向于保留长杂原子链而非整环。

SMILES 与 OpenSMILES 基表 (glyph base)

SMILES是用ASCII字符串线性化分子结构的表示法,例如阿司匹林 CC(=O)Oc1ccccc1C(=O)O,其中原子符号、键、括号原子(带电荷/手性/同位素如 [C@@H]、[O-])、环编号共同构成。OpenSMILES是标准化的SMILES规范。Smirk基表用158个OpenSMILES字形(glyph)+7个特殊token(含[UNK])共165个token构成一个'完备基',任何符合规范的SMILES都能被分解为这些字形且永不产生[UNK]。

本文最关键的设计就是把两种算法都固定在这同一个165-token基表之上、再往上学生成多字形片段,从而消除了'覆盖度'这一混淆变量、把'子词算法'这一轴孤立出来。不懂这个'固定基表'设计就完全无法理解实验为什么要这样搭。

Fertility(生育率)与 Jaccard 词表重叠

Fertility是分词器标准指标,指平均每个词(本文为每条分子)被切成多少个token。Jaccard重叠衡量两个集合 $A,B$ 的相似度 $J=|A\cap B|/|A\cup B|$。本文定义 $J$ 为两臂'多字形片段集合'的Jaccard(剔除共有基表后),并定义频率加权版 $J_w=\sum_x \min(w_1(x),w_2(x))/\sum_x \max(w_1(x),w_2(x))$ 反映模型实际更新的高质量片段重叠。

$J$/$J_w$ 是衡量'两算法是否构建相同词表'的会员籍(membership)对比,fertility是颗粒度(granularity)对比,二者加上分布(distribution)构成本文三大直接对比。看Table 2和Figure 2时必须先理解这些指标的定义与去基表处理。

Pretokenization 与 边界策略 (NMB / MB)

Pretokenization是子词分词前把原始字符串先切成'预token块'的步骤,子词合并被限制在块内进行,块边界不可逾越。在自然语言里这是影响最大的设计(高于词表大小和语料)。本文把它的化学对应物作为一级实验轴:no-merge-brackets(NMB)下括号原子不透明、合并不能跨越它;merge-brackets(MB)下括号边界可渗透,是Smirk-GPE的默认。

NMB/MB是网格中除算法、语料、$V$ 之外的第四个维度,是检验'对比是否只是括号边界假象'的关键。看懂Table 2每行的Bnd列和Figure 9的对比,都需要先理解这条边界轴。

研究动机

每一个读取SMILES的化学语言模型都从一个tokenizer开始,它固定了模型嵌入的词表、操作的颗粒度以及有效序列长度,是基础性设计选择——但这一选择几乎总是被默认地继承:化学tokenizer直接从自然语言继承了BPE,其化学衍生品SPE、APE、Smirk-GPE全都是BPE变体。BPE的主要替代Unigram-LM虽在BARTSmiles、ReactionT5中偶有使用,却从未在与BPE匹配的条件下、在固定化学语法基表上做过对照。更早的研究(Wadell et al.)发现真正区分化学tokenizer的是覆盖度(是否产生[UNK])而非子词方案,但那是在异构基表、大词表、混入覆盖度这一变量下得出的结论,从未把'子词算法'这一轴孤立出来考察。唯一的化学侧正面比较(Temizer et al.)在约230万ChEMBL原始SMILES上、$V\in\{8K,16K,32K\}$ 大词表下进行,既混入'无原子层'的混淆、又只用了单一药物类语料和单一预切分策略,无法回答'差异究竟是算法性的、语料稳定的、还是边界鲁棒的'这三个问题。

本文的目标是本文要在'把一切除算法外都固定'的受控条件下,回答一个明确问题:在化学SMILES上,固定基表后,BPE与Unigram-LM之间的选择是否仍会塑造所生成tokenizer的结构,还是化学那种小而受价键约束的字母表会把两者推向收敛于同一词表?为此作者构建了一个2算法×3语料×3词表大小×2边界策略的网格,在嵌入可学习的小词表区间($V\in\{256,512,1024\}$)训练44个tokenizer、形成22个匹配条件(同一条件两臂都训练,唯一差异是选择算法),外加$V=2048$敏感性与$V=8192$锚点。目标是量化会员籍(词表重叠)、颗粒度(生育率)、分布(频率不均衡)三方面的差异,并验证其跨语料、跨边界、跨尺度的稳定性,从而证明子词算法是一个真实的建模决策而非可自由继承的默认值。

与已有工作不同的是,本文的独特切入角度有四层。其一,用Smirk的完备165-token OpenSMILES基表把覆盖度彻底钉死——任何符合规范的分子都零[UNK],于是'覆盖度'这一最大混淆变量被消除,算法轴第一次被孤立。其二,把实验推入'嵌入可学习的小词表区间',正是在词表槽位稀缺、每个算法都必须承诺吸收哪些高频子结构时,算法选择才最有后果;这与以往动辄32K的大词表研究形成对比。其三,沿'语料类型学×边界策略×尺度'三条独立轴检验稳定性,把Temizer遗留的'是算法、是语料、还是边界'三个开放问题逐一回答。其四,引入一组从自然语言文献迁移来的机制诊断(死区盈余、骨架占比、整预token吸收率、切分熵)并做可学习性门控 $F_{95\%,100}$ 认证,让结论建立在'嵌入确实学得动'的区间内。

核心方法

整体思路是'控制变量 + 多维网格 + 机制诊断'。直觉上:如果化学的小字母表和硬价键约束真会把两个频率驱动的算法推向收敛,那应在会员籍(两词表高度重叠)和颗粒度(生育率接近)上同时体现;若不收敛,则要看差异在哪种子结构、哪种切分位置上、是否随尺度或语料变化。技术路线上,每个训练出的tokenizer是一个(算法, 语料, $V$, 边界)元组,一个'条件'是(语料, $V$, 边界)点,匹配条件下两臂唯一差异是选择算法。两算法都从Smirk的165-token基表出发,经过共享的预切分模块,消费完全相同的字形id词流:BPE臂用Smirk的GpeTrainer,Unigram-LM臂用作者新增的、委托给HuggingFace UnigramTrainer的同级训练器,二者都在参考默认值下运行(仅3个'按设计'例外,无任何调参偏向对比)。基表作为长度1的片段安装,使两臂瞄准同一目标 $V$;每个tokenizer训练两次并断言字节级一致以消除随机性。

核心创新点不在于发明新算法,而在于把'子词算法'这一在化学领域从未被孤立测试的设计轴,用严格受控的网格首次系统量化,并用机制诊断给出因果解释。与以往工作的本质区别有三:第一,固定完备基表使对比纯粹关于'在已覆盖原子的基础上,还要把哪些高频子结构吸收为原子级嵌入单元',而非关于覆盖度;第二,聚焦小词表可学习区间,让每个槽位的承诺都暴露差异,并用可学习性门控 $F_{95\%,100}$(即学习片段中至少发射100次的比例 $c_{100}\geq0.95$)认证每个条件;第三,提出'位置化读法'——既然两臂切的是同一字形流,可以逐位置判定是'同意切/同意合/嵌套/冲突',从而把'差多少token'升级为'差在哪些位置、是否相容',揭示了'近不相交词表却近乎相容切分'这一反直觉结论。作者还新增了化学侧此前从未报告的机制诊断(死区盈余、骨架占比、整预token吸收率)。

方法步骤详情

完整流程可分六步。第一步,语料预处理:四套语料(PubChem约50M、ZINC-22约10M、COCONUT约740K、REAL-Space约136M)统一经过RDKit同位素规范化、精确去重、基表合规过滤(丢掉裸基表无法零[UNK]覆盖的非Kekulé芳香Si/Te等),再留5%确定性held-out测试集。第二步,预切分模块:同一模块两臂共享,唯一的旋钮是边界策略NMB(括号原子不透明)/MB(可渗透),NMB下合并不能跨越括号原子边界。第三步,训练tokenizer:BPE用Smirk的GpeTrainer自底向上贪心合并,Unigram-LM用新增训练器委托HuggingFace UnigramTrainer自顶向下EM+剪枝,两者把165-token基表作长度1片段、瞄准同一目标 $V\in\{256,512,1024\}$,每个训练两次断言字节一致。第四步,测量七项结构量:会员籍用 $J$/$J_w$(及结构版 $J_\text{struct}$);颗粒度用绝对生育率差 $|\Delta f|=|f_\text{BPE}-f_\text{UL}|$ 与相对差 $\text{rel}|\Delta f|=|\Delta f|/\bar f$;分布用偏离均匀 $D=\frac12\sum_i|p_i-1/V|$ 的差 $|\Delta D|$;位置化读法用边界Jaccard $J_\partial$、嵌套率、冲突率、'BPE是Unigram严格粗化'的分子占比。第五步,可学习性门控:对每臂算 $c_n$(学习片段中发射≥n次的比例),用 $F_{95\%,100}$ 认证,不过关的条件不并入跨语料汇总。第六步,鲁棒性与推广:对每个训练超参做单因素扫掠(4个交互项+4个结构探针),做3次子采样重绘估计噪声底,做$V=8192$锚点、跨语料迁移、OOD(tmQM金属、CycPeptMPDB大环)、非规范化SMILES重写稳定性测试。

技术新颖性

技术新颖性体现在四个层面。第一,实验设计新颖:把覆盖度、语料、边界、尺度作为独立的'控制+鲁棒性'轴,是化学领域首个受控、化学语法化、小词表的BPE/Unigram对照,直接回应Temizer留下的全部开放问题。第二,测量体系新颖:把自然语言文献里的四个机制诊断(死区盈余、骨架占比、整预token吸收率、切分熵)首次迁移到SMILES,其中整预token吸收率是把生育率读成'每预token'面、死区盈余是用 $c_{100}$ 的跨臂差做的化学侧首测;同时新增结构字符与非规范性电池定位差异。第三,'位置化读法'是方法论亮点:逐位置分类'同意切/同意合/嵌套/冲突',把会员籍与颗粒度两个看似独立的对比在切分几何上统一起来,导出'近不相交却近乎相容、嵌套远多于冲突'的结论。第四,可学习性门控 $F_{95\%,100}$ 是对'嵌入是否真能学'的认证,使每个汇总都建立在'槽位学得动'的区间内,并据此解释了$V=2048$的ZINC-22为何无法形成匹配对。

Nicotine and serotonin under the two algorithms' V=1024 vocabularies.
Figure 1: Nicotine and serotonin under the two algorithms' V=1024 vocabularies.

实验结果

核心发现分三层。会员籍(最意外):两算法在相同字形基表和语料下构建的词表几乎不相交,且在最高频片段上重叠最少。频率加权重叠 $J_w$ 至多0.05、最低降到0.002;不加权 $J$ 从不超过0.161、最低0.010(REAL-Space $V=1024$ NMB仅0.105而 $J_w$ 仅0.002)。与之对比,同算法同语料重训自重叠 $J=1.0$,子采样重绘下 $J$ 波动≤0.005——所以跨臂0.010–0.161属于性质不同的区间。按频率加权反而加深了分歧($J_w99%,即便$V=256$也不低于80%。分布(最弱):token不均衡差 $|\Delta D|$=0.038–0.115,每个条件都高出语料抽取噪声底(约0.002)一个数量级,但只在COCONUT上量级约减半,且两臂都高度不均衡($D\approx0.76$–0.97)、BPE更均匀。稳定性:差异跨语料、跨边界、跨尺度成立;$V=8192$锚点(8倍头条词表)下 $J=0.083$、$J_w=0.022$、生育率差34.0%,几乎不随$V$变化,而该锚点已越过可学习上限。

The four corpora: three headline typologies plus the REAL-Space anchor.
Table 1: The four corpora: three headline typologies plus the REAL-Space anchor.
Cross-algorithm measurements per condition (point estimates).
Table 2: Cross-algorithm measurements per condition (point estimates).
Cross-corpus transfer: off-domain fertility (V=1024, NMB).
Table 3: Cross-corpus transfer: off-domain fertility (V=1024, NMB).
Out-of-distribution generalization: PubChem generalist read on adversarial in-spec chemistry.
Table 4: Out-of-distribution generalization: PubChem generalist read on adversarial in-spec chemistry.
Cross-algorithm vocabulary overlap for 22 matched conditions.
Figure 2: Cross-algorithm vocabulary overlap for 22 matched conditions.
Segmentation and nesting on three held-out molecules.
Figure 3: Segmentation and nesting on three held-out molecules.
Held-out fertility at V=1024 as a dumbbell chart.
Figure 4: Held-out fertility at V=1024 as a dumbbell chart.
Scale does not dissolve the divergence, and could not be pushed much further.
Figure 5: Scale does not dissolve the divergence, and could not be pushed much further.
查看结构化数据
任务指标本文基线提升
会员籍:跨算法词表重叠 (Jaccard) $J$ (不加权) / $J_w$ (频率加权),跨22个匹配条件 $J$ 最高0.161、最低0.010;$J_w$ 最高0.05、最低0.002 同算法重训自重叠 $J=1.0$;子采样重绘 $J$ 波动≤0.005 跨臂重叠远低于自重叠上限一个量级,证明两算法构建近乎不相交词表;加权后($J_w<J$)分歧更深,反驳收敛零假设
颗粒度:相对生育率差 $\text{rel}|\Delta f| = |\Delta f|/\bar f$ (held-out token/分子) 29.2%–41.0%,全部22条件Unigram都比BPE多切token 收敛零假设预期≈0% Unigram-LM系统性地比BPE细切约三分之一,是跨条件最稳健的对比
相容性:BPE为Unigram严格粗化的分子占比 零冲突分子比例(嵌套而非交叉) $V=1024$ NMB:PubChem 97.0%、ZINC-22/REAL-Space>99%、$V=256$≥80%;冲突<0.7%位置 若词表不相交则可能大量冲突 调和了'近不相交词表'与'近相容切分'的悖论:BPE沿Unigram的切分骨架再合并
尺度稳定性:$V=8192$锚点 $J$, $J_w$, $\text{rel}|\Delta f|$ 随 $V$ 变化 $V=8192$:$J=0.083$、$J_w=0.022$、差34.0%(与$V=1024$几乎相同) 自然语言文献报告大$V$下收敛 差异不在小$V$区消失,8倍词表仍不动;而该锚点已超可学习上限
跨语料迁移与OOD推广:生育率 off-domain生育率相对原生的比例 BPE全部±1%原生;Unigram-LM −6%~+8%;OOD tmQM 23.5%、CycPeptMPDB 29.5%差;原子OOV<0.01% 若差异是语料特有则迁移应崩溃 颗粒度差是算法对的属性而非训练语料;且覆盖度始终非问题(共享165-token基)

局限与改进

作者承认的局限:这是一项tokenizer级研究,不训练语言模型,也不测量下游LM质量,更不启用Unigram的subword regularization能力——所以'哪个算法下游更好'是本文留给后续的问题。会员籍对比部分依赖两个精确集Jaccard量($J$、$J_\text{struct}$)无置信区间,作者用确定性检查(重训抖动≈0,$J$尺度上界≤0.001)和3次子采样重绘($J$波动≤0.005)来界定方差,二者都远小于被限定的跨臂重叠(0.010–0.161),但任何依赖$J$精于0.005的结论都不安全。语料轴存在大小混淆,作者用REAL-Space锚点、PubChem内大小扫掠、大小匹配类型学探针来缓解。可学习性门控 $F_{95\%,100}$ 源自NMT、其向化学的迁移本身是假设。我自己的观察:研究只固定了一种基表(Smirk)、一种规范化(RDKit同位素非Kekulé)和两种算法,SELFIES/DeepSMILES、Kekulé表示、WordPiece都是独立实验;且只测了BPE/Unigram而未测学习边界、字节级架构(如byte-latent patching),后者彻底消解离散词表,处于本研究范围之外。

独立分析的弱点

独立分析的弱点有三。其一,'只孤立了算法轴'的结论在'小词表可学习区间'才成立,但作者也承认$V=8192$锚点已越过可学习上限——这意味着在真实部署的化学LM若确实需要更大词表(例如追求更长上下文或更细语义),本研究的'差异稳定'结论不能直接外推,因为两臂都会被罕见片段灌满而趋于共同耗尽子结构空间。改进方向:开发化学专用的可学习性度量,替代NMT-derived的 $F_{95\%,100}$。其二,缺乏下游验证是最大软肋:tokenizer级差异(近不相交、生育率差1/3)是否真的转化为LM质量差异未知,自然语言文献已警示'内征分离不一定等于下游分离'。改进方向:在匹配预算下训练BPE/Unigram两臂的化学LM(分子生成、性质预测、反应预测),直接量化下游delta。其三,机制解释停留在'贪心 vs 概率'的描述层,未给出可预测'哪个子结构会被哪臂吸收'的生成式模型。改进方向:构建形式化的片段选择模型,预测给定频率与价键约束下两臂各自吸收的子结构,从描述性升级为预测性。

未来方向

作者明确提出的方向:在匹配预算下做下游LM实验,判定哪个算法对化学LM更好;并把Unigram-LM的subword regularization能力纳入评估。基于本文成果可延伸的方向:第一,把对照扩展到其他基表(非Smirk)、其他规范化(Kekulé)、其他算法(WordPiece,已知与BPE在自然语言上重叠约80%,值得在化学固定基表上检验);第二,探索学习边界与字节级架构(dynamic chunking、byte-latent patching)是否能在保留覆盖的同时消除'算法选择'这一离散决策;第三,作者发现Unigram在蛋白质序列上是更压缩的一臂(方向相反),说明'哪臂更细'是领域特异的——可系统化研究SMILES/SELFIES/蛋白质/RNA等序列模态上BPE vs Unigram的方向性规律;第四,把'切分相容性'(嵌套远多于冲突)这一发现用于跨tokenizer知识迁移或词表蒸馏,让用一种tokenizer训练的模型能廉价适配另一种。

复现评估

复现性是本文的强项。作者声明释放全部44个双臂训练好的tokenizer(22个匹配条件+单臂坐标+敏感度扫掠+结构探针)、全部逐条件测量数据,以及生成所有表格和图表的脚本,作为版本化归档(Zenodo DOI:10.5281/zenodo.21228245);正文与图按CC-BY 4.0许可。方法描述极详尽:基表来源(Smirk 165-token)、RDKit构建pin、语料预处理策略、预切分模块、训练器(GpeTrainer vs 新增UnigramTrainer委托HuggingFace)及'按设计例外'、目标与实现词表大小的差异、确定性检查(每tokenizer训练两次断言字节一致)、bootstrap CI参数(95%, 1000重采样, 分子为重采样单元)全部公开。主要门槛在于数据体量:PubChem约50M、ZINC-22约10M、REAL-Space约136M分子,训练44个tokenizer在计算上不轻,但作为tokenizer级(不训LM)研究在单机或小集群可完成。弱点是部分依赖外部工具链(RDKit特定构建、HuggingFace tokenizers特定版本)的pin,跨版本复现需谨慎核对。