亚马逊AWS官方博客

使用 Amazon Comprehend Medical 以自然语言为基础查询药物不良反应与召回事件

Original URL: https://aws.amazon.com/cn/blogs/machine-learning/query-drug-adverse-effects-and-recalls-based-on-natural-language-using-amazon-comprehend-medical/

在本文中,我们将介绍如何使用Amazon Comprehend Medical提取药品名称与医疗状况,借此监控药物安全性并及时跟踪不良事件。Amazon Comprehend Medical是一项自然语言处理(NLP)服务,使用机器学习(ML)技术轻松从非结构化文本当中提取相关医疗信息。我们查询了 OpenFDA API (由美国药监局发布的开源API)以及Clinicaltrials.gov API(由国立卫生研究院(NIH),与国立医学图书馆(NLM)发布的另一个开源API),从以往的药物或医疗不良事件、召回通告及临床试验中提取信息。利用这部分数据,大家可以结合其他大规模群体使用研究,进一步分析特定药物的安全性与有效性。

新药的推出是个漫长的过程。根据相关估计,每种新药从概念提出到最终产品发布,大约需要12年时间。期间涉及多个阶段,包括临床前测试、1期至3期临床试验,以及获得药监局(FDA)的最终批准等。可以想见,制药企业还需要在新药上市之前投入大量资金。根据JAMA Network上发表的一项最新研究,目前每推出一款新药的平均成本为9.18亿美元,而各药物的实现研发成本在3.14亿美元到28亿美元之间。

即使是在药物上市之后,制药企业仍然需要持续监控安全风险。消费者还可以直接向药监局方面上报药物的不良反应。这可能导致药物召回,甚至烧掉数百万美元进行后续调整。此外,正在服用相关药物的人群以及开具处方的临床医生也需要及时了解这些不良反应,并决定是否需要做出有针对性的应对。

虽然尚无确切证据能够证明投资回报,但制药企业已经在越来越多地运用机器学习技术强化研发效果,借此提升新药成功上市的几率。

机器学习带来哪些助益?

为了保障药物安全,药监局使用真实数据(RWD)与真实证据(RWE)对上市后药物的安全性与不良事件加以监控。关于更多详细信息,请参阅真实数据(RWD)与真实证据(RWE)在医疗保健决策中正扮演愈发重要的角色。此外,也有相当一部分医疗保健专业人士会根据真实数据开发各类指导与决策支持类工具。通过分析真实数据,制药企业将得以不断改进临床试验的设计思路,并提出更多创新型治疗方法。

但有效分析真实数据的一大核心挑战,在于相当一部分数据处于非结构化状态——即并非以对分析和查询友好的行与列形式存储。真实数据可能以多种格式存在,且涵盖多种来源。使用常规分析技术处理如此庞大的非结构化数据显然不切实际。关于更多详细信息,请参阅在AWS上构建真实证据平台

自然语言处理(NLP)的快速发展,有望填补这一空白。例如,大家可以使用真实数据训练模型,从以自然语言上报的患者不良反应资料中提取关键实体(例如对应药物与治疗状况)。在完成实体提取之后,我们可以将结果存储在数据库内,并进一步将其集成至各类报告应用程序当中。结合群体规模下的相关研究,我们将借此确定哪些患者更适合服用某些药物,或者深入分析药物的安全性与有效性。

解决方案架构

下图所示,为本文示例解决方案的基本架构。除Amazon Comprehend Medical之外,大家还需要使用以下服务:


这套架构包含以下操作步骤:

  • 演示解决方案提供一个简单的html页面,负责在api网关URL接受第一次调用时通过Lambda函数提供服务。该网址将位于CloudFormation栈的输出部分当中,也可以从API Gateway中获取。
  • 点击网址上的提交按钮,即可通过API Gateway异步调用其他2项Lambda函数。
  • 这2项Lambda函数将使用公共层函数审核用户通过Comprehend Medical输入的非结构化文本,并据此返回药物与治疗状况。
  • Lambda函数负责处理Amazon Comprehend Medical实体,并据此查询开源api的clinicaltrail.gov 与 open.fda.gov.。HTML页面会将这些lambda输出显示在对应的表内。

先决条件

要完成本次演练,大家需要做好以下准备:

  • 一个AWS账户
  • 一个用于访问 API Gateway, Lambda, Amazon Comprehend Medical以及AWS CloudFormation的AWS身份与访问管理(AWS Identity and Access Management,简称IAM)用户
  • 一个S3存储桶

配置CloudFormation栈

要配置您的CloudFormation栈,请完成以下操作步骤:

  • 登录至 Amazon管理控制台
  • 选择us-east-1 作为您的当前区域。
  • 启动CloudFormation栈:
  • 选择 Next
  • Stack name部分输入名称,例如drugsearch
  • Parameters部分,更新必要的API Gateway名称。
  • 提供位于 us-east-1内的S3存储桶名称,用以存储CSV文件。
  • 选择 Next.
  • 选择I acknowledge that AWS CloudFormation might create IAM resources(我已知悉AWS CloudFormation可能需要创建IAM资源)
  • 选择 Create stack

CloudFormation栈可能需要几分钟才能创建完成。

  • Outputs选项卡上,记录API Gateway的URL。

搜索与药物及治疗状况相关的信息

在上一步中打开URL之后,大家可以输入与药物及治疗状况相关的文本内容,并选择 Submit

输出结果为三个相关表格,包含以下信息:

  • 相关药物与不良反应 – 可通过Clinicaltrail.gov进行查询,最多显示10条记录。
  • 药物召回相关信息 – 可从open.fda.gov查询此信息,且每种药物及症状最多显示5条记录。
  • 关于症状及药物的临床试验 – 此信息可通过 clinicaltrial.gov查询获得。

除表格之外,页面中还将提供两条超链接,以CSV格式供您下载临床试验信息与OpenFDA文件。各文件最多包含100条临床试验记录,OpenFDA针对各种药物及治疗状况的记录同样最多为100条。

总结

本文展示一款简单的应用程序,可供制药企业、医疗保健专业人士以及消费者通过药监局及国家卫生研究院等权威来源处查找有用信息。使用这套架构及相关代码库,您可以将这套解决方案整合至关于不良事件分析及报告的其他下游应用程序当中。我们希望本文能够帮助大家接触ML技术、提高ML采用率,同时改善患者的预后与护理质量。

本篇作者

Varad Ram

Amazon Web Services公司合作伙伴团队高级解决方案架构师。他热衷于帮助客户采用云技术,而且对人工智能抱有浓厚兴趣。他认为深度学习将成为未来技术发展的核心驱动力。在业余时间,他喜欢陪伴女儿和儿子骑自行车及远足。

Ujjwal Ratan

Ujjwal Ratan 是 Amazon Web Services 全球健康医疗与生命科学团队的首席机器学习专家解决方案架构师。 他的主攻方向是机器学习及深度学习应用,以解决各种现实中的行业问题,例如,医学成像、非结构化临床文本、基因组学、精准医学、临床试验和护理质量优化,等等。

Babu Srinivasan

德勤高级云架构师。他与客户紧密合作,构建起可扩展且具有弹性的云架构,并采用各类AWS云服务解决种种实际业务问题。Babu还担任APN(AWS合作伙伴网络)宣传大使,热衷于同技术社区分享自己的AWS专业知识。在业余时间,他喜欢与朋友及同事们研习扑克魔术,在自己车库中的木工车间里加工木料,以及研究自己的AWS DeepRacer赛车。