这一讲的主题是:一些高级的知识图谱是什么样的。三位讲者分别从他们各自带领的团队构建出来的高质量的知识图谱实例出发,从中我们可以认识到一些大佬们构建的优秀的知识图谱产品有哪些特点和优势,从中对我们自己构建知识图谱也可以得到一定的启发。

1 Diffbot 知识图谱

第一位讲者是来自Diffbot公司的CEO,他们公司的目标就是建立世界上第一个全面的人类知识图谱,并且他们认为实现这一目标唯一有效的方法就是全自动化构建知识图谱。

讲者团队构建的知识图谱名为Diffbot,所有数据都来源于公网并采用爬虫技术得到这些数据,这个知识图谱的规模大到包括超过100亿实体和高达惊人的1万亿事实。并且,这个知识图谱由于是自动化构建的,支持动态更新,每月可以自动增加1.5亿的实体。知识图谱中实体类型最多的是:人、组织、地点、产品、时间、文章等等,从这些经过排序后的实体可以发现在生活中人们最关心的事情是什么。构建Diffbot需要大约2000个CPU核,可见一般人也搞不起来这么大规模的知识图谱。

接下来,讲者为我们介绍了如何利用机器学习技术来构建Diffbot知识图谱,在整个构建pipeline中用到了50/60种机器学习算法,这里,主要讲解流程中的几个关键组件,包括:

Page type classification:用机器学习种的分类算法,对网络爬取种的每个页面进行分类,比如对图中的页面将其分类为人、产品、事件等类型,精度达到97%,高于人工分类的精度。

Visual extraction:讲者介绍他们是第一个在知识图谱构件中考虑了视觉信息抽取,比如在图片中找到和商品相关的哪些视觉信息,比如从商标中能知道品牌是什么甚至包括价格,并且也可以辅助进行页面分类,精度在92%-97%之间。

Natural language understanding:对于页面中的文本等文字信息采用NLP技术来抽取信息,并能够理解文本中编码的事实是什么,因为事实才是知识图谱的核心。讲者展示了一个demo,可以自动从一个页面中抽取出其中包含的所有属性和对应的事实知识,其中肯定需要命名实体识别和关系抽取等机器学习技术,让我不禁联想到前段时间非常火热的Magi,这两个系统感觉都能自动化从文本数据中进行知识抽取,只是讲者介绍的这个Diffbot系统还能够抽取视觉信息。

Diffbot和Wikidata和Freebase相比,不仅能够找到实体,还能够用不同颜色来表示实体类型,此外,还能给出抽取出的事实和主题类型之间的关联,比如一名主题类型为教授的实体,其关联的事实包含在哪些学校任教,担任了哪些学术会议的主席等,这些能够对分类提供更多有效的证据。

Record linking:由于多个页面可能指向的同一个实体,因此需要用自动化的方法将大规模的对象进行链接,以此来实现数据融合。

在知识图谱应用方面,例如对网页中抽取出的知识表示如果售卖的nike鞋的价格低于市场零售价,那这个很可能就是仿制品。此外,还可以实现语义搜索的功能,与google不同的是,这个搜索引擎更能关注和问题相关的人类知识。

2 模块化本体工程

第二位讲者来自堪萨斯州立大学数据语义实验室的博士生(同样是博士生,人这真是大佬啊),他为大家介绍如何开发高度可重用的知识图谱,其中核心内容就是如何建立模块化的本体工程。

通过给出图中这个简单的知识图谱的例子,从这个知识图谱中我们可以提取出很多信息,包括“有学生”,“接受教育”,“生日”等,这是一个实例知识图谱,这个知识图谱很难重用到即使是相同领域的其它应用中。

从实例知识图谱可以扩展为表示schema的本体图谱,这里,每一个实体都用其类型来表示,但是在实例知识图谱中的18,171这个数字到底表示什么是无法确定的,因此如何去纠正这种情况就是研究的重点。

我们来看看一个好的知识图谱本体应该具有哪些特点:

首先,好的知识图谱本体模型应该是可以通过增加一个结点,将更多的结点连接到这一结点,并结合上下文信息来得到更多语义信息。

总结起来,一个好的知识图谱本体模型应该具有的特点是:

  • 便于更新:当实例发生变化或有新的实例添加进来,本体模型都是可用的,这样可以减少维护成本。

  • 人类可读文档:包括可读的术语,关系,标签等用来表示本体。

  • 严格的定义:经过严格定义后的本体模型能够减少歧义性。

形式逻辑可以很好的表达人类概念的严格定义,并能精确地应用知识图谱。根据W3C标准的OWL格式,使用一种称为描述逻辑的高级语言对模式进行编码,在描述中,逻辑被称为公理,公理集被称为本体。

使用模块化的本体建模最大的优势是可以对动态更新的知识图谱快速自适应地建立本体模型,具有高度适应性和可重用性。

一个可高度重用的知识图谱本体模型应该是:实际应用驱动的、从模式中创造模块,整个本体模型的基本组成部分就是模块。

模块化本体工程用到几个概念:

模式图:一种图形化的表示来说明本体中类型之间的关系。其中包括几个组件:黄色框表示主要的实体类型,蓝色框表示还包括其它隐含的复杂关系的实体类型,箭头表示属性/关系,Agent是用来表示在不同的时间范围内指向不同的本体。Open arrow(图中没说明,讲者也没多解释)表示子类型关系。

系统公理化:通过检查结点-边-结点这种三元组结构的模式图,我们可以给出一个可推理的公理。这里给出的17种常见的公理是在知识图谱内部经常使用的,用这种模式图可以表示这17种公理。

来源于软件工程的设计模式,本体设计模式中,Agent和TemporalExtent都表示隐含的复杂性,因为它们在不同时间范围指向不同的本体。

构建本体模块的方法分为8个步骤:

1.    定义用例或者用例的范围,因为无法建模所有类型的对象,因此需要尽可能了解更多的细节。

2.    建立能力问题让用户和我们正在开发的知识图谱有更好的交互。

3.    从数据和用例中抽取关键的概念。

4.    从模式模板中初始化这些关键的概念,然后根据需求来构造模块。

5.    用17个公理来增加结点-边-结点的公理。

6.    集成模块并增加涉及多个模块的公理。

7.    检查是否能够反映所有的实体并对本体模块进行改进。检查公理是否在集成所有的模块之后仍然是正确的。

8.    构造OWL。

3 利用规则的知识图谱推理

第三位讲者是来自蒙特利尔大学的一名女教授,主要讲授利用逻辑规则的推理。

对于图中的知识图谱,我们可以得到一组事实,其中,有的是一元谓词有的是二元谓词。逻辑规则可以表达复杂的本体结构,并且可以用本体描述的逻辑规则来推理出可能发生的事实或者发现知识图谱存在的冲突。

当有一个知识图谱,并且事先定义了4个逻辑规则,用这几个逻辑规则就可以推理出一些新的事实。

当给定一个query时,不仅需要考虑已有的事实,还应该考虑利用规则推理出的新的事实。

接下来,主要讨论知识图谱的问答系统,给定一个知识图谱和一组用于问答的逻辑规则,我们想要的答案很可能不仅出现在已有的知识图谱中,也有可能是在推理出的事实中找到答案。通过规则,我们可以更精确的使用合取查询,这种使用方法让我们看到目前很多KBQA系统都只使用了知识图谱中已有的事实,但是这对很多实际的KBQA任务是低效的,因为确实存在很多问题的答案无法直接从知识图谱中取得,因此,针对query通过推理得到新的事实并得到答案对应实际的KBQA系统是更为有效的方式。

讲者介绍了一些最新的用于问答系统的规则引擎。

如果希望进一步学习课程具体内容,在此奉上本讲B站视频链接:

https://www.bilibili.com/video/BV12k4y1R76Q?p=3

往期精选:

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

斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱

对知识图谱的告白:斯坦福大学CS520课程介绍

知识图谱最新权威综述论文解读:知识图谱补全部分

知识图谱最新权威综述论文解读:知识表示学习部分

手把手教你搭建一个中式菜谱知识图谱可视化系统

后续我们还会更新CS520接下来的课程的学习笔记。

如果对文章感兴趣欢迎关注知乎专栏“人工智能遇上知识图谱“,也欢迎关注同名微信公众号人工智能遇上知识图谱”,让我们一起学习并交流讨论人工智能与知识图谱技术。

斯坦福大学CS520知识图谱系列课程学习笔记:第三讲高级的知识图谱是什么样的相关推荐

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

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

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

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

  3. 斯坦福大学CS520知识图谱系列课程学习笔记:第一讲什么是知识图谱

    随着知识图谱在人工智能各个领域的广泛使用,知识图谱受到越来越多AI研究人员的关注和学习,已经成为人工智能迈向认知系统的关键技术之一.之前,斯坦福大学的面向计算机视觉的CS231n和面向自然语言处理的C ...

  4. 基于基于模型设计(MBD)(我没打错)的机械臂开发课程学习笔记(1)——基本知识和环境配置

    目录 ▶ MBD的一些基本知识 ● 什么是MBD ● MBD开发流程 ● MIL模型在环测试: ● SIL软件在环测试: ● PIL处理器在环测试: ● HIL处理器在环测试: ▶ 安装支持包及相关软 ...

  5. 北大肖臻老师《区块链技术与应用》系列课程学习笔记[10]BTC思考

    1.BTC在设计的过程中很多地方用到了哈希指针,如块头就包含指向前一个区块的哈希指针,指针保存的是本地内存的地址,只在这台计算机上才有意义,发送到其他计算机上就没有意义了,那么在发布区块的时候哈希指针 ...

  6. 北大肖臻老师《区块链技术与应用》系列课程学习笔记[2]Bitcoin的共识协议

    目录 一.数字货币 1.数字货币与纸质货币 2.去中心化 3.块头 4.块身 二.共识协议 1.分布式系统比较著名的不可能结论 2.比特币中的共识机制 3.比特币中的激励机制--出块奖 一.数字货币 ...

  7. 北大肖臻老师《区块链技术与应用》系列课程学习笔记[3]BTC的具体实现

    目录 一.UTXO 二.区块链中的例子 1.Block #529709 (2)Block header (3)交易信息 2.普通转账交易 3.概率分析 4. 公平性保证 5.比特币区块总量 6.安全性 ...

  8. 北大肖臻老师《区块链技术与应用》系列课程学习笔记[1]Bitcoin中用到的密码学原理和数据结构

    目录 一.比特币系统中用到的密码学原理 1.什么是比特币 2.哈希函数 3.非对称密码体系 4.数字签名 二.比特币中的数据结构--哈希指针和Merkle Tree 1.哈希指针 2.区块链 3.Me ...

  9. 北大肖臻老师《区块链技术与应用》系列课程学习笔记[8]BTC课堂问答

    ​ 1.转账交易如果接收者不在线,怎么办?   单纯的转账交易不需要接收者在线,转账交易只不过需要在区块链上记录一下,把A账户上的比特币转到B的账户上,与接收者是否连在比特币网络中无关. 2.假设某个 ...

最新文章

  1. 抓包工具Wireshark基本介绍和学习TCP三次握手
  2. iOS开发教程:Storyboard全解析-第二部分
  3. javaweb学习总结(二十五):jsp简单标签开发(一)
  4. 在 IntelliJ IDEA 中部署应用到服务器(Eclipse)
  5. 基于exosip的uas-uac的一个简单例子(转载)
  6. 【ElasticSearch】Es 源码之 IngestService 源码解读
  7. php new static 效率,对比 PHP 中 new static() 与 new self()
  8. 苹果开发者账号那些事儿(三)
  9. idea svn分支与分支合并_Idea svn 合并分支方式(坑)
  10. 快速教孩子学编程【1】
  11. SpringBoot 集成支付宝转账(提现功能)
  12. Linux vi 双屏显示,如何设置双屏显示器
  13. 员工转正述职答辩问什么问题_员工转正述职报告范文
  14. 10个有趣且易上手的AI项目(附Python源代码)
  15. mac 关于获取手机信息 终端指令
  16. Android Studio修改apk命名
  17. 十位数和个位数交换python_Python3实现个位数字和十位数字对调, 其乘积不变
  18. POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)
  19. 机器人控制器编程课程-教案04-综合
  20. java的类库安装在哪_Java系列学习(一)-JDK下载与安装

热门文章

  1. 深入理解cache对写好代码至关重要
  2. 你知道Linux里D进程会搞事吗?
  3. Pycharm使用matplotlib绘图时无法显示中文问题
  4. mysql数据库架构_MySQL数据库之互联网常用架构方案
  5. 八、Pandas的基本使用
  6. Chapter7-12_Controllable Chatbot
  7. LeetCode 1346. 检查整数及其两倍数是否存在(哈希)
  8. python将元祖设为整形_python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍...
  9. python模拟qq空间登录_python selenium模拟登录163邮箱和QQ空间
  10. 修改dts后重编译_「正点原子FPGA连载」第二十章另一种方式编译ZYNQ镜像