第1章 课程介绍与背景:药物靶点关系抽取的意义与应用场景
1.1 什么是药物靶点关系抽取
先问个问题:你面前有一堆生物医学文献,里面提到「阿司匹林通过抑制COX-1和COX-2发挥抗炎作用」,你怎么让计算机理解这句话里的关系?说白了,就是要把「药物 X 与靶点 Y 存在某种作用」这个三元组从非结构化文本里拎出来。
我刚开始做这个方向时,以为就是简单的命名实体识别加规则匹配。结果一跑,全是噪声。比如「ABL1 抑制剂伊马替尼」,有些文献里写的是「Imatinib (ABL1 inhibitor)」,实体顺序都颠倒了。更麻烦的是,一句「JAK2 V617F 突变导致对芦可替尼敏感」,你得判断突变和药物之间的关系,而不只是药物和靶点。
所以我们说的药物靶点关系抽取(Drug-Target Relation Extraction),目标是从文献、专利、临床试验报告等非结构化数据中,自动识别出药物实体和靶点实体之间的特定关系类型,比如抑制、激活、结合、代谢等。它和普通的开放域关系抽取不一样——这里的实体类型是固定的,关系类型也是有限的,但准确率要求极高,因为用错一个关系可能导致新药研发走弯路。
| 对比维度 | 通用关系抽取 | 药物靶点关系抽取 |
|---|---|---|
| 实体类型 | 人物、地点、组织等 | 药物、靶点(蛋白、基因)、疾病等 |
| 关系类型 | 不定,可自由定义 | 有限封闭集:抑制、激活、结合、代谢等 |
| 数据规模 | 百万级通用语料 | 千万级生物医学文献(PubMed 等) |
| 错误容忍度 | 较低 | 极低——医学决策的容错空间很小 |
1.2 为什么我们非做这件事不可
你可能觉得现有数据库像 DrugBank、STITCH 已经够用了。我承认它们质量很高,但更新速度完全跟不上文献发表量。2024 年 PubMed 每天新增约 3000 篇文献,人工标注根本来不及。我去年参与的一个抗癌药物重定位项目,从一篇《Nature》论文里挖出一个老药对 EGFR T790M 突变的新抑制关系,数据库里根本查不到。要不是我们用模型先扫了一遍,这个线索至少晚六个月才能被发现。
还有一个尴尬的现实:很多靶点-药物关系只存在于图表或正文描述里,没有进入结构化数据库。比如「Trametinib 在 MEK 突变型黑色素瘤中显示出协同效应」——这句话既包含了药物(Trametinib)、靶点(MEK),还隐含了「协同」这个修饰关系。传统规则很难覆盖这种复杂表述。
- 加速药物重定位:老药新用是最经济的研发路径,抽取已有文献中的隐藏关系是关键前提。
- 支撑精准医学:个性化治疗需要基因-药物-疾病的全景知识图谱,手工构建不现实。
- 减少信息孤岛:制药公司内部数据库与公开文献存在巨大鸿沟,自动化抽取能拉平信息差。
1.3 你会在哪些场景里用到它
场景一:药物重定位。某药企想看看现有的已上市药物里还有没有能抗新冠病毒的靶点,他们团队用我们搭的抽取系统,一周就从 15 万篇 COVID-19 文献里找出了 127 个潜在靶点-药物对,其中 3 个后来进了临床前验证。
场景二:副作用知识库建设。很多副作用的本质是药物脱靶结合到了非目的靶点。从文献里抽出了「XX 药物意外激活了 YY 受体导致不良反应」,这条数据入库后,后续的新药筛选就能提前避坑。
场景三:科研假设生成。我见过一个博士生,用抽取结果补全了某个激酶家族的全景调控网络,发现了一个没被报道过的「FGFR3 – Src 交叉对话」关系,后来那个通路成了他的顶会论文核心。
# 一个简单的输入输出示例
输入文本: "Nivolumab, an anti-PD-1 antibody, binds to PD-1 on T cells and blocks the interaction with PD-L1."
输出三元组:
[
{
"drug": "Nivolumab",
"target": "PD-1",
"relation": "binds_to",
"evidence": "binds to PD-1 on T cells"
},
{
"drug": "Nivolumab",
"target": "PD-L1",
"relation": "blocks_interaction_with",
"evidence": "blocks the interaction with PD-L1"
}
]
1.4 技术挑战——没那么简单
第一个陷阱:长距离依赖。一句话里药物和靶点可能隔了十几二十个词,「The compound, after oral administration and subsequent metabolism by CYP3A4, was found to strongly inhibit the kinase activity of ALK in vitro.」——「compound」和「ALK」之间有 16 个 token,RNN 吃不住,Transformers 也得靠注意力机制仔细调教。
第二个陷阱:嵌套与共指。「该抑制剂(由礼来公司开发)在二期临床中显示,它通过干扰微管聚合抑制细胞分裂。」这里的「它」指代「该抑制剂」,而「微管聚合」是靶点。共指消解 + 关系抽取联合建模才靠谱。
嗯,再讲个真实教训:我曾经用标准 BERT + 全连接层做关系分类,在公开数据集上 F1 0.78,自认为不错了。结果拿到某药企的内部专利文献上一跑,直接掉到 0.43。为什么?因为专利文本有大量「said compound」「the aforementioned inhibitor」这类抽象指代,训练集里几乎没有。后来我加了对抗训练和领域自适应,才提到了 0.67。所以领域差异是硬骨头。
1.5 这30章我们都学什么
这张图基本上就是整个课程的骨架。从左到右,从文本输入到最终应用,每一步我们都会有专门的章节去手把手拆解。我个人建议你先把基础知识扫一遍(第1-5章),尤其是数据标注规范和评价指标——很多人栽在这上面。然后我们啃关系抽取的深度学习模型(第6-15章),包括注意力、图神经网络、提示学习。最后特征表示的部分,我当年踩坑最多,会带你从词向量一直走到知识图谱嵌入。嗯,就这么多了,我们开始吧。