MarkushGrapher-2: End-to-end Multimodal Recognition of Chemical Structures¶
会议: CVPR 2026
arXiv: 2603.28550
代码: https://github.com/DS4SD/MarkushGrapher
领域: 多模态VLM / 文档理解
关键词: 化学结构识别、Markush结构、多模态编码、专利文档分析、OCR
一句话总结¶
MarkushGrapher-2 提出了一个端到端多模态化学结构识别模型,通过专用化学 OCR 模块联合编码图像、文本和布局信息,结合两阶段训练策略(先适配 OCSR 特征再融合多模态编码),在 Markush 结构识别上大幅超越现有方法(M2S 准确率 56% vs 38%),同时保持分子结构识别的竞争力。
研究背景与动机¶
-
领域现状:从文档中自动提取化学结构是大规模化学文献分析的基础。现有方法分别处理图像中的分子结构(OCSR)或文本中的化学命名实体,但对于结合图像和文本的多模态描述——Markush 结构——仍然处理不力。
-
现有痛点:Markush 结构在专利分析中至关重要(用于先行技术搜索、自由运营评估等),但当前仅被 MARPAT 和 DWPIM 两个人工标注的专有数据库收录。前代 MarkushGrapher-1 需要预标注 OCR 输出作为输入(无法端到端处理),且视觉识别精度有提升空间。通用 VLM(GPT-5、DeepSeek-OCR)在 Markush 识别上表现很差(M2S 上 GPT-5 仅 3%)。
-
核心矛盾:Markush 结构的图像风格在不同专利局和出版年份间差异巨大,文本描述缺乏标准化且包含条件/递归描述,同时缺乏大规模真实世界训练数据。
-
本文目标 构建统一的端到端模型,同时识别标准分子和多模态 Markush 结构。
-
切入角度:利用双编码器(OCSR 视觉编码器 + VTL 多模态编码器)互补融合,配合专用化学 OCR 模块和两阶段训练策略。
-
核心 idea:双编码管线融合视觉结构特征和多模态文本-布局特征,端到端识别化学 Markush 结构。
方法详解¶
整体框架¶
这篇论文要做的是从一张化学结构图里端到端读出 Markush 结构:既要给出骨架的图形描述(CXSMILES),又要给出取代基表(哪些分子片段可以替换骨架上的可变基团)。难点在于 Markush 结构是图文混合的——分子骨架是画出来的,可变基团(R1、R2 等)的定义却是文字写的,单靠视觉或单靠文本都识别不全。
为此模型用编码器-解码器架构,但前端铺了两条互补的编码管线。一条是纯视觉路线:图像送进冻结的 OCSR 视觉编码器(取自 MolScribe 的 Swin-B ViT),经 MLP 投影器得到视觉嵌入 \(e_1\),专门捕获分子骨架。另一条是多模态路线:图像先过 ChemicalOCR 抽出字符级文本和边界框,再连同图像送进 VTL 编码器(T5-base),得到融合了文本与布局的嵌入 \(e_2\),专门捕获 Markush 的文字描述。最后把 \(e_1\) 与 \(e_2\) 拼接,交给文本解码器自回归地生成 CXSMILES 和取代基表。这套架构靠两阶段训练策略才真正融合起来:先让解码器适配视觉特征,再引入多模态编码器补上文字这块缺失信息(下图节点上的 Phase1 / Phase2 标注即对应这两步)。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 420}}}%%
flowchart TD
IMG["化学结构图像"]
IMG --> V["OCSR 视觉编码器 Swin-B<br/>读分子骨架(始终冻结)"]
V --> P["MLP 投影器 → e₁<br/>(Phase1 训练)"]
IMG --> OCR["ChemicalOCR<br/>抽字符级文本 + 边界框"]
OCR --> VTL["VTL 编码器 T5-base<br/>视觉-文本-布局对齐 → e₂(Phase2 训练)"]
IMG -. 图像 patch .-> VTL
P --> CAT["拼接 e₁ ⊕ e₂(双编码器融合)"]
VTL --> CAT
CAT --> DEC["文本解码器<br/>自回归生成(两阶段均训练)"]
DEC --> OUT["CXSMILES 骨架 + 取代基表"]
关键设计¶
1. ChemicalOCR 模块:把"看不懂化学符号"的通用 OCR 换成领域专用 OCR
前代 MarkushGrapher-1 需要外部预先标好的 OCR 输出才能跑,无法端到端;而 Markush 识别里那些括号、下标、指标恰恰是判断可变基团的关键文字线索,OCR 一旦读错,下游全盘皆错。问题是现成的 PaddleOCR、EasyOCR 在化学图像上几乎不可用——它们会把化学键当成减号或等号,也认不出化学缩写,F1 只有 7.7 / 10.2,而本文的 ChemicalOCR 能到 87.2。做法是拿 256M 参数的轻量 VLM Smoldocling 来微调:先在 235k 张合成化学结构上预训练(OCR 标注由程序自动生成),再在 7k 张手工标注的 IP5 专利文档结构上精调。它输出的文本和边界框,正好为 VTL 编码器补上了文本和布局这两个模态。
2. 双编码器融合(OCSR + VTL):让两个各有所长又各有短板的编码器互补
Markush 结构同时含视觉信息(分子骨架)和文本信息(可变基团定义),任何单一编码器都顾此失彼。OCSR 视觉编码器擅长读分子骨架,却完全处理不了 Markush 的文字特征;VTL 编码器走 UDOP 那套范式,把空间上重合的视觉 token 和文本 token 对齐融合,擅长 Markush 文字特征,分子骨架反而读不准。消融数据把这种互补关系说得很直白:只用视觉管线时 USPTO SMILES 能到 89.1%、但 M2S 只有 8%;只用多模态管线时 M2S 上到 39%、USPTO 却掉到 46%。把两路投影后拼接送进同一个文本解码器,融合模型才同时拿住了两端。
3. 两阶段训练策略:先让解码器熟悉视觉特征,再引入多模态编码器补缺
如果一上来就把两个编码器和解码器一锅端地联合训练(Fusion only),M2S 准确率只有 44%。本文改成两步走。Phase 1(适配)冻结视觉编码器,只训投影器和文本解码器去做标准 SMILES 预测(243k 真实样本,3 epochs),目的是让解码器先适配 OCSR 的视觉特征空间。Phase 2(融合)再把视觉编码器和投影器一起冻住,引入 ChemicalOCR 和 VTL 编码器,端到端训练 VTL 编码器与文本解码器去预测 CXSMILES + 取代基表(235k 合成 + 145k 真实,2 epochs)。冻结 OCSR 这一支是为了保护已经学好的视觉特征不被破坏,让 VTL 专心去学 Markush 文字特征这块缺失的信息——这样分阶段后 M2S 从 44% 提到 50%(+6%)。
一个完整示例¶
设想一张专利里的 Markush 图:苯环骨架上挂着一个标着 "R1" 的可变位点,图旁的文字写着 "R1 = methyl or ethyl"。视觉管线里,Swin-B 把苯环这部分结构编码成 \(e_1\),但它对 "R1" 这个标签和旁边那行文字几乎无能为力。多模态管线里,ChemicalOCR 先把图上的 "R1"、文字描述以及它们各自的边界框抠出来,VTL 编码器据此把 "R1" 这个视觉标记和文字定义在空间上对齐,编成 \(e_2\)。\(e_1\) 和 \(e_2\) 拼起来后,解码器一边照着 \(e_1\) 写出苯环骨架的 CXSMILES,一边照着 \(e_2\) 在取代基表里填上 "R1 → 甲基 / 乙基"。可以看到:缺了 OCR 这一步,"R1" 和那行文字就丢了,骨架虽然认得出、取代基表却是空的——这正对应消融里"无 OCR 输入"时 M2S 从 56% 暴跌到 4% 的现象。
损失函数 / 训练策略¶
模型整体用标准的自回归交叉熵损失:Phase 1 监督 SMILES 预测,Phase 2 监督 CXSMILES + 取代基表预测。总参数 831M,其中 744M 可训练,训练在 NVIDIA A100 GPU 上进行。
实验关键数据¶
主实验¶
| 方法 | M2S (CXSMILES A) | USPTO-M A | WildMol-M A | IP5-M A |
|---|---|---|---|---|
| MolParser-Base (图像) | 39 | 30 | 38.1 | 47.7 |
| MolScribe (图像) | 21 | 7 | 28.1 | 22.3 |
| GPT-5 (多模态) | 3 | — | — | — |
| DeepSeek-OCR | 0 | 0 | 1.9 | 0.0 |
| MarkushGrapher-1 | 38 | 32 | — | — |
| MarkushGrapher-2 | 56 | 55 | 48.0 | 53.7 |
消融实验¶
| 配置 | M2S A | M2S A_InChIKey | USPTO-M A | IP5-M A |
|---|---|---|---|---|
| 无 OCR 输入 | 4 | 39 | 3 | 15.4 |
| 有 OCR 输入 | 56 | 80 | 55 | 53.7 |
| 单阶段训练 (Fusion only) | 44 | 53 | — | — |
| 两阶段训练 (Adapt + Fusion) | 50 | 68 | — | — |
关键发现¶
- OCR 模块是最关键组件:没有 OCR 的话 M2S 准确率从 56% 暴跌到 4%,因为括号和索引等文本信息对 Markush 特征预测至关重要
- ChemicalOCR 大幅超越通用 OCR:在 IP5-M 上 F1=86.5 vs PaddleOCR 的 1.9 和 EasyOCR 的 18.4
- 通用 VLM 在 Markush 识别上完全失败:GPT-5 仅 3%,DeepSeek-OCR 为 0%
- 两阶段训练比单阶段在 M2S 骨架准确率上提升 15%(53%→68%)
- 在标准分子识别(OCSR)上也保持竞争力:UOB 上达 96.6%(最佳),WildMol 上 68.4%
亮点与洞察¶
- 双编码互补设计:分别利用视觉编码器的分子骨架识别能力和 VTL 编码器的多模态融合能力,是一种通用的多模态架构设计模式。可迁移到其他需要同时处理结构化视觉和文本信息的任务(如表格理解、电路图分析)。
- USPTO-MOL-M 数据生成管线:从 USPTO MOL 文件自动提取真实 Markush 训练数据,解决了标注数据稀缺问题。这种利用已有结构化数据自动生成训练样本的思路值得借鉴。
- 领域特化 OCR:通用 OCR 在化学图像上完全不可用,但仅需 7k 手工标注+235k 合成数据即可训练出高精度的领域 OCR。说明领域适配在 OCR 中依然很重要。
局限与展望¶
- 整体准确率仍不高:M2S 上 56%、IP5-M 上 53.7%,离实用化还有距离,特别是取代基表预测(M2S 表准确率仅 22%)
- 训练数据仍以合成为主:235k 合成 + 145k 真实,合成数据的分布可能与真实专利文档有差距
- OCR 错误级联:OCR 模块的错误会直接影响下游 Markush 识别,级联误差可能在复杂结构中放大
- 仅支持 2D 结构:未处理 3D 分子构象信息
- 推理效率未讨论:831M 参数模型的推理速度是否满足大规模专利扫描的需求
相关工作与启发¶
- vs MarkushGrapher-1:前代需要预标注 OCR 输入,本文实现端到端处理;准确率从 38% 提升到 56%
- vs MolParser:MolParser 仅处理图像模态且只支持有限的 Markush 特征,本文联合处理图文且更全面
- vs GPT-5/DeepSeek-OCR:通用 VLM 在此任务上完全失败,说明化学结构识别仍需领域特化方法
评分¶
- 新颖性: ⭐⭐⭐⭐ 双编码融合+两阶段训练+专用OCR的组合设计新颖,但各组件技术本身不算全新
- 实验充分度: ⭐⭐⭐⭐⭐ 多个基准、多种基线对比、详尽消融实验,还发布了新基准IP5-M
- 写作质量: ⭐⭐⭐⭐ 论文结构清晰,对化学背景解释充分,但部分内容较冗长
- 价值: ⭐⭐⭐⭐ 填补了端到端Markush识别的空白,对化学信息学和专利分析有重要实用价值