这篇笔记来自于北大邹磊教授的知识图谱讲座
视频地址:https://www.bilibili.com/video/BV1Kg4y1i7GN
主要内容:
- 什么是知识图谱?
- 知识图谱研究的多个维度
- 从人工智能和大数据的角度看待知识图谱
- 知识图谱的项目应用
1. 什么是知识图谱(Knowledge Graph)
2012年5月16日,Google发布了“知识图谱”的新一代“智能”搜索功能,第一次提出了“知识图谱”的概念。
知识图谱(Knowledge Graph):本质上是基于图的语义网络,表示实体和实体之间的关系!构建知识图谱的目的,就是让机器具备认知能力,理解这个世界。
传统互联网搜索技术(带出知识图谱出现的背景)
-
基于关键词字符串匹配
- 爬取网页建立倒排索引
- 基于倒排索引,搜索引擎首先找到了包含关键词的网页
- 根据打分策略(如PageRank, HITS等),对网页进行排序
- 返回用户
- 缺点:计算机并不理解背后的语义
知识图谱的应用场景
- 搜索系统
- 社交网络,如Facebook Social Graph
2. 知识图谱研究的多个维度
- 数据库:RDF数据库系统,数据集成,知识融合
- 自然语言处理:信息抽取,语义解析
- 知识工程:知识库构建,基于规则的推理
- 机器学习:知识图谱数据的知识表示(Graph Embedding)
2.1 知识图谱与知识工程
知识图谱是Web和大数据时代的知识工程新的发展形态。
知识工程的核心:知识库和推理引擎
- 领域本体的构建:面向特定领域的形式化地对于共享概念体系的明确而又详细的说明
- 知识抽取:从海量的数据中通过信息抽取的方式获取知识
- 知识融合:通过对多个相关知识图谱的对齐、关联和合并,使其称为一个有机的整体,以提供更全面知识
传统知识工程 VS 以知识图谱为代表的新一代知识工程
“Knowledge is the power in AI” -- Edward Albert Feigenbaum
2. 2 知识本体
- 本体的定义
- "本体"概念来源于哲学领域,指的是对客观存在系统的解释和说明。
- 计算机学科中,“本体”用于面向特定领域的形式化地对于共享概念体系的明确而又详细的说明。它提供了面向特定领域的概念、对象类型、上下位语义关系等以及他们的属性等,是对特定领域之中概念及其相互之间关系的形式化表达,从而方便地进行自动推理等功能。
- 本体语言
- DARPA提出的DAML(DARPA Agent Markup Language)、W3C提出的DAML + OIL3
- 目前知识图谱数据集常用的W3C所定义的RDF(S)和OWL语言(目前常用)
- 本体工具
Protege 和WebOnto
- 本体知识库
Yago 本体知识库
2.3 知识图谱数据模型
RDF(Resource Description Framework),目前是描述本体的事实标准
RDF定义了一个简单的模型,用于描述资源,属性和值之间的关系。资源是可以用URI标识的所有事物,属性是资源的一个特定的方面或特征,值可以是另外一个资源,也可以是字符串。总的来说,一个RDF描述就是一个三元组:<主语、谓词、宾语>
-
用有向图表示RDF
-
用列表(三元组)表示的RDF
2.4 RDFs(RDF Schema)
-
RDFS:在RDF数据层的基础上引入模式层Schema,定义类、属性、关系、属性的“定义域”与“值域”来描述与约束资源,构建最基本的类层次体系和属性体系,支持简单的上下位推理。
2.5 本体语言 OWL
进一步扩展RDFs的词汇,可声明类间互斥关系、属性的传递性等复杂语义,支持基于本体的自动推理,提供了一组合适web传播的描述逻辑的语法,对机器友好,但认知复杂性限制了工程应用。
2.6 知识抽取概念
- 知识抽取的目标:是从海量的文本数据中通过信息抽取的方式获取知识,其方法根据所处理的数据源的不同而不同,可分为:
- 结构化数据
- 半结构化数据
- 非结构化文本数据
- 文本信息抽取:从非结构化文本数据中进行知识抽取
- 实体识别
- 实体消歧
- 关系抽取
- 事件抽取
2.7 大规模开源全领域的知识抽取项目
-
Yago(Yet Another Great Ontology)
2007年由德国马普研究所发起,融合WordNet和Wikipedia:- 从Wikipedia的结构中抽取信息
- 利用人工采样评估
- 超过1亿事实和100种关系
-
DBPedia
2007年开放,目标是构建一个社区,通过社区成员定义和撰写准确的抽取模板,进而从维基百科中抽取结构信息,并将其发布到Web上。
社区通过人工的方式构建分类:- 280个类别
- 覆盖约50%的维基百科实体
-
Freebase
2007年Metaweb公司发布,2010年被Google收购。大规模协同构建知识库。
从Wikipedia和其他数据源(如IMDB、MusicBrainz)中导入知识
核心思想:- 在Wikipedia中,人们编辑文章
- 在Freebase中,人们编辑结构化知识
2.8 知识融合
实体对齐必然涉及到实体相似度的计算,假设两个实体的记录x和y,x和y在第i个属性上的值是xi,yi,那么需要通过两步计算:
- 属性相似度:综合单个属性相似度得到属性相似度向量[sim(x1, y1), sim(x2, y2),...,sim(xN, yN)]
- 实体相似度:根据属性相似度向量得到实体的相似度
- 属性相似度计算方法:常用的有编辑距离、集合相似度(Jaccard系数、Dice)、向量相似度等
- 实体相似度计算方法:比如聚合、聚类、表示学习等
2.9 知识图谱与自然语言处理
自然语言处理和知识图谱研究是双向互动的关系。
RDF概念很早提出了,但是发展比较缓慢,是因为自然语言处理技术发展较慢,手工建立的数据集比较少,从而影响力较少。随着机器学习等自然语言处理技术的快速发展提高了信息抽取的效率和准确度,通过技术可以快速建立大规模知识图谱。
-
信息抽取
- 主要技术:实体识别与抽取、实体消歧、关系抽取
- 趋势与挑战:
- 从封闭走向开放
- 大规模信息抽取
- 深层次挖掘信息背后的语义(从抽取到理解)
-
语义解析
- 语义解析就是将自然语言映射成机器可以表达的形式。
- 主要技术:语义消歧、语义角色标注、指代消解等
- 应用:
- 面向知识图谱的自然语言问答
- 聊天机器人等
2.10 信息抽取技术
-
实体识别:从文本中识别出实体的命名性指称项,并标明其类别
- 三大类:实体类、时间类、数字类
- 七小类:人名、机构名、地名、时间、日期、货币和百分比
- 实体识别任务的产生:
- 命名实体形式多变:如姚明、小巨人、姚主席、明王都是指同一个人
- 命名实体的语言环境复杂:如彩霞在某些条件下是人名,在另外的条件下可能是自然现象
- 命名实体识别的方法:
- 基于规则的实体识别方法:
- 基于命名实体词典的方法:采用字符串完全匹配或部分匹配的方式,从文本中找出与词典最相似的短语完成实体识别
- 优点:规则简单
- 缺点:需要构建词典和规则;性能受词典规模和质量的影响
- 基于机器学习的实体识别方法:
- 利用预先标注好的语料训练模型,使模型学习到某个字或词作为命名实体组成部分的概率,进而计算一个候选字段作为命名实体的概率值。若大于某一阈值,则识别为命名实体。分为:最大熵模型(Maximum Entropy Model)和条件随机场模型(Conditional Markov Random Field)
- 基于规则的实体识别方法:
-
关系抽取:自动识别实体之间具有的某种语义关系
- 句子级关系抽取
- 预料(篇级)关系抽取
- 关系抽取任务的难点:
- 同一个关系可以具有多种不同的词汇表示方式
- 同一个短语或词可能表达不同的关系
- 同一对实体之间可能存在不止一种关系
- 需要结合上下文
- 关系有时在文本中找不到任何明确表示,隐含在文本中
- 关系抽取依赖词法、句法分析等基本的自然语言处理工具,但该工具性能并不高
- 关系抽取的方法
- 基于模板的方法
- 基于机器学习的方法
-
事件抽取
- 事件:发生在某个特定的时间点或时间段、某个特定的地域范围内,由一个或多个角色参与的一个或多个动作组成的事件或者状态的改变。
- 要素:事件发生的时间、地点、参与事件的角色、与之相关的动作或状态的改变
- 事件抽取:从描述事件的文本中抽取出用户感兴趣的事件信息并以结构化的形式呈现出来
- 相关概念:事件指称、事件触发词、事件元素、元素角色、事件类别
+事件抽取任务的基础工作:- 识别事件触发词以及事件类型
- 抽取事件元素(Event Argument),同时判断其角色(Argument Role)
- 抽出描述事件的词组或句子
2.11 语义解析之语义搜索
- 语义搜索:是指搜索引擎的工作不再拘泥于用户所输入请求语句的字面本身,而是透过现象看本质,准确地捕捉到用户所输入语句后面的真正意图,并以此来进行搜索,从而更准确地向用户返回最符合其需求的搜索结果。
- 语义搜索过程:
- 输入的问句进行解析,找出问句中的实体和关系,理解用户问句的含义
- 将用户在知识图谱中匹配查询语句,找出答案
- 通过一定的形式将结果呈现到用户面前
2.11 语义解析之知识问答
智能问答的方法:
- 基于信息检索的方法:首先利用中文分词、命名实体识别等自然语言处理工具找到问句中所涉及到的实体和关键词,然后去知识资源库中去进行检索,并通过打分模型对答案进行排序。
- 基于语义解析的方法:将一个自然语言形式的问句,按照特定语言的语法规则,解析成语义表达式,将其转化为某种数据库的查询语言。
2.12 知识图谱与数据管理
知识图谱本质上是多关系图,通常用“实体”来表达图里的结点、用“关系”来表达图里的边。
- 关系型数据库: 实体与实体之间的关系通常都是利用外键来实现,对关系的查询需要大量join操作
- 图数据库:图模型建模实体(结点)和实体之间的关系(边),在对关系的操作上有更高的性能
基于关系的知识图谱存储管理
原生知识图谱存储管理--RDF
回答RDF数据上SPARQL查询==子图查询匹配
原生知识图谱存储管理--属性图
分布式知识图谱存储管理:
2.13 知识图谱与机器学习
- 知识表示学习:
- 背景:基于网络形式的知识表示存在数据稀疏问题和计算效率问题
- 知识表示学习(representation learning):主要是面向知识图谱中的实体和关系进行表示学习,使用建模方法将实体和向量表示在低维稠密向量空间中,然后进行计算和推理。
- 优点:显著提升计算效率,有效缓解数据稀疏,实现异质信息融合。
-
应用:知识图谱补全、相似度计算、关系抽取、自动问答、实体链指
知识表示学习举例:
图表示学习用于“自然语言问答”:
3. 从人工智能、大数据的角度看待“知识图谱”
3.1 人工智能诞生:1950-1970
1956年达特茅斯会议,提出“人工智能(Artificial Intelligence, AI)”概念。
“用机器来模仿人类学习以及其他方面的智能”
“上古”流派:符号主义(Symbolism)和连接主义(Connectionism)
- 符号主义(symbolicism),又称为逻辑主义(logicism)、心理学派(psychologism)或计算机学派(computerism),其主要原理为认知过程就是在符号表示上的一种运算。
- 知识图谱起源于符号主义
符号主义发展历史:
- 连接主义(connectionism),又称为仿生学派(bionicsism)或生理学派(physiologism),其主要原理为智能活动是由大量简单的单元通过复杂的相互连接后并行运行的结构。
- 当前典型研究:深度学习、深度神经网络
- 1970年代后期,人工智能发展遭遇瓶颈,出现了第一次低谷
- 专家系统:1970-1990
人工智能开始转向建立基于知识的系统,通用领域-->限定领域
通过知识库+推理机实现智能。
语义网络(Semantic Network):1970年,Herbert A.Simon正式提出,通过有向图来表示知识,作为知识表示的一种通用手段。
知识工程(Knowledge Engineering):1977年美国斯坦福大学计算机科学家Edward Albert Feigenbaum教授在第五届国际人工智能会议上提出,确立了知识工程在人工智能中的核心地位。
- 群体智慧Web2.0,数据互联,强调用户生成内容,易用性,参与文化和终端用户互操作性。
- 互联网知识:从封闭到开放互联,从集中到分布,从专家内部定义到群体智慧
语义网(Semantic Web):Tim Berners-Lee于2000年提出,网络中的所有计算机能够分析网络中的数据,包括内容、链接、人与计算机之间的往来。The Web become capable of analyzing all the data on the Web - the content, links, and transactions between people and computers. - 知识图谱:2006年至今,构建人与机器都可理解的万维网,使网络更加智能化
- 知识图谱:强大的语义处理能力,强大的开放互联能力,构建“知识之网”,web 3.0
3.2 知识图谱与人工智能
人工智能需要机器智能,特别是认知智能,认知智能依赖知识图谱
- 认知智能的理解、推理、解释任务不仅需要数据,更需要知识背景
- 知识图谱是知识的图谱表示,这种知识表示方式适合理解、推理、解释
- 知识图谱是实现认知智能的关键技术,是实现机器认知智能的使能器
知识图谱脱胎于符号主义;但是和连接主义的结合是目前的重要研究方向(例如知识图谱的表示学习等)
3.3 知识图谱与大数据
大数据的特点:多样化(variety)、规模大(volume)和速度化(velocity)
“世界是普遍联系的整体,任何事物之间都是相互联系的” ---- 马克思《辩证唯物主义》
“知识图谱”是面向关联分析的大数据模型
4 知识图谱的项目应用
知识图谱的行业应用
- 医疗领域知识图谱