【中文医疗词嵌入模型】SMedBERT:结构化知识图谱 + 混合注意力机制 + 提及-邻居上下文建模

【中文医疗词嵌入模型】SMedBERT:结构化知识图谱 + 混合注意力机制 + 提及-邻居上下文建模

    • 提出背景
      • SMedBERT 具体到点的设计逻辑
      • SMedBERT的背景
      • SMedBERT的工作原理
    • SMedBERT 具体实现细节
      • 3.1 符号和模型
      • 3.2 Top-K Entity Sorting
      • 3.3 提及-邻居混合注意力
      • 3.4 提及-邻居上下文建模
    • 数据与效果
      • 4.1 数据来源
      • 4.2 基线
      • 4.3 内在评价
      • 4.4 下游任务结果
      • 4.5 实体命中率的影响
      • 4.6 邻近实体数量的影响
      • 4.7 消融研究

 


提出背景

最近在做医学文本处理,最好是有一个医学嵌入模型,去重会准确很多,但找到的都是通用嵌入模型,不是医学嵌入模型。

人工是找不到了,让AI搜索找遍论文,才找到了SMedBERT。

论文:https://aclanthology.org/2021.acl-long.457.pdf

代码:https://github.com/MatNLP/SMedBERT

SMedBERT是一种融合了大规模医学文本和结构化医学知识图谱的预训练语言模型,通过专门设计的注意力机制和上下文建模显著提高了中文医学自然语言处理任务的性能。

SMedBERT 具体到点的设计逻辑

SMedBERT 面临的具体问题是中文医学领域的语言理解和信息提取准确度需要提高,特别是如何有效地从医学文本中学习并应用复杂的医学知识。

SMedBERT = 利用结构化知识图谱 + 混合注意力机制 + 提及-邻居上下文建模

  1. 子解法1:结构化知识图谱

    • 之所以用结构化知识图谱,是因为医学术语和概念之间存在复杂的关系,这些关系可以通过结构化数据更准确地建模。
    • 例如,通过知识图谱可以了解“糖尿病”和“视网膜病变”的关系,这有助于提升实体识别和关系提取的准确度。
  2. 子解法2:混合注意力机制

    • 之所以用混合注意力机制,是因为需要区分和加权不同实体类型对特定医学提及的影响,从而增强语义表示的准确性。
    • 例如,在处理含有“糖尿病”提及的文本时,模型通过这种机制能够识别出“胰岛素抵抗”对“糖尿病”概念的语义贡献大于其他一些不那么重要的关联术语。
  3. 子解法3:提及-邻居上下文建模

    • 之所以用提及-邻居上下文建模,是因为它能够利用知识图谱中的全局上下文来增强低频提及的语义表示,改善模型对稀有术语的处理能力。
    • 例如,对于较少出现在训练数据中的“罕见糖尿病并发症”提及,这种方法可以通过与之相关联的常见并发症(如“肾病”)的信息来提升其表示。

 
这个设计思路,其实可以比作是打造一个专业的医学顾问团队。

如果你是一个医生,面对一个复杂的病例,你会怎么做?

首先,你可能会查阅各种医学资料和手册。

  • 这就像是利用结构化知识图谱,因为这些资料和手册详细记录了医学术语和概念之间的复杂关系,帮助你理解疾病之间的联系。

接着,你可能需要与你的同事进行讨论,尤其是那些在某些领域拥有更多经验的专家。

  • 这就类似于混合注意力机制,你会特别注意那些在特定病症上有深入研究的专家的意见,因为他们的见解对你解决问题可能会有更大的帮助。

最后,如果遇到一些罕见或特殊的病例,你可能还会通过病例报告、研究文献,甚至是国际病例数据库来寻找相似案例,看看其他医生是怎么诊断和治疗的。

  • 这就像是提及-邻居上下文建模,通过寻找和稀有病症相关的其他信息,帮助你更好地理解和处理这个案例。

所以,这个设计思路就好比是建立了一个虚拟的“医学顾问团队”,每个成员都擅长处理不同的问题,而你就是团队中的协调者,通过合理地利用每个“成员”的专长,来共同解决面前的医学难题。

 

SMedBERT的背景

  • 开放领域PLMs,如BERT和RoBERTa,通过双向Transformer和自监督学习任务为各种NLP任务提供了强大的基础。
  • 知识增强PLMs(KEPLMs),如ERNIE和KnowBERT,通过融入外部知识(例如知识图谱中的实体和关系)来增强模型的语言理解能力。
  • 医学领域PLMs,如BioBERT和PubMedBERT,特化于处理医学领域的文本,通过域内的持续学习或从头开始学习来解决特定的领域挑战,例如专业术语和概念。

SMedBERT的工作原理

SMedBERT结合了以上三种方法的优点,并在此基础上引入了结构化语义知识,特别是从知识图谱中提取的关于医学实体及其邻居的信息。

具体来说,SMedBERT通过以下两个核心技术创新来提高对医学文本的理解能力:

  • 提及-邻居混合注意力:结合提及的实体和它们在知识图谱中的邻居实体(例如疾病与症状之间的关系),来增强文本中的实体表示。
  • 提及-邻居上下文建模:通过自监督学习任务,如掩蔽邻居建模和掩蔽提及建模,促进文本中的实体与其在知识图谱中的全局上下文之间的交互,从而提升语义表示的丰富性和准确性。

图2提供了SMedBERT的模型架构,分为左右两部分:

  • 左侧 展示了SMedBERT的总体架构,包括文本编码器(T-Encoder)、知识编码器(K-Encoder)、预训练任务(如掩码语言模型(MLM)和提及-邻居上下文建模),以及异构信息融合模块。

  • 右侧 则详细介绍了提及-邻居上下文建模预训练任务,这包括掩蔽邻居建模和掩蔽提及建模。

    掩蔽邻居建模关注的是利用提及(如文本中的词语)来丰富邻居实体的表示(如知识图谱中的实体)。

    掩蔽提及建模则是反过来,利用邻居实体来提升提及的表示质量。

 
在这里插入图片描述
图展示了一个输入文本和相关联的知识图谱信息。

输入文本提到发烧、咽痛和腹泻是新型冠状病毒(COVID-19)的症状。

然后,图中显示了从知识图谱中提取的邻近实体信息,如“呼吸感染”(respiratory infection)、“发热”(fever)、“呼吸综合症”(respiratory syndrome)和“肺炎”(pneumonia),它们都与“新型冠状病毒”(novel coronavirus)相关联。

这些邻近实体之间的关系通过不同的线条表示,如症状与疾病之间的关系、病因与疾病之间的关系等。

 

假设有一段医学报告:“患者因持续咳嗽、发热和呼吸困难入院,初步诊断为COVID-19引起的肺炎。”

在处理这段文本时,SMedBERT如下工作:

  1. 实体识别:识别“COVID-19”和“肺炎”为关键医学实体。
  2. 知识图谱查询:查询与“COVID-19”和“肺炎”相关的知识图谱,包括它们之间的关系以及相关的症状和治疗方法。
  3. 提及-邻居混合注意力:利用从知识图谱中提取的信息,增强“COVID-19”和“肺炎”的文本表示,例如通过考虑“发热”和“呼吸困难”作为“肺炎”的典型症状。
  4. 提及-邻居上下文建模:通过自监督学习任务,加深模型对“COVID-19”和“肺炎”及其关系的理解,例如预测与“肺炎”相关的症状,从而提高对这些医学实体的表示质量。

通过这种方法,SMedBERT不仅能够理解单独的医学术语,还能够把握这些术语之间的复杂关系和它们在医学知识体系中的位置,从而在医学领域的自然语言处理任务中实现更高的性能。

 


SMedBERT 具体实现细节

3.1 符号和模型

在处理一篇关于糖尿病的医学文本时,SMedBERT首先将文本中的每个词汇(比如与糖尿病相关的术语)编码成隐藏特征。

假设有一个句子:“糖尿病常常与心脏疾病有关联。”,模型会将“糖尿病”和“心脏疾病”这些词汇变成一系列的向量 {h1, h2, …, hN}。

在训练语料中的每一个提及(如“糖尿病”),都与知识图谱中的实体集合E相对应,并形成实体和关系的三元组(S),比如(糖尿病,关联,心脏疾病)。

通过TransR算法,模型得到每个实体和关系的嵌入向量(Γ_ent 和 Γ_rel)。

3.2 Top-K Entity Sorting

SMedBERT需要确定哪些邻近实体最有助于理解“糖尿病”这个提及。

它使用PEPR算法,一种改进的个性化PageRank算法,来对知识图谱中的实体进行排序,从而选择与“糖尿病”最相关的前K个实体。

例如,模型可能会决定“胰岛素”、“胰岛素抵抗”、“高血糖”是糖尿病最重要的邻近实体。

3.3 提及-邻居混合注意力

这个组件增强了文本中“糖尿病”这类提及的语义表示,通过结合邻近实体的信息:

  1. 邻近实体类型注意力:对于糖尿病,SMedBERT计算每种类型的邻近实体,比如症状或并发症,对糖尿病的影响。
  2. 节点注意力:模型关注与“糖尿病”相关的具体实体(如“胰岛素抵抗”)在文本中的表示,并调整它们的影响力。
  3. 位置注入模块:这部分确保提及的上下文位置信息被用于帮助模型理解例如“糖尿病通常发生在老年人中”的这类句子。

3.4 提及-邻居上下文建模

最后,SMedBERT通过两种自监督预训练任务,充分利用知识图谱中的结构化语义知识来增强提及“糖尿病”的表示:

  1. 掩蔽邻居建模(MNeM):模型可能会掩蔽与“糖尿病”关联的邻近实体(如“高血糖”)并尝试预测它,从而深化对邻近实体的语义理解。
  2. 掩蔽提及建模(MMeM):相反地,模型通过邻近实体“胰岛素治疗”或“饮食控制”来增强对掩蔽的“糖尿病”提及的表示。

通过这些步骤,SMedBERT不仅能理解“糖尿病”这个词本身,还能了解它与其他医学术语的关系,以及它在医学领域中的广泛意义和联系。

这种增强的表示能够帮助提升模型在自动医学问答、文本分类、患者报告分析等医学NLP任务中的表现。

 

数据与效果

SMedBERT在实验中表现出较之前方法的显著提升。在内在评价的无监督语义相似性任务中,特别是在有许多共享邻居的正样本对数据集D2上,SMedBERT相比所有基线模型的表现提升了1.36%。

在包含至少一个低频提及的正样本对数据集D3中,SMedBERT的表现也有显著提升,增加了1.01%,这表明该模型在增强低频提及的表示方面尤为有效。

在下游任务的评估中,例如命名实体识别(NER)和关系提取(RE),SMedBERT与最强基线模型相比,在两个NER数据集上分别提升了0.88%和2.07%,在RE任务上提升了0.68%和0.92%。

在问答(QA)、问题匹配(QM)和自然语言推理(NLI)任务中,SMedBERT也一致地提升了性能,分别增加了0.90%,0.89%和0.63%。

这些结果明确表明,SMedBERT通过整合领域特定的结构化语义知识,能够在多个医学NLP任务中显著改善结果。

4.1 数据来源

预训练数据:经过预处理的预训练语料库包含5,937,695个文本段落和3,028,224,412个令牌(约4.9GB)。

使用TransR算法在两个可信数据源上训练了知识图谱嵌入,包括来自OpenKG的“SymptomIn-Chinese”和“DXY-KG”,分别包含139,572和152,508个实体。两个知识图谱中的三元组数量分别是1,007,818和3,764,711。

任务数据:使用四个大规模的ChineseBLUE数据集来评估模型,这些数据集是中文医学NLP任务的基准。

还在由DXY公司和CHIP提供的真实应用场景数据集上测试了模型,包括命名实体识别(DXY-NER)、关系提取(DXY-RE, CHIP-RE)和问答(WebMedQA)。

4.2 基线

对比了SMedBERT与一般的PLMs、特定领域PLMs和在中文医学语料上预训练并注入了知识嵌入的KEPLMs:

  • 一般PLMs:包括BERT-base、BERT-wwm和RoBERTa。
  • 特定领域PLMs:因为中文医学领域的PLMs很少,包括MC-BERT和使用本文语料预训练的BioBERT-zh。
  • KEPLMs:使用两个在医学语料上持续预训练的KEPLMs作为基线模型,包括ERNIE-THU和KnowBERT。为了公平对比,只选取了注入相同知识图谱嵌入的KEPLMs。

4.3 内在评价

设计了一个无监督的语义相似性任务来评估SMedBERT的语义表示能力。

从知识图谱中提取所有具有等价关系的实体对作为正样本。

每个正样本对的一个实体作为查询实体,另一个作为正候选,用于采样其他实体作为负候选。

此外,还对模型在强化低频提及表示的能力进行了验证。

4.4 下游任务结果

在与输入文本中实体密切相关的NER和RE任务上评估了模型。

在NER和RE任务中,与在开放领域语料上训练的PLMs相比,加入了医学语料和知识事实的KEPLMs取得了更好的结果。

SMedBERT在两个NER数据集和RE任务上都取得了显著提升。

此外,还在问答(QA)、问题匹配(QM)和自然语言推理(NLI)任务上评估了SMedBERT,表现也一致提升。

4.5 实体命中率的影响

探索了不同实体命中率下模型在NER和RE任务上的表现,这个比率控制了样本中知识增强提及跨度的比例。

结果表明,性能在命中率增加初期显著提升,然后保持稳定,说明异构知识有助于改善语言理解能力,但太多知识事实并不能进一步提高模型性能,因为会引入知识噪声。

4.6 邻近实体数量的影响

在DXY-NER和DXY-RE的测试集上,进一步评估了模型在不同K值下的表现。

结果显示,SMedBERT在不同任务上在K=10左右时能够达到最佳性能,随着K的增加,模型性能先增后减,这也表明注入过多邻近实体知识可能会影响性能。

4.7 消融研究

选择了三个重要的模型组件进行消融研究,结果表明,去除这些机制后,模型性能仍与强基线ERNIE-med相当。

特别是去除混合注意力模块后,模型性能下降最多,表明注入丰富的异构邻近实体知识是有效的。

总体而言,实验结果表明,注入领域特定的结构化语义知识可以显著提升模型在医学NLP任务中的表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/812634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android - 安卓概述

什么是安卓? Android 是一种基于 Linux 的开源操作系统,适用于智能手机和平板电脑等移动设备。 Android 是由 Google 和其他公司领导的 Open Handset Alliance 开发的。 Android 为移动设备的应用程序开发提供了统一的方法,这意味着开发人员只需为 And…

【JavaWeb】Day42.MySQL概述——多表查询

介绍 多表查询:查询时从多张表中获取所需数据 单表查询的SQL语句:select 字段列表 from 表名; 如果要执行多表查询,只需要使用逗号分隔多张表即可,如: select 字段列表 from 表1, 表2; 例如:查询…

C++11的更新介绍(新的类功能、可变参数模板)

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:c大冒险 总有光环在陨落,总有新星在闪烁 新的类功能 默认成员函数&…

《师兄啊师兄》:玄机科技打造国漫新高峰,IP运营再显神力

在这个国漫蓬勃发展的时代,玄机科技再次以其超凡的制作水准和出色的IP运营能力,为我们带来了一部国漫新经典——《师兄啊师兄》。这部作品不仅在画面、剧情上达到了行业新高度,更在IP运营上展现出了其强大的实力与前瞻性。 《师兄啊师兄》的画…

构建智能连接的未来:物联网平台系统架构解析

随着科技的不断进步和互联网的普及,物联网(Internet of Things, IoT)已成为连接世界的新方式。物联网平台作为实现物联网应用的核心基础设施,其系统架构的设计和实施至关重要。本文将深入探讨物联网平台系统架构的关键要素和最佳实…

【七 (2)FineBI-平台新增用户留存分析】

目录 文章导航一、字段解释1、用户平台登录信息表格2、用户平台激活信息表格 二、需求三、操作步骤1、建立用户平台登录信息表格和用户平台激活信息表格的关联关系2、将用户平台激活信息表格的激活日期添加到用户平台登录信息表格3、新增公式列,计算激活时间和登录时…

P4119 [Ynoi2018] 未来日记

它来了! 分析一下第一个操作,不是写过嘛,并查集 分析一下第二个操作,二分套二分答案 拿下了这题 仔细分析,貌似时间复杂度是错的 我们考虑块套块 时间复杂度 对1e5的值域进行分块 求k值我们可以先找是第几个块&…

word并排比较

Word并排比较是一种在Microsoft Word文档中同时显示两个文本内容并进行比较的功能。这种比较通常用于查看文档的不同版本之间的差异,或者比较两个不同来源的文本内容。 在Word中进行并排比较通常可以通过以下步骤实现: 通过这种方式,Word的并…

2024阿里云学生服务器申请图文全流程,学生机免费续费攻略

2024年阿里云学生服务器免费申请,完成学生认证可以领取1个月免费学生机,完成任务可以再免费学费6个月时长,还可以领取高校计划学生300元无门槛优惠代金券,阿里云服务器网aliyunfuwuqi.com整理2024年最新阿里云大学生服务器申请入口…

8路HDMI+8路AV高清视频流媒体编码器JR-3218HD

产品简介: JR-3218HD高清音视频编码产品支持8路高清HDMI音视频采集功能,8路AV视频采集功能,8路3.5MM独独立音频接口采集功能。编码输出双码流H.264格式,音频MP3/AAC格式。编码码率可调,画面质量可控制。支持HTTP/RTSP…

引人共鸣的情感视频素材在哪找?今天看这五个网站

朋友们好啊,最近是不是不少人都在发愁啊,优秀创作者做视频用的视频素材哪来的啊?今天我为朋友们准备了几个优秀的视频素材网站,让你们做视频不再缺少素材,然后还有几个辅助创作的工具,都是你们需要的&#…

电源——BUCK详解

目录 BUCK电路工作原理3种工作模式 BUCK电路实操PCB如何降低EMI和EMC及注意事项 BUCK电路工作原理 如图,给一个一定频率的PWM波控制Q1,使得输入电压不停的导通断开,达到降压的目的。 输入电压 * 占空比 输出电压 非隔离 输入与输出的极性相同…

CSS导读 (复合选择器 上)

(大家好,今天我们将继续来学习CSS的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 二、CSS的复合选择器 2.1 什么是复合选择器 2.2 后代选择器(重要) 2.3 子选择器(重要) Questions 小提…

贝乐虎儿歌v6.8.0解锁高级版亲子学习儿歌

软件介绍 贝乐虎儿歌免费版app,出自乐擎网络的创意工坊,专为孩子们雕琢了一系列富含创意的动画儿歌内容。这款app通过贝乐虎兄弟的可爱形象,让孩子们在愉快的观看中接触到各种儿歌和故事。不仅如此,app还巧妙地将古诗、英语等学习…

Bytebase 2.15.0 - GitOps 整体升级

🔔 GitOps 整体升级 新版 GitOps 和之前版本不兼容,如果需要升级协助,请联系我们。 使用访问令牌进行身份验证。支持项目中配置多个 VCS 连接器。支持在 VCS 连接器中指定数据库分组为目标(默认情况下应用于项目中的所有数据库&…

Python | Leetcode Python题解之第25题K个一组翻转链表

题目: 题解: class Solution:# 翻转一个子链表,并且返回新的头与尾def reverse(self, head: ListNode, tail: ListNode):prev tail.nextp headwhile prev ! tail:nex p.nextp.next prevprev pp nexreturn tail, headdef reverseKGroup…

【教学类-52-03】20240412动物数独(4宫格)难度1-9 打印版

作品展示:合并打印(难度10%-90%,一共9份) 背景需求 前期两个代码完成了4宫格基本样式的制作 【教学类-52-01】20240411动物数独(4宫格)宫格图https://mp.csdn.net/mp_blog/creation/editor/137679361【教学…

CSS-浮动文字环绕布局、隐藏属性display、overflow、三角形制作、鼠标样式

文字环绕布局 CSS文字环绕布局是指在网页中让文字环绕在图片或其他元素周围的布局方式。这通常通过CSS中的float属性来实现。你可以将图片设置为float: left;或float: right;,然后在文本元素中使用clear属性来清除浮动,以确保文字不会覆盖图片。另外&am…

引领未来:杭州2024快递物流展共绘创新浪潮,塑造智慧物流新蓝图

杭州,作为中国的电商之都,近年来在快递物流行业背景与应用方面取得了显著的发展。随着电子商务的迅猛增长,杭州的快递物流行业迅速崛起,成为支撑电商产业发展的重要力量。 2024长三角(杭州)快递物流供应链与…

FFmpeg: 简易ijkplayer播放器实现--05ijkplayer–连接UI界面和ffplay.c

文章目录 ijkplayer时序图消息循环--回调函数实现播放器播放时状态转换播放停止 ijkmediaPlay成员变量成员函数 ijkplayer时序图 stream_open: frame_queue_init packet_queue_init init_clock 创建read_thread线程 创建video_refresh_thread线程 消息循环–回调函数实现 ui …