news 2026/8/27 15:43:02

DDI-GPT可解释性核心揭秘:Interpreter信息损失算法与token重要性可视化原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DDI-GPT可解释性核心揭秘:Interpreter信息损失算法与token重要性可视化原理

DDI-GPT可解释性核心揭秘:Interpreter信息损失算法与token重要性可视化原理

【免费下载链接】ddigpt项目地址: https://gitcode.com/gh_mirrors/dd/ddigpt

DDI-GPT 是一个基于大语言模型(GPT-2)+ 知识图谱(KG)的药物-药物相互作用(DDI)预测框架。它不仅能给出"会相互作用 / 不会相互作用"的判断,还能通过内置的 Interpreter 模块,用信息损失(information loss)算法量化每个 token 对预测的贡献,并以token 重要性热力图直观呈现。本文面向新手,带你无需机器学习背景也能看懂地拆解这套可解释性方案。

什么是 DDI-GPT:预测与解释"二合一" 🎯

传统药物相互作用预测模型是"黑箱":只给结论,不给理由。DDI-GPT 的解法是把高质量生物医学知识图谱特征"翻译"成语言模型能读懂的输入,先预测,再用可解释性算法回答"模型到底在看哪些词"。

整体流程分四步:① 把药物-蛋白/副作用关系渲染成关系网络;② 提供两种药物在 PPI 网络间的最短路径;③ 用 KG 构造输入文本进行预测;④ 提供带token 重要性分数的可解释 AI 工具。

![DDI-GPT知识图谱药物相互作用预测与token重要性解释系统总览](https://raw.gitcode.com/gh_mirrors/dd/ddigpt/raw/d29c6cff51f630a12a96f8a65d4abeb13ca5168f/web_figs/Artboard 1.png?utm_source=gitcode_repo_files)

项目功能入口一览:

  • 网络可视化页面:pages/1_1️⃣_Visualize Interactions.py
  • 预测与可解释性页面:pages/2_2️⃣_Submit a Job.py
  • 信息损失算法核心:Interpreter.py
  • 本地运行入口:Introduction.py(执行streamlit run Introduction.py启动)

输入构造:把两个 DrugBank ID 变成一句"知识句" 🧬

在 "Submit a Job" 页面,你只需输入两个 DrugBank ID(如DB00343DB01268),DDI-GPT 会先查dict/目录下的四个知识字典,把药物的生物医学特征拼成一句结构化文本:

  • uqcomb_dpwy_dict.p:药物 → 信号通路(pathway)
  • uqcomb_dg_tg_dict.p:药物 → 靶点基因(target)
  • uqcomb_dg_trans_dict.p:药物 → 转运体(transporter)
  • uqcomb_dg_enzy_dict.p:药物 → 酶(enzyme)

拼接后形如Drug_is DB00343 pathway_is KEGG:map04976 ... target_is HGNC:1390 ... Drug_is DB01268 ...,送入 GPT-2 序列分类头做二分类。这句话正是后续解释的前提:句中每个词的重要性都可以被单独量化

![DDI-GPT药物相互作用预测界面与知识图谱构造的输入句示例](https://raw.gitcode.com/gh_mirrors/dd/ddigpt/raw/d29c6cff51f630a12a96f8a65d4abeb13ca5168f/web_figs/Screenshot 2024-12-05 155744.jpg?utm_source=gitcode_repo_files)

Interpreter 信息损失算法:给每个 token 算一个"扰动容忍度" 🔍

可解释性核心就在Interpreter.py中,它的思想非常直观——对每个词回答一个问题:

"把这个词的词嵌入加多大尺度的噪声,模型的预测都不会变?"

损失函数直觉:两个相反方向的力

算法为每个 token 学习一个独立的噪声强度 σ,损失函数由两个力拔河决定:

L(σ) = ‖Φ(x+ε) − Φ(x)‖² / reg² − rate·log(σ)

  • 第一项(保真力):嵌入 x 加了噪声 ε 后,模型输出 Φ 不能变太多 → 想把 σ压低
  • 第二项(熵力):让 σ 尽量大 → 想把 σ抬高

两边平衡后得到的 σ,就是该词在不影响预测的前提下能"承受"的最大扰动。σ 越大说明模型越不依赖这个词;σ 越小说明预测对它越敏感——它就是决策的关键。

重参数化技巧:让噪声变得可学习

高斯噪声本身无法直接优化,代码采用重参数化技巧:ε = scale × ratio × noise。其中 noise 是标准高斯随机数,ratio 是被 sigmoid 约束在 (0,1) 的可学习参数,于是 σ = ratio × scale。

关键超参数(见Interpreter.py注释):

  • scale:σ 的上限,演示中取词嵌入权重标准差的 10 倍;
  • rate:平衡"输出稳定"与"信息损失"的比例,越大整体信息损失越大;
  • calculate_regularization():用采样输入估计输出方差做归一化,保证不同维度上的差异可公平比较。

网页演示里为响应速度只跑了 5 次迭代(interpreter.optimize(iteration=5));在研究场景可放大到数千次迭代获得更精确的 σ。

官方架构图中 "e. Model Explanation" 面板就是该模块的产物——把重要基因/token 的贡献画成柱状图。

token 重要性可视化:如何读懂热力图 📊

拿到 token 级 σ 后,页面代码(pages/2_2️⃣_Submit a Job.py)做两步处理:

  1. token → 词聚合:GPT-2 分词器常把一个词切成多个子 token,代码把同一词的所有子 token 的 σ求和,得到词级重要性;
  2. 热力图渲染:用 matplotlib 的GnBu_r色阶画一维热力图,每个格子对应输入句中的一个词。

读图口诀:颜色越深,σ 越小,该词对预测越重要。浅色则说明这个词"容忍"较大扰动,贡献较弱。

![DDI-GPT token重要性信息损失热力图可视化示例](https://raw.gitcode.com/gh_mirrors/dd/ddigpt/raw/d29c6cff51f630a12a96f8a65d4abeb13ca5168f/web_figs/Screenshot 2024-12-05 160925.jpg?utm_source=gitcode_repo_files)

在这个实例中,两个药物 ID(DB00343DB01268)和若干靶点基因颜色最深——说明模型主要依据"是哪两种药"及其靶点做判断,而部分通路词颜色偏浅。这正是可解释性的价值:不只给结论,还告诉你"为什么"

快速上手:体验 DDI-GPT 可解释性的最快路径 ⚡

  1. 获取代码:git clone https://gitcode.com/gh_mirrors/dd/ddigpt
  2. 安装依赖:pip install -r requirements.txt
  3. 启动 Web 服务:streamlit run Introduction.py
  4. 在 "Submit a Job" 页输入两个 DrugBank ID → 点 Predict → 点Measure token importance即可得到热力图。

搭配 "Visualize Interactions" 页面,可以按药物名浏览药物-蛋白-副作用网络、查看两药间的最短路径,用来交叉验证热力图中被判为"重要"的基因是否真有生物学意义:

![DDI-GPT知识图谱药物相互作用网络与基因路径可视化示例](https://raw.gitcode.com/gh_mirrors/dd/ddigpt/raw/d29c6cff51f630a12a96f8a65d4abeb13ca5168f/web_figs/Screenshot 2024-12-05 154257.png?utm_source=gitcode_repo_files)

总结

模块文件路径一句话说明
信息损失算法Interpreter.py为每个 token 学习最大"扰动容忍度" σ
token 重要性可视化pages/2_2️⃣_Submit a Job.py子 token 聚合后绘制词级热力图
KG 知识句构造dict/下四个字典查通路、靶点、转运体、酶四类关系
相互作用网络浏览pages/1_1️⃣_Visualize Interactions.py药物间最短路径与 2-hop 探索

一句话概括 DDI-GPT 的可解释性本质:让模型自己告诉你"哪些词可以放心扰动,哪些词绝不能动"——前者是噪声,后者就是它下判断的依据。

【免费下载链接】ddigpt项目地址: https://gitcode.com/gh_mirrors/dd/ddigpt

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 15:43:02

K8s集群分布式存储快照恢复实战演练实操

K8s集群分布式存储快照恢复实战演练实操技术栈:Kubernetes v1.32.13 Rocky Linux 8.6 存储快照与克隆 Containerd 1.7.x操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案K8s集群分布式存储快照恢复实战演练实操操作环境K8s 集群 3 节…

作者头像 李华
网站建设 2026/8/27 15:40:37

大疆热红外影像转温度GeoTIFF的R-JPEG解析与Pix4D合成实践

简介:无人机遥感中的热红外成像技术常被用于地表温度监测与农业植保,而大疆H20T、XT2等相机输出的R-JPEG格式并非普通图像,温度数据以私有元数据形式封装在JPEG容器内。要获得真实温度,需解析JPEG中的Ancillary Data,提…

作者头像 李华
网站建设 2026/8/27 15:39:32

AI Agent工具调用安全:预执行门禁的设计与实现

如果你正在把一个 AI Agent 接进生产环境,有一件事迟早会拦在你面前:你怎么确认模型生成的工具调用不会删库、发邮件、写坏文件,或者把敏感数据暴露给不该看的人?靠提示词约束,靠模型自觉,靠事后审计&#…

作者头像 李华
网站建设 2026/8/27 15:39:20

4399手游模拟器推荐 玩4399手游用什么模拟器好

不少情怀玩家偏爱游玩4399系列手游,手机游玩却常受发热、运行卡顿等问题困扰,选对适配的4399手游模拟器,就能彻底改善这类游玩体验。市面上多数模拟器对4399手游适配优化不足,容易出现兼容出错、画面模糊等问题,哪款43…

作者头像 李华
网站建设 2026/8/27 15:39:06

基于ONNXRuntime的YOLOv8 C++部署:检测、分割、旋转框全攻略

简介:深度学习模型的工程落地往往面临跨语言、跨平台的挑战,而推理引擎的选择直接决定部署效率与兼容性。ONNXRuntime作为跨平台推理框架,能够统一加载目标检测、实例分割等任务模型,配合OpenCV完成图像预处理与结果可视化&#x…

作者头像 李华