雷锋网按:本文整理自康夫子创始人张超在雷锋网硬创公开课上的演讲,主题为“智能诊断与医疗大脑”。
张超:康夫子创始人,前百度自然语言处理部资深研发工程师、文本知识挖掘方向负责人;知识图谱、实体建模方面专家;毕业于电子科技大学计算数学专业、新加坡国大多媒体搜索实验室研究助理。
以下为公开课内容:
雷锋网:简单介绍一下康夫子所做的事。
张超:让计算机去阅读医疗文献,构建知识库,赋予这些知识库一些推理能力,最后达到辅助医生、患者的目的。
在产品维度,分为面向患者和医生;医生端分为全科与专科医生。它们的底层是相似的,都是知识图谱加推理,不过上层应用有差别。患者偏重逻辑问答,包括患者语言的理解;全科医生要求知识面,而专科则要求临床路径监控,包括医嘱的下达。
现在我们的产品主要用在医疗机构这样的B端,主要提供医学辅助,不做诊断,结论由医生把关,供患者参考。
雷锋网:医疗大脑包括什么,可以具体解释下吗?
张超:医疗大脑是个比较笼统的称呼,简单来说是一种知识库,加上基于此的逻辑推理和计算。它可以泛指医疗从业人员的智慧总和。具体点说,它具备诊断、治疗的能力,可以独立提供用药辅助、分诊导诊、健康咨询等服务,也可以高质量的辅助医疗从业人员完成某项工作。
对我们的医疗大脑来讲,患者医疗健康行为需要的能力、所有医生行医过程中的知识辅助能力我们都会着力去构建打造。
雷锋网:相比百度的医疗大脑和IBM Watson,康夫子的特别和区别是什么?
IBM Watson目前重点在肿瘤领域针对医生提供辅助决策功能。区别是,我们:
1. 现阶段重点是针对常见的3000种病进行建模;
2. 在服务对象方面,除了辅助医生,患者辅助教育也是我们重要的服务对象;
3. 在医生层面,我们的医疗大脑又分为基层全科医生和大医院专科医生。
我们和Watson的场景和方法不太一样,它大的框架是问答、搜索的框架,同时融入了多种Feature( 如 知识图谱)。我们整个医疗决策系统是基于知识图谱做推理。技术上讲,对肿瘤这样的疑难杂症,Watson诊断用的维度非常高,但常见病的维度没那么高。这两个方面带来的挑战不一样,我们是从常见病入手,把服务的范围也会扩大。
我们的医疗大脑和百度医疗大脑在某些方面有着相同之处,都致力于辅助网民提供医疗信息服务。差别是:
1. 在数据维度,百度医疗大脑数据来自百度医生APP上医患之间交流数据;我们的医疗大脑定位在医疗级产品,知识图谱构建数据来自权威的医疗文献和电子病历数据。
2. 在做事的路径上,也存在着很多不同,我们作为一家初创型公司,会选择更适合其发展的路径。
雷锋网:目前国内做智能诊断的现状是怎么样的?
从时间上分,有传统派和新兴派。传统派是指类似决策树专家系统,知识库依靠专家构建,诊断逻辑也基于专家书写的roadmap等等。新兴派是指利用AI技术,利用计算机从海量文献数据中构建知识图谱,并根据历史经验自动学习诊断逻辑。
从类型上分,有基于文本从症状、化验入手做智能诊断的,也有基于图像从CT图片入手做智能诊断的。
传统派的诊断系统,受限于知识库的规模和复杂的医学逻辑表示,疾病的覆盖率和诊断的准确率都不够高。新兴派在这块整体上要好于传统派,但由于研发时间短,目前仍无法达到可用状态。
整体上智能诊断还处于初期,目前没有可以实现大规模商用。
雷锋网:智能诊断最重要的技术挑战又是哪些?非技术上的挑战呢?
技术上,我们现阶段认为智能诊断的底层核心是知识图谱,诊断的过程是基于知识图谱实现的推理过程。知识图谱的规模从根本上决定了智能诊断的瓶颈。另外就是应用上的挑战,智能诊断不管服务谁,在应用场景上有很大的差别,要有针对性地提升效果。
在非技术上,重点要让老百姓及医疗机构认可或理解这套诊断逻辑。
雷锋网:做好智能诊断的标准主要是哪些?应该包括哪些主要内容?
笼统地说,好的标准要靠效果说话,也就是说:
诊断的准确率要高;
整体过程可解释、可干预,可以让医生等专业人士随时干预;
可以输入多种类型数据(除了症状,还有用药史、化验检查、诱因、遗传史、个人史等等);
另外不同服务对象的诊断系统标准也是不一样的,比如,如果智能诊断是用来服务医生,除了核心诊断能力,还需能结合医生所在医院科室的医疗习惯。
如果智能诊断用来服务患者:
1. 需要做患者语言理解,因为患者描述的语言和医学语言有着较大的差异;
2. 要像医生那样思考,同患者交互,获取对诊断有益的数据。
雷锋网:对你们来说,做智能诊断,数据来源和获取方式有哪些?
对康夫子来讲,数据主要来自如下三大方面:
权威的医学文献,如:医学数据、诊疗指南、以及相关论文;
病历数据;
互联网获取科普资讯、医患问答数据等。
前两部分数据用来构建知识图谱,训练诊断逻辑。互联网数据主要用来做患者语言理解,患者可能会有一些不标准的描述,比如“感觉身体被掏空”,这些词在医学上没有对应的匹配,需要计算去理解。
雷锋网:有的医学文献,经验证是与事实存在偏倚的,有的甚至是错误的,这个问题怎么看?
错误是肯定有的,但我们在整个过程中要想办法降低并消除这种错误。大概有如下思路:
1. 相信更新知识,相信更权威的知识;
2. 因为知识是通过知识图谱表现出来的,所以,可以针对知识图谱进行一些推理计算,及早发现某些矛盾,进而安排人工审核校对;
3. 在整个计算过程中,也可以加入大量的容错机制。相信知识的统计分布,假设学习样本中,错误的知识毕竟是少数,通过一些排序策略进而降低错误知识展现的机会。
雷锋网:数据训练上,是否与影像诊断一样,存在优质数据获取和数据标注上的障碍?
医学AI相对于其它领域来讲有着天然的数据优势。大量的病例数据/影像数据就是很好的训练数据。
这里面的难点在于数据的获取、预处理、结构化和建模。另外,目前能看到的病历数据很复杂,多数做AI诊断的,很少有团队用门诊病历,多数用的都是住院病历,而住院病历是很复杂的,如果服务于C端用户,这类数据就不太合适了。
个人认为,智能医生或者影像解读,现阶段都有着充足的数据供训练。比如,在病例或者文献上,医生在无结构化文本种已经变相做了标注,如:“大叶性肺炎通常表现为咳铁锈色痰”,一个医学影像也有专家解读成文本信息供使用。数据维度难在从这些大量的数据中提取出优质数据。
雷锋网:如果说医学上只要有充分的多维度知识,就能在辅助决策上做一些事,那之前智能诊断不算流行的原因是哪些?是否是有哪些技术上的进步?
我认为主要在于2个层面:
内因上,效果离辅助人还差强人意,专家系统很少能实际应用起来;
外因上,当前的大环境让AI聚焦了很多目光,进而加速相关产品的研发。
在技术上,悲观来看近几年没有多少进步。只是前些年,人工智能和自然语言处理多在大公司和研究院使用,而现在有很多优秀人才流入到创业公司。
雷锋网:目前较为火热的深度学习,用处不算太大?
深度学习目前在NLP领域取得的成绩,比不上在多媒体领域取得的成绩。康夫子目前主要基于深度学习做一些患者语言理解方面的工作,不排除未来会拓展到更多的场景中去。
至于将深度学习用于Clinical Decision Support这样的专业领域,我觉得现阶段不太合适。首先深度学习是个黑盒,让人感觉不可信,这是心理上的问题。在应用方法上也有很大难度,比如训练数据并非完全准确,包括格式都有误差。我认为短期内这是一个不断研究的方向,但不能立马产生效果。
雷锋网:对于医疗信息知识图谱,可以具体解释下吗,具体指什么以及作用如何?
通俗地讲,知识图谱就是结构化知识,它由实体及实体关系组成。
比如在医疗领域,实体维度包括疾病、症状、检查、检验、体征、药品等等医学名词,甚至医生、科室、医院也可以纳入范畴。关系是指实体间的关系,比如,针对疾病和症状,关系可有“包含关系”,“不包含关系”,甚至“金标准关系”(比如,所有炎症都会带来发热,这就是金标准)。疾病和医生可以定义“医生擅长治疗疾病”,医生和医院可以定义“归属于关系”等等。这些都是知识图谱的构成。
我们在应用时,需要基于这些关系做推理,进而满足上层应用,同时上层应用的需求也会指导知识图谱的建设方向。比如,我们想帮助患者推荐医生,那么推理路径大概分为:根据“症状与疾病”的关系推测患者可能疾病,根据疾病和医生的关系,为患者推荐医生。
雷锋网:公司构建的知识图谱与医生的知识结构之间差异大吗?
首先知识图谱的知识结构是专业人(医生)定义出来的。医生觉得,在诊疗过程中,我需要用到什么知识,那么就让计算机去学习并构造这些知识。
医生的知识结构可以举一反三、演绎归纳,但现有的知识图谱只能机械的做一些事,并且在短时间内该部分技术很难取得较大突破。那么在这种场景下,知识图谱的积累和构建速度就显得尤为重要,同时真实的应用场景不断给知识图谱提需求,那么二者之间的差异也会逐渐缩小。机器是按照人制定的逻辑工作,而人是有联想能力的。
雷锋网:知识图谱构建上有哪些经验可以分享?
我从2010年加入百度,大部分精力在从事信息抽取类工作,从中也积累了大量的实战经验。在信息抽取(知识图谱建设)上,我们的着眼点依次是:
快,因为医疗知识图谱有上千种关系,处理速度要快;
准确率高;
覆盖率高,比如要有足够多的疾病与症状的知识,才能分辨出疾病;
可控;
通用性强。
在这样的标准下,我们比较推荐简单粗暴可控的框架,即基于模板的抽取。这类方法简洁可控,容易冷启动,准确率可控,通用性也不错。不足是:模板产生困难、覆盖率不高,而且容易产生语义漂移,需要做边界控制,最后是计算复杂度高。这是目前这种计算框架的优劣。
在构建中,我们首先攻克计算性能问题,即在做pattern learning时,如何做快速计算、筛选,给每个pattern打分,这是计算性能问题。
然后我们通过pattern协作,搞定便捷控制和语义漂移。最后是把大量的精力放在pattern learning上,同时加大数据量提升覆盖率,并引入bootstrapping机制提升召回。这是我们认为当前比较好的解决方案。
目前也有一些基于pattern做的解决方案,但往往偏人工,不成体系,通用性也较差。
另外,我们主要做从无结构化文本抽取,一些类似HTML的半结构化数据比较容易,但是有深度的知识覆盖面很少。这块有不少工作,有兴趣的话,也可以经常关注一些IE方面的论文,有很多新奇的想法。
雷锋网:康夫子可以做到知识规律的自动发现,这个是如何做到的?
这里的知识规律发现其实就是上文说的pattern learning。人们是按照一定书写方式来描述知识的,数据量越大越能体现出书写的语法及结构。康夫子的一个核心技术即针对要抽取的知识从海量文本中学习这种知识的描述方式。
上图是计算机阅读海量文献,针对某种知识总结出上万条书写规律然后进行抽取。如针对“疾病<—>症状”的关系,文献中描述方式为:“(X疾病)的症状有(Y症状)”,“(X疾病)临床表现为(Y症状)”,“(X疾病)容易引起(Y症状)等不适症状”等等。
在技术维度,较多层面是我们原创的技术,我们定义一个好的规律,既要体现出不同文本之间的区分性,又要能够尽可能的匹配到相似文本,另外还要追求量和简洁性。在这个目标约束下,剩下的就是求解优化的问题了。
雷锋网(公众号:雷锋网):智能诊断中的逻辑推荐可以具体解释下吗?具体的挑战是什么?
这个是智能诊断和医生诊断最为根本差异的地方。
我们认为,当输入数据一样时,机器是可以完全比人做的好。比如,给定相同的若干组症状、若干辅助检查数据,机器诊断是可以轻松超过人的,因为这时候诊断的过程本质上是个搜索的问题,人脑的计算量和记忆程度在特定任务下是比不过机器的。
但是,医生的优势在于,不可思议的联想能力,可以帮助他更好地获取对诊断有用的数据。还是针对上面症状+检查数据,当医生诊断不确信时,他可以从病理或者历史经验去联想新的数据特征,进而辅助诊断。而对于机器来讲,联想能力基本为零。
所以说,逻辑这块是机器智能诊断的一个重要攻克方向:
1. 它需要不断的构建底层知识图谱,不断地逼急医生的知识架构;
2. 用大量的临床数据去训练知识体系之间的关系,也就所谓的“联想能力”,进而更好地获取数据,支撑诊断;
3. 在具体问诊方法维度,机器目前还非常生硬,这点也被我们放在逻辑维度。
雷锋网:康夫子的产品投入应用后,有没有不满意的方面?
如果让我们给我们自己的产品打分,100分是非常满意,应用效果等同于所有科室的专家诊断总和,我们现阶段只能打到40分,而同时市面上其它类似产品很少能超过30分。
这里的不及格除了在知识图谱维度还不够完善,另外就是这个产品目前还只能按照既定方式去完成某些任务,而在真实的诊断场景中,“知识联想、理解用户”是非常重要的环节。
当然,现阶段康夫子智能诊断还比较年轻,我们花了不到半年的时间已取得非常不错的效果,也正是因为各种不满意才促使我们的系统更加迅速的迭代。
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/63740.html