随着计算机技术的飞速发展, 医院的信息化得到了前所未有的发展, 医院综合实力得到明显的提升, 信息化技术覆盖比较全面的医院发展优势更加显著. 大量的医疗数据如何转换成有价值的信息已经变得越来越重要, 数据的智能分析处理技术已经广泛应用到工业和学术界, 在医疗领域虽然已经有不少的分析软件在应用, 但是随着数据量的急剧增加和数据分析要求的提高, 传统的分析方法已经不能适应医院的发展, 处理医院的大量数据时显得力不从心.
近些年来, 深度学习已经在图像处理、科研教学等领域的应用上取得了优异的表现, 在文本处理方面, Bengio 等学者提出一种使用神经网络模型学习产生词向量的技术, 称之为词嵌入技术(word embedding). 通过该方法训练的过程中可以实现对文本中词之间的语义信息进行考虑, 采用此方法的词向量可以有效解决了传统词向量的一些弊端. 随着, 卷积神经网络以及循环神经网络在文本中的应用, 文本分类任务也开始了深度学习处理的方法, 并且和传统的方法相比有大幅度的提升[1].
深度学习是机器学习领域中一系列试图使用多重非线性变换对数据进行多层抽象的算法, 不仅学习输入和输出之间的非线性映射, 还学习输入数据向量的隐藏结构, 以用来对新的样本进行智能识别或预测, 深度学习克服了以前机器学习方法的局限性, 随着医院大量数据的产生和对数据的深层次利用率提高, 深度学习技术在医学领域的应用也不断的增强, 目前深度学习在医学影像领域已经得到了不错的发展和应用, 但是在抗菌药物的使用分析方面应用极少. 深度学习模型在自然语言问题中具有本身自学习能力的优势, 为了能够自动学习电子病历中抗菌药物语义匹配关系, 在不依赖人工特征提取的情况下, 本文将深度学习的相关技术融入抗菌药物数据挖掘分析问题中, 提出长短时记忆神经网络与注意力机制相结合的方法, 将病历数据向量化, 学习单病种和并发症文本中的语义特征, 从而形成知识库并选择出最适合患者的药物治疗方案.
1 深度学习 1.1 深度学习概念深度学习(deep learning)是机器学习的一个分支, 深度学习通过学习深层非线性网络结构, 逐层训练特征, 将样本在原空间的特征表示逐步变换到新特征空间, 展现从样本集中学习数据集本质特征的强大能力. 相比于机器学习, 深度学习是唯一端到端的系统, 中间不需要人为参与, 不需要先验知识. 深度学习的最大好处是可以自动学习特征和抽象特征, 深度学习以机器学习领域的一个分支呈现给人们, 它采用多层复杂结构或者采用多重非线性变换构成的多个层进行数据处理. 用深度学习进行医疗疾病诊断具有独特的优势, 它可以充分挖掘海量医疗数据中隐藏的深层关系, 通过对神经网络的学习获得更抽象的特征值, 提高疾病诊断的正确率.
在自然语言处理领域用深度学习模型解决文本分类问题受到人们的关注, 文献[2]提出基于句法树的长短时记忆神经网络(LSTM)将标准的时序结构改为语法树结构, 在文本分类上得到非常好的提升, 在LSTM的基础上引入attention 以此来捕获不同上下文信息对给定情感的重要性, 文献[3]提出一种适用于前馈神经网络的简化注意力模型, 证明attention机制能够在文本较长的情况下, 有效解决信息丢失等长期依赖问题, 文献[4]提出的层次化注意网络有2个层次的注意机制在短语词和句子层次上应用, 使它能够在构造文档表示时关注更重要的内容, 充分说明了attention机制能够给文本中的关键部分分配更多的注意力, 突出其重要性.
1.2 分类流程从患者电子病历中得到首程和病程记录数据, 里面记录了患者的既往史、身体特征、检验检查结果、抗菌药物使用等数据, 将这些数据作为输入数据. 系统或子系统在特定约束条件下输入、输出时, 参数或状态变化的一种抽象描述. 抗菌药物使用分类分为训练过程和测试过程. 如图1所示.
1.3 基于LSTM-attention 网络的文本特征提取
从患者电子病历中得到首程和病程记录数据, 里面记录了患者的既往史、身体特征、检验、检查、抗菌药物使用等数据, 将这些数据作为输入数据. 文本特征提取过程分文本预处理、特征提取、文本表示等部分, 最终目的是把文本转换成计算机可理解的格式.
(1) 文本预处理文本预处理过程是在文本中提取关键词表示文本的过程, 中文文本处理中主要包括文本分词和去停用词两个阶段, 传统算法主要有基于字符串匹配的正向/逆向/双向最大匹配, 基于理解的句法和语义分析消除; 基于统计的互信息/CRF方法. 近年来随着深度学习的应用, WordEmbedding+Bi-LSTM+CRF方法逐渐成为主流. 在对电子病历中的数据进行分析前, 需要对原始的文本数据进行必要的文本预处理, 进行预处理时将噪声数据进行去噪化处理, 也就是停止词阶段, 停止词是文本中一些高频的代词连词介词等对文本分类无意义的词, 在本文中抗菌药物中一些特定的关键字需要进行特殊处理, 如单位、规格、剂量等, 为了保留关键字的语义信息, 本文中把关键字跟一些专业术语分离, 关键字做了保留, 文本中所有的药品中的英文单词进行了规范化处理, 全部采用了小写方式, 以免与药品化学名或者符号冲突, 导致后面的数据处理和分析发生错误和偏差.
分布式表示(distributed representation), 其实Hinton最早在1986年就提出了, 基本思想是将每个词表达成 n维稠密、连续的实数向量, 与之相对的one-hot编码向量空间只有一个维度是1, 其余都是0. Bengio在2003年便提出了神经网络语言模型(Neural Probabilistic Language Model, NNLM). 词向量被广泛应用是2013年后, 在本文中采用了Google Mikolov于2013年发布的Word2Vec工具包, Word2Vec主要采用的是CBOW 和 Skip-Gram两个模型的结构, 这两个模型的直接目的就是得到高质量的词向量, 它们基本类似于NNLM, 不同的是模型去掉了非线性隐层, 预测目标不同, CBOW是上下文词预测当前词, Skip-Gram则相反. 两种模型都包括输入层、投影层、输出层, 其中CBOW 模型利用词Wd的上下文Wdn 去预测给定词Wd, 而Skip-gram 模型恰好相反, 是在已知给定词Wd的前提下预测该词的上下文Wdn, 具体见式(1):
$W_{dn} = W_{d - n}, ,\cdots, W_{d - 1}, W_{d + 1}, \cdots, W_{d + n}$ | (1) |
在本文中, 数据集内容主要由不定长的患者电子病历中抗菌药物使用方法、时间、内容等组成, 这些内容经过预处理和文本表示得到文本向量表示, 使文本数据从高纬度高稀疏的神经网络难处理的方式, 变成了类似图像、语音的的连续稠密数据. 电子病历文本向量表示由基于attention机制的LSTM训练得到的向量作为抗菌药物使用分类的文本特征. 通过池化层连接以上病历中部分特征, 将其作为患者电子病历中抗菌药物使用方法分类的总体特征, 之后用这些特征向量去构建或调用Softmax分类模型, 最终输出即是电子病历抗菌药物分类所属的效果.
(2) 模型的构建目前采用编码器-解码器(encode-eecode)结构的模型, LSTM属于一种编码-解码框架, 这种结构的模型通常将输入序列编码成一个固定长度的向量表示, 对于长度较短的输入序列而言, 该模型能够学习出对应合理的向量表示. 但是, 这种模型存在的问题在于当输入序列非常长时, 模型难以学到合理的向量表示, 当文本较长时, 无论输入包含多少信息量, 最终所有语义完全通过一个中间语义向量来表示, 词语自身的信息已经消失. 编码过程中丢失很多细节信息, 解码过程中相应的结果也会变差, 因此引入注意力机制(attention), 该机制的基本思想是, 打破了传统编码器-解码器结构在编解码时都依赖于内部一个固定长度向量的限制. 单纯的LSTM模型在解决文本分类任务时, 仅考虑了上文信息, 没有用到下文信息, 丢失部分语义信息. 而双向LSTM前向传递层可以获取到输入序列的上文信息, 后向传递层可以获取到输入序列的下文信息, 从而丰富了语义信息. 如图2 所示为基于注意力的双向LSTM神经网络, 该分类模型分为编码过程、注意力层和Softmax分类器层.
(3) 编码过程
本文给出一个词向量表示的文本序列, 词向量用Xij表示, 表示第j个词向量在第i个文本中, 在这里把像Xi这样的词向量称为节点. 为得到电子病历中抗菌药物使用特征向量, 使用双向LSTM对句子进行注释, 计算公式如式(2)所示.
$\overrightarrow {{{h}}_{it}} =\overrightarrow {LSTM({{X}}_{it})} , t \in [1, T]$ | (2) |
$\overleftarrow {h_{it}} =\overleftarrow {LSTM(X_{it})} , t \in [1, T]$ | (3) |
连接
注意力(attention)机制的实现是通过保留LSTM编码器对输入序列的中间输出结果, 然后训练一个模型来对这些输入进行选择性的学习并且在模型输出时将输出序列与之进行关联. 虽然模型使用attention机制之后会增加计算量, 但是性能水平能够得到提升. 另外, 使用attention机制便于理解在模型输出过程中输入序列中的信息是如何影响最后生成序列的. 注意力机制主要分为soft attention与hard attention两种形式, 其中soft attention是指对每一个特征都分配一个注意力权值, 认为是个概率分布; 而hard attention 在选取特征组合时, 并不是对所有的特征都生产权值, 可能只选取一个或者多个[5].
我们从输出端, 即decoder部分, 从输出端到输入端看公式.
$S_t = f(S_{t - 1}, Y_{t - 1}, C_t)$ | (4) |
其中, St是指decoder在t时刻的状态输出,St−1是指decoder在t−1时刻的状态输出,Yt−1是t−1时刻的标识, Ct看下一个公式, f是一个循环神经网络, hj是指第j个输入在encoder里的输出, atj是一个权重
$C_t = \sum\nolimits_{j = 1}^{T_x} {a_{tj}h_j} $ | (5) |
其中, hj是指第j个输入在encoder里的输出, atj是一个权重
$a_{tj} = \frac{{\exp (e_{tj})}}{{\displaystyle \sum\nolimits_{j = 1}^{T_x} {\exp (e_{tj})} }}$ | (6) |
式(6)跟Softmax是相似, 道理是一样的, 是为了得到条件概率P(a|e), 这个a的意义是当前这一步decoder对齐第j个输入的程度.
$e_{tj} = M(S_{t - 1}, {{h}}_j) = V \cdot \tanh (W \cdot h_j{{ + U}} \cdot S_{t - 1} + b)$ | (7) |
式(7)中的M可以用一个神经网络来逼近, 它用来计算St−1, hj这两者的关系分数, 如果分数大则说明关注度较高, 注意力分布就会更加集中在这个输入词上, 当前一步输出St应该对齐相应的输入, 主要取决于前一步输出St−1和这一步输入的encoder结果hj.
(5) 文本分类文本向量是文本的更高层次的表达, 它可以作为抗菌药物文本数据分类的部分特征向量, 图3中的Y表示经Word2Vec映射后的功能向量, 它在经过标准神经网络的训练学习得到向量V作为抗菌药物文本数据分类的另一部分依据. 这里特征向量在分类中的权重分别为0.6 和0.4, 则文本属于某一类效应的概率计算公式如式(8)所示:
$P = Softmax (0.6 \times W_cC{\rm{ + }}0.4 \times {{W}}_cH + b_c$ | (8) |
使用正确标签的负对数似然作为训练损失, 计算公式如下:
$L = - \sum\nolimits_d {\log _ax_dj} $ | (9) |
其中, j是文本d的标签,
本文以医院信息系统电子病历中抗菌药物的数据分析为实例, 对提出的基于深度学习抗菌药物文本数据分析进行研究(如表1). 本实例的优化目标就是根据电子病历中不同患者的诊断、个人体征、检查结果抗菌药物使用的方法来自动学习抗菌药物使用方法[6,7], 建立抗菌药物特征库以及自主学习的分类技术在该实例应用. 对2018年医院某一个月住院病人电子病历文本抗菌药物的数据进行分析, 其中住院病人6154人, 使用抗菌药物的病人2671人. 本文用Word2Vec 来训练电子病历中的文本词向量, 去除多余标签, 语料大小为1363 MB, 为了防止维度太大导致数据训练复杂度增加, 训练词向量的维数选择为160 维.
2.2 本文3种方法在模型上的比较
为验证深度学习在本文提出问题分类上的有效性, 本文采用3种评价标准: 精确率、召回率和F1测量值, 通过这三个指标来衡量算法的有效性. 召回率(R)衡量的是实际属于某个类别的所有文本中被分类器正确划分到该类别中的比率. 召回率越高说明分类器在该类上漏掉的文本越少, 式(10)为召回率数学公式:
$R = \frac{A}{{A + C}}$ | (10) |
精确率是衡量划分到某个类别中的文本中属于此类别的比率精确率越高说明分类器分类越准确. 式(11)为精确率的数学公式.
$P = \frac{A}{{A + B}}$ | (11) |
F1值是召回率和精确率的加权调和平均, 它平衡了精确率和召回率. 式(12)为F1 值的计算公式.
$F1 = \frac{{2PR}}{{P + R}}$ | (12) |
在实验中, 分别采用支持向量机(SVM), 普通的卷积神经网(CNN), 长短期记忆人工神经网络(LSTM), 基于注意力机制的长短期记忆人工神经网络(LSTM-attention)等4种模型进行分类对比结果如表2所示, 根据实验结果, 5类病症分类对比, 基于注意力机制的长短期记忆人工神经网络都显示出比较优越的性能和优势, 在对抗菌药物使用分类分析中, 单病种和其他两类有着类似的结果, 由于这两大类抗菌药物的使用相对比较单一, 所以分类的时候表现出优势, 外科类里由于手术使用抗菌药物情况比较复杂, 所以分类稍显逊色.
2.3 数据挖掘规则算法
本文中利用深度学习算法来对电子病历中抗菌药物进行分类以及求解患者使用抗菌药物的合理性、知识库和规则特征库的建立、自学习能力, 表3中是各个变量指标和名称[6].
数据挖掘的目标是求解某医院2018年一个月电子病历抗菌药物的合理性使用情况, 希望通过分类学习能发现最优解, 由于每个患者的生理情况不同, 抗菌用药的使用也没有一个具体的标准, 只是根据电子病历中相关药物信息进行分析探索性研究, 从病历中不同的医疗数据获取最适合病人的知识. 在求解的过程中, 将抗菌药物数据按照表3中的数据变量指标值进行相应的判断, 表4是具体判定标准.
2.4 验证结果在实验过程中, 为了验证本文提出的算法的合理性, 根据2018某月2671名患者抗菌药物病历进行仿真求解, 优化结果主要是判断抗菌用药的辅助规则使用及加入知识库情况, 最终求解的输出结果如表5所示, 其中符合是在基本符合的基础上加权得到.
3 结束语本文分析了问题分类的现状以及深度学习在文本处理领域的成功应用, 在LSTM基础上引入注意力机制, 以此来提取文本特征向量, 提取特征向量之后, 再利用Softmax回归来解决文本多分类问题. 本文尝试用深度学习的方法进行的是探索性研究, 对于患者的抗菌药物数据利用深度学习框架进行尝试和创新, 为电子病历中抗菌药物利用深入研究提供新的思路并借助实验, 提出、混合长短时记忆网络和卷积神经网络的学习框架[8,9], 有助于建立医疗数据仓库并进行知识发现的使用.
随着医院信息化的发展, HIS系统已经向着智慧医疗的方向在发展, 人工智能的一些技术也不断被应用到了医疗领域. 由于患者个体生理各项指标的不确定性以及医疗环境的特殊性, 抗菌药物智能辅助判断需要慎重, 专业知识、用药习惯和临床经验以及合理的自主学习算法起着至关重要的作用, 因此本研究在对某类疾病的抗菌药物使用合理情况与否进行智能判断时, 没有直接判断是否合理, 而是以既定指标的“符合”或“不符合”标准进行分类[6].
测试结果表明深度学习在抗菌药物使用学习方法在一定程度上可以帮助医生对抗菌药物的辅助使用及诊断准确性问题, 对抗菌药物辅助知识库和规则库的数据可以进行有效更新, 对其中的干扰数据进行了加权修正, 为医生的辅助决策提供了良好的数据基础[10]. 总之, 深度学习在抗菌药物的合理使用是一个复杂过程, 实验结果得到的符合值同患者数量之间有差值, 为了增强分类精度和模型的说服力, 需要采用更多的样本数据集和改进算法使得模型和知识库更完善并符合患者实际情况.
[1] |
马建红, 王瑞杨, 姚爽, 等. 基于深度学习的专利分类方法. 计算机工程, 2018, 44(10): 209-214. |
[2] |
Tai KS, Socher R, Manning CD. Improved semantic representations from tree-structured long short-term memory networks. arXiv preprint arXiv:1503.00075v2, 2015.
|
[3] |
Wang Y, Huang M, Zhu X, et al. Attention-based LSTM for aspect-level sentiment classification. Proceedings of Conference on Empirical Methods in Natural Language Processing. Washington, DC, USA. 2016. 606–615.
|
[4] |
Yang ZC, Yang DY, Dyer C, et al. Hierarchical attention networks for document classification. Proceedings of Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. San Diego, CA, USA. 2017. 1480–1489.
|
[5] |
康旭琴, 吴偶, 王磊, 等. 面向疾病相关关联抽取的深度语义特征研究. 计算机工程与应用, 2018, 54(8): 260-264. |
[6] |
王一敏, 梁治钢. 基于免疫遗传算法的抗菌药物数据挖掘. 计算机系统应用, 2017, 26(3): 156-161. DOI:10.15888/j.cnki.csa.005657 |
[7] |
於时才, 梁治钢, 李海龙. 基于免疫遗传算法的移动机器人路径规划. 微计算机信息, 2008, 24(2): 257-259. DOI:10.3969/j.issn.1008-0570.2008.02.104 |
[8] |
荣光辉, 黄震华. 基于深度学习的问答匹配方法. 计算机应用, 2017, 37(10): 2861-2865. DOI:10.11772/j.issn.1001-9081.2017.10.2861 |
[9] |
张克君, 李伟男, 钱榕, 等. 基于深度学习的文本自动摘要方案. 计算机应用, 2019, 39(2): 311-315. DOI:10.11772/j.issn.1001-9081.2018081958 |
[10] |
谭文明, 甘琴, 龚世菊, 等. 三甲医院处方点评软件系统的开发和应用. 北方药学, 2015, 12(2): 142-144. |