【预训练语言模型】K-BERT: Enabling Language Representation with Knowledge Graph

本文主要是介绍【预训练语言模型】K-BERT: Enabling Language Representation with Knowledge Graph,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【预训练语言模型】K-BERT: Enabling Language Representation with Knowledge Graph

核心要点:

  • 融合KG到BERT,并非是embedding融合,而是将KG和原始文本结合形成sentence-tree;
  • 根据sentence tree提出soft-position和visible matrix以避免knowledge noise;
  • K-BERT在中文领域上先预训练(不加KG),然后在fine-tuning(加KG)

简要信息:

序号属性
1模型名称K-BERT
2发表位置AAAI 2020
3所属领域自然语言处理、预训练语言模型
4研究内容知识增强的语言模型
5核心内容Knowledge-enhanced PLM
6GitHub源码https://github.com/autoliuweijie/K-BERT
7论文PDFhttps://ojs.aaai.org//index.php/AAAI/article/view/5681

一、动机

  • 现如今无监督的预训练语言模型在诸多任务上达到SOTA。但是这些方法忽略了引入domain knowledge。由于预训练和微调之间的领域差异(domain-discrepancy),在依赖于knowledge的任务上这些模型的表现并不很好;

Even though they can refresh the state-of-the-art of GLUE (Wang et al. 2018) benchmark by learning from open-domain corpora, they may fail in some domain-specific tasks, due to little knowledge connection between specific and open domain.

  • 引入知识图谱表征并与语言模型的表征进行融合可以实现增强。但是这种knowledge integration存在两个挑战:(1)实体的embedding和word embedding来自不同的语义空间,即异构嵌入空间(Heterogeneous Embed- ding Space,HES);(2)过多地引入knowledge可能会带来大量的噪声Knowledge Noise(KN);

二、方法

  本文提出一种知识增强的预训练语言模型,模型架构如下图所示:

  • Knowledge Layer:对输入的文本,检索相应的三元组,并结合原始文本,将输入转换为sentence tree;
  • Embedding Layer:将sentence tree喂入Emebdding Layer得到token-level embeddng;
  • Seeing Layer:将sentence tree喂入该模块得到visible matrix,对于每个token控制其可见范围,以控制语义的表示;
2.1 Knowledge Layer

  旨在将输入的文本以及对应的KG,将文本转换为sentence tree

  • K-Query:从KG中查询与当前输入文本有关的所有三元组: E = K Q u e r y ( s , K ) E=K_{Query}(s, \mathbb{K}) E=KQuery(s,K)
  • K-Inject:将检索到的三元组,根据其对应的entity mention的position,嵌入到原始的文本中,并生成sentence tree: t = K I n j e c t ( s , E ) t=K_{Inject}(s, E) t=KInject(s,E)
    sentence tree的样例如下图所示:
    在这里插入图片描述
2.2 Embedding Layer

  引入Knowledge Layer得到的是tree结构,因此需要将其转换为序列。转换的方法(re-arrangement):

In our re-arrange strategy, tokens in the branch are inserted after the corresponding node, while subsequent tokens are moved backwards.

例如下图:
在这里插入图片描述

  • Token embdding:选择BERT的embedding和分词方法;
  • Soft-position embedding:改进position embedding,将sentence tree上的节点也进行编号;
  • Segment embedding:与BERT一致;
2.3 Seen Layer

动机: The input to K-BERT is a sentence tree, where the branch is the knowledge gained from KG. However, the risk raised with knowledge is that it can lead to changes in the meaning of the original sentence

  因为将外部知识也直接插入到了原始文本中,避免模型在进行attention计算时,将没有相关联的实体进行计算,因此需要生成一个visible matrix以限制attention的计算范围:
在这里插入图片描述
  限制方法:如果token i i i j j j 属于同一个branch(即 w i ⊖ w j w_i\ominus w_j wiwj),则允许计算它们之间的attention,否则不计算attention。

例如:
● Cook和Apple在同一个分支上,则需要计算attention;
● Apple和China不在同一个分支上,不需要计算attention;
● Cook和Beijing在同一个分支(原始文本序列),需要计算attention

  根据visible matrix,对attention矩阵进行mask,计算过程如下所示:

三、实验

3.1 数据语料

Pre-trained Corpora
  使用两个中文语料:

  • WikiZh:https://dumps.wikimedia.org/zhwiki/latest/
  • WebtextZh:https://github.com/brightmart/nlp_chinese_corpus

Knowledge Graph

  • 复旦知识工场:http://kw.fudan.edu.cn/cndbpedia/intro/
  • HowNet:http://www.keenage.com/
  • MedicalKG:作者自己构建的中文医疗KG

3.2 实验设置

baseline

  • 原始的BERT;
  • 将BERT重新在WikiZh和WebtextZh上进行预训练;
    parameter
  • 所有参数与BERT保持一致;
  • K-BERT的预训练阶段不融入KG,在Fine-tuning和Inference阶段使用KG;

For K-BERT pre-training, all settings are consistent with (Devlin et al. 2018). One thing to emphasize is that we don’t add any KG to K-BERT during the pre-training phase. Be- cause KG binds two related entity names together, thus mak- ing the pre-trained word vectors of the two are very close or even equal and resulting in a semantic loss. Therefore, in the pre-training phase, K-BERT and BERT are equivalent, and the latter’s parameters can be assigned to the former. KG will be enabled during the fine-tuning and inferring phases.

3.3 实验结果

  在若干Open domain Task上进行fine-tuning的结果如下表所示:

在这里插入图片描述

  • KG对于情感分析类任务没有实质的增益;
  • 对于语义相似判断类的任务(NLI等),HowNet更优势;而对于QA和NER类任务,CN-DBpedia更优势;因此对于不同的任务,需要考虑选择相应的KG;

  在若干Specific-domain Task进行fine-tuning的结果如下表所示:

在这里插入图片描述

  • 可知引入KG可以有效提高P、R和F1值
3.4 消融实验:

这篇关于【预训练语言模型】K-BERT: Enabling Language Representation with Knowledge Graph的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_36426650/article/details/122257117
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/255442

相关文章

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确