用于心衰患者重入院预测的LSTM模型

2023-07-07 06:57陈若愚鲁兴华刘秀磊
计算机应用与软件 2023年6期
关键词:时序入院建模

李 臻 陈若愚* 鲁兴华 刘秀磊

1(北京信息科技大学数据科学与情报分析实验室 北京 100101) 2(北京信息科技大学网络文化与数字传播北京市重点实验室 北京 100101) 3(匹兹堡大学生物医学信息学系 宾夕法尼亚州 匹兹堡 15206)

0 引 言

目前国内外医疗机构对于前来就医的患者建立了完善的数据录入、采集和管理制度,大多数医疗机构都拥有各自的电子健康记录系统(Electronic Health Record System, EHRS)。据美国国家协调卫生信息技术办公室提供的数据,超过80%的医院都至少采用了一种电子健康记录系统,相比于2008年增加了9倍之多[1]。这些电子健康记录系统中包含了大量患者的临床数据,通常将这些数据称为电子健康记录(Electronic Health Records,EHR)。

电子健康记录也被称为电子医疗记录(Electronic Medical Records, EMR), EHR包含的数据种类丰富,包含了病人从入院到出院期间的所有医学检查、用药、生命体征等多种类型的数据记录,是一种按照时间顺序排列的数据集合。从数据格式来看,EHR包括但不限于诊断记录、医学影像检查记录(X光、CT、B超和核磁共振等)、实验室检查和药物处方等[2]。EHR数据中潜在地蕴含了大量与患者身体状况和病情发展相关的知识,在大数据和人工智能技术蓬勃发展的今天,通过对海量历史数据进行挖掘构建相应的人工智能辅助决策系统已成为常态,也是人工智能技术的主要应用场景之一。在此背景下,采用人工智能技术对EHR数据进行建模和挖掘,尝试学习与一些关键医学指标相关的预测/分类模型,从而辅助医生进行诊断与决策是当前医学信息学与人工智能研究关注的重点和难点。

心力衰竭是指由于心脏的收缩功能和(或)舒张功能发生障碍,不能将静脉回心血量充分排出心脏,导致静脉系统血液淤积,动脉系统血液灌注不足,从而引起的心脏循环障碍症候群[3]。心力衰竭可能的疾病发展过程通常是由稳定发展、心脏功能缓慢下降以及诊断后的突然崩溃和心脏功能快速下降组合而成的。每一个轨迹需要不同的治疗方式,从药物治疗(稳定疾病)到心脏移植(快速衰退),从而对于长期存活最为有利。因此,尽早预测一个患者的疾病轨迹,对于优化疾病管理和患者存活是非常关键的。采用人工智能技术对心力衰竭患者进行建模、预测其疾病轨迹是目前的研究重点。

传统上,针对EHR数据的挖掘、分析和建模研究主要采用SVM、逻辑回归、决策树和随机森林等传统机器学习算法。建模目标通常是对患者的关键医学指标进行预测,从而辅助医生对患者进行有效的观察及治疗。但是传统的机器学习模型需要大量的人工进行特征选择过程,较难挖掘EHR中的隐含特征,且无法对时序数据进行有效的建模,因此如何对EHR中时序数据进行有效的建模,挖掘其隐含特征是目前对EHR数据研究的重点。

本文针对上述问题,基于LSTM模型对EHR中时序数据进行建模,减少了人工特征选择的工作量,构建了一个端到端的心力衰竭病人重入院预测模型,能够有效预测心力衰竭病人在某次出院后的30天内再次入院的概率,为辅助医生进行临床决策、提前预警提供了强有力的支持。

1 相关工作

1.1 EHR应用研究综述

EHR是由大量异构的结构化、半结构化和非结构化数据组成的。这些数据潜在地蕴含了医学领域专家的专业知识和患者的状态信息,如何自动化从EHR数据中分析、挖掘并利用这些知识来构建医疗决策系统是目前医学及信息学科的一个研究重点,而对于EHR的应用研究目前主要着重于以下五个方面[4]:EHR信息抽取、EHR表示学习、患者的疗效预测、计算表型及临床数据隐私保护,其中与本文直接相关的是EHR表示学习和患者的疗效预测。

1.1.1EHR表示学习

EHR中包含药物(处方及用药)、医疗服务(如医学检查、手术等)和疾病(包括患者自述及医生诊断)等多种类型的数据。通常来说,每种类型的数据都存在相应的医学代码(如:ICD、ATC、CPT和LOINC等),这些医学代码是由医学领域专家制定的,但是通常都是离散的且互相之间不存在交集,导致无法直接将这些医学代码应用于EHR数据的挖掘研究中。如何将医学代码以及由医学代码数据组成的患者信息投影至连续向量空间,从而使它们拥有潜在的语义特性是EHR表示的研究重点。目前,EHR表示学习研究较多,具体信息见表1。

表1 EHR表示学习方法

1.1.2 患者的疗效预测

大多数研究者对EHR进行利用、分析和挖掘的目的都是为了对相关疾病的患者状态进行预测,通过预测结果为临床医生提供决策支持。患者的疗效预测通常分为静态预测和动态预测两种,其中静态预测是根据患者的某一次诊断数据进行预测,动态预测是根据患者的当前及历史诊断数据对患者进行预测。

Choi等[6]采用患者信息的分布式表示及人工神经网络心力衰竭进行预测,发现效果比使用医学代码做的特征效果更好。Tran等[9]采用受限玻尔兹曼机结构对患者表示进行微调并使用逻辑回归算法进行自杀风险评级,发现采用全部EHR数据效果优于只采用诊断数据。Li等[15]采用两层深度信念网络对骨质增生阶段进行预测,其结果超过了所有的基线模型。Lipton等[16]采用LSTM模型对128个诊断结果进行预测,实验表明LSTM模型效果比采用传统手工特征训练的多层感知机更加出色。 DeepCare框架[5]通过Skip-gram嵌入方法来得到临床概念向量,并对每一个入院患者创建一个诊断代码和一个干预代码,并将两个代码链接起来送入LSTM网络中,从而预测糖尿病病人及精神病患者下一次诊断和下一次药物干预时间。文献[17]发现数据中缺失值和结果之间存在一定的相关性,他们基于GRU开发了一种基于GRU的变体,在ICD-9分类及死亡率预测上获得了较好的AUC曲线。文献[18]基于RNN使用了多层Recurrent Highway Network建立了一个端到端的神经网络模型,对预测时间窗口为48小时中的急性肾损伤病人病情恶化风险持续预测。

1.2 心衰病人重入院预测研究

患者出院后,是否会在30天内再入院,对医院会产生较大的负面影响,而精准地对患者再入院概率进行预测也是自动化医疗决策系统所面临的挑战之一。精准地预测患者是否会再次入院不仅能降低患者治疗费用,还能减少患者因意外而导致病死的机率。据不完全统计,在美国和欧洲有5%的紧急入院治疗是由心力衰竭引起的,在这之中又有10%的患者会因此而死亡。所以对心衰病人再入院概率进行预测是目前计算机科学与医学的一个研究重点。

2010年,Amarasingham等[19]提出了一个自动化的数据驱动预测模型,该模型可对心力衰竭患者未来30天内再住院和死亡的概率进行预测,这是较早采用机器学习技术对心力衰竭重入院预测的方法。Natale等[20]采用了决策树算法对心力衰竭病人进行再入院预测。Meadem等[21]的研究工作专注于数据平衡、数据填充及特征选择方法,采用逻辑回归、朴素贝叶斯和SVM对心力衰竭病人短时间内再入院进行预测。Zolfaghar等[22]针对心力衰竭病人是否会再入院分为患者是否会再入院、患者是否会在30天内再入院、患者是否会在90天内再入院三个层次进行研究。Shammer等[23]采用PCA作为特征选择方法,并采用朴素贝叶斯作为预测模型,获得了较好的结果。Leong等[24]采用逻辑回归方法来预测患者30天内再入院概率。Sohrabi等[25]在医学专家的指导下采用SVM、人工神经网络和逻辑回归等方法对心力衰竭患者进行再入院预测,分析了每个特征的重要性及其在模型中的效果。

2 心衰病人重入院预测模型

2.1 数据预处理

本文的研究工作所使用的数据来源于匹兹堡大学医学中心(UPMC),数据中不包含患者的任何隐私信息,所有数据预处理工作均由通信作者于匹兹堡大学访学期间完成,数据集中共包含60 863名患者的数据,时间跨度从2004年1月2日至2018年12月31日。本文的研究主要基于该数据集中结构化数据部分,在实验中并未使用非结构化文本数据。

本文的原始数据格式为数据库导出的csv文件,其中结构化数据共分为10个表,数据总规模约为1.8亿行。在这些数据中患者的数据都是杂糅在一起的,为了开展后续工作,首先需要将患者的各类数据从原始数据中提取并集中,再对数据格式进行转换及相应的归一化,最后针对心衰患者重入院训练任务提取相应的预测目标标注值。本文的数据预处理流程如图1所示。

图1 数据预处理流程

本文的数据预处理流程分为四个部分:

(1) 原始数据预处理:对原始数据进行过滤,仅保留心衰相关列值,清除部分垃圾数据,对数据进行归一化。

(2) 患者数据聚集:将每一个患者的数据从原始数据中抽取、聚集,并写入患者对应的目录。

(3) 数据向量化及预测目标数据提取:对患者进行过滤,根据预定义的规则,提取、封装特征数据和预测任务目标数据,并将数据进行向量化。

(4) tfrecords格式数据导出:将向量化的特征和预测目标数据进行二进制格式转换与压缩,转换为Tensorflow框架能够读取的二进制文件。

在10类结构化数据中分别包含不同类型的医学专有名词(本文将ICD编码、ATC编码、医学检查等都统一看作医学专有名词),在数据处理的过程中根据医学专有名词在数据中出现的总频次是否超过阈值K进行筛选得到特征词表,在此基础上将患者从出院之日起回溯45天的数据建模为45×N维的时间序列,N的大小的取决于阈值K的选择。根据上述规则,将阈值K设置为1 000和10 000分别生成了HF-RA-5K、HF-RA-3K两个数据集。

2.2 数据集描述

两个数据集的规模、特征维度和序列长度等基本信息如表2所示。

表2 数据集信息

数据集中的正负样例数分布如表3所示。

表3 数据集正负样例数

数据集中的特征词表分布情况如表4所示。

表4 特征词分布情况表

本文已经论述了机器学习模型及深度学习模型在本领域研究中的应用,但是由于医疗数据的敏感性,目前临床研究中应用最为广泛的公开数据集只有MIMIC-III[26]。而MIMIC-III数据来自于ICU,与本文研究的心力衰竭这一慢性病并不相符,因此本文中的实验并没有采用MIMIC-III进行比较。此外,文献[17-18]同样采用深度学习技术开展研究工作,但是文献[18]并未公开数据和源代码,从模型架构的角度,本文和其相似,都采用了循环神经网络对时序数据进行建模。文献[17]采用深度学习技术对数据中的缺失值进行补充,在本文中并未对缺失值进行补充,而是采用了文献[18]的方法,以全0填充。

本文分别基于传统机器学习模型及深度学习模型开展了两类心衰病人重入院预测实验。同时,针对不同机器学习模型的特性,分别开展了时序长度为3天、7天和14天的传统机器学习模型训练和时序长度为7天、14天和45天的深度学习模型训练。

2.3 模型结构

HF-RA-5K和HF-RA-3K两个数据集包含的时序数据特征向量的维度较大,且时序数据特征矩阵较为稀疏,这种训练数据对于传统的机器学习模型并不友好,本文采用了主成分分析(PCA)方法对原始数据进行降维,并将降维后的数据输入至传统机器学习模型进行预测。基于传统机器学习模型的心衰病人重入院预测框架如图2所示。

图2 基于传统机器学习模型预测框架

针对基于深度学习的心衰病人重入院预测,为验证深度学习模型对深层特征提取的有效性,本文采用了以LSTM主体的深度学习模型对时间序列数据进行建模。基于深度学习模型的心衰病人重入院预测框架如图3所示。

图3 基于LSTM模型预测框架

在本文中共使用4种神经网络模型进行建模,分别是单向LSTM模型、双向LSTM模型、基于注意力机制的单向LSTM模型和基于注意力机制的双向LSTM模型。图3中实线部分为基本单向LSTM模型的架构。实线部分+虚线框1中的部分为基于注意力机制的单向LSTM模型。实线部分+虚线框2中的部分为双向LSTM模型架构。实线部分+虚线框1和2中的部分为基于注意力机制的双向LSTM模型架构。

在本文中分别对上述4种模型进行实验,研究不同LSTM模型在预测任务中的预测效果。

3 实验与结果分析

本文主要从准确率A、精确率P、召回率R、F1值和ROC-AUC值五个指标对实验结果进行评估。在深度学习预测实验中本文按照0.8、0.1和0.1的比例将数据集划分为训练集、验证集和测试集,以ROC-AUC指标作为训练目标进行训练。

3.1 实验一

为验证时序数据长度及数据特征维度大小对深度学习模型性能表现的影响,本实验中各种超参数的具体信息如表5所示,实验结果如表6所示。

表5 超参数列表

表6 深度学习实验对比

从上述实验结果中可以看到:在数据特征维度上,以ROC-AUC为评价指标,HF-RA-3K数据集在不同长度的时序序列上训练得到的模型都优于在HF-RA-5K数据集上训练得到的模型的性能表现。究其原因,HF-RA-3K数据集本质上来说是HF-RA-5K数据集的一个子集,是将HF-RA-5K的特征做进一步的筛选,删除了其中出现频率较低的特征而得到的,因此降低了数据集的噪声,从而使得模型性能得到提高。在时间序列长度上,在两个数据集上,模型的性能随着时间序列长度的增加而提升,一方面说明深度学习模型能够有效捕捉较长的时序数据中的语义信息,另一方面也说明对于EHR数据的建模,较长的时间序列长度有助于提升模型的性能表现。

根据上述实验结果表明,时序数据长度对于心衰患者的预测起一定程度上的正相关作用,而特征维度起负相关作用,因此在本文的后续实验中,主要采用HF-RA-3K数据集对传统机器学习模型和深度学习模型进行比较。

3.2 实验二

比较LSTM模型与传统机器学习模型的预测效果。受到传统机器学习模型自身性质的约束,本课题使用的原始数据的维度太高,传统机器学习模型很难对多天的高维度时序数据进行学习,因此面对多天的时序数据将采用PCA方法对原始数据进行降维,本文降至170维,此时累计方差贡献率(Cumulative Variance Contribution Rate)为90%,并将多天的数据通过向量联接方式输入传统机器学习模型中进行实验。同时,为了在同一组数据上进行横向比较,虽然LSTM模型能够处理高维时序数据,在本实验中本文仍然将PCA降维后的时序数据作为LSTM模型的输入进行训练,实验结果如表7所示。由于篇幅原因,在表7中只列出模型性能最好的结果进行展示。

表7 机器学习模型实验结果

上述实验结果表明,即使输入数据的时序长度减为14天,基于LSTM的深度学习模型实验效果仍比传统机器学习模型的效果更好,更容易从原始特征中挖掘出特征之间的隐含信息并能对时序数据进行有效的利用与学习。当输入数据的时序长度均为45天时,LSTM、基于注意力机制的LSTM、BiLSTM和基于注意力机制的BiLSTM实验模型对比结果如表8所示。

表8 基于LSTM模型的神经网络模型实验结果

3.3 实验三

比较不同类型的LSTM模型架构对预测任务的效果的影响。

实验三结果表明简单地应用双向LSTM模型和Attention机制对现有的模型进行优化并不能很好地增强现有模型的效果。双向LSTM在自然语言处理领域获得较好的效果,通常是因为双向LSTM能够较好地捕捉双向的上下文语义信息。但在医疗领域,患者的生理状态发展在时间上是单向的,其后续的生理状态由医生诊断治疗而发生改变,因此采用双向LSTM并不能很好地提高模型的效果。实验三结果同时表明,Attention机制的引入并没有增强模型的效果,可能的原因是在本文中采用Attention机制对原始数据进行处理再输入至LSTM模型中,打乱了原始数据的数据特性及相应的语义关联,因此起到了一定的反作用,使得模型的性能有所下降。

同时,上述实验结果表明,时序数据中包含了更多的患者信息,更有利于对患者的重入院进行预测与分析。对于决策树与随机森林模型,最好的效果是在1天的时序数据上获得的,笔者认为,这是由于其树形的模型结构导致的,如果采用联接的方式,决策树及随机森林无法有效区分时序数据序列,从而无法更好地学习更重要的特征。

4 结 语

本文采用深度学习技术对EHR数据中的结构化数据进行建模,对心力衰竭患者的重入院进行预测。结果显示,LSTM模型能够有效地学习患者的时序序列数据,并能够有效地对心力衰竭患者的重入院进行预测。

本文主要采用患者的结构化数据进行建模和预测,其效果表现较好。而EHR数据中还包含大量的非结构化数据,如医生撰写的临床注记(Clinical Notes)等。这些非结构化数据中同样包含了大量的信息,未来的研究工作将结合NLP技术对非结构化数据进行建模,与结构化数据结合,提高现有模型的预测效果。此外在本文中虽然采用了注意力机制来解决LSTM中的长期依赖问题,但未取得较好的效果,未来将尝试采用纯注意力机制模型来对时间序列数据中不同时间位置的重要性进行研究。

猜你喜欢
时序入院建模
利用信息技术再造急诊入院管理流程*
住院医师入院教育实践与效果探索
基于Sentinel-2时序NDVI的麦冬识别研究
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
基于FPGA 的时序信号光纤传输系统
一种毫米波放大器时序直流电源的设计
作文门诊室
三元组辐射场的建模与仿真