【医学知识图谱 自动补全 关系抽取】生成模型 + 医学知识图谱 = 发现三元组隐藏的关系实体对

生成模型 + 医学知识图谱 = 发现三元组新关系实体对

    • 提出背景
    • 问题:如何自动发现并生成医疗领域中未被标注的实体关系三元组?
    • CRVAE模型

 


提出背景

论文:https://dl.acm.org/doi/pdf/10.1145/3219819.3220010

 

以条件关系变分自编码器(CRVAE)模型为基础,解决关系医疗实体对发现问题,并生成新的、有意义的医疗实体对。

尽管有些疾病与症状之间的关系已经被广泛记录,但仍然存在许多未被探索或记录的潜在关系。

问题1:医疗实体,如症状,可能以多种方式表达。

  • “鼻塞”可以表述为“鼻子堵了”、“鼻塞”或“鼻腔阻塞”。

问题2:尽管数据库中记录了一些疾病与症状的关系,但还有许多未被发现或记录的关系。

  • 发现隐藏的关系,如模型可能生成一个新的实体对<季节性过敏, 鼻塞>。

问题3:特定医疗关系的实体对发现

  • 假设我们有一个巨大的医疗信息库,里面记录了很多关于疾病和症状之间的关系。
  • 例如,“流感会引起发热”或“过敏会引起皮肤痒”。
  • 但是,这个信息库并不完整,还有很多我们不知道的疾病和症状之间的关系。
  • 怎么在不需要人工去一一验证每种可能的疾病和症状组合的情况下,自动发现新的医疗关系(疾病和症状之间的关系)。

 

总问题:如何在不依赖大量未标注数据和复杂数据预处理的情况下,自动发现这些新的、有意义的疾病与症状之间的关系?

  • 问题1的解法:深度学习与贝叶斯推断:CRVAE结合了深度学习和贝叶斯推断的优点,通过无需手动特征工程的强大学习能力,捕捉医疗实体对的共性。
  • 问题2的解法:基于密度的采样策略:CRVAE采用基于密度的采样策略,通过解码采样的潜在变量来生成新的医疗实体对。
  • 问题3的解法:条件推断能力:CRVAE的条件推断能力使其能够更有效地为特定的医疗关系发现结构化医疗知识。

问题:如何自动发现并生成医疗领域中未被标注的实体关系三元组?

  1. 子问题1:无监督表示学习的效率问题

    • 背景:传统的自编码器(AE)广泛用于无监督表示学习,但在具体生成任务上的应用受限。
    • 子解法1:变分自编码器(VAE):采用VAE模型,通过建立输入数据与潜在变量间的概率分布关系,实现更具表现力的生成。
    • 通过VAE,我们学习到“糖尿病”这样的疾病实体和“频繁尿意”这样的症状实体的潜在表示,捕捉到它们之间的统计关联性。
  2. 子问题2:生成特定类型数据的能力不足

    • 背景:VAE能生成多种类型的数据,但难以生成属于特定类型的输出。
    • 子解法2:条件变分自编码器(CVAE):引入CVAE,通过在模型中添加条件变量,实现生成特定类型数据的目标。
    • 我们希望模型不仅能学习到疾病和症状之间的一般关系,还能生成具体的、未被标注的“引起”关系实体对。
    • CVAE允许我们在生成过程中引入条件,如特定的“引起”关系,从而专注于生成表示该关系的疾病与症状实体对。
  3. 子问题3:特定医疗关系实体对的精准生成

    • 背景:需要一种方法,能够精确生成表示特定医疗关系的实体对,如疾病和症状之间的“引起”关系。
    • 子解法3:条件关系变分自编码器(CRVAE):开发CRVAE模型,不仅考虑了实体的初始表示,还引入了关系指示器作为输入,通过编码器、解码器和生成器三个模块的协同工作,有效地生成特定医疗关系的实体对。
    • 我们需要一种机制,能够准确生成如“长时间坐姿”(疾病实体)与“下背痛”(症状实体)之间的“引起”关系,这种关系在数据集中可能尚未存在。
    • 通过CRVAE,模型学习现有的实体对和它们的关系,如“糖尿病”和“频繁尿意”的“引起”关系。然后,模型能够生成新的、合理的实体对,比如预测“长时间坐姿”可能会“引起”“下背痛”。
  • 为什么使用VAE:VAE通过建立数据的潜在概率分布模型,为生成可观测数据提供了理论基础,相较于传统AE,具有更强的表现力和生成能力。

  • 为什么引入CVAE:在VAE的基础上引入条件变量(如类标签),CVAE能够生成符合特定条件的数据,这在需要控制生成数据类型时尤为重要。

  • 为什么开发CRVAE:针对医疗实体关系发现的特定需求,CRVAE通过整合实体表示和关系指示器,实现了对特定医疗关系实体对的精准生成。这种方法不仅能够从现有数据中学习实体对之间的关系,还能够生成训练数据中未出现的新实体对,极大地扩展了医疗知识库。

这种分层次的解决方案结构,从基础的自编码器到针对具体应用场景的CRVAE模型,展示了如何通过深入分析问题的特征和背景,逐步提出并实施有效的解决策略。

在CRVAE模型训练完成后,我们向模型提供一个条件,即“引起”关系的标识。

模型接着在学习到的潜在空间中探索,并生成新的疾病与症状实体对,如生成了一个未在训练数据中直接观察到的实体对:“缺乏维生素D”(疾病实体)和“骨痛”(症状实体)之间的“引起”关系。

这个新生成的实体对为医疗研究和临床实践提供了可能的新见解,有助于扩展现有的医疗知识库。

CRVAE模型

  1. 学习阶段
    在CRVAE模型的学习阶段,模型执行以下步骤:

    a. 输入数据获取:
    模型接收医疗实体对,例如“糖尿病”和“视力模糊”作为输入。
    这些实体对通过自然语言在医疗文本中被表述,可能包含不同的表达方式和同义词。

    b. 实体表示学习:
    CRVAE模型使用预训练的词嵌入(word embeddings)来转换文本输入到数值向量,这些向量捕捉了实体的丰富语义信息。

    c. 编码器操作:
    编码器网络部分接着将这些数值向量转换为潜在变量(latent variables),这个过程通过一系列的非线性变换层实现。
    这些潜在变量旨在捕捉疾病与症状之间的核心关系特征。

    d. 特征提取:
    在编码过程中,CRVAE模型学习到的是不仅与具体实体有关,还与它们之间的医疗关系相关的潜在特征。
    例如,它可以学习到“糖尿病”和“视力模糊”之间的“引起”关系。

图示:
在这里插入图片描述

这张图展示了条件关系变分自编码器(CRVAE)在训练过程中的结构和工作流程。

图中描述了CRVAE模型的两个主要部分:编码器(Encoder)和解码器(Decoder),以及它们之间的潜在变量(Latent Variables)。

  1. 模型输入

    • 输入数据(在白色方框中),分别为头实体 ( e_h ) 和尾实体 ( e_t ),它们代表医疗实体对,如疾病和症状。
  2. 编码器(绿色部分)

    • 实体通过预训练的嵌入(embeddings)转换为数值向量 ( embed_h ) 和 ( embed_t )。
    • 这些嵌入通过一系列转换 ( trans ) 进一步处理,以增强与医疗关系相关的信息。
    • 处理后的向量 ( trans_{ht} ) 被送入潜在变量层,生成均值 ( \mu ) 和方差 ( \sigma^2 ),这些变量结合了关系指示器 ( r )。
  3. 潜在变量(紫色部分)

    • 均值 ( \mu ) 和方差 ( \sigma^2 ) 用于定义实体对的潜在空间分布,这是生成新的实体对的基础。
  4. 解码器(蓝色部分)

    • 潜在变量 ( z ),从潜在空间分布中采样得到,结合关系指示器 ( r ),通过解码器网络重构实体对。
    • 解码过程中,潜在变量重新转化为增强后的转换 ( trans’ ),进而重构为实体嵌入 ( embed’_h ) 和 ( embed’_t )。
    • 这些重构的嵌入是原始输入实体对的近似表示,目标是最小化输入实体和重构实体之间的差异。
    • 这样,模型就能学习如何有效地表示和重建医疗实体对。
  5. 重建过程

    • 在重建过程中,( trans’_h ) 和 ( trans’_t ) 被解码器网络处理,并尝试恢复成最初的实体嵌入 ( embed_h ) 和 ( embed_t )。
    • 这一过程涉及到多层非线性变换,旨在复原实体对的原始数据表示。
  6. 模型输出

    • 解码器的输出 ( embed’_h ) 和 ( embed’_t ) 是头实体和尾实体的预测嵌入,它们反映了模型对原始输入的理解和重构能力。

这个过程使CRVAE能够学习如何从训练数据中捕捉到医疗实体对之间的复杂关系,并将这种理解用于生成新的、潜在的医疗实体对,这可能有助于发现之前未知的医疗关系。

模型的这种生成能力特别适用于数据稀疏的领域,比如医疗实体关系发现,其中许多潜在的关系可能尚未被发现或记录在现有的医疗数据库中。
 


  1. 生成阶段
    学习阶段完成后,CRVAE模型进入生成阶段,执行以下步骤:

    a. 潜在空间采样:
    模型在潜在空间中进行采样。
    在这个空间中,每一点都代表了一种可能的医疗实体对关系。
    这个采样过程是基于学习到的潜在变量的分布进行的。

    b. 解码器
    操作:解码器网络部分接收潜在空间中的采样点,并将它们转换回医疗实体对的数值向量。
    这一步骤是逆编码过程,目的是重建或生成新的实体对。

    c. 实体对生成:
    通过解码过程,模型生成新的实体对,这些实体对尚未在医疗数据库中记录。
    由于潜在空间的采样点可能对应于从未观察到的实体组合,因此这个过程能够产生新颖的医疗实体对。

    d. 输出解释:
    生成的数值向量通过与预训练词嵌入的逆操作转换回自然语言实体。
    这允许模型提出新的、有医学意义的疾病与症状关系,如可能由“糖尿病”引起的新症状“心脏疼痛”。

    e. 后处理和验证:
    生成的实体对可能需要通过医疗专家进行验证,以确认它们的医学意义和新颖性。
    这一步骤不是CRVAE模型自动执行的,通常是后续的一个步骤。

图示:
在这里插入图片描述

这张图是关于条件关系变分自编码器(CRVAE)中的生成器(Generator)模块的插图。

图解说明了生成器如何从潜在空间生成有意义的、新颖的医疗实体对。

  1. 密度基采样(Density-based Sampling)

    • 这一步骤表示生成器如何在潜在空间中选择样本点。
    • 密度基采样意味着从潜在空间中的高密度区域(即更可能的或常见的实体对区域)选择样本点。
  2. 潜在空间与实体关系指示器(r)

    • 采样点(记为 z ^ \hat{z} z^ 结合了实体关系指示器(r),这里的 r 代表了医疗实体对之间的特定关系(例如“引起”)。
  3. 生成器网络

    • 接下来,采样点和关系指示器一起通过生成器网络。
    • 这个网络的结构设计用于将潜在空间的点转换为可识别的医疗实体对。
  4. 生成医疗实体对

    • z ^ \hat{z} z^ 通过网络处理后,得到两个输出: e ^ h \hat{e}_h e^h e ^ t \hat{e}_t e^t,这两个输出代表了生成的头实体(如疾病)和尾实体(如症状)。
  5. 结果

    • 最终结果是一对医疗实体,如 e ^ h \hat{e}_h e^h 可能代表一个特定的疾病,而 e ^ t \hat{e}_t e^t 代表该疾病可能引起的症状。

通过这个两阶段的过程,CRVAE模型利用从现有医疗实体对学习到的信息,能够生成新的、有医学价值的实体对。

它提供了一种在没有大规模标注数据的情况下自动扩展医疗知识库的有效方法。

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

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

相关文章

Django学习全纪录:创建第一个Django项目,如何使用Django开发⼀个web应用

导言 在上一篇文章里,我们对Django的开发环境进行了学习以及搭建,在上一篇文章里,同时也为大家介绍了安装、验证、修改默认镜像源等知识。 在这一篇文章里,我们就正式开始我们的Django开发之旅,创建我们的第一个项目,做一些较为简单且必需的前置工作。 如何创建Django项目…

【Linux】Kali Linux 系统安装详细教程(虚拟机)

目录 1.1 Kali linux简介 1.2 Kali Linux工具 1.3 VMware workstation和ESXi的区别 二、安装步骤 一、Kali概述 1.1 Kali linux简介 Kali Linux是基于Debian的Linux发行版&#xff0c; 设计用于数字取证操作系统。每一季度更新一次。由Offensive Security Ltd维护和资助。最…

RocksDB:高性能键值存储引擎初探

在现代的分布式系统和大数据应用中&#xff0c;一个高效、可靠的存储引擎是不可或缺的。RocksDB&#xff0c;由Facebook于2012年开发并随后开源&#xff0c;正是为了满足这类需求而诞生的。它是一个持久化的键值存储系统&#xff0c;特别适合在闪存&#xff08;Flash&#xff0…

【Python网络编程之TCP三次握手】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Python开发技术 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; Python网络编程之[TCP三次握手] 代码见资源&#xff0c;效果图如下一、实验要求二、协议原理2.…

【C语言】【力扣】7.整数反转和9.回文数

一、整数反转 1.1 个人思考过程 初解&#xff1a;出现ERROR&#xff0c;数据溢出的情况下应该返回0。&#xff08;错误&#xff09; int reverse(int x){int y0;while(x!0){yy*10x%10;x/10; }return y; } 再解&#xff1a;加上数据溢出判断条件。&#xff08;正确&#…

第六篇:MySQL图形化管理工具

经过前五篇的学习&#xff0c;对于数据库这门技术的理解&#xff0c;我们已经在心中建立了一个城堡大致的雏形&#xff0c;通过命令行窗口&#xff08;cmd&#xff09;快速上手了【SQL语法-DDL-数据定义语言】等相关命令 道阻且长&#xff0c;数据库技术这一宝藏中还有数不清的…

怎么使用ChatGPT提高工作效率?

怎么使用ChatGPT提高工作效率&#xff0c;这是一个有趣的话题。 相信不同的人有不同的观点&#xff0c;大家的知识背景和从事的工作都不完全相同&#xff0c;所以最终ChatGPT能起到的作用也不一样。 在编程过程中&#xff0c;如果我们要找一个库&#xff0c;我们最先做的肯定…

【FPGA】VHDL:八段码到8421BCD码转换电路

目录 EDA设计基础练习题 &#xff1a; 实验要求如下&#xff1a; 代码 八段码到8421BCD码转换电路 8421BCD码到八段码转换电路 八段码到8421BCD~运行结果展示 8421BCD转八段码~运行结果展示 特别注意 软件&#xff1a;Quartus II 13.0 (64-bit) 语言&#xff1a;VHDL E…

【python】网络爬虫与信息提取--Beautiful Soup库

Beautiful Soup网站&#xff1a;https://www.crummy.com/software/BeautifulSoup/ 作用&#xff1a;它能够对HTML.xml格式进行解析&#xff0c;并且提取其中的相关信息。它可以对我们提供的任何格式进行相关的爬取&#xff0c;并且可以进行树形解析。 使用原理&#xff1a;它能…

【GO语言卵细胞级别教程】05.项目创建和函数讲解

感谢&#xff01;点点赞和评论呀&#xff01;我将继续更新 目录&#xff1a; 感谢&#xff01;点点赞和评论呀&#xff01;我将继续更新0.创建项目1.函数的引入2.注意事项3.详细介绍3.1 形参介绍 4.导入包4.1 基本知识4.2 注意事项 5.init函数6.匿名函数 0.创建项目 创建目录 …

基于python深度学习的中文情感分析的系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

备战蓝桥杯---图论基础理论

图的存储&#xff1a; 1.邻接矩阵&#xff1a; 我们用map[i][j]表示i--->j的边权 2.用vector数组&#xff08;在搜索专题的游戏一题中应用过&#xff09; 3.用邻接表&#xff1a; 下面是用链表实现的基本功能的代码&#xff1a; #include<bits/stdc.h> using nam…