IBM中国研究院谢国彤:做医疗人工智能是一件非常谨慎的事情

2017年5月16日晚,周二,“北大AI公开课”第12讲在北京大学进行,IBM中国研究院认知医疗研究总监、IBM全球研究院医疗信息战略联合领导人谢国彤做了题为《个性化 、循证的智慧医疗》的演讲,并与北大人工智能创新中心主任雷鸣老师就AI技术在医疗领域的应用等问题进行了深入探讨。

IBM中国研究院谢国彤,IBM中国,人工智能,医疗

【谢国彤现场演讲实录】

非常荣幸有机会来跟北大的同学和老师们分享一下IBM在医疗方面如何用人工智能来解决医疗问题,以及我们做过的一些尝试。今天,我想跟大家分享一些我们看到的趋势和具体的案例,我们用什么样的技术解决什么样的问题,希望能够给大家一些启发,我们可以一块讨论怎么样把医疗AI做得更好。

我叫谢国彤,负责IBM中国研究院的医疗研究工作,同时,IBM全球有12家研究院,除了南极洲,每个大洲都有IBM的研究院,我们整个医疗研究团队是全球性的,我也和另外几位同事一起负责制定全球IBM研究院在医学信息学方面研究的重点。

这是第12节课,各位已经听到了很多人工智能的技术,包括人工智能在产业的应用,不管是在金融、交通或者驾驶,包括生命科学各个方面,可能都听过了很多案例。其实这场人工智能运动,IBM可以说是始作俑者。

在2011年,IBM推出了Watson系统,能够与人类进行智能问答竞赛。从2011年到现在,已经过去六年了,我们的体会是把一个通用的人工智能系统应用到行业不是简单的事情,不是说你有一个通用的算法,结合行业的数据一跑,就可以出来一个结果,就可以应用去改变这个行业。这是一个很美好的梦想,但是现实要比这个复杂。所以在过去的六年时间里,我们经过了大量尝试,试图把这样的技术应用在能源、交通、金融、医疗的方方面面,也取得了一些成绩。

IBM做医疗,核心只想解决一个问题,就是怎样利用数据挖掘和人工智能的技术,从海量的医疗数据中挖掘出证据,利用这些证据给患者提供循症的个性化医疗服务。这其实不是一个非常独特的vision,因为数据分析技术从诞生的第一天就跟医疗有关系,现在很多人工智能的基础、概率论的发明其实最早就是用来解决欧洲的疫苗接种问题。

所以,数据分析和医疗从第一天起就是关联在一起的。但是这件事为什么到现在又成为一个热门的话题,成为一种可能?我个人认为有两个主要原因:一是计算机算得快了,算得过来了。二是数据在那,有东西可算。

先看看计算机算得过来了。各位有很多是学IT的,随着不管是像Hadoop、Spark这样的并行计算,还是像GPU、FPGA这样的硬件加速发展,计算机的处理能力有了性能上的飞跃发展。同时,我今天也借这个机会跟大家分享在芯片这个领域计算能力的突破性发展。

就计算机而言,图灵那篇论文证明了计算机是能做出来的,然后冯·诺依曼从工程上提出了冯·诺依曼架构,证明了计算机是怎么做出来的。这个工作基本上是在二战前后,1950年左右。半个多世纪过去了,计算机最核心的计算部件CPU并没有什么本质的变化,跟当年冯·诺依曼和图灵设想的没有太大变化,只不过是我们做的更小了,集成度更高了,所以它的计算能力更强了。但是最近几年,计算能力方面,CPU的计算技术有了突破性发展。

第一个我想介绍的就是类脑芯片。不光是IBM,中科院、其他一些公司都在做这方面的工作。类脑计算芯片的核心想法完全突破了冯·诺依曼通过加法器的那一套框架,而是从神经元的角度做了一个芯片。在这个芯片里,没有我们在通用的CPU中看到的东西,而是一个一个的神经元,神经元之间通过突触连接。这样的架构天生就是一个神经网络,利用这样架构的计算机去完成基于神经网络的算法,比如CNN或者DNN的算法,有天生的优势。

目前,一个芯片上有上百万个神经元,神经元之间的连接叫神经突触,可以达到两亿五千多万个。这样一个非常复杂的芯片功耗非常低,只有70毫瓦。70毫瓦是什么概念?一部智能手机的功耗大概5瓦,它的能耗是你手机的百分之一,是一台笔记本电脑的千分之一。所以设想一下,一个拥有上百万神经元、几亿个神经突触的芯片可以做得如此之小、如此之低功耗,可以运行模式识别或者深度学习的task,然后可以放在各种各样的传感器上。这样的话,大家想到边缘计算,所有的事情都成为了可能。所以,这是计算芯片技术的一个大突破,类脑芯片用人脑的神经元架构去构造芯片。

第二个我想介绍的是另一个计算架构上的突破。现在很多人在讲量子计算,IBM、谷歌、中科院、其他很多科研机构都在进行这方面的探索。IBM在这个领域已经超过30年。在量子计算机里,核心叫量子Qbate,Qbate特别神奇的一点是它可以既表示0,又表示1,就是大家讲的类似“薛定谔的猫”等的一些概念。所以,一个一位的Qbate就可以同时表示0和1,而且是带概率分布的。如果是两位的Qbate,它就可以同时表示00、01、10和11,它可以表示一个二维的个向量,而且同时表示四个状态。所以,大家可以想像,如果是一个64位的Qbate,它可以表示一个64维的向量,同时表示2的64次方的状态,它带来的计算能力的突破是不可想象的。

IBM在今年3月份推出了一个名为IBMQ的量子计算机,听起来很萌萌哒。我当时看到图片的第一感觉是好像看到了四五十年代的传统主机,大得像一间房子。目前这个机器在IBM位于纽约的研究院总部。目前这个计算机只有五个量子位,是一个很小的量子计算机。

但它主要是实现了一个技术上的突破,可以保证五个量子位有稳定的输出。IBM新的计划是推出一个有50个量子位的量子计算机,其实我一开始也不太理解为什么要做50个,后来我查了一些量子计算的文章,说目前49位的量子位从理论上推算可以达到现在所有超级计算机的计算水平。所以,如果能够做到50位,你就可以beat目前所有的超级计算机。所以,这个比类脑芯片会更远,它可以预见的未来是非常可观的,以后所有的算法设计,所有的软件,如果有无限的计算能力来支撑,很多的想法都会完全不一样。

从计算能力跳回到医疗本身,第二个因素就是医疗数据的爆炸。这是医疗界关于什么叫医疗数据的调研,或者说从IBM视角来看,医疗数据分析包括什么。简单地说,它包括三大类数据:临床数据、基因数据和大健康的数据。临床数据简单地说就是医院产生的数据,一个人去医院,会做检验、开药、拍片子,这都是医院产生的数据,有一个测算说临床数据对人健康的影响是10%;基因数据是人与生俱来的数据,有很多研究说它对人类健康的影响有30%。

所以,有很多人在做基于基因的诊断,包括肿瘤的治疗。当年女神安吉丽娜·朱莉做乳腺切除,就是因为她经过基因测序发现有一些遗传上的变异,所以进行了治疗;大健康的数据就是目前在医院和基因之外的所有跟健康相关的数据,包括人的饮食、运动、工作,包括人在社交媒体上发泄的一些情绪。这些因素全部都是大健康的数据。

从医疗数据分析来说,就是要从海量的医疗数据中寻找医学证据,然后利用这些证据,提供更加个性化、基于证据的临床治疗。

从IBM的视角来看,有了计算能力,有了数据,目前可以做三件事情:1、做一个医疗数据云,把医疗数据先存起来。2、做分析,对这些医疗数据进行深度的计算和分析,把它变成模型,变成一些API。3、做解决方案,针对不同类型的医疗领域的客户,做这些客户能够使用的具体的软件和解决方案。

稍微再说细一点,在医疗云里要解决两个问题:一是解决多模态医疗数据的存储问题。医疗数据是多模态数据,有结构化很好的数据,比如化验单、处方;它还有一些半结构化的数据,比如住院小结、入院的首页,这样的病例里有大段的文本;它还有完全无结构化的,比如医疗影像;它还包括基因测序这样的数据,一个人的测序有几万个基因,有各种各样的变异组合;它还包括时间序列的数据,比如在医院的ICU里,一个人插着各种各样的仪器去测量血压、心率、脉搏等各方面的流数据。

这些数据是不同模态的,有些数据适合用关系型的数据去存储,有些数据适合用时间序的数据库去存储。所以,目前没有一种单一的数据模型能够覆盖这种多模态的医疗数据,如何有好的云平台去处理多模态的医疗数据,是要解决的第一个问题。

第二个问题是安全和隐私问题。我们知道存在很多关键信息泄露、信用卡信息泄露。医疗数据是个人非常隐私的数据,保护这些数据是云平台一定要做好的。所以,在欧美一些国家都有针对医疗数据保护的法规,根据这个法规,所有的医疗数据大概有20几项关键的隐私数据,比如姓名、住址、电话、身份证号等,这样的关键信息在进行数据管理时,必须要打马赛克,去隐私化。同时,要对数据进行强加密,即使数据被泄露,也是不可解密的。同时的话,对所有数据的访问,都有一套严格的访问控制,通过这样的方式,来保证数据的安全性。

分析层方面,简单而言做两件事情。第一件事情是对多模态医疗数据的分析,不管是结构化病例数据、影像数据,还是文本数据、时间序列数据,目前不存在一种单一的技术能够对所有的数据进行完美的分析。所以,目前针对不同类型的数据有不同的分析方法,有一些适合用深度学习的方法,有一些适合用时间序列的方法,有一些适合用回归分析的方法或者分类的方法、聚类的方法。用不同的方法来分析不同类型的数据。

第二点,分析与医疗领域相关,医学里有一些特定的问题,不是去分析照片是谁,而是分析数据里疾病风险的因素是什么,怎样做疾病的预测和预防,怎样对患者进行精准分析,可以对患者进行个性化的治疗或者有不同的治疗方案时哪种方案对患者反应比较好,包括影像识别怎样把影像中间的病灶自动发现。这些信息都有非常强的医学知识,医学知识跟分析技术的结合是要解决的核心问题。

从解决方案的角度来看,医疗是一个非常复杂的行业,有医院、医生、药厂、医疗设备制造商、健康管理机构、医疗保险公司,但是它们的诉求不一样,所以你不可能做出一个可以满足所有人需求的解决方案。所以,你必须要利用底层的云平台和分析技术针对不同类型的客户作出不同的解决方案。

在这个解决方案里,我们有针对医院这样的医疗机构的解决方案,包括像肿瘤的个性化治疗、Oncologyand Genomics、医学影像的分析;有针对药企的,比如帮助药企做新药的发现和上市药物的有效性、安全性各个方面的分析;有针对慢性病管理的,帮助健康管理机构对常见的慢性病人群,比如高血压、糖尿病、慢性肾病、多种并发性慢病的患者进行管理的解决方案;也有针对医疗保险机构的,帮助医疗保险机构更合理地按照价值来付费,进行疾病管理。这些都是IBM不同的解决方案。

目前的平台上,IBM通过过去两年的收购,已有超过两亿美国人的医疗保险数据,有超过一亿美国人的电子病例数据,有超过十亿张医学影像的片子,有美国几十个州的慢性病管理数据,这些数据全都在目前的云平台上。把这些数据关联在一起做分析,就会发现非常有价值的,从任何单一数据源都无法发现的一些insight或者evidence,可以用来支持各种各样的应用。

接下来,我给大家介绍一些具体案例。第一个我想介绍的是沃森个性化肿瘤治疗助手。

首先,肿瘤是一个非常恶性的疾病,目前针对很多肿瘤没有什么好的办法,但它同时又是危害非常大的。以中国为例,我们中国每年新发的肿瘤大概超过四百万。以胃癌为例,全世界每年新发的胃癌大概超过40%是中国人。同时,肿瘤的治疗又是一个很困难的事情,一方面在于这个疾病本身比较困难;二是这个疾病里面的治疗方法层出不穷,各种靶向药物、各种新的治疗方法反复出现。

一个肿瘤医生要想当好医生,需要读超过一万篇文献,每个月跟肿瘤相关的新的科研文献超过一万篇,医生读得过来吗?这是不可能的。所以,这个解决方案核心的技术是自然语言理解技术,让机器代替人去读书。这个系统读了两千多万篇文献,从这些文献中做自然语言的理解,去抽取里面的疾病、症状、诊断、治疗,包括患者病情之前的关系,构成一个非常复杂的知识图谱。

基于这样的知识图谱,它能实现的功能其实很简单:面对一个患者,这个系统会自动地从这个患者所有的病例信息里自动抽取上百项关键信息,这些信息会在介入后台的知识图谱进行很复杂的推理过程,最后它会给出推荐多个治疗方案和不同的治疗方案跟患者的契合程度。这样可以帮助肿瘤科医生更好地用最新、最好的治疗方案给患者提供个性化治疗。Watson Genetics从基因维度切入,与前面的解决方案一起解决肿瘤治疗。

肿瘤本质上是一种基因变异导致的恶性疾病,医生就想能不能直接用一些药物打靶,靶向作用到那些变异的基因上来控制肿瘤。所以,这个系统它做的事情也很简单,它拿到一个患者的二代测序结果后,通过分子的profiling,把患者所有的变异基因找到,进行很复杂的治疗通路分析。这个通路分析是通过在几千万份文献中学习各种药物、靶向、基因变异、蛋白质作用过程等方方面面构成的一个很复杂的网络。

它通过在网络上进行推理,给出相应的靶向药物治疗的推荐。前一阶段有一个新闻报道,日本东京大学有一个患者得了非常罕见的白血病,医生没有见过,没有办法确诊,甚至做出了误诊。借助这个系统,医生很快找到了患者可能得的白血病是什么,同时推荐了一些靶向药物,挽救了患者的生命。

Watson系统先读了很多书,包括三百本期刊、二百多本教科书、几千万文献。这就是一个实际系统使用的界面,来了一个患者系统会推荐,每一行是一个治疗方案。绿色、红色、紫色,绿色的是最好的,包括放疗、化疗、手术治疗、药物治疗等各种不同的治疗。同时,每一种治疗方案,系统会提供更多的信息,比如这个治疗方案的愈后、存活率、毒性等情况。

所有这些信息不需要医生提前手工录入,而是由系统自动地从几千万份文献中利用自然语言理解技术,把这些关系的信息抽取出来,构造成一个智库。然后,这些信息在给患者治疗时,会推送到医生面前。其实在很多医院,面对肿瘤治疗等疑难杂症,都会请很多专家,每个专家给出自己治疗的意见,包括这个方案的优缺点。

这个系统就相当于是一个读了所有最新文献的专家,把不同的治疗方案,包括它的副作用,包括不同治疗方案、药物之间的相互作用,可以生成一本三四十页的报告提交给医生,帮助医生作出最好的判断。它不是代替医生,而是帮助医生作出一个针对患者最有利的治疗方案。

第二个想介绍的案例是现在在医学AI里非常火的医学影像分析。影像极大的推动了医疗的发展。最早期,医生看病主要靠一个听诊器,后来出现了X光,然后出现了核磁、超声等各种各样的诊断设备。这些影像设备可以帮助医生更好地看到患者体内的信息,甚至包括病理,通过组织切片,用高倍显微镜看到细胞层次的变化,利用这样的信息可以作出更加准确的判断。

影像对医学的作用确实太大了,所以在2003年,发明核磁共振的两个物理学家和化学家竟然得了诺贝尔医学奖。核磁共振极大的颠覆了医疗的诊断和治疗。

从影像角度来看,影像也是多模态数据。有比较常见的二维影像,比如眼底影像、皮肤癌影像,或者消化道的影像;还有三维影像,通过CT或者核磁用切片扫描的方式,一次对人体进行上百次的扫描,生成完整的三维影像,这样也能很好地用来做各种诊断和治疗;还有一类是病理影像,主要做很多肿瘤的治疗,它是要从患者的疑似肿瘤部位取一个组织进行切片,放在高倍显微镜下,是几万乘几万像素的高分辨率影像。

往往一张病理影像的片子就有3到4G的大小,这样的影像可以又快又好地提高医疗水平,但它的分析同样是一个很困难的问题。你如果想约做一个核磁或者做一个CT,在协和医院你可能需要约一周,甚至一个月的时间。机器可以不休息,但是人要休息,人看不过来,这就是现在影像分析面临的一个很大的问题,三甲医院的医生有大量的片子看不过来。

同时,CT、核磁等,一个患者就是几百张,更可怕的是消化道影像,有很多现在已经有胶囊机器等新的医疗设备,吞到肚子里面,一次拍一个视频出来。做一次检查,可以生成的影像的帧数大概在三万到五万张,有病变的部位不超过30张,从3万张中找出30张相当于大海捞针,需要医生花大量的时间过滤无效的片子。所以,如何利用识别技术自动地发现病灶,提高医生看片的效率,是影像技术进步最迫切的需求。

机器看片原理很简单,就是先模拟医生看一些视觉上的特征,用一些比较经典的影像分析或者模拟识别的方法,通过观察病变部位的位置、大小、颜色、边缘形状等视觉特征,判断这个到底是不是一个恶性的肺结节或者是不是某一种皮肤癌。另外,计算机可以在像素层级上看像素的灰度变化,利用卷积网络在像素层级上进行计算。所以,它可以比人看得更细致。你可以通过构建一个多层的神经网络,很好地从这些像素中间提取隐含的特征信息,利用这样的信息来做判断。

再往前走,影像科医生无法在进一步识别,从计算机的角度来说,它可以看多模态的数据,而不仅是影像数据,还可以看病例信息和基因测序结果。多模态的信息融合在一起,可以达到更好的效果。我们做过很多实验,用影像分析叠加一些其它模态的数据,比如病例数据,从病例数据里面获知患者的黏性、病史、治疗史,提取关键信息,最后作为病变识别的依据,用这样的数据融合,诊疗精度可以提高10%以上。

介绍两个例子,一个是黑色素瘤分析。一部分是黑色素瘤,一部分不是,系统给出了一万张影像,这一万张影像有标记。但这个标记的影像,交给机器,利用深度学习的技术去学习,之后构建模型,再从测试级里提取三千张让三个医生共同判断,判断结果人达到的精度,约84%,计算机可达97%。其实在很多模态的影像上都有类似报道,精度都可以达到90%到95%。

每一次检测生成的数据特别多,有3万到5万张,同时里面有很多不均衡的数据,若想能够自动将这些出血点检测出来,就需要迁移学习技术,很多数据的预处理技术,包括data augmentation或者data resampling,然后构建出来深度学习的网络,达到更好的识别精度。

这是我介绍的两个影像相关的例子。我给大家看一个小视频,是针对皮肤癌的一个模型。我们可以看一个小演示。这个演示不需要什么器材,只需一个高清摄像头就可以看到怎么工作。它的原理就是用任何有摄像头的移动设备,把一个色斑拍下来。我一个同事用自己的手实验。这就是他拍完的影像,把它上传到后台的云服务器上,里面有一个训练好的模型。这个模型主要就是做分类工作。数据上传后,经过后台计算,就会给出一个结果。同时,系统会自动把已知跟它类似的确诊影像也反馈回来,帮助医生及者患者做更好的判断。从这个角度,它选了一个已知的黑色素瘤确诊的影像。

除了影像技术分析及文本分析,我想给大家介绍的第三个案例叫“真实世界证据分析”。这个词有点拗口,真实世界证据它对应的词叫做RCT(双盲随即对照临床实验)。RCT是目前工人的一个“金标准”,判断药物或治疗是否有效,必须要做RCT实验来证明药效或治疗方法的效果。这样的一个实验平均要花十年以上的时间,资金支出会达到十五亿美元。而且成功率不超过10%,大量RCT做到一半就放弃了。

RCT非常耗时、耗力、耗钱。真实世界正应就是跟它做对应的,RCT实验一般它会组织几百个人分组进行实验积累数据,每天生成大量医疗数据,以中国为例,一年就诊的人次接近70亿,相当于是全国人民每年平均就诊5次。这70亿次就诊产生了大量临床数据,但这些数据都散落在各家医院,并没有很好的用于数据分析。这些信息是可以被用来做真实世界证据挖掘的,利用真实世界的信息挖掘出来的数据,不管是用于疾病治疗,还是用于疾病预防都是非常有价值的。

真实世界数据的作用就是输入、输出,把真实世界的数据,如:病例、医保以及疾病等级数据输入进来,输出各种模型,例如:中风病人再中风的预测模型,心梗病人的死亡风险预测模型,某种药物的疗效模型,这样的模型通过一个pipeline得到的。我们发现两点有趣的事情,第一,可以有一个通用的pipeline去解决真实世界数据分析的问题,因为这个过程重复性很强,包括前期导入数据、数据整理、患者群构建、特征抽取、建模、模型的验证等等。

第二,这个分析我们做过各种各样不同的病种,有心血管病、糖尿病、肿瘤等。不同的疾病所需要的分析很多是通用的,比如疾病风险预测分析、患者相似性分群分析、治疗有效性分析或是一些患者依从性分析。这样的分析都可以变成一些可以用的模块,作为一些插件,在这个平台上来做模型的生成。其实简单地说就是一个咖啡机,你把数据放进来就会生成咖啡,但是里面有很多参数,你是要调整的,你是要喝美式、拿铁还是摩卡,你要进行调整。包括这里面有很多参数要调整的,但过程是相通的。

给大家举两个例子,这里就涉及到一些医学知识。第一是我们做的疾病风险预测的例子,这个例子想干什么,这个数据库里面有45000个心梗的病人,每个病人有超过八百个变量去描述这个病人包括他的基本信息、治疗信息、临床信息各种各样的信息。那这个医生想知道哪些因素会导致这个患者出现院内死亡,患者院内死亡可能性是多少,这个就是疾病风险预测的典型例子。这个风险模型以前是有的,TIMI模型是医学界公认的目前已知最好的心梗病风险预测模型,它的性能AUC大概是0.76,利用我们的方法,我们把AUC做到0.87。同时,我们发现了24个新风险因素,有很多风险因素是非医疗性质的,比如社会性因素或就诊医院因素。比如,和配偶生活是一个非常好的保护性因素,就是家庭幸福的人治愈可能性更高。

医生常常也做这类分析,他们一般会有自己的假设,从800个量里面挑出15个20个,然后从4400万个人里面挑出一千个人,用经典统计方法去做单变量多变量的回归,去看是不是有显著性,这是目前医学统计常用的方法。但是用这种人工智能方法去做时,我们就会用很多新的一些方法,比如做新的特征抽取。举个例子,我们会用共生的模式挖掘,去看这个患者既有高血压又有糖尿病共病,会不会是一个更加有意义的风险因素。这些因素以前医生不会考虑,是我们通过一些挖掘的方法得到的。包括一些共症共治,比如病人同时服用A药B药进行治疗,可能是一种很好的保护性因素,以前不会考虑A加B,或者A加B加C这样的问题。还有包括一些生理指标,比如血压。

医生首先有自己的家属,从800个量里面挑出15到20个,人群他不见得用4万个人,里面挑出一千个人做单变量多变量的回归去看统计是不是有显著性,这是目前医生使用统计常用的方法。

用人工智能方法来做的时候,比如说新的特征的抽取,举个例子我们会用一些共生的模式挖掘去看,这个患者可能既有高血压又有糖尿病,这样的一种共病可能是一个更加有意义的风险因素,这些因素以前医生不会考虑,这是我们通过一些挖掘的方法得到的,包括一些共治,比如说这个病人同时用了A药和B药进行治疗,以前医生可能用A或者B,并不会考虑A+B,还有像包括一些生理指标也是这样,比如说血压当前值是多少,如果这个病人血压高压是150,他是从90连续涨上来的还是一直持续到150,还是从180掉下来,医生不管,医生只通过一个时间来做判断,其实数据时间序列的信息没有很好的利用起来,这些都是用人工智能的方法,不管用RN建模或者其他分析的方法,可以很好的捕捉到数据之间时间序列的信息,利用这样的信息可以做更好的预测。

我们最后发现我们把所有的因素,我们不光发现哪一些因素有影响,同时每个因素的权重包括它的分类都列出来了,医生就会说这个病人因为病情太严重导致死亡的,还是治疗不给力导致死亡的,同时每个病人都会按照风险排一个序,横坐标是一个病人的患者号,所以高风险、中风险和低风险所有病人一目了然,这样可以帮助医生更好对病人进行管理。

第二,我介绍一个叫“患者精准分群”的分析。这个也是精准医疗里面非常重要的,什么叫精准?有两个极端,一个极端观点认为每个人都是不一样的,因为每个人的基因都不一样,每个人基因变异也不一样。“个体化治疗”要个性化到每一个“个体”,这是很好的理想,但是现在做不到。另一种观点就是人群治疗,基于一个人群的定义,比如说二型糖尿病,这就是一个定义。医生只考虑“二型糖尿病应该怎么治?”的问题。目前很多精准医疗就是希望在这两个极端之间找到中间状态,以中国为例,心血管病患者2.6个亿,糖尿病患者一亿。

这一亿人肯定是不一样的,但肯定不是一亿种情况,怎样在中间找到一个更好的合理分群并进行个性化治疗。这里我们做了一个针对房颤病人的案例,房颤就是心房颤动,它是一种叫心脏慢性指征,本身无害的,但患有这样的疾病,会导致很多恶性心血管事件,包括心梗(心肌梗塞)、脑梗(中风)。我们拿到了大概两万人的数据,每个病人有超过1600个特征进行描述,医生要做的事就是要判断这个病人是高危,还是低危。如果高危,怎么治疗,是不是要对患者进行中风预防。如果这个治疗就这么简单也就罢了,但是很多治疗都是有危害性的,用药过量会适得其反。

所以,医生每天都会面临“生死抉择”。这是个问题对医生来说,按照经验,他们知道有些病人不该吃的我给他吃了,但是很不幸,我用以前的模型还不够精准,他发现不出来那些不该吃的病人。所以,我给分了五群。这里就看出来这五群患者将来中风的发病率有显著的不同。

可以发现,有一群人其实属于过度治疗,这群人被传统方法认为是高危,其实并不高危,只不过他以前的模型没有办法捕捉到这个细微的区别。

同时,又发现这群人适用某种药物,针对此类人群,吃这个药物中风发病率是9%,否则发病率就近18%。所以,这一群人对于某种治疗方案反应特别好,而这个治疗方案在所有人群众其实没有显著差异。所以,这就是一个精准的分群方法,能帮助从病例数据中挖掘出更精准的患者分群,然后去帮助医生做个性化治疗。其实分群也不是新方法,但传统上分群是无监督的,很多结果在临床上没有意义。我们一些核心方法,利用结局驱动的方法,我们可以把患者按照中风的发病率区分开来。这个方法,

第一,会判断哪些因素对患者聚类是特别重要的。同时,每个因素的权重是多少。利用这样一个方法,就可以把患者分得特别开,同时,可以去看每个不同人群对不同治疗方案的反应。同时,我们来看一下这个系统是怎么样去工作的。一开始能看到各种各样的数据。这个数据集,可以看到不同的列,大概有一千多列的数据。如果选中了这个数据,到下一步它就会出现各种分析方法,每一块是一个分析方法,有疾病预测分析的,有患者分析的,还可以看分群的过程,一个宏观的分析流程是什么。

如果你选中了这样一个分析模块,你就选中了数据集,选中了分析方法,有一些参数可以调整,比如说想分几个群,用什么方法分群,关注点是住院、死亡还是中风等。分析任务生成后,送到后台运行后就可以看运行结果了。这是第一步,你会看到所有数据项,包括数据分布,这都是在做分析之前做的数据探索,去了解数据的样子,关键结局有没有,人群是什么样的。然后,就可以看到分析结果,这个分析结果包括这里边每个点表示一个人,不同的颜色表示他被分到不同的群,这是那五群人。

然后,包括这五群人在不同的观念信息上的一些分布,比如患者之前是否得过中风,有没有糖尿病及治疗有效性等。所有的这些信息都会呈现出来,帮助数据科学家很好地理解。这个过程看起来很简单,其实整个做这样一个分群,是经过大概70个步骤,每个步骤完成了从数据的治理、人群的构建、特征的提取方方面面的过程。通过这样的一个过程,最后得出来一个患者精准分群的模型。它也从此形成了一个模板,有类似新数据要做分析,用这个模板就可以得到分析结果。这里很快的给大家分享一下针对结构化变量的定义,做这种真实世界证据挖掘的工作。

第四个我想介绍的叫“认知决策”。其实这个决策知识也不是新话题,从人工智能诞生的第一天起就有了,专家系统其实无非就是想去怎么样把专家的知识变成一些计算机可以去执行的规则。上世纪50年代,斯坦福就做了一个针对医学专家系统,当时他们做了几百套规则,针对血液病的治疗,可以给血液病患者进行诊断和治疗。这就是前面的第一步,如果各位有了解过医疗,里面有很多像医疗指南、临床路径,这都是医生总结出来的规律和知识。

但只从书本当中学到的知识是有缺陷的,往往学习到的知识比较抽象,实际使用时会有各种各样的问题。以尿病治疗为例,你可以看到当这个指南告诉你这个病人血糖控制的不好,而且目前使用了双胍类的药物,还控制不住,他应该用双胍类和磺脲类联合治疗。指南只能告诉你这些,怎么联合?选择哪种双胍类药物?选择哪种磺脲药物?

医生需要的是一个可操作的action信息,指南很难提供。我们开始尝试另外一条路径,就是用数据驱动的,用机器学习的方法,不管用哪种模型,都可以去做这种基于数据的推荐。简单地说,类似的病人都是怎么治的?治完之后效果如何?以此为基础,就可以得到治疗方案。这样的结果,好处是所有知识都是从数据中学习出来,所有推荐是接地气的。但缺点在于,数据往往都是有局限性的,知识是从这个数据上学出来的。

第二点,很多计算机的模型是“黑盒子”。对医生来说不可解释,不能得出像水晶球一样的模型,模型可以告诉我们质量方案,但不告诉我为什么。在这个过程中就发生了一个真实的例子,分析几万糖尿病患者超过五年的数据,我们发现最好的办法就是上胰岛素,这个效果最好,降糖最快。医生说,你这不是开玩笑吗?没有尝试,我们这个治疗一二三四线,胰岛素是最后的,我一线、二线、三线药物控制不住的时候才会这样。

这里有一个生物逻辑在前,生理生物学的逻辑在背后的问题。计算机分析的结果,效果最好、最明显的就是胰岛素治疗。后来我们发现这个过程特别像一个医生的成长过程,一开始是读书,能把理论框架和非黑即白的知识都把它挖掘出来。

但是,真实世界很复杂,医疗不是非黑即白的,面对一个患者的时候,往往有多种选择,每一种选择它都有优缺点,并不存在一个单一的“最好选择”。每一种选择应用到患者身上,效果也不确定,这个患者有效,那个患者无效。所以,好医生毕业后,通过大量病例学习,临床实践,在自己的脑子里边构建了一个概率模型。他知道这个情况可以有这几种选择,哪种选择有效的可能性大,这恰恰是计算机非常擅长的。

所以,我们最后做出来的这样一个概率模型,方法就是用这种指南和临床知识作为骨架,从数据中学习各种从疾病的筛查、诊断、治疗、愈后相关的这些概率模型,把它作为血肉添加到这个骨架上,它就变成一个非常完整的临床决策知识库。

再给大家介绍一个例子,这是一项技术,这个技术它到底能怎么用?我们一开始把它用到了慢性病管理领域。因为中国现在慢性病患者超过三亿,包括2.6亿高血压、一亿糖尿病,一亿呼吸系统疾病,还有很多慢性肿瘤患者。这些患者靠的是约一百万的社区医生来进行管理,现状是“管不过来”。这些医生一年接受两天的上课培训,帮助他们去了解最新的治疗的方案。他们一个人至少管理20种疾病,这对他们来说是一个巨大的挑战。

我们从计算机角度能帮他做什么?我们选择了两个场景,一个场景是做这种疾病的预防,我们去帮助医生们把那些有并发症风险的高危患者尽可能地挑出来。以糖尿病为例,一个糖尿病患者可以出现超过30种并发症,如何及早发现那些还没得中风、没得心梗、没肾衰竭的糖尿病患者,并让医生去进行一些预防。这样既能降低病人痛苦,也能降低医疗成本。

第二块就是治疗。一个是防,一个是治,在治这个角度,我们怎么样利用临床指南的知识和我们从几十万、上百万的糖尿病患者治疗的既往的数据中间挖掘出来的这些证据,真实世界的证据结合在一起,针对当前患者最好的治疗方案。给大家看一个小的视频,这是我们实际使用情况,可以看到目前这个系统跟医生用的电子病例做整合。目前有6000位患者已在使用这样的系统进行治疗,每个月系统生成的推荐接近两千,而且还在持续增长。

其实医生接触的新事物挺有意思的,社区的医生一开始不愿意接触新事物,看到其中的价值之后,他们就达到了一个很高的使用的水平。我给大家也很快的看一个演示,可以看这个系统是怎么工作的。这是在模拟社区医生的工作的平台,医生进行随访,这个系统会自动地把患者风险按高、中、低排出来。同时,会告诉医生为什么这个病人有风险,风险模型是什么,这个患者有哪些数据导致他有这样的风险,帮助医生把这些风险因素找到,同时会做一个治疗的推荐,这个病人是该降糖、降压还是降脂,不同的治疗方案,应该用什么样的药物,包括剂量、频率,所有的这些信息都是从数据里挖掘出来的。

类似的病人,他都用了一些什么样的治疗方案,效果怎么样,把这样的信息推送给医生。这里面就是所有的证据,比如针对某种治疗,系统发现说这是指南里面的证据,包括26%的病人,接近2300多个病人用了这个治疗方案。每种治疗方案的方法及效果是什么样的,这些信息,我们从数据中间挖掘出来,和指南知识结合在一起,推送给医生,帮助他去做一个更好的慢性病的管理。

医疗自然语言处理可能是我今天要分享的最后一个例子了。这个里面,它核心的技术是什么或者它解决的问题是什么呢?它要解决的问题就是疾病管理,我刚才也提到了,在中国慢性病患者有三亿人,而高血压的发病率大概是20%。所以,一个拥有五百万人口的城市就有一百万的高血压患者,按照规定这些患者都要被随访管理,会有人问他最近你血压高了没有,降压药有没有按时吃,血糖是不是也有变化,并把这些信息收集起来,然后基于这些信息来进行一个风险的评估和及时的干预。

如果发现他血压特别高,可能医生就会督促他进行一些血压的管理,发现他血糖也升高了,那可能也得降点血糖。这些是靠什么来完成的?在一个有五百万人口的城市有一百万的患者要去进行这样的随访,怎么可能随访得过来?医生是不可能做到的,所以现在就招很多护士,包括一些提供健康管理方面的机构来培训这些护士。但是这依然是对人工需求量很大的一个工作。所以,在这里我想说的是,我们可以利用两项关键技术来解决这个问题。

第一个技术是对话技术。我们不是做一个通用聊天机器人,而是做一个像是虚拟护士一样的机器人。这个“虚拟护士”能够执行“护士”的随访的过程,对高血压、高血脂、高血糖病人,进行自动随访,并采集相应的信息,如果系统发现这个病人有情况的话,能够生成预警。

第二个技术是QA技术,也就是问答技术。在中国有很多类似于春雨、好大夫这样的医患沟通网站。在这些网站上面有大量的患者在问问题,其实很多问题都与饮食、运动、作息、药物的副作用、药物之间不良反应有关,但这些并不是核心诊断和治疗的关键所在,那么,这些问题就可以靠人工来回答。同时,我们也能用QA的技术来做患者教育,帮助患者最及时地找到可信赖的信息。这块我给大家看一个演示,就是这个系统是怎么工作的?它的核心技术是怎样的?这个核心技术我挑了一个应答技术这块。

它里面想解决的核心问题很简单,是说你的知识库里面的知识或者问题往往都是写得比较规整的,都是医生或者是护士整理出来的,很好的。但是,患者问的问题是五花八门的,比如病名字写错的、药名字写错的。你想大爷大妈能用什么样的词?各种俚语、口语都会有。你怎么样去做这个QA这个核心技术?这是里面一个非常核心的技术,所以在这里面我们不同层级都用了深度学习的技术,包括用CNN做问题分类,做问题的相似性匹配。最后可以达到一个比较好的Top1的效果。

我给大家看一个我们在微信上做得小视频,一个工具,这个工具,这是患者,这是机器人。他就在问,你最近长胖了吗?最近测血糖了吗?基本信息问完之后,它会给一个报告,一个建议说你该怎么样做。这个时候,患者就会有问题,我能吃什么东西吗?或者是说我吃这个药有什么问题吗,这时候系统就会用QA的技术来自动回答问题。

它不是那种通用聊天,而是模拟一个护士在跟患者沟通。包括他会跟患者说,你最近吃什么药了吗?而这个用药的列表也是患者个性化的,因为不同的患者吃的药不一样。患者会回答说吃了或者没吃,或者为什么。经过这样一个过程之后,系统在后台会自动地生成随访报告。这个随访报告里面包括当次回访采集到的体重、血压、血糖等信息,也包括这个患者用药的依从性、患者问的问题,通过这个报告,疾病管理师能更好地对患者进行疾病管理。同时,这个系统也具有决策功能。当它发现有风险的时候,会及时地通知患者和医生,让他去医院就诊或者是对患者进行及时的干预,避免酿成大祸。

时间关系,我今天的这个分享大概就这么多了。我想最后再讲一点,做医疗人工智能是一件非常谨慎的事情。因为医疗是一个人命关天的事情,不是说你拿一个模型、算法,给它一堆数据,一跑,就能出来一个治疗或者诊断的模型。做医疗的时候,一定要把医学的知识和靠谱的分析手段结合在一起,很谨慎地选择数据,选择人群,选择你要分析的任务。此外,还要心存敬畏,这样的话才有可能做出来靠谱、能用的医疗AI。我今天的分享就是这样,谢谢大家!

 

相关领域
商业