基于ChatGPT的生物医药知识抽取测评
自ChatGPT震撼发布以来,引起了全社会的广泛关注,其强大的语义理解和知识推理能力在各行各业掀起了应用ChatGPT的热潮。生物医药领域对知识的专业性要求非常,如何低成本的从文本中抽取生物医药知识一直是当前的研究热点,像ChatGPT这样的大模型是否可以有效的解决该问题呢?为了解决这些疑问,我们设计了一系列试验来测试ChatGPT的实体识别和关系抽取能力,并总结了抽取过程的优化策略,供大家交流和探讨。
抽取能力综合测试
总体表现
我们测试了ChatGPT在生物医药领域的中文信息抽取能力,包括实体识别和关系抽取,总体来看ChatGPT的Zero-Shot能力惊人,在这两类任务上表现非常出色,特别是实体识别任务上已经可以胜任基本的业务需求,只要提示(prompt)使用得当,完全可以媲美领域fine-tune的模型,而ChatGPT的泛化能力遥遥领先与领域fine-tune模型。
另外ChatGPT在信息抽取任务上的语义理解和推理能力之强令人惊叹。
实体识别
ChatGPT在生物医药领域的实体识别能力较强,可以从识别生物医药领域大部分类型的实体,甚至在非连续实体识别、实体对齐等方面表现出惊人的效果,但其召回能力相对较差(也可能是试验的提示不合理导致)。
我们以一篇专业文献段落为例,进行测试:
专业文献段落
西达本胺直接抑制血液及淋巴系统肿瘤细胞周期并诱导细胞凋亡;诱导和激活自然杀伤细胞(NK)和抗原特异性细胞毒T细胞(CTL)介导的肿瘤杀伤作用,对机体抗肿瘤细胞免疫具有整体调节活性;西达本胺还通过表观遗传调控机制,诱导肿瘤干细胞分化、逆转肿瘤细胞的上皮间充质表型转化(EMT)等作用,进而在恢复耐药肿瘤细胞对药物的敏感性和抑制肿瘤转移、复发等方面发挥潜在作用。西达本胺可以诱导和激活NK和CTL介导的肿瘤杀伤作用。
ChatGPT实体识别精确率非常高
ChatGPT在生物医药领域的实体识别精确率非常高,极少出现识别错误的情况,但召回率相对较差,会出现未召回的现象,例如在文本“诱导肿瘤干细胞分化”中没有召回“分化”。
ChatGPT可以进行非连续实体识别
ChatGPT可以完成复杂的实体识别任务,例如非连续实体识别,在文本“血液及淋巴系统肿瘤细胞”中准确提取了“血液系统”和“淋巴系统”。
ChatGPT有实体对齐的能力
在文本最后重复输入了“西达本胺可以诱导和激活NK和CTL介导的肿瘤杀伤作用”,但分别将自然杀伤细胞和抗原特异性细胞毒T细胞用缩写NK和CTL代替,ChatGPT能准确识别NK和CTL,并对齐到前文的抽取结果,最终结果没有出现重复的实体。再一次惊叹ChatGPT的语义理解能力。
ChatGPT嵌套实体识别能力较弱
嵌套实体识别是实体识别领域的重要分支,这方面ChatGPT表现较差,例如在文本“诱导肿瘤干细胞分化”中,近抽取了“肿瘤干细胞”,未抽取出“肿瘤干细胞分化”。不过该结论不严谨,可能是提示使用不正确导致。
抽取结果不稳定
ChatGPT不能保证稳定的实体抽取结果,同样的问题且不改变任何字符,多次测试会出现不同的抽取结果,如下图所示。这将成为其直接商用的重要障碍。
关系抽取
ChatGPT在生物医药领域有很强的关系抽取能力,可以从文本中抽取各类实体关系,但该问题的难点在于如何正确的向ChatGPT提问题,也就是如何有效的向ChatGPT描述待抽取的关系。
我们还是以这段文本为例,进行测试:
专业文献段落
西达本胺直接抑制血液及淋巴系统肿瘤细胞周期并诱导细胞凋亡;诱导和激活自然杀伤细胞(NK)和抗原特异性细胞毒T细胞(CTL)介导的肿瘤杀伤作用,对机体抗肿瘤细胞免疫具有整体调节活性;西达本胺还通过表观遗传调控机制,诱导肿瘤干细胞分化、逆转肿瘤细胞的上皮间充质表型转化(EMT)等作用,进而在恢复耐药肿瘤细胞对药物的敏感性和抑制肿瘤转移、复发等方面发挥潜在作用。
ChatGPT开放域关系抽取能力强大
我们给ChatGPT提出的任务是“帮我进行关系抽取,按照三元组的格式”,让他完成开放域关系抽取,得到的结果非常有意思:首先,抽取的关系大部分都是和“西达本胺”相关的,对此ChatGPT的解释是“因为句子的主语和宾语都是关于西达本胺的作用和机制,因此所有的关系都是和西达本胺相关的”;其次,关系抽取的同时还改进了实体识别的效果,结果“西达本胺, 抑制, 肿瘤复发”中的实体“肿瘤复发”就是改进了之前实体识别的效果。
ChatGPT可以对抽取的关系给出解释
我们进一步提示ChatGPT去提取实体“自然杀伤细胞”和实体“肿瘤杀伤作用”的关系,其准确的给出了推理过程。
ChatGPT抽取指定关系较难描述
如果直接让ChatGPT去抽取一种指定的关系,ChatGPT理解的任务会有较大偏差,很难得到想要的结果。
再看一个例子,ChatGPT仍然无法理解“治疗关系”,没有抽取出“前哨淋巴结活组织检查,治疗,早期乳腺癌”的关系。
抽取结果不稳定
ChatGPT不能保证稳定的关系抽取结果,同样的问题且不改变任何字符,多次测试会出现不同的抽取结果,如下图所示。这也将成为其直接商用的重要障碍。
抽取能力优化策略
改进提示方法
提出具体实体类型可以有效提升实体识别效果
当要求ChatGPT提取“生物过程实体”时,较之前直接提问“实体”多召回了“诱导和激活自然杀伤细胞(NK)和抗原特异性细胞毒T细胞(CTL)介导的肿瘤杀伤作用”、“诱导肿瘤干细胞分化”、“恢复耐药肿瘤细胞对药物的敏感性”等实体。
因此当使用ChatGPT提取领域实体时,尽量精确的描述各实体类型,然后按类别分别提取,这样可以有效提升召回能力。
使用ChatGPT推理能力用pipline关系抽取
在进行关系抽取时,不容易控制ChatGPT提取的关系是否是和我们目标实体相关的,可以提示ChatGPT先进行实体识别,再针对这些实体进行关系抽取,可以有效控制抽取的范围,提升结果可用性。
如下图的例子,首先提示其“提取所有生物医药实体”,然后再提示其“提取这些实体间的关系”,当然也可以根据需要提出更明确的需求。通过这样pipline的方法,可以更准确的描述关系抽取的需求,让机器输出更准确的结果。
增加少量学习样本
列举三元组样本
通过增加少量三元组样本,让ChatGPT学习指定关系,可以改进其对指定关系的抽取效果。例如增加了样本三元组“(ALND,治疗,早期乳腺癌)”,ChatGPT可以学习并输出三元组“(SLND,治疗,早期乳腺癌)”。
准确定义指定关系/实体类型
通过详细定义关系/实体类型的意思,可以让ChatGPT准确学习到本任务的目标。例如增加“治疗关系”的定义和示例,ChatGPT能得到非常准确的结果。