BertNet、RoBertaNe

news2025/5/30 14:30:15

又带来了可扩展、可解释,从预训练语言模型中高效提取知识图谱的新框架

来自加州大学圣迭戈分校(UCSD)、卡内基梅隆大学(CMU)等机构的研究者提出了一种自动知识抽取框架,可以从 BERT 或 RoBerta 等预训练语言模型中高效且可扩展地提取知识图谱。

知识图谱 (KG) 是表示知识的一种形式,通常由头尾实体及其关系的三元组构成。它被广泛应用在各个领域,包括搜索引擎、推荐系统、聊天机器人和医疗保健。传统的知识图谱是通过昂贵的众包(例如 WordNet, ConceptNet, ATOMIC)构建的。尽管最近的研究探索了使用文本挖掘技术来自动构建知识图谱,但由于需要庞大的语料库和复杂的处理流水线,这仍然是一项具有挑战性的任务。此外,文本挖掘的一个不可避免的缺点是抽取的关系仅限于所选语料库所涵盖的关系。例如,许多常识性的知识并不会在人类语言中被显式地表达,因此从语料库中提取它们并不是一件容易的事。自动构建包含有“任何关系”的知识图谱仍然是一个未经探索的领域。

随着神经网络的发展,越来越多的神经网络模型在不同领域的任务上取得优异的表现,例如使用 GPT-3 和 ChatGPT 进行语言建模,以及使用 bioBERT 进行医学预测。在训练过程中,这些模型可以将从数据中学到的知识隐式地存储在它们的参数中。例如,在大规模医疗记录上训练的医学模型可能已经获得了丰富的医学知识,使其能够准确预测疾病。同样,流行病预测模型可能已经从训练数据中隐含地学到了某些传播模式。

最近的研究试图利用语言模型作为知识库 (Language model as knowledge base)。例如,使用手动或自动生成的提示(例如,“奥巴马出生于 __”)来查询语言模型获得答案(例如,“夏威夷”)。但是,语言模型的知识仅仅隐式编码于参数,使得这样的知识库缺乏了知识图谱的优良属性,例如对知识进行复杂查询或是更新。这就引出了一个问题:我们能否自动从语言模型中获取知识图谱,从而结合两者的优点,即语言模型的灵活性和可扩展性,以及知识图谱的易于查询、可编辑性和可解释性?

为实现这一目标,我们提出了一种自动知识抽取框架,能够从 BERT 或 RoBerta 等预训练语言模型中高效且可扩展地提取知识图谱,从而构建一系列新的知识图谱(例如 BertNet、RoBertaNet),相比于传统的知识图谱,能够支持更广泛和可扩展的关系和实体。

  • 论文地址:https://arxiv.org/abs/2206.14268

  • 项目地址:https://github.com/tanyuqian/knowledge-harvest-from-lms

  • demo地址:https://lmnet.io/

图1:项目demo的截图,用户可以自定义关系进行查询

从语言模型中获取知识图谱的框架

我们首先定义希望解决的问题:给定用户对于一个关系的描述,我们希望从语言模型中获取该关系的实体对。在我们的框架中,关系被描述为一个带有空槽的提示(prompt),并且通过一些示例实体 (seed entity tuple) 对进一步消除歧义。有了这些输入,我们的框架可以输出实体对列表以及它们对应的置信度(可参考图1中demo的效果)。

兼容性分数

在我们深入介绍抽取知识所需的两个主要阶段之前,我们先介绍提示和实体对之间的兼容性分数。

以 BERT 为例,评分函数中的第一项表示将实体对 (h, t) 填充到提示 p 中的空槽的预测概率。通常,这个联合条件概率是以自回归方式计算的。此外,我们还想确保每一步的概率不会太低,这就是对分数第二项的直观理解。一个具体的例子如图 2 所示,其中 p=”A is the place for B”,h=”library”,t=”study”。我们还介绍了如何处理 h=“study room” 的多单词 (multi-token) 实体。

 

图2:兼容性分数的计算示例

有了这个兼容性分数,我们接下来介绍从语言模型中获取知识图谱的流程(图 3),它可以分为两个主要阶段:提示构建 和 实体对搜索。

第一阶段:提示构建

语言模型的一个已知的问题是它们对于提示非常敏感。有时,即使措辞上的细微差别也会导致预测结果发生巨大变化。为此,我们希望生成初始输入提示的多个同义改写,并使用它们来约束语言模型的输出。

在具体实现中,我们迭代地对实体元组和提示进行采样,拼装成一个语句并对其进行同义改写(具体来说,我们使用了GPT-3的API)。该过程如图2的左侧所示。生成的提示可能存在语义漂移,因此我们使用一个提示与所有示例实体对之间的平均兼容性分数进行加权,并且在所有提示中使用 softmax进一步归一化权重,这样我们就可以得到一个带有权重的提示集合,作为对一个关系更可靠的描述。

第二阶段:实体对搜索

我们在接下来这一阶段的目标是搜索实体对。搜出的实体对应该与加权提示集拥有较高的兼容性。

如果直接穷举搜索实体对,搜索空间将会过于庞大。作为一种近似的方法,我们在搜索实体对时只考虑最小单步概率(兼容性函数的左侧一项,简写为MLL)而不是完整的函数。这个近似的评分函数让我们可以在搜索时进行高效的剪枝。

作为一个例子:当我们想搜索100个实体对的时候,我们需要维护一个容量为100的最小堆,保存目前为止搜到的MLL最小的100个实体对。堆顶的元素可以作为接下来搜索的一个阈值,因为这是目前搜索到的第100大的MLL。在接下来的搜索中,一旦我们发现在任何一步的概率低于这个阈值,我们都能立刻放弃接下来的搜索,因为接下来搜到的实体的MLL都会小于这个值。如果直到完整搜索出一个实体对都没有被剪枝,我们就弹出堆顶的元素并且把新搜到的实体对的MLL推入堆。

一旦我们收集了足够数量的实体对,我们会用完整的一致性评分函数重新排序,并将其视为置信度。根据置信度,我们尝试使用不同的截断方法来获得最终的知识图谱:(1) 50%: 取搜出实体对置信度排名前一半的。(2)base-k: 对于不同的关系,有效的实体对数量应该是不同的。例如,对于“capital of”这个关系,正确的实体对不应该超过200个,因为全世界国家的数量只有这些。我们设计了一种针对关系的截断方法:取排名第k位的实体对的置信度,乘以百分之10,并且只保留置信度比这个数值更大的实体对。我们将这样获得的知识图谱加上base-k的下标。

抽取出的知识图谱

不同于传统的知识图谱,一旦接受到新的查询,BertNet就可以被扩展。本质上,BertNet的大小没有极限。为了评价我们的框架,我们将这个框架用于ConceptNet的关系集合,以及一个作者们创作的新颖关系集合(例如:capable but not good at),构建出相应的知识图谱。

 

表1:不同知识图谱的统计结果

仅仅使用语言模型作为知识的来源,并且不使用任何训练数据的情况下,我们的框架可以抽取出准确并且多样的知识(表中其他知识图谱构建方法和我们的设置不同,因此数值无法被直接比较)。通过选取不同的截断方法,我们还展示了RobertaNet的大小和准确率的权衡。

总结

在这项工作中,我们提出了一个从语言模型自动抽取知识图谱的框架。它可以处理任意用户输入的关系,并且以高效和可扩展的方式进行知识抽取。我们在两组关系上构建了知识图谱,证明了语言模型不加以外界资源就已经是一个非常有效的知识来源。我们的框架还可以作为对于语言模型的符号解释,为分析语言模型的知识储备提供了工具。     whaosoft aiot http://143ai.com  

 

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

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

相关文章

fpga实操训练(利用fpga实现pwm)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 pwm,其实就是方波。它的本质就是通过方波中占空比的调节,实现对外部设备的控制。简单如台灯,复杂如电机都是这么…

【Java系列】小小练习——带你回顾Java基础语法

返回主篇章         👇 【Java】才疏学浅小石Java问道之路 Java小练习1. 练习一1.1 题目1.2 题解(附解析)2. 练习二2.1 题目2.2 题解(附解析)3. 练习三3.1 题目3.2 题解(附解析)小结1. 练习一 1.1 题目 定义三个变量,分别为人物性别、年龄、身高…

Python-实战:基于白鲸优化BWO算法的VMD超参数优化

目录 1、白鲸优化算法 2、BWO优化VMD参数 3、实战 3.1 原始时间序列数据 3.2 VMD分解--直接设置参数 3.3 采用BWO优化VMD 4、代码 在博客的基础上,本文利用白鲸优化算法对VMD的参数进行优化,采用python实现。 1、白鲸优化算法 白鲸优化算法([Beluga…

【Python】自动备份脚本

文章目录一、前言二、代码一、前言 之前因为疫情常常不知道会不会被封在家里,又不想把电脑带过来带过去,就做了这个自动备份的脚本。 功能如下: 自动从指定根目录里将找到的所有指定后缀名的文件备份到一个备份文件夹里;将备份…

ImageAdaptive-YOLO

又发现了一个yolo~~ 恶劣天气下的目标检测 也叫IA-YOLO 源代码:https://github.com/wenyyu/ImageAdaptive-YOLO 尽管基于深度学习的目标检测方法在传统数据集上取得了可喜的结果,但从恶劣天气条件下捕获的低质量图像中定位目标仍然具有挑战性。现有方…

三顾茅庐,七面阿里,25k*16offer,还原我的大厂面经

写在片头:声明,勿杠 首先简单说一下,这三次面试阿里并不是一次性去面的,实际上第一次面试时候还在大四,找的实习岗,不太清楚是什么部门,别问我为什么还记得面试题,有记录和复盘的习…

C++Easyx世界杯版跑酷小游戏

🐑本文作者:克隆窝🐑 🎮🔊本文代码适合编译环境:DEV-C💻 ✨🧨温馨提示:此文乃作者心血,如要转载请标注版权,否则视为抄袭!&#x1f38…

计算机毕设Python+Vue羊肉溯源系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python图形用户界面(GUI)之PyQt6入门及转换视频格式示例

上篇文章中学习的wxPython用户界面,没有拖拽组件等操作,不是很方便,下面来看个更加强大的GUI>PyQt系列,拥有拖拽组件界面,这样设计界面就显得非常简单与方便了。Qt库由 Riverbank Computing开发,是最强大…

【Linux】版本控制器Git

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉Git概述&a…

Pytorch~单卡改多卡

搬来了这个,这是尝试单卡改多卡加速的过程中出现的bug记录:一是继承DistributedSampler的漏洞百出,二是master进程无法正常结束,这里详细的阐述了出错的细节以及给出了修改的方法。 先说明一下背景,目前正在魔改以下这篇论文的代…

JavaScript 中事件循环(eventloop)、垃圾回收机制、闭包、递归函数的理解及示例

事件循环(eventloop) 概念 js 是单线程,为防止阻塞代码,把同步代码交给 js 引擎执行 异步代码交给宿主环境, 同步代码放入执行栈中 异步代码等待时机送入任务队列中, 执行栈执行完毕 会去任务队列看是否有异步任务 有就送到执行…

Postman核心功能解析-参数化和测试报告

参数化处理 参数化:针对于某一个接口,有大量的的测试数据需要批量验证,一个一个的更改请求参数太耗时耗力,使用参数化批量处理数据会比较高效,常规通过文档参数化实现。 创建文件 格式CSV 文件内第一行信息 需要和参数…

谈谈转行数据分析以及工作的心得

由于两个月前写了一篇文章叫《自己找数据分析师时犯的错误》,然后这期间就一直有人问我找到工作了吗?面试的时候,面试官都是问你的什么呢?你从事数据分析工作之后主要干什么呢?所以想在这里为大家分别解答下。 首先回…

【Linux】编译器gcc / g++的使用

​🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉gcc / g的…

快速玩转ChatGPT全攻略

本文内容: 准备工作。 注册接嘛平台。 注册OpenAI账号。 开始畅聊。 一.准备工作: Proxy,美国,日本,韩国,新加坡,印度,不能用香港。 Chrome浏览器。 二、注册接嘛平台&#x…

在ARM微控制器上部署MATLAB/Simulink仿真模型

在ARM微控制器上部署MATLAB/Simulink仿真模型 苏勇,suyong_yq126.com,2022年12月 文章目录在ARM微控制器上部署MATLAB/Simulink仿真模型IntroductionOverviewMATLAB、Simulink、StateFlow、Real-Time Workshop之间的关系MATLAB Coder、Simulink Coder、…

最新版Android原生集成RN

前言 现在不少应用都是采用了混合开发模式,不论是原生加RN,或是原生加Flutter,或是原生加H5。原生实现主业务线,其他部分可以借助跨平台方案开发,提高开发效率,或者实现热更新,调高业务迭代效率。 下面简单介绍一下A…

如何调整参数来更好地使用频谱分析仪

前言 使用频谱分析仪,最简单最直观的目的就是寻找并观测范围内的频谱信号,乃至将其保存下来做更进一步的数字处理或分析。因此在除了最基本的中心频率与扫宽设置外,合理使用VBW,RBW等参数设置才能获取更为真实准确的信号。 图一 合理调整参数…

Diffusion Model合集 part3

扩散模型原理介绍3八,Diffusion Probabilistic Model的算法代码而我们可以有多种建模目标:Lt−1Eq[12σt2∣∣μt∼(xt,x0)−μθ(xt,t)∣∣2]CL_{t-1}\mathbb{E}_{q}\left[\frac{1}{2\sigma_{t}^{2}}||\overset{\sim}{\mu_{t}}(\mathbf{x}_{t},\mathbf{…