基于主题模型加强的医疗活动表征学习方法
徐啸, 王灜, 金涛, 王建民     
清华大学 软件学院, 北京 100084
摘要:随着健康医疗数据的快速积累,数据驱动的医疗分析越来越受重视,合适的医疗活动表征对这些分析至关重要。然而,当前大多数表征方法缺乏对医疗数据时序性、数值敏感性的考虑,影响了分析方法的效果和可解释性。该文针对住院病例,提出了一种基于主题模型加强的医疗活动表征学习方法,该方法利用活动间时序关系和主题分配情况,构建了一个无监督学习的多层感知机模型。在大规模真实住院数据集上的测试结果表明:该方法所得表征可以有效提升疾病聚类、后续活动预测、剩余住院天数预测3项医疗分析任务的效果,同时表征具有良好的医学可解释性。
关键词表征学习    主题模型    多层感知机    医疗分析    
Representation learning approach for medical activities enhanced by topical modeling
XU Xiao, WANG Ying, JIN Tao, WANG Jianmin     
School of Software, Tsinghua University, Beijing 100084, China
Abstract: With the explosion of the amount of medical data, data-driven medical analyses are receiving increasing attention. Proper representation of medical activities is crucial for such analyses. However, most existing representations are designed without considering the temporality and numerical sensitivity of medical data, which limits the performance and interpretability of the analysis tasks. This paper presents a representation learning approach for medical activities that is enhanced by topical modeling for inpatient data. The approach leverages the temporal relations between activities and the topic assignment to construct a multilayer perceptron model. Evaluations using large real data sets demonstrate that this approach significantly improves three typical medical analysis tasks, while providing medical interpretations.
Key words: representation learning     topic modeling     multilayer perceptron     medical analyses    

随着医疗信息化的迅猛发展,各地积累了大量医疗数据,使得从数据出发的医疗分析应用成为研究热点。然而,由于医疗数据高维、稀疏的特点,传统的将医疗活动one-hot化(发生为1,未发生为0)的表示方法无法抓取活动间的潜在联系,影响了各类应用的效果。为了解决这一问题,很多医疗应用基于专家制定的特征展开,但这类特征工程需要大量的人力和知识储备,难以推广。

表征学习是从大量数据中自动学习特征的技术集合[1]。近年来,表征学习在自然语言处理、计算机视觉、信息检索等领域取得了良好的表现。以词向量[2]为例,其基本原理就是假定一个词语与其周边的词语具有相似的含义,由此可以将每个词语映射到向量空间,作为该词语的表征形式。受这一理念的启发,越来越多的研究尝试将表征学习方法应用到医疗领域。对于医疗文本类数据,如医学刊物、医生医嘱等,文[3-4]直接借鉴词向量的理念,认为每个医疗术语可以根据其前后的文本推得。而对于结构化医疗时序数据,如电子健康档案、医保数据等,文[3, 5-6]将时序上的相邻关系类推为词向量中的窗口,进而推算出医疗活动的向量化表示。这些学习所得向量表征,可以用于多种医疗分析任务,如心脏衰竭预测、再入院率预测等。文[7]采用的是根据医疗活动发生的实际时间戳而非相对时序关系来进行窗口大小的选择,慢性病对应较长窗口,急性病对应较短窗口,然后采用卷积神经网络(convolutional neural network)来度量病人的相似度。但以上方法对于拥有相同时间戳(没有时序先后)的活动,往往采用简单的随机乱序策略放入窗口,使得窗口内活动有很大不确定性,影响以上方法的性能。为了解决这一问题,文[8]提出了Med2Vec来同时学习一次门诊和一个医疗活动的表征,具有更好的应用效果和可解释性。还有一些工作采用循环神经网络(recurrent neural networks, RNN)来学习医疗活动的表征,以用于各类预测任务,如预测风险因素[9]、心脏衰竭[10-11]、疾病诊断[12]、药品类别[13]等。

然而,上述研究主要针对门诊病例展开,对住院病例的表征学习研究较少。门诊和住院数据拥有着截然不同的数据特点:门诊数据中,以病人为单位,每个病人拥有多次来访病例,每次病例中的医疗活动没有时序关系,多次病例之间的时序联系也相对较弱(例如一个病人多次来访但目标是不同疾病,或是时间间隔很长的2次来访);住院数据中,以病例为单位,每个病例通常由临床路径[14]进行管理,针对单一病种分为多阶段展开治疗,阶段间具有很强的时序关联。此外,相较门诊病例,住院病例往往需要更高水平的治疗手段、消耗更多的资源(2016年中国次均门诊费用为245.5元,人均住院费用为8 604.7元[15]),因此需要针对住院病例数据特点,设计相应的表征学习方法,以支持各类医疗分析任务。其中面临的主要挑战包括以下3个方面:

1) 半时序性。一次住院病例的不同阶段(通常以天为单位)之间的医疗活动具有时序关系,但每个阶段内的医疗活动没有时序关系。

2) 数值敏感。药品的剂量、检验检查的次数、医疗消耗品的数量对住院病例都是十分重要的。而当前大多数医疗活动表征学习忽略了数值属性。

3) 可解释性。生成的表征应该具有良好的医学可解释性。

为了应对以上挑战,本文提出了一个多层感知机模型用于医疗活动的表征学习。其核心就是将一次住院病例视为围绕某种疾病诊断展开的一组诊疗日序列,分别构建诊断向量和诊疗日向量。诊断向量用于抓取每种疾病的核心要素,而每一个诊疗日向量由诊断向量和前序诊疗日向量共同作用生成。此外,为了加强表征的可解释性,引入了主题模型,通过约束网络的向前传播过程,保证诊疗日向量维度的主题化,使表征结果更加符合医疗实践。该方法命名为TMMAR(topic modeling enhanced medical activity representation)。本文在一个大规模医保数据集上对方法进行了测试,结果表明该表征方法在3项典型的医疗分析应用上都取得了显著的效果提升,同时表征具备良好的医学可解释性。

1 基本概念和定义

定义1  来访(visit):住院病人的一次来访代表着从入院到出院的一个住院病例,将来访集合表示为V={V1, V2, …, Vn},其中Vi代表第i次来访,n是数据集中所有来访的数量。

定义2  诊断(diagnosis):每次来访会有一个对应的诊断(对于多诊断病例,取第一诊断),用G={g1, g2, …, g|G|}表示数据集中所有诊断的集合,其中gi代表第i种诊断,|G|是总的诊断类型数量,来访Vn对应的诊断记为g(n)G

定义3  诊疗日(clinical day):一个来访Vn由若干诊疗日组成{dn, 1, dn, 2, …, dn, Tn},其中TnVn包含的天数。定义整个数据集中的诊疗日集合为D,数量为$\left| D \right|=\sum\limits_{n=1}^{N}{{{D}_{n}}}$

定义4  医疗活动(medical activity):医生对病人的所有诊疗行为都通过不同的医疗活动来实现。每个诊疗日包含一组医疗活动,所有医疗活动的集合被定义为A={a1, a2, …, a|A|},其中ai代表第i种医疗活动,集合大小为|A|。为每个诊疗日dn, t定义一个实值向量xn, tR|A|,用来表示该诊疗日每种医疗活动的归一化数量,即xn, t的第i项代表dn, t中医疗活动ai的归一化数量。

2 TMMAR框架设计

基于主题模型加强的医疗活动表征学习方法的主要框架如图 1所示。

图 1 TMMAR模型架构

整体网络结构为一个多层感知机模型。其中主要包含两类向量。

1) 诊断向量:对于每一个诊断g(n)G,将其映射到一个p维的向量空间,用于表征一种疾病诊断最核心的治疗内容。

2) 诊疗日向量:由于一个住院病例的治疗是以诊疗日为单位进行的,且诊疗日内医疗活动无序,因此将每个诊疗日映射为一个q维的向量。

通过构建诊疗日向量,避免了直接对每个诊疗日下无时序关系的医疗活动进行表征学习,而是通过诊疗日向量与医疗活动之间的映射矩阵来得出医疗活动表征向量,诊疗日之间的时序关系被用来训练网络,这种结构满足了对住院数据半时序性的特点。此外,诊疗日向量的构建是考虑了每种医疗活动的具体数值,符合数值敏感特点。

图 1右下侧虚线框内为主题模型部分。选用的是隐含Dirichlet分布(latent Dirichlet allocation,LDA)[16],将每个诊疗日视为一个词袋模型,挖掘得到主题-医疗活动的概率分布,以及每个诊疗日中每个医疗活动对应的主题分布情况。将这2个分布融入多层感知机网络中,约束网络中的权重初始化以及前向传播过程,以提升表征的可解释性。

3 双类别多层感知机模型

受词向量和doc2vec[17]的启发,利用每次来访的诊断信息和诊疗日之间的时序关系来训练表征。

具体而言,令EgEd分别表示诊断向量和诊疗日向量的映射函数,假定所有诊断集G已经被映射到矩阵MGR|Gp,则诊断g(n)的向量Eg(g(n))就对应于MG中的一行:

$ {{\mathit{\boldsymbol{E}}}_{g}}\left( {{g}^{\left( n \right)}} \right)=\operatorname{Re}\text{LU}\left( {{\mathit{\boldsymbol{M}}}_{G}}\left[ I\left( {{g}^{\left( n \right)}} \right) \right] \right). $ (1)

其中: MG[i]表示矩阵MG中的第i行,I(g(n))是g(n)G中的索引,ReLU为线性整流函数(rectified linear unit)。

对于诊疗日向量,其映射函数Eddn, t从实值向量xn, t映射为q维向量如下:

$ {{\mathit{\boldsymbol{E}}}_{d}}\left( {{d}_{n, t}} \right)=\operatorname{Re}\text{LU}\left( \left( {{\mathit{\boldsymbol{W}}}_{d}}g{{\mathit{\boldsymbol{C}}}_{n, t}} \right){{\mathit{\boldsymbol{x}}}_{n, t}}+{{\mathit{\boldsymbol{b}}}_{\mathit{\boldsymbol{d}}}} \right). $ (2)

其中: WdRq×|A|是权重矩阵,Cn, tRq×|A|是基于主题模型生成的指示器矩阵(下一节会详细介绍),g表示矩阵点乘,bdRq是偏置向量。

在给定诊疗日数目窗口w后,将dn, t对应的诊断向量Eg(g(n))和窗口内前序诊疗日向量{Ed(dn, t-w), …, Ed(dn, t-1)}进行拼接,用来预测目标诊疗日dn, t。这里借鉴Med2Vec[8]中的策略,采用一个二值化向量yn, t∈{0, 1}|A|(即如果dn, t包含ai,则yn, t的第i个元素为1)作为dn, t的预测标签,其相比直接预测xn, tEd(dn, t)性能更优。使用Softmax分类器来得到每种医疗活动的产生概率,作为最终输出的预测结果:

$ \begin{matrix} {{{\mathit{\boldsymbol{\hat{y}}}}}_{n, t}}=\text{softmax}\left( {{\mathit{\boldsymbol{W}}}_{s}} \ \text{concat}\left[ {{\mathit{\boldsymbol{E}}}_{d}}\left( {{g}^{\left( n \right)}} \right), \right. \right. \\ \left. \left. {{\mathit{\boldsymbol{E}}}_{d}}\left( {{d}_{n, t-w}} \right), \cdots , {{\mathit{\boldsymbol{E}}}_{d}}\left( {{d}_{n, t-1}} \right) \right]+{{\mathit{\boldsymbol{b}}}_{s}} \right). \\ \end{matrix} $ (3)

其中: WsR|A|×(p+q*w)bsR|A|是用于计算Softmax的权重矩阵和偏置向量。

标签向量yn, t是一个二值化向量,预测结果向量${{{\mathit{\boldsymbol{\hat{y}}}}}_{n, t}}$是通过Softmax得到的对应每种医疗活动的概率值,使用二者之间的交叉熵作为损失函数:

$ \begin{matrix} L=-\frac{1}{N}\sum\limits_{n-1}^{N}{\frac{1}{{{T}_{n}}}\sum\limits_{t=1}^{{{T}_{n}}}{\left( {{\mathit{\boldsymbol{y}}}^{\text{T}}}_{n, t}\log {{{\mathit{\boldsymbol{\hat{y}}}}}_{n, t}}+ \right.}} \\ \left. {{\left( 1-{{\mathit{\boldsymbol{y}}}_{n, t}} \right)}^{\text{T}}}\log \left( 1-{{{\mathit{\boldsymbol{\hat{y}}}}}_{n, t}} \right) \right). \\ \end{matrix} $ (4)

值得注意的是,不对一次来访中的第一天进行预测,因为住院病人的第一天往往包含一些用于确诊的医疗活动,这些活动与个体关联紧密,所以在仅有诊断向量、没有前序诊疗日向量的情况下,进行第一天活动的预测是不合理的。对于一次来访中除了第一天以外的其他诊疗日,如果其前序诊疗日数目小于窗口w,用零向量来填补式(3)中拼接操作。例如给定诊疗日dn, tw=3,式(3)为

$ \begin{matrix} {{{\mathit{\boldsymbol{\hat{y}}}}}_{n, 2}}=\text{softmax}\left( {{\mathit{\boldsymbol{W}}}_{s}}\ \text{concat}\left[ {{\mathit{\boldsymbol{E}}}_{g}}\left( {{g}^{\left( n \right)}} \right), \right. \right. \\ \left. \left. {\bf{0}}, {\bf{0}}, {{\mathit{\boldsymbol{E}}}_{g}}\left( {{d}_{n, 1}} \right) \right]+{{\mathit{\boldsymbol{b}}}_{s}} \right). \\ \end{matrix} $

总之,该双类别多层感知机模型中共有5个需要训练的参数,分别是MGWdbdWsbs,而指示器矩阵C由主题模型传入。使用随机梯度下降来训练该网络。

4 基于主题模型的网络可解释性增强

医疗领域的研究和应用,对可解释性有很高要求。节3提出的双类多层感知机模型,作为一个基于神经网络的模型,虽然具有较好的拟合性能,但生成的表征难以理解,尤其体现在表征维度缺乏实际意义,例如对于一个诊疗日向量Ed(dn, t),其每一维的具体含义是缺失的。

主题模型是对文本中隐含主题进行建模的方法。以最常见的LDA[16]为例,其将每篇文档视为一组主题的概率分布,而每个主题对应于词语的概率分布。由于这一生成模型非常吻合下述临床实践,因此被广泛应用于医疗领域[18-19]

1) 诊疗日-诊疗主题:医生在治疗病例时,每一天都会围绕几个核心主题展开,例如入院检查、高等级护理等。

2) 诊疗主题-医疗活动:每一个诊疗主题往往都对应着一组核心的医疗活动,如入院检查主要包括血检、尿检等。

3) 诊疗日-医疗活动:一个诊疗日内的同一种医疗活动,往往只与若干主题紧密相关,如医生在一天中开具的10只“一次性注射器”,可能只与入院检查、药物治疗密切相关,而与诸如医疗影像等主题无关。

之所以LDA生成的主题具有较好的可解释性,核心原因是其引入了Dirichlet先验分布,使得文档-主题、主题-医疗活动的概率分布趋于稀疏化,即每个文档由少量主题表征,每个主题由少量医疗活动表征。而根据文[20],稀疏性(Sparsity)和非负性(Non-negativity)是提高表征向量维度可解释性的2个关键途径,因此,LDA以概率分布形式(非负)给出的主题结果是易于理解的。

因此,本文尝试引入LDA,通过初始化网络和约束网络前向传播过程,使所得诊疗日向量的维度主题化,更加便于理解。主要过程分为以下3步。

1) 医疗数据的LDA。将每一个诊疗日对应于LDA中的一篇文档,将每一个医疗活动对应于LDA文档中的一个词语,主题数目设置为诊疗日向量的维度q。这样,通过LDA的计算,可以从这些医疗数据中抽取出潜在主题,得到主题-医疗活动的概率分布,以及每个诊疗日中每种医疗活动的主题分布。

2) 网络初始化。LDA生成的主题-医疗活动概率分布是一个q×|A|、每行累加和为1的分布,这与用于获取诊疗日向量的权重矩阵Wd尺度一致,因此直接用该概率分布对Wd进行初始化。

3) 前向传播约束。在未引入主题模型时,即诊疗日向量的映射函数中Ed只有Wd而没有Cn, t,此时每个诊疗日中的每个医疗活动会与权重矩阵Wd中的每一维相乘,这意味着每个医疗活动都会对最终生成的诊疗日向量中的每一维产生贡献,即跟每一维都相关,这就与上文中的临床实践不相符合。因此,利用LDA生成的每个诊疗日中每种医疗活动的主题分布: a)首先将其概率化,如10只“一次性注射器”中6只为主题1,4只为主题3,则其对应2个主题的概率分别为0.6和0.4,其他主题概率为0;b)然后据此生成一个指示器矩阵Cn, tRq×|A|,其中每一列代表一个医疗活动,该活动在q维上的数值设置为上述概率值;c)将权重矩阵Wd和指示器矩阵Cn, t点乘,确保每个诊疗日中每个医疗活动只与相关的维度相乘(不相关的维度已置0),由此使得最终生成的诊疗日向量的维度主题化,提升可解释性。

5 实验结果与分析 5.1 实验数据集

本文使用的是一组真实医保数据,收集自国内某地级市新农村合作医疗系统,数据时间范围为2011年1月至2015年6月,详细数据统计见表 1。数据包括538 945次来访,每次来访拥有一个ICD-10诊断编码(国际疾病分类),共计4 496 230有记录的诊疗日。这里有记录的诊疗日指的是住院期间产生医疗活动的天数,因此一次来访的诊疗日数量并不一定等于该病人的实际住院天数(length-of-stay, LOS)。按照以下2个标准筛选病例:1)少于2个有记录诊疗日的来访;2)有记录诊疗日少于其LOS一半的来访。表 1中统计值为筛选后结果,下文为了方便讨论,所有诊疗日均为有记录的诊疗日。

表 1 数据集详细统计
统计项目数值
来访数目538 945
使用药物数目4 216
总天数4 496 230
疾病数目7 232
每天的平均活动数目14.32
平均停留天数8.748 8
某天的最大活动数目182
最长的停留天数360

5.2 对比方法及实验设置

本文对比了3种常见的医疗活动表征方法:

1) RVM(raw vector model)。每个诊疗日由两部分向量拼接而成,一部分是实值向量xn, t,另一部分是用来表示本次来访对应诊断的二值化向量(7 232维)。RVM可以视为没有进行任何表征学习的基准方法。

2) SAE(stacked autoencoder)。首先通过最小化重建实值向量xn, t的错误,来训练一个3层的栈式自编码器[21]

3) Med2Vec[7]。Med2Vec是一个基于skip-gram的医疗活动表征学习方法,而由于Med2Vec是针对门诊病例展开的,因此根据时序关系,将一次来访类推为Med2Vec中的一个病人,将一个诊疗日类推为Med2Vec中的一次来访。此外,Med2Vec采用二值化向量作为输入,因此拼接yn, t和上述的诊断二值化向量作为其输入。

本文将数据集按照0.7:0.1:0.2的比例划分为训练集、验证集和测试集。其中验证集用于辅助调试超参数:诊断向量维度p∈{100, 150, 200, 250},诊疗日向量维度q∈{100, 150, 200, 250},窗口大小w∈{1, 2, 3, 4},正则化系数L2∈{0.1, 0.01, 0.001},dropout率ε∈{0.0, 0.2, 0.5, 0.8}。最终选得最优值为p=150,q=200,w=2,L2=0.01,ε=0.2。对于对比方法,采用相同参数(不包括q),整个多层感知机模型采用TensorFlow 1.3.0实现,每个模型训练10次epoch,batchsize设置为256,选用Adadelta作为优化方法。此外,主题模型方面采用Mallet 2.0.8下并行版本LDA,主题数目为200,其余超参数采用默认值。

5.3 实验结果分析

本文选取了3项典型的医疗分析任务,量化评测各项表征方法的性能。此外,还对所得表征的可解性进行了展示。

5.3.1 疾病聚类

此项任务旨在评估诊断向量能否捕获疾病的核心要素。由于ICD-10编码具有层次结构,将7 232种诊断归为432类(例如J18.901非典型肺炎,被归为J18支气管肺炎大类)。对于对比方法,诊断向量可以从SAE和Med2Vec的权重矩阵中对应诊断的二值化向量的部分选取,而RVM没有对应的诊断向量,因此不作对比。采用标准互信息NMI(normalized mutual information)来度量聚类效果,给定不同方法所得聚类结果A,以及7 232种诊断的标签分布B,NMI的计算如公式(5)所示。

$ \begin{matrix} X=\text{unique}\left( A \right), \ Y=\text{unique}\left( B \right); \\ I\left( X, Y \right)=\sum\limits_{y\in Y}{\sum\limits_{x\in X}{p\left( x, y \right)\log \frac{p\left( x, \text{ }y \right)}{p\left( x \right)p\left( y \right)};}} \\ H\left( X \right)=-\sum\limits_{x\in X}{p\left( x \right)\log p\left( x \right), } \\ H\left( Y \right)=-\sum\limits_{y\in Y}{p\left( y \right)\log p\left( y \right);} \\ \text{NMI}\left( X, Y \right)=\frac{2I\left( X, Y \right)}{H\left( X \right)+H\left( Y \right)}. \\ \end{matrix} $ (5)

其中: XYAB中分类标签的集合,大小均为7 232; I(X, Y)是XY的互信息; 分子中p(x, y)为二者的联合分布概率,分母中p(x)是x的概率函数; H(X)和H(Y)分别是XY的熵。

表 2可以看出,TMMAR方法取得了最优的聚类效果,SAE效果其次,而Med2Vec表现较差。可能的原因包括2方面:1) TMMAR和SAE都采用的是每个医疗活动的原始数量作为输入,而Med2Vec采用的是二值化向量,损失了数量因素带来的优势,这体现出考虑数值敏感性对表征结果的影响;2)在TMMAR中,采用的是诊疗日之间准确的时序关系进行网络的训练,而SAE是一个自编码器,表征的训练过程中不考虑时序性,Med2Vec是一个skip-gram模型,窗口内诊疗日不区分具体时序先后,从二者的结果均不及TMMAR来看,忽略住院数据中的时序性会降低表征的信息表达能力。

表 2 疾病聚类实验结果
SAEMed2VecTMMAR
NMI0.486 10.302 90.557 5

5.3.2 后续活动预测

临床实践中,根据已进行的诊疗活动,预测后续活动是一项重要的研究课题。这里给定一次来访的前序若干天,评测不同表征方法预测后一天活动的性能。其中,对于TMMAR而言,由于是用准确时序关系训练的网络,因此可以以预测结果${{{\mathit{\boldsymbol{\hat{y}}}}}_{n, t}}$和真实情况yn, t之间的差别作为度量标准。具体而言,给定诊疗日dn, t,使用Recall@k作为度量指标:

$ {\rm{Recall@k = }}\frac{{\left| {{\mathit{\Lambda }_{n,t}}} \right|}}{{\min \left( {k,\left| {{d_{n,t}}} \right|} \right)}}. $ (6)

其中: |dn, t|是dn, t医疗活动的总数,|Λn, t|是dn, tyn, t的top k项的交集数量。统计了不同k下的方法表现。此外,还设计了一个动态k值的Recall@A指标,即式(6)中分母等于|dn, t|。

如上所述,由于SAE和Med2Vec没有使用准确时序训练表征,因此基于其生成的表征,另外训练了一个后续活动预测模型。类似地,RVM也使用原始向量训练了一个预测模型。

图 2展示了4种方法的预测结果。可以看出,随着k值增大,所有方法的性能都在提升。相比RVM,3种表征方法的效果大多更优,这体现了表征学习对该预测任务的重要性。在所有k值下,TMMAR均表现出最优的性能,这说明独立的诊断向量可以更好地抓住疾病治疗的核心,有利于后续活动的推荐。

图 2 后续活动预测实验结果

5.3.3 剩余LOS预测

对于住院病例,LOS是一项重要的管理指标。越长的LOS意味着越多的费用开销、更长的床位占用以及更低的资源周转率。本实验中,度量在给定一次来访前1/2/3个诊疗日的情况下,该病人能否在1周内出院的概率。基于4种表征,采用逻辑回归来预测,并以AUC(area under the ROC curve)作为这个二分类问题的度量。

图 3展示了实验结果。从中可以看出,给定的初始诊疗日越多,预测的结果往往越优异,这是因为初始诊疗日中的医疗活动类型及数目很大程度可以反映出病人的病情、治疗方案等。TMMAR相比其他方法效果更好,但值得注意的是,不同于前两项任务,RVM在本任务上取得了良好的效果。一个可能的原因就是RVM保留了完整的医疗活动的数量信息,这对于LOS预测任务非常重要。从Med2Vec的较差表现也可以推得这一结论,因为其采用的是二值化向量输入。

图 3 剩余LOS预测实验结果

5.3.4 向量维度可解释性展示

从TMMAR生成诊疗日向量的权重矩阵Wd中随机提取了几个维度进行展示(如表 3所示)。每个维度下的医疗活动具有良好的主题一致性,分别代表了生化检查、剖宫产手术和中医诊疗主题。表 4展示了Med2Vec的结果,由于Med2Vec中很难找到与表 3中主题类似的维度(只有维度150与表 3的维度122有一定关联),因此随机抽取了几个维度,可以看出Med2Vec的维度对应的医疗活动缺乏一致性,难以用医疗领域知识进行理解。

表 3 3个由TMMAR生成的诊疗日向量维度
维度2权重维度122权重维度133权重
1血清丙氨酸氨基转移酶测定0.828 973剖宫产术0.021 548 4住院诊查费0.272 599
2血清直接胆红素测定0.742 902麻醉中监测0.019 263 4当归0.264 228
3血清天门冬氨酸氨基转移酶测定0.723 990利多卡因0.018 277 4茯苓0.254 083
4血清白蛋白测定0.721 371中心静脉穿刺置管术0.015 483 3白芍0.236 030
5血清总蛋白测定0.717 934急诊手术加收0.015 417 3煎药机煎药0.224 098
6血清总胆红素测定0.710 435米索前列醇0.012 368 8脉图诊断0.211 215
7血清碱性磷酸酶测定0.698 081椎管内麻醉(硬膜外阻滞)0.011 274 4鸡内金0.206 976
8尿液分析0.674 260血常规0.009 636 0山楂0.177 335
9乙型肝炎表面抗原测定0.665 791一次性穿刺针0.008 271 2甘草0.169 679
10血清尿酸测定0.581 332混合糖电解质0.008 126 1陈皮0.167 806

表 4 3个由Med2Vec生成的诊疗日向量维度
维度76权重维度150权重维度171权重
1破伤风抗毒素0.346 157支原体检查0.196 423陪侍费1.997 320
2右旋糖酐0.334 551椎管内麻醉(硬膜外阻滞)0.190 653自费陪侍费0.635 105
3神经阻滞麻醉0.254 566新生儿特殊护理(油浴)0.187 256肌肉注射0.352 087
4葡萄糖氯化钠0.196 722氟康唑0.181 972尿道口护理0.196 414
5医用纸胶布0.181 984诊查费0.177 662复方氨基酸0.176 592
6脂肪乳0.169 536新生儿量表检查0.174 251体外冲击波碎石0.147 543
7特大换药0.163 863待产产程观察0.171 335神经阻滞麻醉0.136 351
8待产产程观察0.155 533中换药0.170 807先天性胆总管囊
肿切除胆道成形术
0.133 020
9妇科千金片0.152 291一次性密闭式吸痰管0.163 515桂利嗪0.116 593
10肌肉注射0.137 308一次性冲洗导管0.150 186银杏叶胶囊0.114 270

6 结论

本文针对住院病例数据,提出了一种基于主题模型增强的医疗活动表征学习方法TMMAR,该方法首先建立了一个综合诊断和诊疗日的双类多层感知机模型,利用诊疗日之间的时序关系进行训练,然后结合主题模型进行网络权重初始化及前向传播约束,以提升表征维度的可解释性。在疾病聚类、后续活动预测、剩余住院天数预测3项典型医疗分析任务上,TMMAR取得了显著的性能提升,同时,所得表征具备良好的医学可解释性,便于进行医学研究和应用。

由于数据类型的限制,目前TMMAR没有将检验检查数据引入模型,缺乏对病例个性化情况的输入。下一步工作希望结合更丰富类型的数据,优化网络结构,提升表征的表达能力及精准预测能力。

参考文献
[1]
BENGIO Y, COURVILLE A, VINCENT P. Representation learning:A review and new perspectives[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(8): 1798-1828. DOI:10.1109/TPAMI.2013.50
[2]
MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed representations of words and phrases and their compositionality[C]//Proceedings of the 26th International Conference on Neural Information Processing Systems. Lake Tahoe, Nevada: Curran Associates Inc, 2013: 3111-3119.
[3]
CHOI Y, CHIU C Y I, SONTAG D. Learning low-dimensional representations of medical concepts[J]. AMIA Summits on Translational Science Proceedings, 2016, 2016: 41-50.
[4]
DE VINE L, ZUCCON G, KOOPMAN B, et al. Medical semantic similarity with a neural language model[C]//Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management. New York, NY, USA: ACM, 2014: 1819-1822.
[5]
LI C Y, HOU Y L, SUN M, et al. An evaluation of China's new rural cooperative medical system:Achievements and inadequacies from policy goals[J]. BMC Public Health, 2015, 15: 1079. DOI:10.1186/s12889-015-2410-1
[6]
NGUYEN P, TRAN T, WICKRAMASINGHE N, et al. Deepr:A convolutional net for medical records[J]. IEEE Journal of Biomedical and Health Informatics, 2017, 21(1): 22-30.
[7]
ZHU Z H, YIN C C, QIAN B Y, et al. Measuring patient similarities via a deep architecture with medical concept embedding[C]//Proceedings of the 2016 IEEE 16th International Conference on Data Mining. Barcelona, Spain: IEEE, 2016: 749-758.
[8]
CHOI E, BAHADORI M T, SEARLES E, et al. Multi-layer representation learning for medical concepts[C]//Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, NY, USA: ACM, 2016: 1495-1504.
[9]
PHAM T, TRAN T, PHUNG D, et al. Deepcare: A deep dynamic memory model for predictive medicine[C]//Proceedings of Pacific-Asia Conference on Knowledge Discovery and Data Mining. Cham, Germany: Springer, 2016: 30-41.
[10]
CHOI E, BAHADORI M T, KULAS J A, et al. Retain: An interpretable predictive model for healthcare using reverse time attention mechanism[C]//Proceedings of 30th Conference on Neural Information Processing Systems. Barcelona, Spain, 2016: 3504-3512.
[11]
CHOI E, SCHUETZ A, STEWART W F, et al. Using recurrent neural network models for early detection of heart failure onset[J]. Journal of the American Medical Informatics Association, 2017, 24(2): 361-370.
[12]
MA F L, CHITTA R, ZHOU J, et al. Dipole: Diagnosis prediction in healthcare via attention-based bidirectional recurrent neural networks[C]//Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, NY, USA: ACM, 2017: 1903-1911.
[13]
CHOI E, BAHADORI M T, SCHUETZ A, et al. Doctor ai: Predicting clinical events via recurrent neural networks[C]//Proceedings of the 1st Machine Learning for Healthcare Conference. 2016: 301-318.
[14]
中华人民共和国国家卫生和计划生育委员会.卫生部关于印发《临床路径管理指导原则(试行)》的通知[R/OL]. (2009-10-16).[2018-03-13]. http://www.nhfpc.gov.cn/yzygj/s3589/200910/479af260b55a4fc3b4b978321b56b465.shtml.
National Health and Family Planning Commission of the PRC. The notification on the instruction principle of clinical pathway management[R/OL]. (2009-10-16).[2018-03-13]. http://www.nhfpc.gov.cn/yzygj/s3589/200910/479af260b55a4fc3b4b978321b56b465.shtml. (in Chinese)
[15]
中华人民共和国国家卫生和计划生育委员会. 2016年我国卫生和计划生育事业发展统计公报[R/OL]. (2017-08-18).[2018-03-13]. http://www.nhfpc.gov.cn/guihuaxxs/s10748/201708/d82fa7141696407abb4ef764f3edf095.shtml?from=groupmessage&isappinstalled=1.
National Health and Family Planning Commission of the PRC. The statistical communique on the development of national health and family planning in 2016[R/OL]. (2017-08-18).[2018-03-13]. http://www.nhfpc.gov.cn/guihuaxxs/s10748/201708/d82fa7141696407abb4ef764f3edf095.shtml?from=gro-upmessage&isappinstalled=1. (in Chinese)
[16]
BLEI D M, NG A Y, JORDAN M I. Latent dirichlet allocation[J]. Journal of Machine Learning Research, 2003, 3: 993-1022.
[17]
LE Q, MIKOLOV T. Distributed representations of sentences and documents[C]//Proceedings of the 31st International Conference on International Conference on Machine Learning. Beijing, China: ACM, 2014: 1188-1196.
[18]
HUANG Z X, LU X D, DUAN H L, et al. Summarizing clinical pathways from event logs[J]. Journal of Biomedical Informatics, 2013, 46(1): 111-127. DOI:10.1016/j.jbi.2012.10.001
[19]
XU X, JIN T, WEI Z J, et al. Tcpm: Topic-based clinical pathway mining[C]//Proceedings of 1st International Conference on Connected Health: Applications, Systems and Engineering Technologies, 2016 IEEE First International Conference on. Washington DC, USA: IEEE, 2016: 292-301.
[20]
CHAKRABORTY S, TOMSETT R, RAGHAVENDRA R, et al. Interpretability of deep learning models: A survey of results[C]//Proceedings of IEEE Smart World Congress 2017 Workshop: DAIS 2017-Workshop on Distributed Analytics InfraStructure and Algorithms for Multi-Organization Federations. San Francisco, CA, USA: IEEE, 2017.
[21]
BENGIO Y, LAMBLIN P, POPOVICI D, et al. Greedy layer-wise training of deep networks[C]//Proceedings of the 19th International Conference on Neural Information Processing Systems. Cambridge, MA, USA: MIT Press, 2007: 153-160.