基于注意力机制及长短期记忆神经网络的慢性阻塞性肺疾病氧减状态辨识
2023-11-29吴月芳胡明昕孙培莉
吴月芳,胡明昕,孙培莉
(1.南京理工大学医院 内科,江苏 南京 210094;2.南京理工大学 计算机科学与工程学院,江苏 南京 210094; 3.南京医科大学第一附属医院 呼吸内科,江苏 南京 210029)
神经网络是一类有效的时间序列预测方法。特别地,循环神经网络(Recurrent neural network,RNN)作为神经网络方法的一个典型代表,已经在时间序列预测相关的领域得到了广泛应用[1]。RNN针对时间序列预测问题而特别设计,旨在有效利用数据中的时效信息。但是,RNN不能有效解决时效信息间隔不确定的问题;此外,RNN在训练过程中存在着梯度消失问题。长短期记忆神经网络(Long short-term memory,LSTM)是RNN的一种变体[2]。通过引入输入门、输出门以及遗忘门这三种特殊的单元结构,有助于解决RNN存在的不足,进一步提高时间序列相关问题的预测性能。另一方面,注意力机制(Attention mechanism)的重要性近年来日益得到重视。运用注意力机制,不仅可以记录信息之间的位置关系,还可以通过权重来有效度量不同信息特征之间的重要性[3],即使用高的权重聚焦重要的信息,以低的权重忽略甚至去掉不相关的信息,此外,还可以通过学习训练,来调整不同信息的权重,从而提高模型的可扩展性及鲁棒性[4,5]。
慢性阻塞性肺疾病(Chronic obstructive pulmonary disease,COPD)是一种与人体肺部及呼吸道相关的常见慢性疾病[6,7]。在临床诊断过程中,氧减状态(Oxygen depletion status,ODS)是用于诊断COPD的关键依据之一[8]。传统方式是通过人工来辨识患者的氧减状态进而辅助诊断COPD,在两个方面存在不足:一是时效性,二是准确性。实际上,氧减状态的辨识可以看作是一个时间序列辨识问题:依据患者前期的历史数据,辨识下一个数据点是否处于氧减状态。因此,将机器学习算法引入到氧减状态的辨识中,必将有助提升COPD诊断的时效性和准确性[9]。
鉴于此,本文将注意力机制和LSTM相结合,提出了一种基于注意力机制的长短期记忆神经网络(Attention-based LSTM,AttLSTM),从特征抽取、模型构建以及参数优化等多个视角来展开COPD氧减状态辨识研究。研究结果表明,所提的AttLSTM显著提升了COPD氧减状态辨识性能,进而对于提高COPD的准确诊断具有重要的临床参考价值。
1 基于注意力机制的长短期记忆神 经网络
1.1 长短期记忆神经网络
(1)
(2)
(3)
(4)
(5)
(6)
图1 LSTM单元在第t个时间步长的结构
1.2 注意力机制
序列数据通过由多个LSTM层组成的编码器转换为固定长度的上下文向量,从而进行后续的任务处理。但是,该框架的性能会随着输入长度的增加而显著下降。注意机制可以将注意力集中在输入序列中重要部分上,从而提高时间序列的预测精度。
注意力机制本质上是一种加权方法,其权重(注意力分数)是通过编码器隐藏状态之间的相似性来量化的[7,11]。一个经典的注意力机制主要由查询向量、关键向量和值向量三部分组成:其中,查询向量用于与源输入对齐,关键向量用于与查询向量对齐,值向量是输入的源矩阵,由注意函数加权。计算公式由下式表示
di=αihim
(7)
(8)
Q=tanh(hnWq)
(9)
Ki=tanh(hiWk)
(10)
(11)
式中:时间i=1,2,…,n,n是输入时间序列的长度,di是全连接层的输入,him是编码器的隐藏输出,αi和Ki分别是与输入相对应的注意力得分和关键向量,Q是由编码器在时间m的隐藏输出确定的查询向量,ein是第i个关键向量和查询向量之间的相似性,m是编码器的隐藏大小,hi是编码器在时间i的隐藏状态。此外,Wq和Wk是注意力的权重矩阵,使用归一化高斯分布随机生成。
1.3 AttLSTM
基于注意力机制的LSTM神经网络(AttLSTM)的架构如图2所示。AttLSTM由4个部分组成,包括输入层、编码器、注意力块、和输出层。编码器包含两个LSTM层,注意力块由两个全连接层组成,其激活函数为双曲正切函数,以生成向量Ki和Q。解码器包含两个全连接(Fully connected layers,FC)层。然后,全连接层的输入和注意力得分αi可以分别根据式(7)和(8)来计算。LSTM层和FC层的激活函数是ReLU[12],旨在避免梯度消失,dropout层被用来防止过拟合,设置为0.2,如果是分类任务使用交叉熵损失,回归任务使用Mean Square Error(MSE)损失[13]。
2 实验过程与结果分析
2.1 原始数据采集及数据清理
南京医科大学第一附属医院联合南京理工大学医院展开了用于COPD氧减状态辨识的数据采集及整理工作。医务人员在志愿者(患有COPD及正常人员)的腕部佩戴脉搏血氧仪腕表(型号:ORANGER,CMS50S),获取其步行测试者的血氧饱和度(Pulse oximeter oxygen,SPO2)及脉率(Pulse rate,PR)数据。本文采集了每位志愿者的六分钟步行数据。对于每位志愿者的每一种步行数据,使用一个矩阵来进行存储。这个矩阵共有七列,分别是Index(索引号,顺序递增)、Timestamp(时间戳)、SPO2值(血脉氧饱和度指数,标量)、PR 值(脉率,标量)、IsValid(标识当前数据是否有效,True或者False)、Quality(标识当前数据的质量,True或者False)、IsEvent(标识当前数据是否是候选的氧减状态点,True或者False)、以及OxygenDepletionStatus(标识当前数据是否是真正的氧减状态点,True或者False)。当且仅当IsValid=True,Quality=True且IsEvent=True,OxygenDepletionStatus标定为True才是有意义的。
图2 基于注意力机制的LSTM神经网络(AttLSTM)架构
本研究中,对于六分钟步行数据,采集了71个COPD患者及18个正常人员的数据。对于这些采集到的数据,每个数据点所处的状态(氧减或者非氧减)均由专业医护人员通过相关工具进行了手工标注。图3给出了某患者六分钟步行数据中血氧饱和度指数变化曲线示例图。
图3 某患者六分钟步行数据中血氧饱和度 指数变化曲线图(部分)
考虑到六分钟数据点偏多,图3给出了六分钟数据中的片段来作图。其中,横轴表示的是数据的采集时间,时间间隔为1 s;纵轴为SPO2的值;曲线中,红色的点为处于氧减状态的点,其他为非氧减状态点。
基于上述标定的六分钟步行数据集,本文展开了氧减状态预测模型的构建及有效性评估研究。
2.2 用于氧减状态预测模型构建的特征提取
要对一个患者所采集的数据进行氧减状态预测,本质上就是对所采集的每个数据点判断其是否处于氧减状态。在本研究中,所采集患者/正常人员的数据中,每个氧减状态标定为True的数据点作为正样本;每个氧减状态标定为False的数据点作为负样本。在此基础上,构建一个氧减状态预测模型。然而,要构建预测模型,提取有效的特征来训练预测模型是非常关键的一步。
以SPO2和脉率为原始特征源,为每一个正/负样本提取相应的特征。如前所述,每个患者采集的数据,可以用一个七列的矩阵来表示。为了方便后续特征抽取描述,本文将原始的7列矩阵精简为如式(12)所示的3列矩阵(D)进行表示
(12)
在这矩阵中,第一列是血脉氧饱和度指数值(SPO2);第二列是脉搏值(PULSE);第三列是氧减状态标签(LABEL):为了方便后续模型构建,本文用标量1表示该数据点处于氧减状态,标量0表示处于非氧减状态)。因此,矩阵中的第i行的三个值si、pi及labeli就分别表示第i个数据的血脉氧饱和度指数值、脉搏值以及氧减状态。
第i个数据的SPO2窗口均值特征的计算方式为:以该数据点的si为中心,计算尺寸为wsize窗口内所有数据点SPO2的平均值,作为该数据点的SPO2窗口均值特征。这里wsize取奇数。
(13)
第i个数据的SPO2梯度特征的计算方式为
(14)
基于式(13)及(14)计算得到每一个数据点窗口均值特征及特度特征,式(12)所示的矩阵可以进一步拓展为式(15)所示的增广矩阵DNew,其中Swindow和Sgradient分别为第二及第三列的列名
(15)
2.2 模型性能评价指标
本文的目标是要判断就诊者所采集的数据点在某一时刻是否处于氧减状态。在本文的研究中,所使用模型的输出是该时刻数据点属于氧减状态的可能性,范围为0~1。本文可以设定一个阈值T,如果模型的输出值大于T,则判定相应的数据点处于氧减状态;否则,处于非氧减状态。然而,通过事先设定阈值得到的性能指标,例如准确度,是阈值依赖的。因此,在本研究中,采用领域内常用的一种全局评价方法,也就是曲线下面积(Area under curve,AUC)。具体方法如下:将阈值T从0逐步变化到1;对于每一个T,计算一个受试者工作特征曲线(Receiver operating characteristic(ROC)curve)上的点,这点的坐标为(FP/(FP+TN),TP/(FN+TP))。其中FP表示假阳性数量,TN表示真阴性数量,FN表示假阴性数量,TP表示真阳性数量。这些ROC点所连成的曲线下的面积就称为AUC。AUC的值越大,代表模型的全局性能越高。
2.3 实验结果及分析
将数据集中索引值为100至6 000的数据点作为训练集,索引值为6 000至7 500的点作为测试集。特别地,在2.3.1小节及2.3.2小节的实验中,本文使用传统的LSTM模型来进行特征窗口尺寸的优化及特征消融实验;之后,在2.3.3小节中,再通过和其他机器学习算法的对比,进一步验证引入注意力机制至LSTM中的有效性。
2.3.1 特征抽取窗口尺寸对于模型性能的影响
表1 不同尺寸特征抽取窗口对模型性能的影响
2.3.2 特征消融实验
表2 不同特征组合对于模型性能的影响
2.3.3 与其他方法的性能比较
表3 AttLSTM与LSTM、KNN、OET-KNN、MLP 以及SVM在氧减状态辨识上的性能比较
观察表3可得到如下几个结论。首先,用于对比的五种传统的机器学习方法,也就是KNN、OET-KNN、MLP、SVM以及LSTM的AUC分别达到了0.772 5、0.803 9、0.804 6、0.821 3以及0.842 0,说明这些传统的机器学习方法也能有效地用于氧减状态的辨识;其次,本文发现,较之于KNN,OET-KNN大约提升了3%的AUC,原因在于OET-KNN在经典KNN的基础上加入了证据理论并进行了优化,所以性能的提升较为明显;再次,SVM、MLP及OET-KNN性能相当,AUC值非常接近;进一步,在五种传统机器学习方法中,相较而言LSTM性能最优,相应的AUC值为0.842 0。其原因在于:氧减状态的变化具有时序性,而LSTM具有长短时记忆能力,因而对于辨识具有时序特性的氧减状态具有一定的优势;最后,本文发现将注意力机制引入LSTM后,氧减状态辨识的性能进一步得到了提升,AUC值达到了0.853 1,比排名第二的LSTM提升了约1.3%。潜在的原因在于所提AttLSTM中,注意力机制能自适应地发现输入时间序列中的关键特征,进而提高了LSTM对于COPD氧减状态的辨识性能。
3 结论
本文提出了一种基于注意力机制的LSTM(AttLSTM)方法用于COPD氧减状态辨识。这个方法从原始的数据中抽取每个待辨识点的四种特征分量(血脉氧饱和度指数值、脉搏值、窗口特征和梯度特征)组成最终的鉴别特征;然后基于该特征表示,使用训练数据来训练一个基于注意力机制的长短时记忆神经网络。在六分钟步行数据集上的实验结果表明,所提出的基于注意力机制的长短时记忆神经网络用于COPD氧减状态辨识是有效的,且优于几种基于传统机器学习方法。后续进一步的研究工作将从两个方面展开:一是如何构建更为有效的特征,进一步提高特征的鉴别能力;另一是尝试其他更为有效的深度学习算法,以进一步提高模型的COPD氧减状态辨识能力,进而助力COPD的临床诊断。