孙明俊,硕士,高级工程师,主要研究方向为人工智能、多媒体.E-mail:sunmingjun@caict.ac.cn.
作者简介:
张 丹,硕士,工程师,主要研究方向为自然语言处理.E-mail:zhangdan@ngai.ac.cn.
郑明智,学士,工程师,主要研究方向为自然语言处理、智慧医疗.E-mail:zhengmingzhi@ngai.ac.cn.
梅舒欢,硕士,工程师,主要研究方向为图像检索、图像识别.E-mail:meishuhuan@ngai.ac.cn.
类风湿性关节炎(RA)是一种广泛存在且慢性、难治的全身性免疫风湿病,中医在其治疗中具有副作用较少、价格相对低廉等优势,但是中医师的缺乏限制RA中医诊疗方案的推广.因此,文中提出基于人工智能的RA中医辅助诊疗系统.通过对患者病历文本和关节影像数据的学习实现对RA和RA证型的判断,辅助医生诊断,并根据证型智能推荐中医药方.文中还基于RA中医药典籍知识构建知识图谱,在医生诊疗过程中提供诊疗知识指导.系统可辅助经验不足的临床医师做出诊疗决策,提高RA的治疗水平,有助于对RA治疗的研究和推广.
SUN Mingjun, master, senior engineer. Her research inte-rests include artificial intelligence and multimedia.
AboutAuthor:
ZHANG Dan, master, engineer. Her research interests include natural language processing.
ZHENG Mingzhi, bachelor, engineer. His research interests include natural language processing and wise medical.
MEI Shuhuan, master, engineer. His research interests include image retrieval and image recognition.
Rheumatoid arthritis(RA) is a widespread, chronic and refractory systemic immune rheumatism. Traditional Chinese medicine(TCM) presents the advantages of less side effects and low price. However, the spread of RA TCM diagnosis and treatment scheme with curative effect advantages is limited due to the lack of experienced TCM practitioners, especially in primary medical institutions. In this paper, a traditional Chinese medicine aided diagnosis and treatment system for RA based on artificial intelligence is proposed. RA and pattern of syndrome in RA can be determined after learning patient medical records and medical imaging of joints, and then TCM prescription is recommended intelligently according to the pattern. Next, the information is exploited to assist doctors in diagnosis. Based on RA TCM knowledge, the knowledge graph is built. It provides doctors with knowledge guidance in the process of diagnosis and treatment. The system can assist less experienced doctors in making treatment decisions, improving the treatment level of RA, and studying and promoting RA treatment.
本文责任编委 杨勐
Recommended by Associate Editor YANG Meng
类风湿关节炎(Rheumatoid Arthritis, RA)是一种以手、足小关节的多关节、对称性、侵蚀性关节炎症为主要表现的全身性免疫风湿疾病.RA发病率高达0.3%~1%, 是一种难治性疾病, 病程反复、缠绵不愈、致残率高, 可累及全身多个系统, 严重危害人类健康.
近年来现代医学虽然在RA发病机制和病理变化等方面取得明显的研究进展, 但是病因至今仍然不明确.中医药治疗RA具有较长的历史, 大量的临床研究已表明中医药治疗RA的有效性.采用不同的治疗方案, 中医药治疗RA的治愈率多数超过90%[1, 2].然而中医诊治方案存在治疗不规范、没有统一标准的问题, 例如:中药种类繁多、中医师用药习惯不尽相同、千人千方等.而且, 经验尚浅的中医师或基层医生由于对RA的诊治经验较少, 开出的药方及治疗方案缺乏循证医学证据, 因此无法保证对患者有效.
基于人工智能的辅助诊疗系统是基于人工智能相关技术构建的智能化诊疗决策支持系统, 可辅助医生进行诊断决策, 为医生提供诊疗建议.目前, 一般通过医学影像和患者病历文本两类数据学习构建医疗领域的辅助诊疗系统.
医学影像分析与处理已成为医学信息中发展最快的领域之一, 而物体分类、检测、分割和生成等作为基于人工智能(Artificial Intelligence, AI)的图像处理的关键问题, 在医学应用中具有重要意义.目前, 深度学习模型在多种影像模态相关任务中已接近甚至超越人类专家的水平, 俞益洲等[3]使用YOLO网络对乳腺肿块进行自动检测, 定位准确率较高, 并能区分良性和恶性病变.对于RA涉及到的手部等数字X线摄影(Digital Radiography, DR)关节影像的识别, 目前基于人工智能的图像处理技术也同样具备良好的效果.
基于病历文本的辅助诊断通过对病历关键信息的提取、语义分析、相似数据匹配等自然语言处理技术, 实现疾病预测、诊疗建议等任务.余帅帅等[4]提出自身免疫疾病专家系统的设计思路和实现方案, 运用专家系统的设计原理与方法, 模拟医学专家诊断、治疗疾病的思维, 并基于统计的方法采用机器学习或深度学习模型通过大量的标注数据形成训练方案.浦东旭[5]设计和实现基于病历文本语义分析的智能肝病辅助诊疗系统, 提供基于词向量和深度学习技术的疾病预测、关键信息提取、智能语音转换、相似数据匹配、用户和病历数据管理等功能.因此, 可通过基于规则或统计的方法实现基于文本的RA诊疗系统.
实践中结合医学的影像分析与处理和病历文本的分析, 可建立多因子综合分析的系统, 实现临床诊断与影像检查相结合的多模态辅助诊断.
另外, 疾病的诊疗指南一般通过知识图谱的形式展现, 同时, 医学知识图谱还能为人工智能技术在医疗领域的应用提供知识基础.知识图谱作为知识的载体, 能以图形化的方式将不易于理解的信息形象地表示出来[6].贾李蓉等[7]提出中医药知识图谱构建的方法, 以中医药学语言系统为骨架, 将中医药领域主要的词表、术语资源和单表型数据库的内容导入中医药知识图谱之中, 从海量中医药文献中发现新颖的实体和语义关系的方法, 构建交互式的中医药文献知识获取工具, 以半自动的方式扩展中医药知识图谱的内容.知识图谱构建的一项基础任务是实体识别.尤其在医疗病历中, 实体和实体关系从不同角度反映电子病历中的医疗知识和患者的健康情况[8].目前, 国内公开的医疗命名实体识别数据集相对较少, 并无针对RA病历的实体数据集.
在辅助诊疗系统中, 另一项重要的功能就是根据患者诊断结果、相关信息等自动推荐处方.Li等[9]提出端到端的中医药方自动生成的方法, 基于具有注意力机制的seq2seq模型基础上, 使用覆盖机制和遮盖机制(Masking)减少重复问题, 通过症状的文本描述, 更好地自动生成对应的中药处方.由于同种疾病可使用具备同种功效的不同药物, 在药方推荐上很难采用绝对的方式评价, 目前采用的评价方式一般是医生主观评价的方法.
目前, 人工智能在医疗领域的应用研究主要是基于疾病诊疗过程中的某个模块.由于RA的中医诊疗需要结合患者的检验检查信息、病历文本信息和关节影像数据进行决策, 并基于诊断结果提供中医药方用法、用量的推荐, 而其它疾病的智能诊疗系统架构不能直接利用在RA中医诊疗中, 同时由于RA相对小众、数据集匮乏等原因, 行业内还缺失针对RA中医诊疗全过程的辅助诊疗系统.因此, 本文提出基于人工智能的RA中医辅助诊疗系统, 基于人工智能, 从诊疗指南、患者病历文本和关节影像数据及资深专家的处理和药方学习诊疗经验, 实现对RA及RA证型的判断, 并根据RA证型智能推荐中医药方.该系统可辅助经验不足的基层医生做出科学的判断, 帮助医生开出有循证依据的药方, 减少不同医生带来的差异, 提高诊疗水平.同时, 由于能够基于RA中医药典籍知识构建知识图谱, 在诊疗过程中为医生提供诊疗知识指导, 因此, 在使用RA中医辅助诊疗系统时, 医生可将知识图谱模块作为查询工具, 查询症状、药方、药物等信息.引入人工智能技术, 构建RA中医辅助诊疗系统, 可规范RA中医诊疗过程, 减少对专家的依赖程度, 提高RA诊疗水平, 同时为RA治疗相关研究提供支撑.
RA中医辅助诊疗系统是辅助医生进行RA诊疗的系统, 核心功能框图如图1所示, 对于其它非核心功能, 本文不进行介绍.
在诊疗过程中, 医生在RA诊疗系统中输入就诊患者的检验检查信息、病历文本信息和关节影像数据, 诊疗系统将对患者病历数据进行实体处理, 根据关节影像判断患者的受累关节, 结合影像和病历中的患者信息, 基于RA的诊疗指南判断患者是否患有RA.在确诊RA后, 系统基于分类模型进行RA中医证型的判断, 并依据证型向医生推荐相应的中医药方.在整个诊疗过程中, RA知识图谱依据病历中的症状、疾病、检查等信息为医生提供诊疗建议.RA中医辅助诊疗系统侧重辅助功能, 能为医生提供判断依据, 提升诊疗效率, 方便医生操作.医生复核RA诊疗系统的判断是否准确, 之后根据病人的其它症状和经验, 在给出的推荐药方上进行药品和剂量的调整.
RA中医诊疗辅助核心步骤如下.1)病历实体处理.2)基于Faster R-CNN识别受累关节.3)基于指南判断患者是否确诊RA.4)基于分类模型判断RA证型.5)基于证型推荐中医药方.6)构建知识图谱.
为了后续的基于分类模型RA证型判断、知识图谱构建, 首先对病历文本进行实体处理, 包括RA实体识别和RA实体同义词归一化.
为了进行实体识别, 首先定义RA的实体类型, 然后基于迁移学习对实体进行识别.
中医在2000多年的发展历史中, 形成许多特有的名词术语.例如, 中医具有独有的病名(胸痹、关格等)和治法名词(寒者热之、培土生金等[10]).这些名词术语包含患者大量的信息.经过对RA病历的分析, 本文针对RA病历规定3种命名实体, 如表1所示.命名实体涵盖从疾病、症状到治法、药方的命名实体, 为病历文本的理解起到重要的支持作用.
由于RA相关领域数据相对较少, 针对语料库不充足的问题, 本文采用迁移学习[11]技术, 在预训练的中文语言模型基础上, 针对RA治疗领域, 进行微调.其中, 预训练的语言模型选用谷歌开源的BERT(Bidirectional Encoder Representations from Transformers)[12]中文模型, 并将BERT的输出向量输入条件随机场(Conditional Random Field, CRF)[13]分类器, 根据标签的属性进行进一步判断.实体提取识别模块框图如图2所示.采用这种方法可大幅降低对于RA语料库数据量的要求, 节约开发时间和成本.
在病历中, 每个医生对于实体的描述方式不一定完全相同, 但表达的含义一致, 例如:症状“ 苔白” 和“ 舌苔白” 描述方式不同, 但表达含义相同.对于机器来讲, 在数据量有限的情况下, 很难根据上下文理解“ 苔白” 和“ 舌苔白” 表达同一含义, 需要加大后续机器对于病历的理解能力.因此, 针对此类同义词, 需要归一化到统一的表达方式, 增强机器对病历的理解能力.
由于RA病历数据相对较少, 本文采用基于规则的方法进行同义词归一化.首先, 基于标注数据抽取所有命名实体; 然后, 对同一类别的实体进行聚类; 最后, 将聚类结果反馈给医生, 医生标注, 建立同义词库, 并规定每类同义词的标准词.此方法需要在遇到未在同义词库中的新词时, 人工加入到同义词库中.另外, 当数据量扩充到一定程度时, 在采用人工方式工作量太大时, 可采用序列到序列的同义词归一化方法, 将实体的原词作为源序列, 将标准词作为目标序列.
为了减轻医生的工作量, 诊疗系统还设置受累关节DR影像识别功能:如果医生上传手部、肘部、膝部等关节DR影像后, 诊疗系统将自动识别受累关节的位置及数量, 并以可视化形式将受累关节部位展示在系统界面上, 供医生确认.医生可在图形界面上点选, 对识别结果进行调整.
受累关节识别模块的处理流程如图3所示.图中以区别于其它关节的颜色表示识别的受累关节.
要实现对受累关节的识别, 首先需要训练能识别受累关节的模型.医生使用标注软件, 标注图像中的正常关节和病变关节, 使用目标识别算法进行离线学习训练, 得出能识别病变关节的模型.RA诊疗系统使用Faster R-CNN训练受累关节识别模型.
为了有效提取关节的视觉特征, 系统采用基于VOC2007中20类常见的物体预训练得到的Faster R-CNN, 并使用标注的关节数据对Faster R-CNN进行微调.标注的关节数据必须包含关节在图像中的区域, 以及该区域关节是否为病变关节.微调后的模型可识别图像中关节的位置并判断是否病变.
受累关节识别模型的识别效果如图4所示.从一幅手部关节DR影像中识别关节及预测关节是否为受累关节, 0表示非受累关节, 1表示受累关节, 之后的小数表示概率(可信度).
在医生使用系统识别DR影像时, 辅助诊断系统将影像输入给受累关节识别模型, 然后根据模型返回的结果, 在界面上的人体关节示意图中相应的关节处展示识别的受累关节.目前还达不到100%的准确率, 需要医生人工确认, 对于识别错误的关节, 医生可在界面上进行修改调整.
基于1987年[14]和2010年[15, 16]美国风湿病学会(American College of Rheumatology, ACR)的RA诊疗标准判断, 将分数项分为3类:受累关节数量项、血清学和急性时相反应物等检查相关分数项、其它与病历文本有关的分数项.对医生输入的患者检验检查信息进行分数计算.ACR 1987年RA计算标准如表2所示.ACR 2010年RA计算标准如图5所示.
对于这3种类别的分数项, 系统的处理方式各有不同.
1)受累关节数量项.根据上传的关节DR影像识别的受累关节数量及部位计算.如果识别有误差, 医生可在界面上对结果进行调整.
2)血清学和急性时相反应物等检查相关分数项.根据医生在系统中输入的检查项结果判断并计算.
3)其它与病历文本有关的分数项.系统从病历文本抽取的实体及相关信息进行判断并计算.如果识别信息有误差, 医生可在界面上对结果进行调整.
将上述分数线相加, 计算1987年及2010年标准的得分, 如果2010年标准计算分数超过5, 或1987年标准计算分数超过3, 即可确诊患者患有RA.
根据RA诊疗经验, 将RA分为如下9种中医证型:肺气不利, 痰饮停肺; 肝肾阴虚, 瘀毒阻络; 肝郁脾虚, 湿毒阻络; 脾肾两虚, 湿毒阻络; 脾肾阳虚, 瘀毒内阻; 脾虚湿胜, 湿毒阻络; 脾虚湿胜, 痰饮内停; 阴阳两虚, 湿毒瘀滞; 营卫失和, 寒湿阻络.
RA证型诊断的目标是根据医生输入的患者病历文本, 对于确诊RA的患者, 智能判断其属于哪种证型.RA证型判断模块的处理流程如图6所示.
本文采用基于长短期记忆网络(Long-Short Term Memory, LSTM)[17]的分类模型.LSTM能避免RNN的梯度消失的问题, 通过门机制利用长时序的信息.在训练阶段, 使用词嵌入技术, 将病历文本转化为数字(转化后的文本将是一个同长度的向量形式[2, 62, 31, …]), 形成模型输入.数据处理后, 输入与标签均转化为模型所能接受的向量输入形式, 放入模型进行训练, 提前规定好迭代次数, 并打印训练准确率, 存储模型.在使用阶段, 加载训练好的模型, 将新的文本病历通过同样的数据处理流程, 输入模型, 得到输出结果.
部分病历文本如图3所示.
系统对病历文本进行命名实体识别, 除了实体以外的词语采用字.每个词经过词嵌入之后, 进入LSTM层, 这里LSTM是标准的LSTM.然后经过一个时间序列得到t个隐藏LSTM神经单元的向量.这些向量经过均值池化(Mean Pooling)层后, 得到向量h.紧接着是一个简单的logistic回归层或一个softmax层, 得到一个类别分布向量, 即判断患者的证型.
基于RA中医专家通过多年临床经验给出的建议及整理, 通过如下步骤得到适合患者证型的药方, 在系统中推荐给诊断医生.获得推荐药方的步骤如下.
1)根据患者证型, 先得到该证型对应的基本药方(药物及剂量、煎煮方法), 在其基础上, 根据后面步骤的条件进行相应调整.
2)根据从第2节中病历数据实体处理后获得的患者症状实体, 将症状分别组合, 得到组合后的症状列表, 判断是否在症状组合药物库(由医生整理的不同症状组合情况对应的常用药物库)中, 并将药物和相应剂量加入1)的基本药方中.症状组合药物库部分数据示例如表4所示.
3)第1节中病历数据实体处理后获得患者检查结果实体.当检查结果异常时, 从检查药物库(由医生整理)中获取对应药物和相应剂量, 加入药方.检查药物库部分数据示例如表5所示.
4)对于仍没有匹配到药物的症状, 根据症状药物表(由医学典籍抽出整理而成的数据)给出相应的药物和剂量.如果症状对应多个药物, 优先选择能治疗患者当前表现多个症状的药物.
5)对4)得出的药物与现有药方进行药物冲突检测(“ 十八反十九畏” 规则), 若存在冲突, 使用具备相同效用的其它药物替换冲突的药物.
6)得到药方.对于还没有明确剂量的药物, 根据药物常用剂量(由医学典籍抽出整理而成的数据), 给出推荐药物的常规剂量, 形成推荐药方推荐给诊断医生.
知识图谱(Knowledge Graph)是显示知识发展进程与结构关系的一系列各种不同的图形, 用可视化技术描述知识资源及其载体, 挖掘、分析、构建、绘制和显示知识及它们之间的相互联系.
知识图谱功能与辅助诊疗结合使用, 医生在诊治时可使用它查找信息, 了解证型和药方、药物的信息.将RA疾病病情、治疗信息、典型病历等形成知识图谱, 供基层医生在日常学习和实际诊断中参考, 有助于医生提高诊断水平, 减少误诊.知识图谱能增强中医药知识资源的联通性, 支持中医用户在概念层次上浏览领域知识资源, 发现中医药概念或知识资源之间的潜在联系[18].
本文的RA中医知识图谱的构建主要包括知识图谱设计、实体和实体关系抽取及知识图谱存储3个步骤, 具体流程图如图7所示.
RA知识图谱设计需要明确知识图谱的数据来源, 定义与RA相关的实体及实体之间的关系.本文收集RA中西医的诊疗指南、专家病案、中国药典等资料作为知识图谱的数据来源, 并定义如下的实体和实体关系.
实体包括与疾病有关的实体和治疗相关的实体.
疾病相关的实体有:1)疾病; 2)疾病属性, 包括特点、原因、部位、检查方法及指标值、临床表现等; 3)证型; 4)症状, 包括主症、次症等.
治疗相关的实体有:1)治法; 2)药方及中成药; 3)用药注意, 包括用药频率、用药方法、禁忌、不良反应等; 4)药方属性, 包括效果、优点、缺点、推荐等级等; 5)药方组成; 6)药方剂量.
实体关系有如下4种.
1)具有关系.疾病具有疾病属性(包括特点、原因、部位、检查方法、临床表现等)、药方(及中成药)具有用药注意事项(包括用药频率、用药方法、禁忌、不良反应等)、药方(及中成药)具有药方属性(包括效果、优点、缺点、推荐等级等).
2)包含关系.疾病包含证型, 证型包含症状(包括主症、次症等), 药方(及中成药)包含药方组成.
3)治疗关系.治法治疗证型、药方(及中成药)治疗证型.
4)对应关系.药方组成对应药方剂量.
本文中RA知识图谱的实体抽取方法与RA实体识别的方法一致, 采用BERT-CRF对实体进行抽取.
实体关系抽取采用Bootstrapping方法, 可减轻标注的工作量, 适应于小规模数据的关系抽取.Bootstrapping是一种再抽样的统计方法, 根据Efron提出的统计理论, 从已知数据中得到的分布是对总体分布最准确的预测.因此在标注样本较少、非标注样本较多时, 通过反复抽样迭代扩充标注样本, 数据分布会不断接近真实分布.
使用Bootstrapping抽取实体间的关系后, 根据预设计的实体关系分类, 将其归类, 得到实体关系三元组.
本文构建的RA知识图谱存储在图数据库Neo4j中.Neo4j通过Cypher提供多种方式的搜索及排序, 如查询疾病的症状等, 同时提供多种图算法, 为应用知识图谱提供便利.
将抽取的实体-关系-实体三元组保存到csv等格式的文件, 通过Neo4j的Cypher load命令导入Neo4j数据库中.
通过Match语句查询存储在Neo4j中的数据, Neo4j将以图形展示数据.
应用第2节~第6节技术, 初步实现RA的中医辅助诊疗系统, 实现第1节提到的功能.目前正在由合作医生内部试用, 根据反馈意见进行改进.病历输入界面如图8所示, 病历智能诊断界面如图9所示.
本文基于人工智能技术, 针对RA中医诊疗构建辅助诊疗系统.系统能根据患者的病历信息、检查检验信息、关节影像数据进行处理分析, 获得患者的受累关节, 智能判断患者是否患有RA及所患RA的具体证型, 并根据证型推荐合适的药方.另外, 系统还在医生的诊疗过程中, 通过RA知识图谱, 向医生展示与疾病、症状等相关的诊疗指南, 供医生参考.本文系统能推荐具有循证依据的药方, 形成有疗效优势的治疗方案, 对RA的诊治起到积极的作用.
目前RA中医辅助诊疗系统初步具备辅助诊疗的能力.后期将通过系统的数据积累、系统使用者的反馈建议、最新的科研成果等对系统进行迭代升级, 增加如病历语音输入、患者预诊微信小程序、舌苔识别等功能, 积极改善RA中医辅助诊疗系统的效果, 提升使用体验性能.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|