返回目录
公开知识笔记 · 不进入目录

SIDER与药物副作用频率预测

公开知识笔记

SIDER与药物副作用频率预测

一句话理解:SIDER把药品说明书中的副作用信息整理成数据库;A3Net要学习的是“某种药物出现某种副作用有多频繁”,而不只是“是否有关联”。

1. 先区分三个任务

任务 输出 例子
二分类 有或没有 药物A是否与恶心相关
排序 哪些副作用更值得优先关注 给药物A推荐前10个可能副作用
频率预测 发生频率等级或数值 恶心属于rare还是frequent

A3Net同时碰到后两类问题:它预测1—5级频率,又用AUC、mAP、NDCG等指标检查能否把已知关联排到前面。

2. A3Net里的矩阵是什么

把药物放在行、副作用放在列,可得到频率矩阵 SS:

Sij=药物 i 与副作用 j 的频率等级S_{ij}=\text{药物 }i\text{ 与副作用 }j\text{ 的频率等级}

论文共有750种药物和994种副作用,所以矩阵大小是750×994750\times994。已记录频率被离散为1—5级;0表示数据库没有记录该组合。

3. 最容易犯的错误:0不等于“没有”

数据库未记录一个组合,可能有多种原因:确实没有关联、样本不足、说明书未报告、名称映射失败,或尚未被观察。因此0更准确的含义是“未知/未标注”,不是经过验证的阴性。

这会影响两件事:

  1. 训练时若把0都当负例,可能错误压低真实但未记录的关联;
  2. 评估AUC时若把0都当负例,模型发现的新关联反而可能被算作假阳性。

这就是正例-未标注学习PU Learning要处理的问题。

4. 五级频率意味着什么

离散等级便于统一不同说明书中的频率区间,但会损失细节:两个真实发生率不同的组合可能被放进同一级;等级之间也不一定严格等距。因此把1—5直接当连续数做RMSE,是实用做法,却隐含“相邻等级距离相同”的假设。

5. 在A3Net中处于哪里

  • 输入:训练折中可见的频率矩阵;
  • 图构建:副作用节点按频率轮廓相似度构成KNN图;
  • 输出:通过内积解码重建完整矩阵;
  • 评估:同时看排序指标与数值误差,详见预测模型评价指标。

6. 阅读时的检查问题

  • 0被当成未知、弱负例还是真负例?
  • 频率等级是有序类别还是连续数值?
  • 测试折的信息是否参与构图?
  • 新药和已知药物是否分开评估?

相关论文

  • A3Net精读笔记(A3Net)
SIDER与药物副作用频率预测|每周札记