引言

随着BERT等预训练模型横空出世,NLP方向迎来了一波革命,预训练模型在各类任务上均取得了惊人的成绩。随着各类预训练任务层出不穷,也有部分研究者考虑如何在BERT这一类模型中引入或者强化知识图谱中包含的信息,进而增强BERT对背景知识或常识信息的编码能力。本文主要关注于如何在BERT中引入知识图谱中信息,并survey了目前已公布的若干种方法,欢迎大家批评和交流。

ERNIE: Enhanced Language Representation with Informative Entities

论文链接:https://www.aclweb.org/anthology/P19-1139.pdf这篇论文来自于清华刘知远老师和华为刘群老师,已被ACL2019所录取,是较早的考虑将知识引入预训练模型的论文。该论文主要利用了从知识库中提出的高信息量的实体信息,通过特殊的语义融合模块,来增强文本中对应的表示。首先本文通过实体链接算法,将Wikipedia文本中包含的实体与Wikidata中的实体库构建关联,然后采用TransE算法,对Wikidata中的实体embedding进行预训练,进而得到其初始的表示;之后本文采用一个特殊的信息融合结构,其模型框架如下图所示:从图中可以看出,ERNIE的框架分为以下两部分,T-Encoder和K-Encoder,以上两部分均使用BERT的Transformer框架,并利用其中的参数进行初始化。其中Wikipedia中的每一句话首先被输入给T-Encoder,其通过Transformer的多头注意力机制对文本中的信息进行编码;之后输出的表示与其内部包含的实体被一起输入给了K-Encoder,其内部包含两个多头注意力层以分别对文本信息和实体信息进行编码;编码后实体信息会得到两种表示——词级别和实体级别的表示,ERNIE通过将两种信息concat之后输入给DNN层,进而融合得到知识增强的表示;为进一步促进该部分融合,ERNIE采用一个denoising entity auto-encoder (dEA)来对该部分进行监督,其采用类似于BERT中的Mask机制,基于一定的概率对其中的实体进行mask或替换,然后还原该部分实体信息。在采用以上过程预训练后,本文将ERNIE在多个NLP任务上进行微调,并在多个数据集上获得了State-of-the-art的结果。

K-BERT: Enabling Language Representation with Knowledge Graph

论文链接:https://arxiv.org/pdf/1909.07606v1.pdf这篇论文来自于北大和腾讯,已被AAAI2020所录取,是较早的考虑将知识图谱中的边关系引入预训练模型的论文。该论文主要通过修改Transformer中的attention机制,通过特殊的mask方法将知识图谱中的相关边考虑到编码过程中,进而增强预训练模型的效果。首先本文利用CN-DBpedia、HowNet和MedicalKG作为领域内知识图谱,对每一个句子中包含的实体抽取其相关的三元组,这里的三元组被看作是一个短句(首实体,关系,尾实体),与原始的句子合并一起输入给Transformer模型;针对该方法,本文采用基于可见矩阵的mask机制,如下图所示:从图中可以看出,输入的句子增加了许多三元组构成的短句,在每次编码时针对每一个词,模型通过可视矩阵(0-1变量)来控制该词的视野,使其计算得到的attention分布不会涵盖与其无关的词,进而模拟一个句子树的场景;由于该策略仅仅改动了mask策略,故其可以支持BERT,RoBERTa等一系列模型;该方法最终在8个开放域任务和4个特定领域任务下取得了一定的提升。

KEPLER: A Unified Model for Knowledge Embedding and Pre-trained Language Representation

论文链接:https://arxiv.org/pdf/1911.06136.pdf这篇论文来源于清华和Mila实验室,其主要关注于如何使用BERT增强知识图谱embedding,并帮助增强对应的表示。该论文主要通过添加类似于TransE的预训练机制来增强对应文本的表示,进而增强预训练模型在一些知识图谱有关任务的效果。首先本文基于Wikipedia和Wikidata数据集,将每个entity与对应的维基百科描述相链接,则每个entity均获得其对应的文本描述信息;之后对于每一个三元组——,本文采用基于BERT对encoder利用entity的描述信息,对每个实体进行编码,如下图所示:从图中可以看出,在通过encoder得到头实体和尾实体对应的表示之后,本文采用类似于TransE的训练方法,即基于头实体和关系预测尾实体;此外本文还采用BERT经典的MLM损失函数,并使用RoBERTa的原始参数进行初始化;最终本文提出的方法在知识图谱补全和若干NLP任务上均带来了增益。

CoLAKE: Contextualized Language and Knowledge Embedding

论文链接:https://arxiv.org/pdf/2010.00309.pdf这篇论文来源于复旦和亚马逊,其主要关注于如何使用知识图谱以增强预训练模型的效果。本文首先将上下文看作全连接图,并根据句子中的实体在KG上抽取子图,通过两个图中共现的实体将全连接图和KG子图融合起来;然后本文将该图转化为序列,使用Transformer进行预训练,并在训练时采用特殊的type embedding来表示实体、词语与其他子图信息,如下图所示:最终本文将文本上下文和知识上下文一起用MLM进行预训练,将mask的范围推广到word、entity和relation;为训练该模型,本文采用cpu-gpu混合训练策略结合负采样机制减少训练时间;最终本文提出的方法在知识图谱补全和若干NLP任务上均带来了增益。

Exploiting Structured Knowledge in Text via Graph-Guided Representation Learning

论文链接:https://arxiv.org/pdf/2004.14224.pdf这篇论文来源于悉尼科技大学和微软,其主要关注于如何使用知识图谱增强预训练模型。本文思路比较简洁,其提出了一个基于entity的mask机制,结合一定的负采样机制来增强模型。首先对于输入的每一句话,本文首先进行实体链接工作,得到其中的entity,并从知识图谱conceptnet和freebase中召回其邻接的三元组;本文利用一个特殊的权重,防止在mask时关注于句子中过于简单和过于难的entity,这样模型在entity-level MLM训练时就关注于较为适合学习的信息;此外本文还引入了基于知识图谱的负采样机制,其利用relation来选择高质量的负例,以进一步帮助训练;最终本文提出的方法在知识图谱补全和若干NLP任务上均带来了增益。

K-ADAPTER: Infusing Knowledge into Pre-Trained Models with Adapters

论文链接:https://arxiv.org/pdf/2002.01808v3.pdf这篇论文来源于复旦和微软,其考虑自适应的让BERT与知识相融合。这篇论文考虑如何通过不同的特殊下游任务来帮助向预训练模型融入任务相关的知识。首先本文针对不同的预训练任务,定义了对应的adapter;在针对具体的下游任务进行fine-tune时,可以采用不同的adapter来针对性的加入特征,进而增强其效果;如下图所示:基于该思想,本文提出了两种特殊的adapter,分别利用factor knowledge和linguistic knowledge;针对这两个adapter,本文提出了针对entity之间的关系分类任务和基于依存关系的分类任务;再fine-tune阶段,两个adapter得到的特征可以与BERT或RoBERTa得到的特征一起拼接来进行预测,该策略在三个知识驱动数据集上均取得了较大增益。

Integrating Graph Contextualized Knowledge into Pre-trained Language Models

论文链接:https://arxiv.org/pdf/1912.00147.pdf这篇论文来自于华为和中科大,其主要关注于如何将上下文有关的知识信息加入到预训练模型里。这篇论文的思想类似于graph-BERT和K-BERT,其针对给出文本首先检索返回相关的entity三元组,再在知识图谱上搜集其相邻的节点以构成子图;然后将该子图转换成序列的形式,输入给传统的Transformer模型(类似graph-BERT),通过特殊的mask来约束注意力在相邻节点上(K-BERT);最后用类似于ERNIE的策略将子图中的信息加入到Transformer中;最终该模型在下游的几个医疗相关数据集上取得了增益。

JAKET: Joint Pre-training of Knowledge Graph and Language Understanding

论文链接:https://arxiv.org/pdf/2010.00796.pdf这篇论文来自于CMU和微软,其主要关注于如何同时对知识图谱和语言模型一起预训练。本文使用RoBERTa作为语言模型对文本进行编码,增加了relation信息的graph attention模型来对知识图谱进行编码;由于文本和知识图谱的交集在于其中共有的若干entity,本文采用一种交替训练的方式来帮助融合两部分的知识,如下图所示:可以看出,语言模型得到的信息会首先对输入文本以及entity/relation的描述信息进行编码,以得到对应的表示;之后语言模型得到的entity embedding会被送给R-GAT模型以聚合邻居节点的信息,以得到更强的entity表示;然后该部分信息会被输入给语言模型继续融合并编码,以得到强化的文本表示信息;为了训练该模型,本文还采用embedding memory机制来控制训练时梯度的更新频率和优化目标的权重,并提出四种特殊的损失函数来进行预训练;最终本文提出的模型在多个知识驱动的下游任务均取得较好效果。4c2696a7-251d-eb11-8da9-e4434bdf6706.png

raft论文 中文 pdf_八篇论文总结BERT+KG:预训练模型与知识图谱相结合的研究进展...相关推荐

  1. 腾讯AI八篇论文入选顶级医学影像会议MICCAI ,涉及病理癌症图像分类等

    感谢阅读腾讯AI Lab微信号第87篇文章.本文将解读2019年医学影像AI领域国际顶会MICCAI中腾讯AI的入选论文. 医学影像AI领域的国际顶会 MICCAI 2019 将于10月13-17日在 ...

  2. 医学图像分类_腾讯八篇论文入选顶级医学影像会议MICCAI ,涉及病理癌症图像分类等...

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  3. 计算机ccf a类论文,我院师生3篇论文被CCF-A类会议KDD(2020)录用

    会议介绍: ACM SIGKDD(国际数据挖掘与知识发现大会,简称KDD)是数据挖掘领域的顶级国际学术会议,由美国计算机学会(ACM)数据挖掘及知识发现专委会(SIGKDD)主办,被中国计算机学会(C ...

  4. 论文浅尝 | 采用成对编码的图卷积网络用于知识图谱补全

    笔记整理:姚祯,浙江大学在读硕士,研究方向为知识图谱表示学习,图神经网络. 论文引用:Liu S, Grau B, Horrocks I, et al. INDIGO: GNN-based induc ...

  5. 论文浅尝 | 基于深度强化学习将图注意力机制融入知识图谱推理

    论文笔记整理:陈名杨,浙江大学直博生. Introduction 知识图谱(KGs)在很多NLP的下游应用中起着越来越重要的作用.但是知识图谱常常是不完整的,所以解决知识图谱补全的任务也非常重要.主要 ...

  6. 直播 | ACL 2021论文解读:基于对抗学习的事件抽取预训练模型

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  7. 通过图注意力神经网络进行多智能体游戏抽象_[读论文] AttnPath: 将图注意力机制融入基于深度强化学习的知识图谱推理中...

    论文原文:Incorporating Graph Attention Mechanism into Knowledge Graph Reasoning Based on Deep Reinforcem ...

  8. 【论文精度】CodeBERT——基于自然语言和编程语言的预训练模型

    CodeBERT 论文地址:https://arxiv.org/abs/2002.08155 Abstract ​ 提出了一种用于编程语言(PL)和自然语言(NL)的双模态预训练模型CodeBERT, ...

  9. Neo4j 实战篇(一)基于Py2Neo构建电影知识图谱

    运行环境 windows11 JDK 8 anaconda3 python 3.9 Neo4j 3.5.32 python jupyter库 py2neo Visual Studio Code 202 ...

最新文章

  1. pythonurllib标准_Python标准库urllib2的一些使用细节总结
  2. 【C++】多态(早期绑定、后期绑定)、抽象类(纯虚函数)、虚析构函数
  3. 每日一皮:和女朋友争吵与阅读软件许可协议之间的共同点...
  4. 计算机应用基础期末考试电大,(电大)期末考试2017年广播电视大学网考《计算机应用基础》重点复习题目汇总版(理论题及操作题)...
  5. 用户user空间和内核kernel空间
  6. 【SpringBoot零基础案例07】【IEDA 2021.1】多环境下.yml/.yaml配置文件的使用
  7. java agent技术原理及简单实现
  8. (转)使用Spring的注解方式实现AOP的细节
  9. EventBus 使用介绍
  10. uni-app加载中,加载结束
  11. 浅谈YOLOV2与YOLOV3
  12. 深度学习面试题100题
  13. 【Linux】一步一步学Linux——ssh-keygen命令(178)
  14. Linux服务器操作系统查看命令
  15. 使用本地代理拦截网址及重定向
  16. 百度旋转验证码(8-24,js逆向)
  17. 北斗导航 | ARAIM算法初探:使用精密单点定位(PPP)技术的ARAIM:解分离
  18. 天津市儿童计算机编程课,天津2021少儿编程(少儿机器人编程是什么)
  19. MySQL数据库常见错误及解决方案
  20. 安装达梦数据库后LD_LIBRARY_PATH如何设置?

热门文章

  1. matlab拟合函数,Matlab拟合自定义函数 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  2. Python基础教程:上下文管理器 context manager(with...as...)
  3. python最大公约数和最小公倍数
  4. linux 内存清理 释放命令,Linux系统中的内存清理和释放命令总结
  5. 什么是标准输入,标准输出(stdin,stdout)
  6. 【程序员の英文听写】Trump’s Totally Not Weird Way of Standing | The Daily Social Distancing Show
  7. python 怎么快速分辨一个numpy矩阵(数组)是几维的?
  8. Python爬虫西安七天天气预报
  9. java list移除所有元素,从List中移除指定 List 中包含的其所有元素(可选操作)。...
  10. python sys模块讲解_python模块之sys模块和序列化模块(实例讲解)