一、写在前面的话
- 论文的相关背景
疾病的自动诊断是指根据电子病历信息自动地诊断患者所患的疾病。EMR通常包含以下信息:
![](https://img.haomeiwen.com/i10798244/b5ea33e2aa6cf7fa.png)
其中,CC(chief com- plaint)是病人自述自己的症状或(和)体征、性质以及持续时间等内容,HPI(history of present illness)是记述患者病后的全过程(即发生、发展、演变和诊治经过),PE(physical examination)是各项体格检查,SE(supplementary examination)是其他各类检查报告,Finding是通过NER获得症状实体
- 论文摘要翻译
疾病自动诊断领域一直存在缺乏高质量的语料训练预测模型的问题。此外,先前基于深度学习的诊断模型大多采用CNN或RNN对文本信息进行直接建模,导致关键医疗实体之间的复杂结构信息未被有效利用。在本文中,我们基于来自实际医院的高质量电子病历文档构建诊断模型,以提高所得模型的准确性和可信度。同时,我们将图卷积网络引入到模型中,以减轻稀疏特征问题,并促进模型融入图结构信息。此外,我们引入文本与图结构的相互注意力机制增强输入的表示,从而获得更好的模型性能。本文最后在真实EMR上对模型进行评估,结果表明与先前仅使用序列学习的诊断模型相比,本文所提出的模型更准确。该模型已被纳入部分中国的初级卫生保健机构的信息系统,以协助医生进行诊断过程。
-
论文的主要创新和贡献
-
针对疾病自动诊断模型未能利用关键医疗实体之间的结构信息的问题,引入图卷积
-
引入文本与图结构的相互注意力机制
-
二、论文模型
-
模型简要:
-
论文标题:The Graph-based Mutual Attentive Network for Automatic Diagnosis
-
研究领域:疾病诊断
-
提出时间:2020
-
主干网络:CNN + BiGRU + GCN
-
-
模型架构
![](https://img.haomeiwen.com/i10798244/210660e71a8b2b3a.png)
- 输入
输入主要可以分成两部分,一部分是主诉、现病史等纯文本(通过jieba进行分词)另一部分则是NER获取的医疗实体
- 主干网络 - MultiChannelCNN
纯文本通过嵌入之后获得词向量通过MultiChannelCNN进行特征抽取:
![](https://img.haomeiwen.com/i10798244/ccd4ff0a5fbe0f52.png)
- 主干网络 - BiGRU
纯文本通过嵌入之后获得词向量通过BiGRU进行特征抽取:
![](https://img.haomeiwen.com/i10798244/f1044554cb558bf8.png)
使用平均池化获取整句的向量表示:
![](https://img.haomeiwen.com/i10798244/2181b4cad850d412.png)
- 主干网络 - GCN
![](https://img.haomeiwen.com/i10798244/fedd6afc19189d56.png)
想要在诊断时利用疾病-症状的图结构信息,需要一个GCN网络,该图结构主要由疾病之间的父子关系和疾病与症状之间的关系组成
疾病之间的父子关系是无权边,而疾病与症状之间则是有权边,边的权重由以下公式定义:
![](https://img.haomeiwen.com/i10798244/6c7c759702935007.png)
其中,是指包含疾病
的病历数,N则是总文档数,
是症状
在包含疾病
的病历中出现的次数
最后,需要归一化,归一化公式如下所示:
![](https://img.haomeiwen.com/i10798244/8c97fc77cdb90d40.png)
文章提到由于A矩阵长尾现象严重,所以在构图时对每一个疾病仅保留Top5的症状
GCN建模部分其实也是分成两块,一块是对疾病之间的父子关系所组成的图结构进行学习,获取疾病的图嵌入信息:
![](https://img.haomeiwen.com/i10798244/a1368c406883c7a6.png)
其中是疾病
的所有父节点集合,
是疾病
的所有子节点集合
另一块则是基于疾病与症状所组成的图结构,学习症状的嵌入信息:
![](https://img.haomeiwen.com/i10798244/1a3056a4ab0cb5c3.png)
其中是症状
的所有邻居结点集合(即与症状
相连的疾病节点)
论文中没有介绍图网络的训练方式,但论文提到这一块参考GraphRel,所以应该是随着网络一起训练
- 主干网络 - Mutual Attentive Network
Attention部分也是分成两块,两者是串行关系,先是text-guided attention:使用BiGRU部分生成的句子向量与所有从NER获取的症状的图嵌入做Attention:
![](https://img.haomeiwen.com/i10798244/f4d8a75ee22e7b48.png)
最后通过attention权重加和所有的症状嵌入
![](https://img.haomeiwen.com/i10798244/f6eb4636ca632989.png)
接着则是finding guided attention:使用上文通过attention权重加权求和获得的症状向量与MultiChannelCNN生成的向量做Attention:
![](https://img.haomeiwen.com/i10798244/84c6f93327fd81a0.png)
![](https://img.haomeiwen.com/i10798244/dcf503bacb9b3e5b.png)
最后同样使用attention加权求和:
![](https://img.haomeiwen.com/i10798244/afd925d0010c3842.png)
- 主干网络 - MLP
这一部分就是加权求和得到的症状向量、文本向量以及一些病人的基本信息拼接,通过全连接层进行映射
- 损失函数
论文没有提到损失,估计应该是交叉熵
三、论文实验
- 实验数据集和指标介绍
- 数据集
论文的数据集有两部分,一部分是真实的医疗场景中的EMR(神经科和心内科)数据形式见上文相关背景中的图片,另一部分是MIMIC-III- 50英文病历数据集
![](https://img.haomeiwen.com/i10798244/6de44e0287e83e56.png)
- 评测指标
中文数据采用 R@1和 P@1,英文数据采用 R@5 和P@5
- 模型诊断展示
![](https://img.haomeiwen.com/i10798244/7861544d3200e40c.png)
- 对比结果
![](https://img.haomeiwen.com/i10798244/0f52df4d7d389b21.png)
其中CNN和BiGRU就是将这两个网络结构用在疾病诊断领域,ACNN是在CNN的基础上加入了gram-level attention,CAML是在CNN的基础上加入了label-wise attention,GCN、MAN 是仅使用GCN或MAN的情况,GPAP则是使用Parallel Attentive Pooling(这篇还没有去研究)
结果上当然是提升,不过对比的论文都不是很新。论文加入图结构信息的部分还是蛮好的,整体下来思路也很清晰,不过可惜的是没有给代码。
网友评论