一. 引言
近年来,电子病历的广泛使用为药品推荐等智能医疗服务提供了强有力的支持。然而,尽管药品间存在着多种多样的相互作用,如协同、拮抗等作用,现有的药品推荐工作往往忽略了这一点或只针对某一种药品相互作用进行建模。此外,大部分已有的工作往往将包推荐问题形式化为一个针对用户与包的个性化打分函数,然而,这样的判别式模型在实际应用中往往会受到限制。
为此,我们提出了一种基于策略梯度的药品包生成方法DPG,将药品包推荐形式化为序列生成问题。具体而言,我们首先根据已有的医学知识构建药品相互作用关系图,并设计了一种新的图神经网络来捕捉药品间的相互作用。随后,我们设计了一种基于循环神经网络的药品包生成器。我们利用深度强化学习方法对模型进行了训练,实验证实了我们方法的有效性。
论文标题:
Interaction-aware Drug Package Recommendation via Policy Gradient
期刊名称:
ACM Transactions on Information Systems (TOIS)
论文作者:
Zhi Zheng, Chao Wang, Tong Xu, Dazhong Shen, Penggang Qin, Xiangyu Zhao, Baoxing Huai, Xian Wu, and Enhong Chen.
二. 预备知识
2.1 数据描述
本文的电子病历数据集来自国内某大型三家医院电子病历数据库,如下图所示,每个条电子病历记录包括患者的基本信息、患者的化验结果、医生为患者给出的主诉文本,以及医生为患者所开的药品。
本文所使用的药品相互作用数据来自大型药品知识图谱DrugBank,其中给出了不同药品之间的相互作用效果。在领域专家的帮助下我们将其中的相互作用分为无相互作用、协同作用、拮抗作用三种。标注后的数据样例如下图所示。
2.2 形式化定义
对于病人
三. 技术细节
本部分将介绍我们所提出的模型细节。如下图所示,我们的框架主要由药品相互作用图上的图神经网络,病人表征模块和药品包生成器三部分构成。
3.1 药品相互作用图上的图神经网络
和传统推荐问题相比,药品包推荐的核心问题是如何捕捉药品间的相互作用。因此,我们首先提出了一种构造药品相互作用图的方法,进而提出了一种药品相互作用图上的图神经网络来解决此问题。
3.1.1 药品相互作用图构建
对于数据中所有的药品构成的集合
3.1.2 药品相互作用图上的图神经网络
我们采用信息传播神经网络(MPNN)框架构建药品相互作用图上的图神经网络。我们使用如下方式定义图神经网络中的信息传递,信息聚合和节点表征过程:
经过
3.1.3 边分类损失函数
为了利用药品相互作用类型信息,我们可以使用一个矩阵
3.2 病人表征模块
给定一个病人描述
对于主诉文档,我们对其中的每一个词初始化一个词表征,进而使用GRU模型得到主诉文档的表征
此外,我们通过MLP模型和Sigmoid函数为每一个病人表征计算一个掩码向量:
掩码向量的每一位取值范围均为0~1,可以视为一种特征选择过程。
3.3 药品包生成
3.3.1 基于极大似然估计的药品包生成
给定一个病人描述
为了将药品包生成问题转化为序列生成问题,我们首先对所有药品包中的药品按照出现频率进行排序。我们选择基于GRU的模型进行药品包生成,假设在时间步
其中
此外,为了避免模型生成得到重复的药品,在每个时间步
其中
最终,基于最大似然的损失函数可以如下定义:
其中
3.3.2 基于策略梯度的药品包生成
尽管极大似然法在序列生成问题中被广泛应用,这种方法却会受到序列排列顺序的影响。由于药品包是一个天然的无顺序集合,为了解决这一问题,我们提出了以下基于强化学习的方法来减少序列顺序对于结果的影响。在药品包生成问题中,我们要解决的问题是对以下期望reward进行优化:
其中
我们采用基于策略梯度方法对模型进行训练,其梯度可以表示为:
此外,为了使得模型训练更加稳定,我们采用了基于SCST的自监督序列训练方法:
其中
3.4 训练策略
我们提出首先使用极大似然法对模型进行预训练,随后使用策略梯度对模型进行精调的方法训练DPG模型,训练算法描述如下:
四. 实验结果
我们在开源数据集MIMIC-III和私有数据集APH上进行了实验,数据集的基本统计信息如下:
在这两个数据集上,我们首先将本文提出的两种方法与多种基准方法的推荐效果进行了对比,结果如下:
实验结果证实了本文提出方法的有效性。同时,我们还对模型的各个组件做了消融实验。结果显示本文所提出各个模块均对于最后的结果有提升作用。
END