内容简要:
一、深度学习在医疗领域的应用
二、自然语言处理在医疗领域的实践
一、深度学习在医疗领域的应用
(一)深度学习取得成功依赖于多个元素
深度学习三大要素:充足的数据、足够的算力、不断革新的算法。
(二)深度学习在许多医学问题上取得成功
l 医学图像分类和分割
CNN
l 文本中信息抽取、疾病预测
CNN、RNN、Transformer
l 病患语音识别和机器翻译
RNN、Seq2Seq
l 体征监测和疾病风险评估
RNN、MLP、Transformer
l 新药研发
GCN
l 手术机器人
CNN、Reinforcement Learning
l More······
二、自然语言处理在医疗领域的实践
(一)信息抽取
1. 阿里云智能病历质检
医生撰写患者病历时需符合国家卫生部颁布的规范法则,但有时候医生会因为疏忽而不符合书写规范,因此可以通过自然语言处理对病历进行信息抽取,对不符合规范的病历进行纠错或提醒。
以患者张三病历为例,如下图所示:
病历显示张三因右上腹疼痛住院,经过治疗后患者左上腹疼痛缓解。
此处可发现,患者疼痛位置为右上腹,症状缓解位置为左上腹,病历前后矛盾。在这种情况下,就需要系统进行纠错,但由于该病历是个无结构化文本,因此需要进行信息抽取、识别与提取关键要素,然后进行推理。
图中下方为医生初诊与治疗计划,医生根据患者张三症状,初步诊断张三患有胆囊结石。为验证初诊结果,医生提供的诊疗步骤为腹部B超检查与动态血压等。
但从临床规范角度,胆囊结石需通过腹部X光确诊,腹部B超只能作为辅助手段,在这种情况下的话,需要系统提示医生诊断依据不充分。
以上例子阐述了信息抽取的重要性,通过对病例信息的抽取,结合医学知识进行推理与分析,对医生进行纠错或提醒,避免因疏忽导致诊断错误,为医疗安全保驾护航。
2.信息抽取要解决什么?
国家政策
信息化/大数据/智慧医疗/新基建
现状
1)结构化程度低
厂商众多,院内系统众多;
结构化电子病历 VS 电子病历结构化。
2)标准化程度低
称呼不统一,例如胆囊结石/胆结石/结石性胆囊炎-> K80.203
结构化 + 标准化
1)信息抽取:实体、属性识别、归一化;
2)医学知识库建设。
3.医学实体属性联合抽取
实体:指的是核心术语。
医疗实体:医疗系统中的核心术语,例如疾病、药品、症状、检验等。
医疗实体抽取特点
l 实体+属性:现在/过去、肯定/否定等属性词汇与实体相结合,如三年前手术,检测结果呈阳性等。
l 嵌套(Nested): 35%+
例如“患者半年前四肢、头部发麻”,从医生的角度看,整体是一个症状,但四肢与头部是两个身体部位,所有这里存在一个嵌套结构。
解决这个问题,传统方法用序列标注进行实体识别,基于每个字预测标签,比如到了“四肢”的“四”,则会预测一个标签,但实际上这里存在两个标签“四肢”与“头部”。
针对这类复杂情况,我们提出了Span-based框架,如下图所示:
模型图最下面叫输入层,中间层叫编码层,最上层为解码层或分类层。
Span表示什么含义?
最下层序列w1到w8,取一个Start的位置,再取一个End的位置,例如w1到w2,这是一个Span,w1到w3也是个Span,w2到w5也是个Span。通过枚举所有的Span再去做一个分类,就解决嵌套的问题了。
在这个基础上,通过神经网络让Span表达得更有效,之后再去做分类时让它更准确,以上就是一个整体的思路。
这个问题的空间复杂度较高,传统算法是基于每个字做预测,遍历则解决问题,但如果用Span-based,则需要枚举所有的Span与所有Start、End下标等所有空间,如何在算力上解决这个问题?
上图为BENSC模型,模型的右侧为之前的Span-based Backbone,左侧图表示在预测Span时加了一些接收的信息,预测它起始与结束的位置,最终得到30个预测概率的乘积,即Span成为一个Start的概率,以及Span成为一个结束的位置,最后乘以30概率的乘积的话,就是最终的结果。
这样的优势在什么地方?
首先,引入边界的监督信息相当于增强Span的表示;
其次,算法模型在推理阶段时,会先判定Start与End概率,如果前两者的概率如果低于某个预值则不做预测,大幅度降低空间复杂度。
N表示序列的长度,M表示实体的实际个数, 如果按照Span-based的方式, 就是O(N^2),将它降到O(m*N)。
4.医学嵌套实体
(二)医学预训练语言模型(PTLM)
1.从预训练语言模型到StructBert工具
l StructBert工具;
l NLP四大类问题:文本分类/序列标注/片段提取/串到串
2.训练语言模型方便用药合理性判断
当医生开处方或者做核保审赔时, 需要检测是否医疗过度,是否使用医保范围以外或者过于昂贵的药品,这个过程是如何实现的?
以开塞露为例,某位患者患上肠阻梗,医生的处方为开塞露,开塞露说明书部分截图如下:
当做合理用药判断的话,一般通过人工或者机器学习的方法,从药物的适应症或者禁忌抽取内容,然后将内容存入库中方便查询。但上方患者症状为肠阻塞,医生的处方是开塞露,开塞露的适应症为便秘,因此凭借提取药物说明书无法判断。
但肠阻塞的临床表现就是便秘,所以医生处方药没有问题,如果只用药品说明书等作为依据,无法解决这个问题,这时候语言模型可以发挥它的作用了。
语言模型接到大量的训练数据时,会将数据编码存入模型中。
例如在某个医学论坛上,医患对话可能提及肠梗阻,医生给的处方药为开塞露,这些知识可以被语言模型捕捉并编码到模型中,下图为Bert较为经典的一个应用场景。
输入疾病与药品后,语言模型会做出打分,根据分值做合理用药判断。蚂蚁金服的核保审赔等场景在使用语言模型后,药品召回率提升120%。
(三)医学+NLP
1.医学临床试验结果预测
临床试验是循证医学的重要组成部分。设计和实施临床试验需要大量的人力和资源,在临床试验开展前,就能估计临床试验所研究问题的可行性,对于医疗发展有重要的作用和意义。
(四)落地应用
1.阿里云智能病历质检
l 痛点
一个50W规模人口的中心医院,日均产生出院病历200份+;
质检科,3~5个质检专家;
每份病历人工质检平均需要2个小时。
l 产品价值
质检效率提升10倍+;
某三甲医院:甲级病案率从84%提升至92%。
2.应用场景 - 病案质控 - DRG辅助编码
DRG辅助编码分为智能编码推荐与DRGs分组预测两部分。
智能编码推荐
DRG辅助编码
上方为病案质控流程图,我们在传统的流程中加入了智能编码推荐与DRGs分组预测,这样做的好处是什么?
以阑尾炎为例,医生书写病历的同时,智能编码推荐与DRGs分组预测也一起进行。智能编码推荐与DRGs分组预测根据抽取的信息内容,在库中进行搜索与分析,帮助医生书写病历,同时告知治疗费用约为3000元。如果医院存私心而过度治疗,导致最终治疗费用为4000元,则患者医保无法报销的1000元由医院承担。如果医院精益求精,通过提升自身效率与医疗水平,最终治疗费用为2500元,则医院可多盈利500元。
这样的方式一方面可以帮助医生书写病历,另一方面对医院的合理用药起到监督作用,该产品的使用使得医院CMI指数提升10%。
4.医学NLP能力架构
5.天池数据集
阿里云天池数据集开放了各行各业的数据集,包含大量的文本与图像数据集,有需要的用户可登录平台自行下载,欢迎广大用户提出宝贵意见与建议。