文:Sherry

今天给大家带来的是一篇号称可以自动建立知识图谱的文章《Language Models are Open Knowledge Graphs》,文中提出了一个叫Match and Map(MAMA)的模型,无需人工!无需训练!只需语料和预训练好模型,就可以从头建立出知识图谱,甚至可以挖掘出人类发现不了的新关系。当Wikipedia再次邂逅BERT,知识图谱就诞生啦!

通常来说知识图谱的建立需要人工定义好的关系或者是实体类别,然后基于这些我们称之为schema的骨架进行建立整个图谱。而传统的自动识别关系及实体的方法大都基于训练。而MAMA就不一样了,它就像妈妈一样可以帮我们实现全自动图谱建立:

  • 不需要人工定义的schema,而是依靠开放实体抽取和开放关系抽取的方法去建立图谱。

  • 不需要在开放关系抽取或者实体抽取的任务上训练,而仅仅依靠预训练模型就可以完成建立知识图谱的整个过程。

  • 模型不针对一个单一的关系逐条分析,一次喂给MAMA整个段落,她就回报给你所有triple

到底是怎么做到的呢?

开放知识图谱

想要建立MAMA,我们先回顾一下知识图谱中都有哪些基本元素:(熟悉知识图谱的同学们可以跳过这部分)知识图谱,我们想要把大量的非结构化的知识(一般是大量的网页及其中的文本)转化成结构化的图结构,那我们的基本结构中既要有知识也要有图。目前,知识图谱中一共储存两类知识:一类是实体,一般是诸如人名地名这类的名词;另外一类是这些实体之间的关系,比如出生地,职业。有了知识,我们只需要把它建立成图结构,那么把实体看成图中的点,关系看成图中的边就可以了。开放知识图谱一般用三元组(起始实体,关系,结束实体)来表示边,所有边都被以这个形式储存之后图谱就建立好啦。

MAMA怎样构建图谱呢?

要构建知识图谱第一步是获取基本原料:一个清洗好的语料库和一个预训练模型。 文中直接采用了维基百科作为语料,预训练模型则直接用发布的模型就可以了。

接下来关键的一步是自动抽取三元组,也是本文的主要贡献点。 实体抽取的技术已经相对成熟,给定一个语料中的段落,我们先用开源工具抽取出它的所有实体,来构成我们可能建立的关系候选。我们按照他们在句子中出现的顺序,分为头实体和尾实体。然后重点来了!我们利用BERT这类预训练模型的注意力权重来提取实体间的关系。

对于一个(头实体,尾实体)对,我们用Beam search的方法从一个头实体出发生成一个到尾实体的序列。比如图中从Dylan出发,以songwriter结束。对于每一位置,我们看注意力权重矩阵里attend到这个实体的这一列,并且只关注在句子中当前位置之后的token的注意力权重,选择权重最大的下一个token加入当前序列。例子中从Dylan出发选择了is这个token,然后重复之前的操作,下一个我们选到了songwriter,那么搜索结束,我们就得到了一个(Dylan,is, songwriter)的序列。聪明的小伙伴们已经发现了,这样提取出来的序列不就是我们想要的三元组吗?没错!我们再加上一些修修补补,MAMA就可以为我们完成构建图谱的工作啦!

按上面这样选出来的序列虽然可以简要表示我们所需要的信息,但它还不是严格意义上的关系三元组——我们有可能提取出多个token作为关系,文中针对这个问题对关系提取加入了一些限制:

  • 首先,我们只保留注意力权重和大于阈值的序列。这是为了防止BERT这类模型单纯地提取出符合语言模型的序列,而不是那些对实体有特殊意义的关系。

一个反例:在阈值筛选之前,模型会从句子 Rolling Stone wrote: “No other pop song has so thoroughly challenged artistic conventions” 中抽取关系(Rolling Stone, wrote, pop song)

  • 提取出来的关系必须在整个语料中出现足够多的次数。这样是为了防止出现一些过于细节偏门的关系。

例如 (Dylan, signed to Sam Peckinpah’s film, Pat Garrett and Billy the Kid),这里的关系特指签约了Sam Peckinpah的电影,非常罕见且缺乏泛化性。

  • 关系序列必须是句子中出现的连续token。这样可以防止提取出没有意义的关系。

例如(Rolling Stone, wrote challenged, conventions),这里wrote 和chanllanged不表示合理的关系。

现在,我们就已经可以用MAMA从语料库中建立一个知识图谱啦!

MAMA效果如何?

为了方便和其他方法比较,我们需要把这个开放图谱和已有的数据集对应上。使用已经比较成熟的实体链接,关系映射方法就可以了。

这样造出来的MAMA无论在准确率还是召回率上都超过了之前的方法。

除了那些可以被对应到人造数据集中的关系之外,MAMA的一大亮点在于她可以发现其他没有被schema预先定义的关系:

图中蓝色的关系是在预定义schema中出现的部分,MAMA额外还生成了33%的新关系(黄色)。其中像Dylan和其他歌手曾经合作过,曾经是某个乐队的成员等,这样的信息是人工schema中所没有的,但对于歌手来说却是很重要。如果可以自动完善知识图谱和schema的构建,那就解决了KG中很难穷尽所有关系的难题了。

一些评价

个人认为,MAMA的整体思想还是很新颖且值得借鉴的。但是实验部分以及一些细节上的设置还需要更精细的设置。一大缺陷在于他没有和其他的SOTA进行比较,效果尚未可知。总体来说,为自动化的知识图谱构建提供了一个不错的思路。

论文链接:
https://arxiv.org/pdf/2010.11967.pdf

讲解视频:
https://www.youtube.com/watch?v=NAJOZTNkhlI&t=276s

萌屋作者:Sherry

本科毕业于复旦数院,转行NLP目前在加拿大滑铁卢大学读CS PhD。经历了从NOIer到学数学再重回CS的转变,却坚信AI的未来需要更多来数学和自认知科学的理论指导。主要关注问答,信息抽取,以及有关深度模型泛化及鲁棒性相关内容。

作品推荐:

  1. Google Cloud TPUs支持Pytorch框架啦!

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

有顶会审稿人、大厂研究员、知乎大V和妹纸

等你来撩哦~

无需人工!无需训练!构建知识图谱 BERT一下就行了!相关推荐

  1. 你负责人工智能哪部分?人工那部分:知识图谱的构建主要靠人工还是机器?...

    来源:学术头条 本文共4400字,建议阅读10+分钟. "论道知识图谱:知识赋能智能与智能产生知识" 大家都知道当前知识图谱是在当前人工智能领域一个备受关注的分支中有一个分类叫做& ...

  2. 自底向上构建知识图谱全过程

    http://www.sohu.com/a/245246344_160850 阿里妹导读:知识图谱的构建技术主要有自顶向下和自底向上两种.其中自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据 ...

  3. 通俗讲解自底向上构建知识图谱全过程

    知识图谱的基础介绍,供学习参考. 转载自:https://mp.weixin.qq.com/s/7cBbtqvPQUVrLZUNDx8XDQ 知识图谱的构建技术主要有自顶向下和自底向上两种.其中自顶向 ...

  4. 技术动态 | 自底向上构建知识图谱全过程

    本文转载自公众号:阿里技术. "The world is not made of strings , but is made of things." --辛格博士,from Goo ...

  5. 斯坦福大学CS520知识图谱系列课程学习笔记:第二讲如何构建知识图谱

    上一讲我们学习了知识图谱的一些基本概念: 斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱 本节课程关于如何构建知识图谱,因为知识图谱的构建是整个知识图谱领域的一个非常核心且基础的工 ...

  6. 从零构建知识图谱-第二章知识图谱技术体系

    目录 一.知识表示与知识建模 1.知识表示的概念 (1)知识表示的五种角色 (2)综合描述 2.知识表示的方法和形式 (1)描述逻辑 (2)描述语言 3.知识建模 (1)知识建模的主要分析过程 (2) ...

  7. oracle 方泽宇_斯坦福大学CS520知识图谱系列课程学习笔记:第二讲如何构建知识图谱...

    上一讲我们学习了知识图谱的一些基本概念:泽宇:斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱​zhuanlan.zhihu.com 本节课程关于如何构建知识图谱,因为知识图谱的构建 ...

  8. 详解自下而上构建知识图谱全过程(转载)

    导读:知识图谱的构建技术主要有自顶向下和自底向上两种.其中自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库里.而自底向上构建,则是借助一定的技术手段,从公开 ...

  9. 一文揭秘!自底向上构建知识图谱全过程

    阿里妹导读:知识图谱的构建技术主要有自顶向下和自底向上两种.其中自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库里.而自底向上构建,则是借助一定的技术手段, ...

最新文章

  1. Python学习 day01打卡
  2. JAVA的System.out.println和System.out.printf之间有什么区别?
  3. 在Android NDK中使用OpenSSL
  4. “我的代码正在被千百万人使用”,MySQL 之父等六大国际数据库掌门人谈如何做数据库
  5. 软件设计的七大原则——超详细
  6. JN5169 ZigBee 3.0 协议栈之 ZigBee 网络参数
  7. 云闪付华为P9指纹_华为云闪付app下载-华为云闪付 安卓版v9.0.11.301-PC6安卓网
  8. 组策略怎么禁用计算机管理,如何有效禁止组策略的运行
  9. 大量STATSPACK数据统计分析
  10. e-r数据建模-概念模型 逻辑模型 物理模型-总结
  11. python-pandapower电力系统短路电流计算(算例3:探索一天的最佳电网运行方式))
  12. IPv6进阶:IPv6 过渡技术之 NAT64(IPv6 节点主动访问 IPv4 节点-地址池方式)
  13. python解常微分方程龙格库_求解二阶常微分方程的RungeKutta四阶方法
  14. 如何正确应对面试最后一问:你有什么问题想问我吗?
  15. NISP一级考试题目复习
  16. 2019年18种最有效推广的方式
  17. 【中国寒龙出品】VB程序设计视频教程讲座第二十七课,欢迎各位订阅感谢朋友们的支持...
  18. 灰点工业网口相机多相机同时使用
  19. 在软件开发中实施人工智能和敏捷管理的9种方法
  20. Assetizr(图片快速处理软件)v2.1.1官方版

热门文章

  1. What code you will get when you create a wcf library
  2. 在ASP程序中访问Access数据库
  3. [网站seo优化] 史上最全增加外链的方法!
  4. javascript之嵌套函数
  5. 怎么用VC编程实现把用户名,密码提交到网页上并且实现登录?
  6. 一文读懂 | 进程并发与同步
  7. adb打开网页_android 使用指定浏览器打开网页
  8. 在统计学中参数的含义是指_《统计学》名词解释及公式
  9. 【Pytorch神经网络实战案例】14 构建条件变分自编码神经网络模型生成可控Fashon-MNST模拟数据
  10. 【Pytorch神经网络基础理论篇】 02 pytorch环境的安装