【写在前面】该论文发表于IJCAI 2020,是一篇关于ICD coding的论文,即根据电子病历内容去判断该病人的主要诊断,因此它也属于疾病诊断的一种。该论文提出了一种标签注意力机制,可以很好地处理了文本不同长度的问题,以及不同ICD码相关文本片段之间的依赖关系。同时,还提出了一个层次联合学习机制,去解决数据的不平衡问题。
论文地址:https://www.ijcai.org/proceedings/2020/0461.pdf
论文源码:暂无源码
1. Motivation
1.目前使用CNN可以处理单个文本片段的不同大小,为不同长度的相互依赖片段选择基于Cnn的模型的最佳窗口大小是具有挑战性的
2.数据不平衡问题,有一些ICD码的用于训练和测试的数据比较少
2. Idea
1.提出了标签注意力模型,它可以处理各种不同长度的文本,以及涉及到ICD码不同片段之间的依赖性。其中采用BiLSTM来处理文本,来解决文本长度不一致问题;此外还是用了Attention机制来学习每个标签特定的向量,该向量代表了某些标签相关的临床文本片段信息,每个特定标签的向量最后用于二分类器。
2.提出了一个层次联合学习机制,它可以使用ICD码的层次结构解决数据不平衡问题。
3.在MIMIC III数据集上取得了较好的实验结果。
3. Approach
将ICD coding作为一个多标签分类任务,该模型的目标就是训练 ∣ L ∣ |\boldsymbol{L}| ∣L∣个二元分类器( L \boldsymbol{L} L为ICD集合),每个分类器需要得到最终的结果 y j ∈ { 0 , 1 } y_j \in \{0,1\} yj∈{0,1},表示 L \boldsymbol{L} L中的第j个标签。
3.1 Label Attention Model
上图展示了模型的具体结构, 该模型共分为四个层:
第一层:嵌入层,得到每个文本中token的预训练词向量;
第二层:Bi-LSTM层,生成所有输入token的潜在特征表示;
第三层:Attention层,根据整个文本得到每个特定标签对应的向量;
第四层:二值分类器层,为每个标签训练一个二值分类器,每个分类器使用一个前馈网络预测才文本是否含有特定的ICD码。
3.1.1 Embedding Layer
假定诊断文本D中含有n个word tokens w 1 , w 2 , . . . , w n w_1,w_2,...,w_n w1,w2,...,wn,对于第i个token,采用给一个 d e d_e de维的预训练向量 e w i e_{w_i} ewi表示。
3.1.2 Bidirectional LSTM Layer
使用Bi-LSTM捕捉输入单词中的文本信息
然后将前向和后向得到的隐向量进行拼接,来得到最终的词表示:
最终我们可以得到一个最终的词向量表示 H = [ h 1 , h 2 , . . . , h 3 ] ∈ R 2 u × n \bold{H}=[h_1, h_2, ..., h_3]\in R^{2u \times n} H=[h1,h2,...,h3]∈R2u×n
3.1.3 Attention Layer
由于医疗文本数据的长度不固定,并且每个文档可能含有多个标签,该模型的目标就是将H转成特定标签对应的向量。
其中,
W
∈
R
d
a
×
2
u
\bold{W} \in R^{d_a \times 2u}
W∈Rda×2u,
Z
∈
R
d
a
×
n
\bold{Z} \in R^{d_a \times n}
Z∈Rda×n,
U
∈
R
∣
L
∣
×
d
a
\bold{U} \in R^{|L| \times d_a}
U∈R∣L∣×da,
A
∈
R
∣
L
∣
×
n
\bold{A} \in R^{|L| \times n}
A∈R∣L∣×n.矩阵A中的第i行都表示第i个标签的权重向量。
然后使用A和H得到最终的每个特定标签对应的表示。
其中,
V
∈
R
2
u
×
∣
L
∣
\bold{V} \in R^{2u \times |L|}
V∈R2u×∣L∣,每一列表示第i个标签对应的词向量
3.1.4 Output Layer
对于每个特定标签的表示都使用单个前馈网络,并采用sigmoid激活层去得到第i个标签的概率,最终这个概率使用一个阈值0.5去预测该患者是否患有该疾病。
损失函数如下:
3.2 Hierarchical Joint Learning Mechanism
对于现有的ICD码,它具有一种层次结构,例如“原因不明的脑膜炎”(322)下会细分为“非化脓性脑膜炎” (322.0)、“嗜酸性性脑膜炎”(322.1)、“慢性脑膜炎”(322.2)、“不明脑膜炎”(322.9)等多种疾病。
因此该模型首先会在第一层attention得到基础ICD码,然后将预测得到的基础ICD码嵌入为词向量 s D ∈ R p s_D \in R^p sD∈Rp,然后将该向量与原始特定标签对应的向量进行连接,用于最终的预测。
该模型的损失分为两个部分,一个是第一层中预测基础ICD码产生的损失,另一个是进行特定标签分类产生的损失。
4. Experimental Setup
4.1 Datasets
MIMIC III
采用MIMIC III作为数据集,其中共得到52722份出院小结,8929个不同的ICD码。在数据集切分的时候是按照病人切分,不会存在同一个病人及存在于测试集又存在训练集。
数据集又细分为MIMIC III-full和MIMIC III-50,前者训练集47719,验证集1631,测试集3372;后者训练集11317,验证集1574,测试集1730.
MIMIC II
MIMIC II是MIMIC III的前身,其中共包括20533,验证集1141,其余的19392用于训练
数据预处理
1.将文本标记化得到tokens,并且将所有的token改成小写字母
2. 删除不属于字母的字符,例如数字和标点
3. 采用Word2Vec模型得到每个Word的预训练向量,维度为
d
e
=
100
d_e = 100
de=100
4. 将所有文本截断长度为4000,经过证明最大截断长度在2500-6500对最终结果影响不是很大
4.2 Evaluation Metrics
macro- and micro-averaged F1 and AUC (area under the ROC curve), precision at k (P@k∈ {5,8, 15})
4.3 Implementation and Hyper-parameter Tuning
Implementation
batch size: 8,
epochs: 50,
使用动态减少的学习率,超过5 epoch没有提升则减少10%,
micro-averaged F1 score 连续6个epoch没有提升则提前停止
dropout:0.3
随机训练10次,最终结果取其平均值
Hyper-parameter tuning
LSTM hidden size: 128*,* 256*,* 384*,* 512
映射矩阵 d a d_a da: 128*,* 256*,* 384*,* 512
4.4 Baselines
LR. SVM. CNN. BiGRU. C-MemNN. C-LSTM-Att. HA-GRU. LEAM. CAML. DR-CAML. MSATT-KG. MultiResCNN.