1. 引言
通过追踪一段时间内对患者状态的重复测量,电子健康档案(electronic health records, EHRs)数据包含有关疾病演变的重要信息,该信息可用于构建潜在帮助预测疾病进展的模型。然而,仅在医疗保健事件期间或患者前往医院接受常规医疗护理时才记录患者数据,导致数据的不规则采样;同时对患者进行不同周期的追踪。因此,EHR中存储的医学数据对建立预测模型提出了许多技术挑战:异构数据类型的集成和复杂纵向数据的分析。为了解决集成问题,研究者分别对知识层和数据层进行了研究。有些人依靠领域知识,通过定义来自不同数据类型 [1] 的标准来提取联合患者队列,而另一些人则研究在建模之前或建模后集成异构EHR数据的可能性 [2]。本文的研究重点是后者:分析复杂的纵向数据。
传统的疾病预测方法将相似模式的患者聚类到同一子组以减少不规则性。此外,单变量数据预测仍然是机器学习领域最具挑战性的问题之一,因为大多数因变量是未知的。经典的单变量预测方法通常适用于其他特征难以度量或需要度量的变量太多的情况,例如股票市场指数预测问题 [3]。在不需要额外信息的情况下,单变量预测方法十分灵活,只要EHR中有历史数据,所提出的方法就可以应用到其他患者的疾病预测。
近年来,深度学习神经网络(deep learning neural networks, DLNNs)在世界范围内得到了越来越广泛的应用,包括自然语言处理(natural language processing, NLP) [4]、图像目标检测、时间序列分析等领域。对于疾病预测问题,最近的研究工作表明,长短时记忆(long short term memory, LSTM)神经网络在预测 [5] 上提供极高的精度。实验结果表明,由于在循环神经网络(recurrent neural network, RNN)中引入了贮存长久信息的记忆门,仅使用LSTM神经网络,预测精度就超过了大多数传统的统计和机器学习方法,包括自回归综合移动平均(auto-regressive integrated moving average, ARIMA)模型,支持向量机(support vector Machine, SVM) [6],非深度人工神经网络(non-deep artifificial neural networks, ANN) [7] 及其组合。
此外,LSTM神经网络是RNN的一种特殊形式 [8]。还有其他类型的DLNN,例如卷积神经网络(convolution neural networks, CNNs) [9] 和深度信念网络(deep belief nets, DBN)。由特殊的一维卷积运算组成的时态CNN对于时间序列预测问题也是十分有效 [10]。在自然语言处理领域,有学者建议将时态CNN与RNN结合使用以获得更精确的分类结果 [11]。
2. 相关工作
疾病预测在医疗诊断领域十分重要。传统的预测方法包括支持向量回归(support vector regression, SVR),时间序列分析方法以及灰色模型(grey models, GMs) [12]。王等人 [13] 比较了使用ARIMA和GM(1,1)模型进行的中国乙型肝炎月发病率预测的结果。马等人 [14] 使用季节ARIMA和Holt-Wins季节模型预测中国梅毒月发病率。张和李等人 [15] 提出了一种结合ARIMA模型和SVR模型的日放射科急诊病人流量预测方法。所有的单个基础预测模型都是以非线性的方式集成的,实验结果表明了所提出的混合方法的预测精度和可靠性。
深度学习神经网络是现代流行的处理大数据的机器学习技术,具有较高的分类和预测精度,已广泛应用于多个领域。与传统的人工神经网络ANNs相比,由于内部隐藏层和计算量的增多,DLNN被用于更具挑战性的问题。Kann等人 [16] 训练深度学习卷积神经网络来识别淋巴结转移和ENE,其性能优于人类临床医生在历史上取得的成就。顾等人 [17] 提出了一种基于GeoDetector和LSTM进行手足口病预测的新方法,并将该模型扩展到其他传染病的时间序列预测。Chae等人 [18] 使用深层神经网络(deep neural network, DNN)和LSTM模型预测传染病,结果表明,DNN和LSTM比ARIMA具有更好的预测精度。
在本研究中,设计了一种将LSTM神经网络与CNN相结合的混合深度学习神经网络框架,用于解决疾病预测问题。通过增加使用CNN预处理阶段扩展传统的LSTM神经网络。预处理阶段从原始数据中提取有用的特征,通过一维卷积将单变量数据转换为多维数据,增强LSTM神经网络的预测能力。为了评估所提出框架的性能,使用EHR中真实数据集进行实验。实验结果表明,所提出的混合DLNN框架优于文献中现有的大多数方法,包括支持向量机(SVM),单独的CNN和LSTM模型。本文的贡献包括:1) 引入一维卷积神经网络预处理单变量数据集,并经过两层时间卷积运算后将原始数据转换为多维特征数据;2) 提出的混合深度神经网络模型用于疾病预测。实验结果表明,提出的框架优于大多数现有方法,包括SVM,CNN和LSTM。
3. 材料和方法
长短时记忆网络(LSTM)和卷积神经网络(CNN)是深度学习神经网络的两个热门分支,近年来,它们已引起了全世界的广泛关注。在本文中,针对解决时态数据预测问题的不规则性和序列长期依赖性,我们将LSTM和CNN结合起来,形成了一种混合式深度学习方法,与传统方法相比,该模型能够提供更准确,更可靠的预测结果。
使用真实世界的数据集,提出的框架用CNN对原始数据进行预处理,并利用CNN的输出来训练LSTM模型。
3.1. 数据描述
实验数据使用Adadelta [19]。预处理后共有578个样本,其中阳性样本数361个,阴性样本数217个。我们以0.8:0.1:0.1的比例将数据集划分为训练、验证和测试集,训练集用于训练提出的DLNN框架;验证集是模型训练过程中单独留出的样本集,用于调整模型的超参数和用于对模型的能力进行初步评估;测试集用来评估最终模型的泛化能力。
3.2. 基于长短时记忆的循环神经网络
长短时记忆(LSTM)模型是循环神经网络(recurrent neural network, RNN)的一种特殊形式,可在每个神经元处提供反馈。RNN的输出不仅取决于当前神经元的输入和权重,还取决于先前神经元的输入。因此,从理论上讲,RNN结构通常适用于处理时间序列数据。然而,在处理一系列长期相关的数据样本时,RNN会出现梯度爆炸和梯度消失问题 [20],这成为后来引入LSTM模型的关键点 [21]。
为了克服RNN模型的梯度消失问题,LSTM模型包含贮存有用信息和丢弃无用信息的内部循环。LSTM模型的流程图中有四个重要元素:单元状态,输入门,遗忘门和输出门(图1)。输入、遗忘和输出门用于控制单元状态中包含信息的更新,维护和删除。前向计算过程可以表示为:

Figure 1. The training process of LSTM model
图1. LSTM模型的训练过程
(1)
(2)
(3)
(4)
(5)
(6)
其中
,
和
分别表示当前单元状态值,上一时刻的单元状态值和当前单元状态值的更新。符号
,
和
分别表示遗忘门,输入门和输出门。在适当的参数设置下,根据等式(4)~(6),基于
和
的值计算输出值
。根据输出值与实际值之间的差值,所有的权重矩阵通过时间反向传播算法(back-propagation through time, BPTT)进行更新 [22]。
3.3. 时态卷积神经网络
卷积神经网络(CNN)可能是最常用的深度学习神经网络,目前主要应用于计算机视觉领域的图像识别/分类主题。对于大量原始数据样本,CNN通常能够有效地提取输入数据的有用子集。一般来说,CNN仍然是前馈神经网络,由多层神经网络(multi-layer neural network, MLNN)扩展而来。CNN与传统MLNN的主要区别在于CNN具有稀疏交互和参数共享的特性 [23]。
传统MLNN使用全连接策略在输入层和输出层之间建立神经网络,这意味着每个输出神经元都有机会与每个输入神经元进行交互。假设有m个输入神经元和n个输出神经元,权重矩阵有
个参数。CNN通过设置大小为
的卷积核大大减少权重矩阵的参数。CNN的两个属性提高了参数优化的训练效率;在相同的计算复杂度下,CNN能够训练具有更多隐藏层的神经网络,即深层神经网络。
时态卷积神经网络引入了特殊的一维卷积,适用于处理单变量时间序列数据。时态CNN不像传统CNN那样使用
卷积核,而是使用大小为
的卷积核。经过时间卷积运算之后,原始的单变量数据集可以扩展为m维特征的数据集。这样,时态CNN将一维卷积应用于时间序列数据,并将单变量数据集扩展为多维提取的特征(图2中的第一阶段);扩展后的多维特征数据更适合使用LSTM进行预测。

Figure 2. The proposed hybrid DNN disease prediction framework
图2. 混合深度神经网络疾病预测框架
3.4. CNN-LSTM预测框架
为了解决序列相关性和单变量数据这两个挑战,本文提出了一种结合CNN和LSTM模型的混合深度神经网络(deep neural network, DNN)。混合DNN框架的结构如图2所示。在预处理阶段,CNN从输入数据中提取重要信息,使用卷积将单变量输入数据重组为多维特征数据(图2)。在第二阶段,将重组后的特征数据输入LSTM单元进行预测。
从图2可以看到,使用两个隐藏层的CNN预处理输入数据集。值得注意的是,当隐藏层的个数多于5个时,传统时态CNN通常包含池化操作防止过拟合。本文省略了池化操作以最大程度地保留提取的特征信息。
在对输入数据进行预处理之后,设计一个LSTM神经网络来训练和疾病预测。LSTM结构的训练过程如图1所示,其中从第一阶段提取的特征被作为训练LSTM模型的输入。为LSTM神经网络添加一个脱落层防止过拟合。预测输出值与实际输出值的差,即损失值用于优化所有LSTM单元的权重。优化过程遵循名为RMSprop的梯度下降优化算法,该算法通常用于深度神经网络的权重优化 [24]。
4. 结果
使用Python3.7.3 (64位)实现提出的混合DNN框架。基于Google提出的开源深度学习工具Tensorflow构建,并使用Keras 2.3.1版本作为前端接口。
本研究提出的CNN-LSTM的预测结果与SVM模型,CNN和LSTM等现有方法进行了比较。准确率是最常用的性能评价指标,即预测正确的样本占样本总数的比重。F1值表示查准率与查全率之间的一种权衡,前者衡量正确预测为阳性的样本占全部预测为阳性样本数的比例,后者衡量正确预测为阳性的样本占全部实际为阳性的比例。本研究使用的另一个评价指标是ROC曲线下的区域(AUC)。ROC曲线表示负阳性率与真阳性率的一种权衡,前者衡量分类器预测为阳性但实际为阴性的样本占所有阴性样本数的比例,后者衡量预测为阳性且实际为阳性的样本占所有阳性样本总数的比例。分析ROC曲线的常用方法是计算曲线下的区域面AUC。这三种指标的值越大表示越高的预测精度。
使用不同方法建立了4个预测模型,表1给出了预测性能结果的总结。可以看出,模型的选择对预测性能产生一定的影响。总体来说,使用本研究提出的CNN-LSTM算法可以获得最好的预测性能。相比于LSTM,使用CNN-LSTM框架时,AUC提高了6.5%,F1值提高了12.2%,Accuracy提高了14.6%。实验结果表明混合深度学习算法更适合时态数据的疾病预测。

Table 1. Forecast results of different models
表1. 不同模型预测结果
根据图3整体分析CNN-LSTM的accuracy和loss变化趋势。从图中可以看出,模型的训练集损失

Figure 3. The trend change of accuracy-loss of CNN-LSTM
图3. CNN-LSTM的acc-loss趋势变化
下降较为平稳,训练集的准确率又能稳定上升,此模型相对其他算法模型具有良好的稳定性。
5. 结论和未来工作
本文提出了一种基于卷积神经网络(CNN)和长时记忆(LSTM)神经网络相结合的混合深度学习神经网络框架,用于单变量和序列相关数据的疾病预测。最近的研究工作已经表明,仅通过LSTM神经网络,就可以实现疾病的高预测精度。本研究进一步证明提出的混合框架优于传统的LSTM神经网络。CNN从原始数据中提取最有用的信息,并将单变量时态数据集转换为多维特征数据,进而促进LSTM的预测性能。
对于本研究的未来工作,我们打算将提出的CNN-LSTM框架应用于更复杂的实际医疗数据集,以验证提出框架的鲁棒性。
基金项目
国家自然科学基金项目(61572442),福建省高校创新团队发展计划,福建省研究生导师团队,泉州市高层次人才团队项目(2017ZT012)。
NOTES
*通讯作者。