李晓峰, 李 东, 王妍玮
(1 黑龙江外国语学院 信息工程系, 黑龙江 哈尔滨 150025;2 哈尔滨工业大学 计算机科学与技术学院, 黑龙江 哈尔滨 150001;3. 普度大学 机械工程系, 印第安纳州 西拉法叶市 IN47906)
医疗领域与计算机技术的结合,促进了医疗信息技术的发展[1].在多种医疗健康管理系统运行中,出现了海量的医疗数据,包括医生、患者、病例和诊断等多样化数据,为患者提供便利.但目前人们对医疗数据的需求已不仅仅停留在对医疗信息的检索方面,而且通常情况下,人们对自己的要求或者需求不能够清晰地阐述,甚至在搜索引擎中输入的关键词也不是非常准确,还有可能存在搜索引擎给人们的反馈不合适等问题[2].因此,在多样性的医疗数据中,如何准确快速地对数据进行分析和计算、为人们准确推荐信息、为就医者提供个性化服务具有非常重要的意义,也是目前急需解决的问题.
文献[3]基于隐式评分和相似度传递,提出一种推荐方法,对网络用户行为进行提取,使用相似度传递策略分析用户行为数据,并计算隐式评分结果,完成资源推荐,但该方法推荐性能还有待提高;文献[4]提出了融合项目属性特征和用户兴趣偏好的协同过滤推荐算法,建立用户评分矩阵,计算得出用户兴趣偏好数据,然后利用K-means算法对数据进行聚类,依据用户兴趣偏好寻找得出近邻用户,在每一个用户类簇中对项目评分进行预测,完成推荐,但该方法存在推荐精度较低的问题;文献[5]通过改进卷积神经层、加入冗余分类器改进了卷积神经网络,以改进后的神经网络进行数据分类和推荐研究,但过程中使用的数据质量较差,导致推荐结果准确率较低;文献[6]提出基于短期记忆神经网络的个性化学习全路径推荐模型,通过预测学习者的学习路径和表现,推荐出合适的学习全路径,但该方法不适用于对多样性的数据研究;文献[7]研究了基于优化的混合大数据推荐算法,并结合社会学中的相似性和信任度,建立了信任路径模型和循环信任模型,然后将这些模型引入混合权重的计算中进行数据推荐,但推荐准确率不高;文献[8]尝试基于深度学习来加强个性化推荐,结合自动编码器与隐含因子模型两者的优势,综合评分结果完成数据推荐,但该方法的推荐准确率以及推荐精度仍有待提高.
国内外针对数据挖掘和深度学习技术格外关注,这种技术主要适用于各个领域大规模数据的分析,实现了个性化服务[9].但医疗领域的特性和数据的多样性,在运用传统的方法对医疗数据记性处理时,会面临这重重困难.
推荐系统萌芽期的研究是由国外Xerox Palo Alto研究中心提出的,其设计了名为Tapestry的推荐系统,主要用于帮助用户过滤邮件,调节邮件负载过大的问题[10-12].在国内对推荐系统研究得较晚,但是同样取得了较好的研究成果,如:基于多Agent的众包任务推荐方法、基于差分隐私理论和时序理论模型的推荐方法、基于知识模式挖掘的流程知识推荐方法等[13].这些方法主要针对计算机领域,对于具有多样性的医疗数据来说,这些推荐方法的效果不是很理想.
针对上述存在的问题,提出基于面向医疗系统的多样性数据深层神经网络推荐算法,给出了医疗推荐系统框架,对多样性医疗数据进行预处理,并且对简单神经网络进行改进,构建了一种新的深层神经网络,完成了数据推荐.有效解决简单神经网络存在的过饱和等问题.结果表明,所提方法的数据推荐性能优势明显,取得了一定的成效,能够为医疗领域以及计算机领域的发展提供参考依据.
本文主要针对大数据环境下的医疗系统,以满足就医者的疾病诊断和个性化的需求为目的,提出一种面向医疗系统的数据推荐方法.其主要功能需求为:就医者管理功能、就医者病症问诊功能、医生推荐功能和就医者行为记录功能[14].
个性化医疗推荐系统框架设计如图1所示,整个框架包括浏览器、Web服务器、医疗数据库、神经网络服务器和Hadoop集群[15].
各部分的具体功能如下.
1) 浏览器:就医者可通过浏览器对推荐系统进行访问,浏览器会将使用者的指令转换成HTTP请求,再将请求发送至Web服务器,并解析服务器的响应,把推荐结果显示给就医者.
2) Web服务器:该部分是整个系统后台的进出口,系统的就医者管理模块、问诊模型和医生推荐模型都处于该部分中.同时该服务器与数据库进行交互,用于存储需要持久化的数据.
3) 数据库:是用于存储数据的地方.Web服务器、神经网络服务器和Hadoop集群都会对数据库进行访问.因此,数据库起到非常重要的纽带作用.
4) 神经网络服务器:用于从互联网上相关医疗网站训练数据,经过数据整理、分析后将其保留在数据库中,进而为Web服务器和Hadoop集群所用.
5) Hadoop集群:是用来执行整体算法和对模型进行训练的部分,不能直接和浏览器的客户端进行通信.Hadoop集群可将该数据库中的数据复制到HDFS中,采用MapReduce模型对医疗数据进行训练,经过训练后的数据结果将保留在数据库中,以便Web服务器使用[16].
1) 数据预处理.医疗数据的多样性决定了其数据形态的不稳定性,由此需要对多样性医疗数据进行预处理,降低其多样性特点对医疗数据推荐过程造成的干扰.主要分为以下3个步骤.
① 对数据进行筛选,数据集中有很多特征属性,想要从其中获取想要的特征属性,需要滤除其他无用数据.
② 对筛选完成的数据进行清洗,通常算法所需的数据占样本数据的比例较小,即真正有效的数据较少,因此将不属于特征值的样本记录删除,只保留需要的样本即可[17].
(1)
2) 深层神经网络构建.本文使用深度学习中的人工神经网络进行医疗数据推荐分析.人工神经网络的学习能力较强,能够创建高度非线性的模型系统,并对变量之间的复杂关系进行提取[18].简单的人工神经网络由很多的神经元组成,一般分为3层,如图2所示.
图2 简单人工神经网络
上述简单的神经网络在对多样性数据处理中,会出现神经元过饱和,数据计算量大,无法快速并有效计算的问题,一般理论来说,与单隐层神经网络相比,深层神经网络具有更好的网络泛化能力,数据处理精度高.对于较为简单的医疗数据来说,采用简单神经网络就能够应对数据处理问题,但本文的研究对象是多样性医疗数据,需要对简单神经网络进行改进,以满足多样性医疗数据处理的需求[19-20].为此,本文增加了隐藏层层数,提出了深层神经网络,创建了4个层,分别是1个输入层,2个隐藏层和1个输出层,见图3.
图3 深层神经网络模型Fig.3 Deep neural network model
图3是一个深层神经网络模型,一共有4层,即nl=4,上层为输入层,中间是2个隐藏层,下层是输出层.其中,数据特征值x=(x1,x2,…,xn)和偏置项b均为输入数据,W=(W1,W2,…,Wn)表示输入权值,则数据传递函数可表示为
(2)
式中:f(·)为非线性函数,也被视为激活函数;T为转置符号.
(3)
那么激活函数f(·)可用向量集表示,即:
f([z1,z2,z3,z4])=[f(z1),f(z2),f(z3),f(z4)].
(4)
对式(2)进行变换,得出简化形式为
(5)
当给定第l层的激活值a(l)后,表示完成了神经层的正向传播,再依据类似方式,完成对神经层的逆向传播.由正向传播和逆向传播交替循环,加强了数据之间的流通性,减小了数据处理误差,并提高网络的泛化能力.交替循环过程中,对神经网络进行学习收敛,使其误差值降到最低,逼近真实数据值.
(6)
对参数进行矩阵化处理,采用针对矩阵向量的计算方式,可实现对上述神经网络的求解.
图3中,输入层中的各个神经元都有相应的医疗数据特征属性,都是数值型数据.对数据进行归一化处理,令输入值的取值范围是相同的,不会出现神经元过饱和的状态,进而有效解决简单神经网络存在的不足[21].输出层中的神经元纯输出结果可能是0和1,其中0表示不推荐,1表示推荐.
3) 网络训练与推荐函数输出.采用反向传播法对创建的深层神经网络进行训练,具体步骤如下.
① 将样本数据集随机分配.
② 对整个神经网络进行反向传播法计算,得到l2、l3、l4层的激活值:
(10)
④ 对于2个中间的隐藏层(神经网络的第2层和第3层),每1层的第i个神经元的残差结果分别为
⑤ 对神经网络的代价函数进行表示.
(13)
(14)
⑥ 对神经网络进行迭代,更新权重系数,输出推荐函数,计算公式为
S=Z(l+1)Z(l)-λJ(W,b).
(15)
式中:Z(l+1)和Z(l)分别表示第l+1和l层的神经网络推荐值;λ表示权重系数.
通过上述计算过程,可实现对神经网络的训练,并对神经网络中的各个权重值进行确定[22].进而依次获取深层神经网络推荐函数输出值,完成对医疗数据的推荐.
为验证本文推荐结果的有效性,进行试验验证分析.试验中使用Medline数据库(https:∥www.ncbi.nlm.nih.gov/pubmed).本文使用该数据库中的数据集为Medicus data、Dental Literature data和International Nursing data.将每组数据集划分为大小均等3个组别,共9组.医疗数据推荐系统的运行环境见表1.
表1 试验环境Table 1 Experimental Environment
深层神经网络模型参数设置见表2.
表2 深层神经网络模型参数设置Table 2 Parameter setting of deep neural network model
根据上述试验环境和参数的设置,综合考虑医疗数据的多样性问题,以及用户在使用时的网络状况,本试验采用控制变量法进行验证,过程中,选取4个方面进行对比分析.
本试验选取以下指标,对本文算法进行验证分析.
1) 数据预处理效果:本文推荐算法运行之前,首先进行了数据预处理,降低数据多样性对医疗数据推荐结果的影响,为验证本文算法性能,以数据预处理效果为指标进行分析.
2) 激活函数数量:激活函数是深层神经网络构建中,需要重点使用的数据指标,其生成数量能够反映本文所构建的深层神经网络质量,激活函数数量越多,表明神经网络质量越高,对本文算法与简单神经网络进行对比.
3) 推荐准确率:对于给定的测试数据集,正确推荐的样本数与样本总数量的比值被称为推荐准确率.
(16)
式中:A为推荐准确率;TC表示推荐的正样本数量;TN表示推荐的负样本数量;TALL表示推荐样本总数.
4) 推荐精度:精度与准确率均是反映算法结果系统误差的指标,与准确率不同,推荐精度是指正确推荐的正样本数量TC占正类样本数的比例.
P=TC/(TC+FC).
(17)
式中:P表示推荐精度;FC表示被判定为正样本,但实际是负样本的推荐数据量.
1) 数据预处理效果.将文献[3-6]中的方法作为对比方法,与本文的医疗数据预处理效果进行对比,对前4组数据进行数据清洗,对后5组数据进行协同过滤,对比结果如图4所示.
(a) 不同方法的数据清洗效果(b) 不同方法的数据协同过滤效果
图4不同方法的数据预处理效果
Fig.4Datapreprocessingeffectofdifferentmethods
分析图4可知:前4组进行数据清洗所需的时间较短,后5组进行协同过滤所需的时间较长.但本文方法无论在进行数据清洗还是协同过滤,所需的时间均是最短的,工作效率均比其他方法高,由此可说明本文方法的数据处理效果较好.
2) 激活函数数量.激活函数是深层神经网络构建中,需要重点使用的数据指标,其生成数量能够反映本文所构建的深层神经网络质量,激活函数数量越多,表明神经网络质量越高,对本文方法与简单神经网络生成的激活函数数量进行对比模拟分析,结果如图5所示.
分析图5可知,在9组数据中,虽然本文构建的深层神经网络获取的激活函数数量与简单神经网络相差较小,但本文方法获取的激活函数数量始终多于简单神经网络,最高可达到8 500个,而简单神经网络获取的激活函数数量不超过8 000个,表明本文构建深层神经网络后,能够提升医疗数据推荐质量.这是因为本文不仅对简单神经网络进行了改进,并对输入深层神经网络的数据进行了归一化处理,进而有效解决了多样性医疗数据处理中的神经元过饱和问题.
图5激活函数数量对比分析
Fig.5Comparativeanalysisofthenumberofactivationfunctions
3) 推荐准确率.为充分验证本文推荐方法的性能,对本文方法与文献[3-6]方法的医疗数据推荐准确率进行对比,结果如表3所示.
表3 医疗数据推荐准确率对比Table 3 Comparison of recommended accuracy of medical data
分析表3可以看出,在100次实验分析过程中,本文方法的医疗数据推荐准确率在80%~89%之间,文献[3]方法在66%~75%之间,文献[4]方法在70%~79%之间,文献[5]方法在62%~67%之间,文献[6]方法在58%~66%之间.可以明显的看出,文献[6]方法的推荐准确率最低,不超过66%,本文方法的推荐准确率显著高于其他4种文献结果,具有一定的优势.因为本文对简单神经网络进行了改进分析,构建了深层神经网络,获取了更多数量的激活函数,由此得到了更准确的医疗数据推荐结果.
4) 推荐精度.对本文算法与文献[3-6]方法的推荐精度进行对比,结果如图6所示.
图6 各方法推荐精度对比
分析图6可以看出,上述几种方法对比中,本文方法的推荐精度始终高于其他文献方法,在10 ms 之后,本文方法的推荐精度逐渐趋于平稳,在80%附近波动;文献[6]方法的推荐精度最低,不超过25%;文献[4]方法最高推荐精度约为50%;在20 ms之后,文献[3]和文献[5]方法的推荐精度趋于稳定在68%左右,但仍旧低于本文方法.由此可以看出,本文将预处理之后的数据输入所提出的深层神经网络后,经过神经网络模型训练,确实能够提高数据推荐的精度,表明本文算法具有良好的性能.
针对大数据下医疗数据的精准推荐需求问题,提出一种面向医疗系统的多样性数据深层神经网络推荐算法.对多样性数据进行了预处理等前期工作,重点对现存的简单神经网络进行改进,构建深层神经网络模型,利用改进模型完成了数据推荐研究,改善了简单神经网络无法满足多样性数据处理的不足.试验结果表明,本文推荐算法的数据清洗与数据协同过滤效果均较好,且改进后的神经网络生成的激活函数数量生成增加,最终取得了准确率较高、精度较高的数据推荐结果.
本文构建了深层神经网络模型,将神经网络划分为4层,在接下来的研究中,会加深对深层神经网络层数的研究,选取出更为合理的神经网络层数,为医疗用户提供更好的服务.