大数医达林玥煜:在中文医学NLP上,我们有哪些实战经验?
近期,雷锋网医健AI掘金志邀请大数医达AI首席架构师林玥煜做客雷锋网公开课,以“AI赋能医疗提质增效”为题,对大数医达自动化病历处理思路以及智能化临床决策产品进行技术解析。
林玥煜表示:“新基建已经明确提出,将基层医院诊疗的智慧化提升一个新台阶,但多年供需关系的不对等,导致基层医疗专业医师资源缺失,疾病诊断能力严重不足。”
大数医达着重布局的一大领域是电子病历,林玥煜也在演讲中着重分享了大数医达在医学文本方面的处理经验。
医学文本被认为是一种特定语言,包含特定语法。所以,医学文本人工标注就需要专门医生、医学团队设计标注流程,提取内容计划,根据不同应用场景设计标注内容。
目前,大数医达已经有一套机制,让机器辅助标注最后几个迭代环节。整个过程中,医生只需要进行少量修改,就可以让标注质量、效率都会有指数级提升。此外,大数医达的无监督预训练模型还会根据医学常识,对医学词汇进行自我发现,提取高频词做倒排序,让医生判断含义。
围绕病历结构化处理的流程,林玥煜也分享了大数医达的技术成果。
以下为林玥煜演讲内容,医健AI掘金志做了不改变原意的编辑:
林玥煜:大家好,我是来自大数医达的林玥煜,很高兴在雷锋网
(公众号:雷锋网)
的平台上跟大家分享大数医达关于医疗大数据挖掘以及医疗人工智能应用的一些看法。
当前新基建的战略里,医疗是很重要的一块,依托5G、互联网技术以及人工智能技术,医疗行业向着质变的方向发展。新基建的话题里,人工智能是其中一个很重要的亮点。
医院智慧化的核心是医疗质量、效率的提升
目前,国家已经明确要求 ,把基层医院的智慧化推广到一个新台阶。
从市场发展趋势来看,医院信息化系统经历了几个阶段,从90年代开始的医院电子化到无纸化,接下来,则是各个医疗系统之间互联互通集成平台的建设,让数据分享成为可能。
目前,医疗数据的基础非常好,不管是共享还是数据平台建设,都已经处于比较成熟的状态。怎样利用已有的人工智能技术,帮助患者、医生和医院管理者在新的环境下提升医疗质量,让医疗资源能够得到充分应用,是一个比较新的挑战。
大数据挖掘在医疗方面的应用,是大数医达近年来专注的一个方向,在很多环节都可以去应用人工智能技术。我们认为,在医疗过程中提升效率,把现有的医疗资源充分利用起来,是医疗智慧化的一个核心。
这几年经济发展非常好,患者对医疗质量要求越来越高。 患者无论从知情权,还是对医疗资源的使用,需求增长非常快,但医疗资源的供给特别是医生和护士的供给,还没有跟上患者的需求,在这样矛盾下,患者的“获得感”反而会降低。
另一方面,随着全国各地的医院规模越来越大,设备越来越多,产生的数据也非常多,虽然规范了医疗行为。但由于医护人员数量非常紧张,在繁忙的过程中让所有记录都正确,并且在移交的时候有非常高的质量,对所有基层临床的医务人员而言是很大的负担。
因此,医院经常会产生一些文书错误,有些错误可能会导致恶劣医疗后果,而医院管理系统变得越来越庞大,全部依赖人工做文书系统、档案系统审核基本不太可能。
大部分医院无论是电子病历,还是病程首页,各种文书系统都还靠人工抽样,隐患非常严重。
从第一张图看到,医疗资源非常缺少,不是缺少医疗设备,而是高质量的诊疗能力。
东部沿海很多省市会把援建落后省市作为一个首要任务,像上海援建云南,经常会把很多医疗设备送过去。当地医护人员水平比较有限,这种情况下,一些非常好的硬件资源在当地基层被长期搁置,而当地群众对医疗需求并没有降低。
因此,我们可以利用现有大数据技术,在国内海量医疗数据中挖掘有用信息,提炼出合适的人工智能模型,封装成基层患者、医院管理者能够使用、提高医疗过程中各环节效率的产品。
我们一直强调的一点是, 医院智慧化的核心就是医疗质量以及 效率的提升 。
这首先需要医疗大数据挖掘,病历的电子化是一个长期的过程。电子病历也是大数医达最大的优势,我们有长时间、连续的病历数据积累。
电子病历、入院记录、手术记录,术前术后小结这些文本资源,我们利用这些数据训练出模型,帮助经验不足的医生学习和诊断。
但这些海量的文本,在使用之前还需经过几轮处理。
首先,对病历进行结构化提取,把病历里的临床表现、体征检查、化验值、家族史、既往史或者吸烟史、婚育史提取出来。接着,对同一个症状、不同描述做归一,最终形成结构化电子病历。
虽然,电子病历系统已经越来越完善,也同时导致医生选择模板变得困难,经常都是直接选择默认值,导致阳性或阴性症状都没有被重点突出,也就需要根据不同疾病模型获得更高权重。
其次,根据一些医学典籍,把电子病历中的错误进行过滤,过滤虽然非常简单粗暴,但也比较有效。
我们在训练模型的时候,也可以把典籍里面的重点症状权重调高。例如阿兹海默症、癫痫和偏瘫症状,就这些症状的权重调高,让模型更好判断当前症状、化验结果、体格检查。
但典籍给出的,永远都是模糊的建议,而没有哪个病人会按照教科书生病。
院内的智慧服务有哪些核心环节?
我们利用上一步提取的病历,可以很容易把 这些疾病分级、分类。
首先,把疾病分为常见病和罕见病两类,常见病种类就包括4000多个ICD、300多个种类,涵盖95%的就诊患者,剩下为罕见病,存在上万个ICD,但仅占总数5%。
大数医达的AI问诊模型可以像医生一样不停追问患者当前症状,根据患者年龄、性别等生命体征,从模型里动态生成问题,而不是像其他厂商问题非常固定。
利用这种动态模型的建立,可以在问诊过程中,很容易收集到患者当前症状。
为什么只涉及症状?
这是因为,整个医疗过程,症状是最重要的部分之一,特别对于科室分诊有着重要意义。
对于患者来说,导诊非常困难,一种疾病对应多个科室。而一旦选错不仅耽误治疗时间,还会产生过度医疗行为。
回过头来看,导诊过程本身就可以在就诊前完成,甚至通过有效导诊可以避免简单疾病的过度医疗。如果这个病需要挂号,大数医达的AI问诊助手也可以跟医院打通挂号系统后,把AI医生收集的所有病症,同步给医院HIS和EMR系统,这样医生在见到病人前就能看到病人的主诉。
如果是罕见病,模型也可以结合症状判断疾病严重程度。例如,一个患者什么症状都没有,只有发热,而且不明原因发热,持续时间比较长,就可能判断为新冠肺炎。医生可以通过互联网医院平台,和患者一对一对话,尽快做进一步检查。
目前,人工智能的发展并不能够代替医生,只能辅助医生,特别是疑难杂症,原因在于疑难杂症数据量非常少,每个医院可能就几份病历,这么少的数据很难训练出模型来辅助医生决策,最多只能实现检索和参考。
这是一个智能门诊案例,功能包括 根据患者状况进行提问,根据问题给出患某种疾病的概率。
现实过程中,很多患者看病时间平均也就两三分钟,如果能帮助医生节省一分钟,就相当于提高了33%的效率,对医疗资源利用率提升非常有帮助。
接下来,我和大家分享一下医疗数据挖掘对于医院管理质量提升的作用。
目前,大量医疗资料都是以病历形式存在,优质病历对医生、患者、医保,以及整个医疗过程参与者都非常重要,特别对于医院管理段,如果医生自身没有注意,后续就需要在病历归档时候进行全量扫描,一步步来找出病理的问题,给医生做反馈。
目前,大数医达已经积攒了大量医疗文本处理经验,并且根据经验设计了病历质控系统。
病历质控系统分为两部分。首先,利用十几个模型对不同病历部分做结构化,一边书写、一边进行结构化,结构化之后再做机器质控。
使用结构化质控的原因在于医生书写病历的形式多种多样,仅仅通过自然语言进行对错判断,误判率会非常高。而且,目前深度学习技术还无法分清对错。
目前, 大数医达病历质控系统最核心的技术就是医疗文本结构化,根据医学团队总结出的医学规则,在结构化数据上进行质控。
例如,一名年轻患者头晕三天,各种生命体征都正常,医生却给出脑梗诊断。这个诊断就是有问题的,可能血压偏高、呼吸偏快的症状没有写,或者诊断错误。
发现病历问题后,在质控更改上,大数医达还会利用专业医生的方式优化对口病历。
例如,有些医生可能对泌尿科特别有经验,有些医生则可能对神经内科有经验,在读懂病的情况下,可以把相关病历分配给最合适的医生,提升病历质控质量。
这些病历修改和调整的步骤,都会在病历归档之前完成,保证医疗病历归档质量,尽量减少医院管理风险。
除了医院管理,大数医达的人工智能应用,还可以帮助临床医生做一些辅助工作。看待这个问题之前,首先要找准应用场景,究竟是需要落地到三甲医院,还是基层医疗机构。
大数医达认为,三甲医院医生处于整个医疗机构的金字塔尖,他们更多地是需要处理疑难杂症。
而基层医疗医生,因为缺乏足够医疗知识,往往只会看几种病,我们希望训练出来的人工智能模型和应用,能够帮助基层医生看更多的病、服务更多患者。
所以,大数医达把AI辅助诊断助手下放到基层, 把患者的常见病处理方式给到基层医生,最终把基层医生培养成三甲医院的水平。基层医生除了平时只服务小病患者,也可以鉴别患者是不是疑难杂症,是否需要大医生处理,需要到什么样的三甲医院、让疑难杂症的病人得到更好的处置。
目前在基层,已经出现比较好的应用实践路径,至于打通三甲还在努力过程中。
中文医学NLP技术拆解
大数医达不仅仅是复制医生知识,解决常见大小疾病,也希望提高整体的医疗效率。
目前来看,提高医疗效率的有效方法,就是无监督预训练模型。 从这边GPT1、GPT2,到BERT、RoBERTa,再到ALBERT,这些模型都能够节约大量人工标注工作。
医学文本被认为是一种特定语言,包含特定语法。所以,医学文本人工标注就需要专门医生、医学团队设计标注流程,提取内容计划,根据不同应用场景设计标注内容。
目前,大数医达已经有一套机制,让机器辅助标注最后几个迭代环节。整个过程中,医生只需要进行少量修改,就可以让标注质量、效率都会有指数级提升。
此外,大数医达的无监督预训练模型还会根据医学常识,对医学词汇进行自我发现,提取高频词做倒排序,让医生判断含义。
例如,头痛跟头疼,正规写法是头痛,但头部疼痛也没有问题,头部隐痛也是头痛,这就是在医学词汇归一中发现的。
接下来,我会介绍病历结构化处理的流程。
首先,我们先让医生制定合理结构化提取标准,例如体格检查里面的检查部位、检查结果、检查方位,这是自然语言理解特定领域的首要过程,未来从数据依存关系把文字变成树形结构。
标注完成之后,标注数据也可以运用到真实病历里,形成树形结构的依存关系分析图谱。
这个过程主要是应用于自动标注,当标注任务比较困难,就可以在医生标注一二百份之后,机器学习自动标注后面几千份数据,最终让整个模型标注效率提升。
不管机器自动评估还是人工评估,都需要对医院全量数据进行结构化,得到全量结构化术语语法,例如检查部位,胸部、腹部、腿部,指部等词语就需统一。
这一整套标注工作下来,我们经常发现三甲医院的病历质量比较高,主要是因为三甲医院医生不会乱用词语和术语。在全院历年上百万病历数据结构化归一之后,高频出现超过100次以上的词语,只有一两千个,而高频词出现次数加起来就已经超过99.99%。
这是标注平台截图, 自动标注跟人工标注结合,并从中提取其他症状,这种其他症状代表非常复杂的医学术语体系。
病历完成结构化之后,接下来就是应用。
对于患者的应用,可以把患者基本信息、病历症状拿出来训练AI模型,这样医生就可以通过手机问诊模型选择患者基本信息加症状,不需要任何额外检查就能够获得数据。
症状代表着什么?同样都是头痛,一个是前额头痛,一个是太阳穴头痛,一个是头部隐痛,还有头部胀痛,这些症状含义完全不一样。
所以,我们就需要把每一个症状类别、每个点类别进行区分,变成非常稀疏的矩阵,每一个点可能包括上百万个组合,如此稀疏的信息密度在实际训练模型会非常困难。
为此,大数医达尝试用序列做模拟,症状用树形结构表示,树形结构可以直接把自然语言变成一个有层次结构的字符串。
这种方式最大好处就是容忍输入长短不一样,但还存在一个问题:字符串本身是有序的,第一个症状跟第二个症状存在顺序关系,但实际患者症状的时间属性是无序的,所以 序列仅仅能够解决患者症状长短的问题,没有办法解决顺序问题。
为了解决顺序问题,大数医达选择了图模型解决,图模型最大的特点就是天然、无序,表示患者所有临床表现是最正确、最贴切的应用。
首先,大数医达把所有患者症状用图描述做一些优化,按照统一、自洽规则,把实体作为一个大节点优先提取出来,两个子节点分别代表疼痛和眩晕。这样一来,疼痛跟眩晕就不会跟其他节点发生联系,图学习效率也会更高。
一些没有特别顺序的单数节点病历,也可以把所有阳性节点互相关联。把总节点关联到所有阳性症状、阳性体格检查、阳性化验检查结果。
除了阳性节点,还有阴性节点,图模型可以把所有阴性症状关联起来,学到哪一种症状都能推导出诊断和排除问题。
把患者临床表现 以图形式建模之后,还有其他的工作。
首先,把所有画面图拿去训练深层次图模型,深层图模型就是给一部分残缺图提示,按照提示进行补充。整个过程最重要的应用场景就是医生问诊。医生可以通过模拟片段,知道更多信息,补充整个全局,整个图模型也会学习医生补充的步骤。
图生成模型的方式包含很多种,大数医达应用的是auto encoder,学习图自编码,不断完善图如何生成。
当图是完整的,模型就可以给出一些推断。例如患什么疾病。另外一种是诊断之后的治疗,这些都是图构建完之后,根据不同目标、不同应用训练生成的。
例如,医生判断这个患者就是普通感冒,在收集症状之后,如果还没有做过化验检查,就会给出一个判断,是不是感染某种肺炎,或者其他流行病,给出医生这是一个流行病病例的预警。
而在高血压病人场景中。在做一系列化验检查时,如果错过某些细节,模型就可以自动提醒,例如开药,不要漏掉某些诊断或处置。
最后阐述一下,我们选择图模型的初衷。
图模型虽然是一个很难路径,但却可以很好融合医学临床表现本质,在decoder层设计不同目标,追问症状体征,模拟医生问诊,并根据当前状况,推荐下一步的化验检查流程,给出诊断建议或治疗方案。
。