当前位置:首页 期刊杂志

一种自适应记忆神经网络多跳读取与覆盖度机制结合的药物推荐模型

时间:2024-08-31

王延达,陈炜通,皮德常,岳 琳

(1. 南京航空航天大学计算机科学与技术学院,江苏南京 211106;2. 昆士兰大学信息技术与电子工程学院,澳大利亚昆士兰布里斯班 4072)

1 引言

随着机器学习技术的快速发展,相关研究成果在多个学科交叉融合领域取得了令人瞩目的研究成果,例如智能交通、智慧城市以及智慧医疗等[1~5]. 其中,智慧医疗旨在借助人工智能技术,以病人临床数据为基础,做出疾病诊断与治疗建议,为医生提供临床决策支持,提升诊疗质量与治疗效率. 与此同时,电子医疗记录(Electronic Healthcare Records,EHRs)系统的广泛应用,为临床决策支持相关研究的开展提供了充足的数据.EHRs 记录了病人入院后各项生理指标的变化情况,以及使用的药物和接受的治疗手段等数据,能够满足不同临床应用研究对数据的需求. 借助深度学习对EHRs 开展分析,协助医护人员应对复杂多变的病人健康状况,是提升诊疗质量的重要手段.作为构建智慧医疗体系的重要一环,相关研究成果是提升医疗效率、节省医疗资源及应对人口老龄化的关键所在.

针对临床决策支持的研究克服了EHRs 带来的种种挑战,已经在疾病诊断、死亡预测以及药物推荐等问题上取得了诸多进展[6~9],涉及的研究议题包括EHRs信息提取、EHRs 表示学习以及输出预测等.EHRs 信息提取的目标,是从数据中提取结构化的医学概念,例如疾病和药品名称,并通过对缩写进行扩展和标准化来统一概念名称,作为概念之间关系提取的基础,用以明确不同概念之间的影响方式,例如药品A 能够缓解疾病B 的症状. EHRs 包含两方面的内容表示学习,即针对医学概念的表示学习和针对病人的表示学习. 针对医学概念的表示学习,目标是以不同概念之间的相似性为基础,提取具有临床意义的概念表示向量. 针对病人的表示学习,则是以病人对应的各项概念表示向量为基础,构建其对应的综合表示向量,作为输出预测的依据. 输出预测依据病人表示向量对病人对应的临床输出进行预测,例如诊断病人所患疾病或疾病发作时间. 根据模型使用数据的时间跨度,相关研究可以分为两类,即不考虑时序模式的静态预测和考虑时序模式的趋势预测.

药物推荐作为临床决策支持相关研究中的重要课题[7,10],目标是以EHRs为依据,预测病人的药物使用情况,作为医生开具处方的参考,其所涉及的研究内容包括获取EHRs 中蕴含的病人健康状况变化规律,消解因药物反应(Drug-Drug Interaction,DDI)造成的副作用,以及利用反事实推理评估药物治疗效果. 为获取病人健康状况变化规律,以往研究大多使用循环神经网络(Recurrent Neural Network,RNN)对EHRs 中的时序模式进行编码,并基于注意力机制对存储历史编码结果的记忆神经网络(Memory Neural Network,MemNN)进行多跳读取,提取其中的上下文信息[7]. 为消解DDI 引起的副作用,相关研究使用DDI 信息构建图结构数据[10],并利用图卷积网络(Graph Convolutional Networks,GCN)[11]获取节点表示向量,为模型提供药物不良反应信息. 另一些研究基于强化学习(Reinforcement Learning,RL)或生成对抗网络(Generative Adversarial Network,GAN)对药物推荐过程进行修正,避免生成会引起不良反应的药物组合[7,12]. 反事实推理通常将病人接受某项治疗方案的情形称为事实,将没有接受治疗的情形称之为反事实,并通过对比两种场景下病人群体的输出结果,明确药物与疾病之间的因果关系[13]. 干扰因素(Confounder)是该过程面临的主要问题[14],已有研究的应对方法包括基于逆治疗概率加权(Inverse Probability of Treatment Weighting,IPTW)的边际结构模型(Marginal Structural Models,MSMs)、循环边际结构网络(Recurrent Marginal Structural Networks,RMSNs)以及反事实循环网络(Counterfactual Recurrent Network,CRN)[15,16].

在药物推荐涉及的各项研究内容中,准确获取EHRs 中蕴含的病人健康状况变化规律以构建病人表示向量是药物推荐成功与否的关键所在. 然而,以往方法使用的常规MemNN 多跳读取使用同一固定数值作为所有病人的MemNN 读取次数,忽略了不同病人所对应的入院次数以及所患疾病等数据存在差异这一情况. 当MemNN 读取次数不足时,模型无法获得全部的上下文信息,而对MemNN 的不必要读取,则会导致读取结果中包含冗余数据. 此外,常规注意力机制对注意力权重的分布没有限制,应用于MemNN 多跳读取时很有可能重复关注MemNN 的相同位置,从而读取冗余数据. 为神经机器翻译(Neural Machine Translation,NMT)设计的覆盖度机制(Coverage Mechanism)是解决该问题的一种方案[17]. 但是,NMT 与药物推荐对注意力机制的使用存在显著差异.NMT 任务要求将注意力权重分散到所有待翻译词汇,确保语句中的所有词汇均被准确翻译. 药物推荐模型则需要通过变换注意力机制的关注重点,有选择地读取MemNN 中的上下文信息. 因此,对于药物推荐问题,合理的MemNN 读取方法是将注意力权重的调整与分布限定在选定的重要数据范围内.

为解决上述问题,本文提出自适应MemNN 多跳读取机制与选择性覆盖度机制,结合二者构建药物推荐模型AMHSC(Adaptive Multi-Hop reading with Selective Coverage mechanism). 该模型根据病人自身情况决定对应的MemNN 多跳读取次数,取代了常规方法使用单一数值作为全局读取次数的做法. 同时,AMHSC 模型使用门控循环单元(Gated Recurrent Unit,GRU)对多跳读取过程中MemNN 数据的覆盖度进行记录和更新,基于覆盖度信息对MemNN 数据进行选择,并对注意力权重进行调整,保证注意力权重合理地分散于所选定的重要数据范围内. 两种机制的结合保证了AMHSC 对EHRs 的合理读取,避免了重要数据缺失或冗余数据造成的消极影响. 同时,为每个病人构建独有的MemNN并自适应地决定MemNN 读取次数的做法,能够考虑病人独有的生理特征,准确获取病人健康状况表示向量,作为药物推荐的依据.

2 AMHSC模型

AMHSC模型整体框架如图1所示.

图1 AMHSC模型整体框架

AMHSC 模型首先对病人的历史EHRs 进行编码,获取病人健康状况表示向量qt,并在此过程中构建记忆神经网络KV. 然后,模型针对KV开展基于注意力机制的多跳读取,并对覆盖度进行更新. 在进行J轮读取后,依据覆盖度CJ对KV 进行过滤以获取. 接着,模型针对进行基于注意力机制的多跳读取,并在计算注意力权重时将覆盖度作为依据. 在依据推荐结果获取多跳读取的最佳次数后,将其作为监督信息,用于训练MemNN 读取次数的自适应决定模块,得到最佳读取次数预测结果̂,完成最后的药物推荐.

2.1 基本符号与问题定义

病人对应的EHRs 可看作是一个序列x=[x1,x2,…,xT],其中T为总入院次数,xt为第t次入院对应的数据. 原始EHRs 使用ICD(International Classification of Diseases)代码记录病人的疾病诊断结果和手术治疗方案,使用(National Drug Codes)NDC 代码记录病人服用的药物. 这些代码在分别经过字典化处理后,均被转化为唯一的整数数值,得到对应的整数集合Sd,Sp和Sm,其中包含的整数数量分别为|Sd|,|Sp|和|Sm|.xt中包含了第t次入院时的疾病诊断结果、手术治疗方案以及服用的药物,分别对应三个整数集合dt∈Sd,pt∈Sp和mt∈Sm. 在使用x作为输入数据时,模型会将dt,pt和mt分别转化为multi-hot向量和.

基于EHRs编码结果构建的MemNN中包含T-1对键-值,第t对键-值对应第t次入院时的数据,分别是由连续型数值构成的病人健康状况表示向量qt和以整数集合形式存在的药物mt. 使用注意力机制对MemNN 进行多跳读取时,模型会计算当前的查询条件uk-1与MemNN 中各个键对应的注意力权重ak,以此权重为依据,从MemNN 中读取内容ok,用以完成查询条件从uk-1到uk的更新. 同时,模型会依据读取过程中的各项数据,对MemNN 中qt对应的覆盖度信息进行更新,得到.

AMHSC 模型针对药品的共同使用情况构建关系图,基于药品的临床医学关系获取对应的表示向量. 模型使用矩阵CG表示关系图,CG维度为|Sm|×|Sm|. 若某次入院记录对应的EHRs 中同时包含药品i与j,则CGi,j=CGj,i=1,否则CGi,j=CGj,i=0.

给定病人对应的EHRs,AMHSC 模型的目标是预测病人需要服用的药物mT.

2.2 EHRs编码

对EHRs 进行编码的目的在于获取病人每次入院对应的健康状况表示向量,作为构建MemNN 和药物推荐的基础. 首先,模型分别借助嵌入矩阵和,将与转换为对应的特征向量,如式(1)和式(2)所示,其中dim表示转化后特征向量的长度. 得到的特征向量与将作为GRU 当前时刻的输入数据,依据式(3)和式(4)进行更新,获取与中蕴含的时序模式. 二者对应的GRU状态htd与将在被连接为单一特征向量后,经线性转换得到第t次入院对应的病人健康状况表示向量qt. 随后,qt和对应的药品集合mt一起组成一对键-值,存储于MemNN 中. 在完成对所有EHRs 的编码后,MemNN 中共包含T-1 对键-值,分别对应第1次至第T-1次入院的数据.

对MemNN 进行的多跳读取分两阶段进行. 第一阶段,模型基于常规注意力机制读取数据,不考虑覆盖度信息对注意力权重计算的影响. 对于第k轮读取,模型首先依据上一轮读取结果uk-1与MemNN 的键qt(t<T)之间的交互信息,计算注意力权重ak,计算过程如式(5)和式(6)所示. 随后,模型使用权重ak从MemNN 读取药品数据,并依据各药品对应的表示向量Zk对读取结果进行转化,得到本次读取的内容ok,如式(7)所示.读取结果ok会被用于对uk-1依照式(8)进行更新,并将读取结果uk作为下一轮读取的查询依据.

AMHSC 模型使用GCN 处理药品关系矩阵CG,获取式(7)使用的药品表示向量Zk,计算过程如式(9)所示. 其中为对角矩阵,计算方式为则为单位矩阵. 模型会对CG使用两层GCN 操作,所获取的节点特征即为药品的表示向量,计算过程如式(10)所示.

第二阶段MemNN 多跳读取过程中,模型使用覆盖度机制对注意力权重的计算进行调整,将其作为注意力权重的计算依据之一. 具体计算细节将在2.3 节介绍.

2.3 结合选择性覆盖度机制的MemNN多跳读取

AMHSC 模型使用覆盖度信息记录MemNN 中键-值对被读取的程度,并基于覆盖度信息完成两项工作:筛选MemNN 中的重要数据,以及对MemNN 读取过程中的注意力权重进行调整,确保模型关注所有重要数据.

2.3.1 基于GRU的覆盖度信息更新

基于GRU 对覆盖度信息进行更新的过程如图2 所示. 对于第k轮读取过程,模型对截至k-1 轮的覆盖度信息Ck-1更新时使用的数据包括qt,uk-1以及注意力权重ak.ak是第k轮读取时uk-1与qt(t<T)之间的注意力权重,其计算过程如式(11)及式(12)所示,其中Ctk-1表示第t对键-值对应的覆盖度信息. 相比于常规注意力权重只考虑qt与uk-1的做法,该计算过程通过对concat 注意力机制的修改[18],将覆盖度信息纳入考虑之中.

图2 基于GRU的覆盖度信息计算流程

将Ck-1更新至Ck的过程如式(13)至式(16)所示,其中σ(·)为sigmoid 函数. 根据GRU 的计算过程可知,式(13)和式(14)首先分别基于sigmoid函数构建更新门(update gate)和重置门(reset gate),用于决定原覆盖度信息Ck-1中被保留以及被去除的数据量. 接着,式(15)基于输入数据以及Ck-1生成当前时刻的新数据最后,式(16)基于更新门结合Ck-1与,生成更新后的覆盖度信息Ck.

2.3.2 选择性覆盖度机制

AMHSC 模型根据病人历史入院次数决定是否使用选择性覆盖度机制. 当病人入院次数较少时,对应EHRs 包含的数据量有限,模型需要充分利用所有数据,因此不对MemNN 进行数据过滤和注意力权重调整,仅依据常规注意力权重进行MemNN 多跳读取(具体见第2.2节). 当病人入院次数超过L时,模型启动选择性覆盖度机制,依据覆盖度信息对存储在MemNN 中的数据进行过滤,并对注意力权重进行调整,避免注意力机制重复关注MemNN相同位置的数据.

选择性覆盖度机制工作流程如图3 所示,以MemNN数据选择为界,分为两步进行.

图3 结合选择性覆盖度机制的MemNN多跳读取

首先,模型依照第2.2 节的描述,基于常规注意力机制对MemNN 进行多跳读取. 在此过程中,模型会使用GRU 对键-值对的覆盖度信息进行记录和更新,但不会使用Ctk调整注意力权重.Ctk记录了MemNN 中不同键-值对被读取和使用的情况,反应了相应数据对于药物推荐的重要性. 因此,在对MemNN 进行J轮读取后,模型以CtJ为依据计算qt中各元素对应的门(element-wise gate),利用门控机制对qt进行数据筛选,以达到保留重要数据并去除冗余数据的目的. 计算过程如式(17)所示:.

完成MemNN 数据筛选后,模型继续基于注意力权重对MemNN 进行读取,并使用覆盖度信息对注意力权重进行调整,保证其适当地分散于MemNN 不同位置.计算过程如式(18)和式(19)所示. 得到的注意力权重将被用于从过滤后的MemNN 中读取数据会被用于将更新为,计算过程如式(20)和式(21)所示:

2.4 自适应MemNN多跳读取

自适应MemNN 多跳读取根据病人自身情况,确定对应的MemNN 读取次数,用以取代常规方法使用单一数值作为所有病人MemNN 读取次数的做法. 不同病人对应的入院次数、住院时间以及所患疾病种类等数据存在差异,对应的EHRs 中包含的数据量不尽相同. 根据病人自身EHRs 的数据量确定MemNN 读取次数,能够在获取充足数据完善病人健康状况表示向量的同时,避免读取冗余数据.

监督信息的缺失是实现自适应读取的难点,即缺少病人对应的最佳MemNN 读取次数. 为解决该问题,AMHSC 模型首先使用单一固定数值作为所有病人的MemNN 读取次数,用以完成数据读取以及药物推荐.然后,依据每轮MemNN 读取结果生成药物,评估推荐性能,以最佳性能对应的读取次数作为自适应读取的监督信息,用于模型训练.

2.4.1 监督信息获取

在使用固定数值K作为所有病人的MemNN 读取次数时,模型首先按照2.2 节介绍的常规读取方式,基于注意力机制对MemNN 进行J轮读取. 若病人住院次数超过L次,模型会使用2.3 节介绍的选择性覆盖度机制继续对MemNN 进行读取,直至完成K轮读取. 否则,模型将继续使用常规读取模式,完成剩余读取.

在完成K轮读取后,模型将得到最终读取结果uK.该读取结果将与病人最后一次入院对应的健康状况表示向量qT,以及qT与药品表示向量ZK之间的关联信息r一起,作为生成最终药品推荐结果的依据. 关联信息r反映了病人健康状况与药品之间的关联,其计算过程同样依据注意力机制进行. 模型首先依据式(22)和式(23)计算注意力权重ar,然后依照式(24)使用ar整合药品表示向量ZK,得到结果r.

获取上述qT,uK以及r三项数据后,模型对三者进行连接,并利用全连接层处理,作为sigmoid函数的输入数据,用以计算每种药品被推荐的概率,得到概率向量. 计算过程如式(25)所示,其中f(·)表示全连接层,σ(·)为sigmoid 函数. 若药品i对应的概率̂ 大于预先设定的概率阈值pr,则该药品会被选取作为推荐药品之一,包含在最终生成的药品集合中,否则该药品不会被推荐.

在以固定数值K作为所有病人MemNN 读取次数完成模型训练后,AMHSC 模型会依据每一轮MemNN读取结果生成药物集合,用于与真实药物集合mT进行对比. 对比时使用F1 作为评价指标,选取对应最高数值的MemNN 读取次数K′作为病人对应的MemNN 最佳读取次数. 生成药物集合的过程如式(26)所示,其中uk是MemNN第k轮读取得到的结果,rk是qT与第k轮读读取后的药品表示向量Zk之间的关联信息,计算过程参照式(22)至式(24)进行.

2.4.2 自适应MemNN读取

为完成自适应MemNN 读取,AMHSC 模型需要依据病人自身数据,预测对应的MemNN 最佳读取次数.模型首先以qT为初始查询条件,进行基于常规注意力机制的MemNN 读取,得到读取结果u1.u1在经过全连接层和sigmoid 函数处理后,得到概率向量̂,处理过程如式(27)所示. 概率向量̂维度为K,包含的元素表示i+1 作为MemNN 最佳读取次数的概率. 随后,模型选取中概率最高的数值,以其对应位置作为MemNN自适应读取次数,完成MemNN读取以及药物推荐.

2.5 模型训练

AMHSC 训练过程分为两步. 首先,模型使用单一固定数值作为所有病人的MemNN 读取次数,进行药物推荐,并根据每一轮MemNN 读取后对应的推荐结果,确定每一位病人对应的最佳MemNN 读取次数. 然后,使用得到的最佳MemNN 读取次数作为监督信息,训练模型自适应地决定每一位病人的MemNN 读取次数,完成最终的模型训练.

第一步训练使用的损失函数如式(28)所示,由二元交叉熵损失函数(Binary Cross Entropy Loss)Lb以及多标签边际损失函数(Multi-label Margin Loss)Lm的加权和组成.Lb计算过程如式(29)所示,其中y即为则是药品对应的预测概率向量.Lm计算过程如式(30)所示,公式中包含的̂是模型预测得到的药品集合. 在使用常规损失函数Lb的基础上使用Lm的原因在于,Lm能够扩大真实标签对应的预测概率与错误标签对应的预测概率之间的差距,提升正确标签对应的预测概率并降低错误标签对应的概率,从而能使用预先设定的概率阈值为界限,更容易的区分二者.

第二步训练使用的损失函数如式(31)所示,其中是由自适应读取监督信息K′转化得到的one-hot向量,即=1,其余位置元素数值为零. 该损失函数只会对式(27)描述的全连接层进行训练,模型其余部分的参数不会收到影响,仍然为使用固定MemNN 读取次数K时得到的训练结果. 这么做的目的是保证基于固定读取次数获取的监督信息始终有效,可用于自适应模型的训练.

3 实验结果与分析

本文所有实验均基于真实的临床医疗数据集Medical Information Mart for Intensive Care-III v1.4(MIMIC-III)[19]完成. AMHSC 模型使用PyTorch 编写**https://github.com/yanda-wang/AMHSC,其训练借助英伟达TITAN XP GPU完成.

3.1 数据集

MIMIC-III v1.4 收集了超过四万名病人住院期间的各项临床数据,从不同角度描述和记录了病人健康状况变化过程,涉及的数据包括生命指征、诊断结果、服用药物以及手术治疗等.AMHSC 模型选取具有至少两次住院记录的病人,选取的数据包括病人的疾病诊断结果、接受的手术治疗方案以及服用的药物等. 该过程共计选取了6 350 名病人的数据,这些病人被随机划分为训练集、测试集以及验证集,各集合占比分别为80%、10%和10%,其中不同性别及年龄段病人统计情况如表1所示.

表1 不同性别及年龄段病人数量统计信息

3.2 对比方法

选取以下方法与AMHSC模型进行对比:

(1)ARMR[7]:ARMR 使用MemNN 对历史EHRs 的编码结果进行存储,并对MemNN 进行基于注意力机制的多跳读取,通过每次读取时注意力权重的变化关注不同数据,获取EHRs 中蕴含的上下文信息,用于药物推荐.

(2)DMNC[20]:EHRs中包含多种从不同角度描述病人健康状况的数据,DMNC 模型使用MemNN 存储不同角度数据之间的交互信息,并将其用于自身数据的更新,以此提升药物推荐性能.

(3)GAMENet[10]:GAMENet 使用MemNN 存储历史EHRs 的编码结果,基于注意力机制从中读取数据,并基于图数据表示药物之间的相互联系,使用GCN 获取其表示向量用于药物推荐.

(4)Leap[12]:Leap 将药物推荐看作序列决策问题,基于药物不良反应信息制定奖励函数,使用强化学习对序列式的药物推荐过程进行修正.

(5)RETAIN[21]:RETAIN 基于双层级注意力机制,从历史医疗记录中获取对当前药物推荐具有重大影响的历史数据,用于提升药物推荐性能.

3.3 实验结果

AMHSC 模型及各对比方法的性能,通过以下三项评价指标进行比较:Jaccard 相似度(Jaccard)、Precision Recall AUC(PRAUC)及F1值.

3.3.1 性能比较与分析

AMHSC 模型与各对比方法的比较结果如表2 所示. 由表2 可知,AMHSC 模型性能在各指标上均优于对比方法,其Jaccard,PRAUC 和F1 值分别为0.5080,0.7704 和0.6646. 在几种不同对比方法中,DMNC 使用了与AMHSC 相似的数据编码方法,对数据中从不同角度描述病人健康状况的临床记录分别进行建模及结合,但其性能相较于AMHSC 有一定差距,这说明以键-值对形式的MemNN 对历史数据建模,有利于提升药物推荐性能. 此外,GAMENet 采用了类似的键-值对形式MemNN 对历史EHRs 进行存储,并基于注意力机制从中读取数据. 但是,对于所有病人,GAMENet均只进行一次MemNN 读取,而不是由模型根据不同病人的健康状况,自适应地决定读取次数. 这种设定使得GAMENet的性能与AMHSC 相比有一定差距,同时也与进行MemNN 多跳读取的ARMR 存在差距.ARMR 模型与AMHSC 模型均使用键-值对形式的MemNN 对历史EHRs 进行建模,并通过对MemNN 进行多跳读取获取数据. 但是,ARMR 没有使用覆盖度对注意力权重进行调整,注意力权重有可能重复关注MemNN中若干个键-值对,使得所读取数据包含冗余信息. 同时,ARMR 针对所有病人均进行相同次数的MemNN 读取,忽略了不同病人EHRs 数据量不同,从而需要进行不同次数MemNN 读取. 上述原因导致ARMR 的性能虽然优于其他对比方法,但与AMHSC相比仍然存在差距.

表2 AMHSC模型与对比方法性能比较结果

使用不同性别及年龄段病人所对应数据对AMHSC 模型的有效性进行测试,结果如表3 所示. 针对模型有效性的测试结果表明,AMHSC 模型对于MIMIC 数据集中不同群体的病人均可以取得较好的药物推荐效果. 其中,60~79 岁年龄段女性病人对应的Jaccard,PRAUC 以及F1 三项指标的数值最高,分别达到0.5320,0.7873 和0.6878;其次为针对40~59 岁年龄段女性病人的测试结果,对应的Jaccard,PRAUC 以及F1 达到了0.5167,0.7733 和0.6719. 相比之下,应用于20~39 岁以及80 岁以上女性病人群体时所取得的效果稍差. 模型针对男性病人的药物推荐效果呈现出类似的规律,即针对40~59 岁以及60~79 岁病人取得的推荐效果,要优于对20~39 以及80 岁以上病人取得的推荐效果. 同时,对比不同性别病人的数据可知,模型对于女性病人表现出更加良好的整体推荐性能.

表3 AMHSC针对不同性别及年龄段病人的药物推荐性能

为进一步测试当AMHSC 被应用于不同类型疾病时的有效性,选取了9种人体不同器官或系统特有的疾病,并从MIMIC 数据集中选取患有相应疾病的病人,使用他们对应的数据对AMHSC 进行测试,结果如表4 所示,模型对于MIMIC 数据集中患有不同类型疾病的病人均可以取得较好的药物推荐效果. 模型对绝大多数疾病可以取得0.67 以上的F1,其中最高数值0.6860 出现在败血症病人对应的推荐结果中,糖尿病和脑血管疾病对应的F1 数值也分别达到了0.6852 以及0.6811.此外,针对心脏病、高血压、肺部疾病以及胰腺疾病的F1 数值也在0.67 以上,仅有肝脏疾病和胃部疾病的F1数值小于0.66.

表4 AMHSC针对患有不同类别疾病病人的药物推荐性能

3.3.2 AMHSC模型消融实验

为评估AMHSC 中各组件的必要性,模型被拆解为不同形式的变型. 每次拆解会去除模型中包含的某一组件,并保留其余组件. 去除单一组件后,组件负责的相应功能也随之消除,无法在药物推荐过程中发挥作用. 因此,各种变型与AMHSC的对比,能够说明不同组件对于模型的重要性,以及是否对提升药物推荐性能发挥了积极作用. 同时,为说明自适应决定MemNN 读取次数的重要性,各变型会被进一步去除该功能,改为对所有病人使用相同的MemNN 读取次数. 拆解后得到的不同变型具体情况如下.

(1)Single-GRU:AMHSC 模型使用GRU 对诊断结果以及病人接受的手术治疗手段分别进行编码,然后对编码结果进行整合,而Single-GRU 则将两种数据作为单一序列数据处理.

(2)No-Coverage:该变型放弃使用覆盖度信息对注意力权重进行调整,在MemNN 多跳读取过程中不会对注意力权重施加任何限制条件.

(3)Arbitrary Coverage(Arb-Coverage):AMHSC 模型根据病人历史入院次数决定是否使用覆盖度信息对读取MemNN 时使用的注意力权重进行调整,而Arb-Coverage 忽略对历史入院次数的限制,处理所有病人数据时均使用覆盖度信息对注意力权重进行调整.

(4)No-Selection:AMHSC 模型会依据覆盖度信息,对MemNN 中的数据进行选择,随后依据覆盖度信息对过滤后数据对应的注意力权重进行调整,而No-Selection变型则舍弃数据过滤这一步骤,对原始MemNN 的注意力权重直接进行调整.

(5)No-GCN:AMHSC 模型使用GCN 获取药品表示向量,对MemNN 读取结果进行编码,而No-GCN 使用嵌入矩阵替代GCN,舍弃药品之间的关系对获取表示向量的影响.

(6)No-Adaptability(No-Adap):AMHSC 模型依据病人自身数据,自适应地决定MemNN 读取次数,而No-Adap不具备自适应MemNN 读取功能,使用单一固定数值作为所有病人的读取次数.

上述变型与AMHSC的比较结果如表5所示.

表5 AMHSC模型与不同变型性能比较结果

实验结果显示,AMHSC 能够取得最佳的药物推荐效果,对应的Jaccard,PRAUC 以及F1 指标数值分别为0.508 0,0.770 4和0.664 6,证明了模型各组件对于药物推荐的必要性. 具体来说,No-Coverage 缺少覆盖度信息对注意力权重进行调整,在Jaccard 和F1 两项指标上取得的数值最低,分别为0.490 8 和0.648 9. 与之相对的Arb-Coverage 则是对所有病人均使用覆盖度机制,忽略了病人自身数据量对使用覆盖度机制的影响,得到的性能同样欠佳. 上述结果说明覆盖度机制对MemNN读取效果影响显著,但需要具备足够数据量时才能够发挥预期作用. 合理使用覆盖度机制的Single-GRU 相较于上述两种变型在Jaccard 和F1 两项指标上有所提升,但仍然与AMHSC 有一定差距. 这说明EHRs 中包含的数据从不同角度对病人健康状况变化过程进行了记录,相关时序模式应当被分别处理后再予以合并.No-Adap 在各项指标上的表现与AMHSC 最为接近,是除AMHSC 模型外推荐性能最佳的变型. 但是,使用单一固定数值作为所有病人MemNN 读取次数的做法,令其表现没有能超越AMHSC. 其余两种变型No-Selection与No-GCN 的表现比较相似,各项指标对应数据均不如AMHSC. 上述结果验证了AMHSC 模型中各组件对提升模型性能的必要性,同时也说明根据病人数据自适应决定MemNN 读取次数有助于获取更佳的药物推荐效果.

3.3.3 MemNN读取次数对推荐性能的影响

AMHSC 模型自适应决定的MemNN 读取次数统计情况如表6所示,表中汇总了不同MemNN 读取次数对应的病例数目. 由该表可知,对MemNN 进行单次读取的情况占据绝大多数,对应病例数目为3 251,其次是进行两次读取的情况,对应病例数目为1 180. 剩余读取次数对应的病例数目呈现出一定起伏,但对应病例数目相对较少,均没有超过500. 该统计结果显示,由于自身数据量的差异,病人对应的最佳MemNN读取次数并不相同,应当根据病人具体情况,自适应决定MemNN 读取次数.

表6 最佳MemNN读取次数对应病例数目

若对所有病人均使用同一数值作为MemNN 读取次数,则模型No-Adap 推荐性能随数值变化的情况如表7 所示. 表7 包含了MemNN 读取次数由1 次至14 次时,No-Adap 模型在各项性能评价指标上的表现. 与AMHSC 的性能对比可知,采用自适应方法的AMHSC模型能够取得最佳的药物推荐结果. 此外,随着统一的固定MemNN 读取次数的增加,No-Adap 模型性能呈现先上升后下降的趋势. 在MemNN 读取次数为5 时,其取得的效果相对最佳. 随后No-Adap 模型性能整体呈现出下降趋势,并在MemNN 读取次数为14 时,表现相对最差. 这种对比和变化说明,根据病人自身特定情况,自适应决定MemNN 读取次数,能够从MemNN 中获取最佳推理信息,用于完善病人健康状况表示向量,提升药物推荐性能.

表7 不同MemNN读取次数下No-Adap对应推荐性能

4 结论

本文针对药物推荐问题,提出了选择性覆盖度机制与自适应MemNN 读取机制,在此基础上构建了一种新颖的药物推荐模型AMHSC. AMHSC 模型使用GRU对MemNN 所存储数据对应的覆盖度信息进行记录和更新,作为选取MemNN 重要数据的依据,并利用覆盖度信息对MemNN 读取过程中的注意力权重进行调整,保证其适当地分散于MemNN 中的重要数据范围内,避免了常规注意力机制重复关注MemNN 相同区域的问题. 此外,AMHSC 模型根据每个病人自身数据的不同情况,自适应地决定病人对应的MemNN 读取次数,保证模型在充分利用重要数据的同时,避免从MemNN 读取冗余数据. 基于真实临床数据集MIMIC- III 对模型的有效性进行测试,结果显示,AMHSC 在各项指标上的表现均优于对比方法. 同时,消融实验证明模型各组件发挥了预期作用,保证了数据读取和推理过程的有效性和高效性.

AMHSC 模型对于疾病与药物之间对应关系的利用,以及对病人健康状况和用药过程个体化差异的考虑仍然存在不足,未来仍需要进一步研究. 利用疾病与药物之间的对应关系直接生成备选方案,能够提升药物推荐效率与准确性. 该过程需要考虑如何获取药物与疾病之间的对应关系,以及如何有效利用该对应关系. 同时,由于病理的复杂性以及病人自身独特的生理特性,疾病症状的表现往往复杂多变,对应的药物使用情况也呈现出高度的个体化差异. 对这种个体化差异的考虑能够进一步提升推荐模型性能.

未来研究中,计划以医学知识数据库中疾病与药物的映射关系以及药物不良反应相关知识等为依据,构建疾病与药物之间的对应关系. 同时,尝试构建图形式的数据,以节点表示疾病或者药物,以节点之间的边表示对应关系,使用图神经网络或知识图谱获取节点表示向量,为模型提供疾病与药物对应关系的相关知识. 针对病人的个体化差异,计划在依据病人所患疾病对病人健康状况进行编码的同时,使用病人对应的生理监测数据以及各项化验指标作为模型输入,例如心率、血氧含量和血液白细胞数目等,从而使模型能够以病人健康状况的变化为依据,考虑个体之间的差异性和疾病所表现症状的复杂性.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!