(2017BIBM) Personalized disease prediction using a CNN-based similarity learning method

论文: https://ieeexplore.ieee.org/document/8217759
以往都是使用整个训练数据来构建全局模型,本文是找到与所预测个体相似的群体,然后建立个性化模型来进行预测。

文章主体分为两大部分:相似性学习,个性化预测。

相似性学习

(2017BIBM) Personalized disease prediction using a CNN-based similarity learning method
1)Basic Notations: medical codes -->ICD-9 one-hot编码–>一维向量–>多次就诊向量按时间拼接–>二维矩阵
水平维度对应于医疗事件,垂直维度对应于就诊。不同的病人,就诊次数不同,通过补零,使得所有病人的向量表示具有相同的大小。

2)Visit Embedding -->嵌入矩阵XRtdX∈R^{t*d}每个病人
one-hot会增大纬度,进行降维,使用全连接将code嵌入向量空间中。其中 ddd 为所有的病人就诊记录数的最大值。
xi=ReLU(Wvvi+bv),xiRdx_i=ReLU(W_v v_i+b_v) , x_i ∈R^d

3) Convolutional Neural Network
不同于跨像素空间关系的图像Time Fusion,医学编码的位置没有时空意义,所以采用跨时间纬度的单边卷积
卷积:
  卷积核有p个不同尺寸,每个尺寸q个,所以有m=pq个卷积核。
  每个卷积核为wcRhdw_c ∈R^{h*d} ,h为访问长度的窗口大小,即h个顺序时间戳。xixi+h1x_i-→x_{i+h-1}
  ci=ReLU(Wcxi:i+h1+bc)c_i=ReLU(Wc · x_{i:i+h-1}+b_c ) stride=1
  得m个特征图
池化:
  最大池化
  串联输出得到hRmh∈R^m

4)Time Fusion
将每个样本分成一组短的固定大小的子帧。
由于分割操作可能会分割边界时间戳的连接,因此使用滑动窗口来考虑子帧之间的重叠。
对每个子帧使用上述的卷积池化操作来获得向量表示。
对这些向量加权平均,得到原始数据的综合向量表示。
每个子帧的聚集权重使用:ai=tanh(WaThi+ba)a_i=tanh⁡(W_a ^T h_i+b_a),权重归一化为a=Softmax([a1,a2,,at])a=Softmax([a_1,a_2,…,a_t ])
权重不取决于子帧数量,因此不受零填充的影响。
患者的总体体现为h~=aihi\tilde{h}= ∑a_i h_i

5) Similarity Learning
向量相似性:S=h~AMh~B,MRmmS = \tilde{h}_A M\tilde{h} _B, M∈R^{m*m},M是对称的因为要有实际意义,M=LTL,LRgm,g<mM=L^T L, L∈R^{g*m},g<m
考虑对称约束和转换病人向量来得到相似向量,去确保病人顺序无影响。
使用公式将h~Ah~B\tilde{h}_A,\tilde{h} _B转换到单个向量: H=Whh~AWhh~BH =W_h \tilde{h} _A⊕W_h \tilde{h} _B, ⊕是按位加法。
然后将H和S完全连接到softmax层得到y~\tilde{y},即两患者的相似度。
使用y和y~\tilde{y}的交叉熵来计算损失:
(2017BIBM) Personalized disease prediction using a CNN-based similarity learning method
其中N~\tilde{N}是患者对的总数,如果有N个患者,则N~=(N1)/2\tilde{N}=(N-1)/2
所有参数使用反向传播进行更新。
(2017BIBM) Personalized disease prediction using a CNN-based similarity learning method

个性化预测

1)K Nearest Neighbors
选择K个具有相似可操作性的训练患者作为试验患者,并使用其中最常见的疾病作为预测。

2)Discriminate Classification
对得分最高和最低的患者训练预测模型,使用逻辑回归作为预测模型。分别训练模型参数以确定每个特定患者。

3)Weighted Sampling
上述两方法都需要优化k,因为预测性能取决于学习的相似性评分和选择的患者数量。按照相似度的分布来挑选病人,然后利用采样的病人数据,通过多数投票法来得到预测结果。

实验

(2017BIBM) Personalized disease prediction using a CNN-based similarity learning method

数据描述

数据集包含100000名患者的医疗索赔。抽取了diabetes,obesity,COPD三个疾病。
在就诊记录中有1)符合疾病ICD-9编码的患者2)在12个月内至少3次符合ICD-9编码的临床就诊。
第一个目标诊断日期为索引日期。将索引日期的患者序列分为两部分,使用索引日期前包含早期症状和并发症的部分进行相似性学习和预测。
移除重叠的患者,每个患者只患一种疾病。
排除少于5名患者出现的临床事件。
数据集分为0.8:0.2的比例进行训练和测试。
(2017BIBM) Personalized disease prediction using a CNN-based similarity learning method

实验开始

1)模型实现:相似性框架是在一批病人对上训练的,以确保每个病人对都可以被测量。对于过拟合问题使用L-2正则化和dropout策略。
2)Baseline Approaches:考虑三种将EHR矩阵映射到向量表示的方法:聚集向量,CNN学习向量,CNN时间融合向量。
聚集向量:我们根据每个病人所有就诊次数来计算每个病人的医疗code数量,因此每个元素都指示相应code的频率。

全局模型GM:使用整个训练数据来构建全局模型,用于预测所有测试数据。这个模型没有考虑不同病人的固有分组,使用逻辑回归作分类。

对比:
个性化预测策略:KNN(k=10), weighted sampling, LR

相似策略:传统的相似性学习方法:欧几里得距离、余弦距离。监督相似性(Sup.sim)

(2017BIBM) Personalized disease prediction using a CNN-based similarity learning method

实验结果

疾病预测结果:
1、CNN通过访问了解本地时间关系,并捕获访问序列的最重要信息,从而显著提高分类性能。CNN-t不仅可以学习局部时间关系,而且还可以从每个较小的时间间隔中测量分布,以便更好地表示原始访问序列的时间信息。
2、欧几里德距离和余弦距离是常用的相似度度量方法,直接应用于每对患者之间的三个向量表示,距离越近相似度越高。与这两种距离度量方法相比,我们的监督相似度方法具有更好的性能。这种改进是由于利用了标签信息,在相似度标签的指导下优化了相似度学习的参数。
3、与全局模型相比,基于监督相似度的个性化预测具有更高的精度。这是因为,尽管全局模型考虑了整个训练群体的特征,但它忽略了个体患者固有的队列性质。个性化模型可以更好地满足每个特定的目标患者。
4、这三种疾病确实表现出多种相互关系,并有一些共同的症状和并发症,特别是糖尿病和肥胖,使它们很难被区别开来。与全局模型相比,该方法能更好地识别三个疾病组,尤其是糖尿病组和COPD组。在每个队列中拥有更详细的亚组信息可能有助于更好地区分EHRs的异质性。
(2017BIBM) Personalized disease prediction using a CNN-based similarity learning method
相似度学习结果:
如表5,我们可以看到在每种方法下,基于CNN的模型可以学习更好的向量表示。此外,监督相似性框架在分组患者队列的任务上显著优于聚类方法