问题:
- 知识图谱究竟是什么?
可以看看开放知识图谱
其实就是将我们的语言拆分转换为符号表达,之后经过机器学习来将离散式的数据转化为可分布式的表达。
而知识图谱的构建,是可以不同的,根据需要来定!比如只是关于人际关系的,再比如关于某个人的所有的新闻,再比如全部是关于政府部门的或者是事故的,所以也就有了知识的融合 - 企业构建知识图谱需要根据需求来的
- 自然语言转化为sql(知识图谱),后面会讲
- 开放数据是不能直接用的
- schema和本体关系 :schema是轻量级本体;
- 图数据库是用来存储知识图谱;
多库存储的难点:是在于存储的问题还有查询问题,本体需要不需要切分,消除歧义等; - 知识库和知识图谱有什么区别?
知识图谱是一个大的系统; 知识图谱里面关于知识构建、知识融合之后就产生了知识库,而知识库我们就需要对它进行存储,就会产生图数据库。 - 怎么确保数据的准确性
对于开放数据库等进行领域建模、领域知识进行筛选
第三部分: 知识图谱技术概览
1. 简介
由于数据源的不同,比如众包、传感器、多媒体等流,我们又可以分别使用不同的方法来得到更加规范的数据表示、更强的数据关联,并存储到Hbase等数据库中,之后根据具体的需要再利用这些知识进行知识表示、知识抽取、知识问答等应用。
而知识表示是根本
2. 知识表示
知识表示研究怎样用计算机符号来表示人脑中的知识,以及怎样通过符号之间的运算来模拟人脑的推理过程。
现在一般基于数理逻辑的知识表示–》基于向量空间学习的分布式知识表示。
语义网知识表示框架
w3C可以看到最新的语义网知识表示框架。
2.1 知识表示的离散分布
2.1.1 RDF:Triplet-based Assertion model (基于三元组的断言模型)
链接 RDF: (资源描述框架,Resource Description Framework)是描述网络资源的 W3C 标准, ,比如网页的标题、作者、修改日期、内容以及版权信息等。
RDF的含义就是描述资源的框架(Framework for Describing Resources),下面我们逐个来看这三个词的意思。
资源(Resource):所有在Web上被命名、具有URI(Unified Resource Identifier 统一资源描述符)的东西。如网页、XML文档中的元素等;
描述(Decription):对资源属性(Property)的一个陈述(Statement),以表明资源的特性或者资源之间的联系;
框架(Frameword):与被描述资源无关的通用模型,以包容和管理资源的多样性、不一致性和重复性。
综合起来,RDF就是定义了一种通用的框架,即资源-属性-值的三元组,一不变应万变,来描述Web上的各种资源。
下面我们来看一个简单的RDF的例子:
(指明被描述资源的URI)
Tim Bray (被描述资源有一个叫Author即作者的属性,其值是Tim Bray)
(被描述资源有一叫Home-Page即主页的属性,其值指向另一资源)
(结束标志)
RDF Graph: Directed Labeled Graph(有向标记图)
2.1.2 RDFS:Simple Vocabulary and Schema(简单的词汇和模式)
RDF的序列化格式
schema: 和数据库中表的设计类似!
常用的格式: RDF/XML、RDFa
具体实现
下面是RDF语法的一个实例,用序列语法表示如下:
就只是包含了title、creator、data三个属性
<?xml version=“1.0”?>
<RDF xmlns=http://www.w3.org/1999/02/22-rdf-syntax-ns#xmlna:DC=http://purl.org/metadata/dublin-core#>
<Description about=http://www.dlib.org/dlib/may98/miller>
<DC:title>
An introduction to the Resource Description Framework
</DC:title>
<DC:creator>
Eric Miller
</DC:creator>
<DC:date>
1998-0501
</DC:date>
</Description>
</RDF>
这个例子如果以RDF简略语法来表示则为:
<?xml version=“1.0”?>
<RDF xmlns=http://www.w3.org/1999/02/22-rdf-syntax-ns#xmlna:DC=http://purl.org/metadata/dublin-core#>
<Description about=http://www.dlib.org/dlib/may98/miller>
DC:title = “An introduction to the Resource Description Framework"
DC:creator = "Eric Miller"
DC:date = "1998-0501"
</Description>
</RDF>
2.1.3 OWL:Web Ontology Language
本体 == 哲学的概念
但是不能直接用。是描述语言。 多人进行描述
OWL extends RDF schema
OWL:OWL Web本体语言,W3C推荐标准
这种本体描述语言,可以用来描述Web文档和应用中内在的类和关系。
为什么使用OWL语言?
- 通过定义类以及类的属性来形式化某个领域;
- 定义个体并说明它们之间的属性;
- 在OWL语言的形式化语义允许的层次上,对类和个体进行推理。
推理规则: 比如属性链,姚明的父亲的父亲。
SPARQL简介
上面做了知识库,那么就会有知识库的查询;
SPARQL(SPARQL Protocol and RDF Query Language),是为RDF开发的一种查询语言和数据获取协议,它是为W3C所开发的RDF数据模型所定义,但是可以用于任何可以用RDF来表示的信息资源。
怎么去查询和存储在后面去讲解。
这里的 ?其实是可以被替代的,需要我们去填充它; 所以知识图谱上的查询更多的是主图匹配,怎么快速的去完成主图匹配,在图中有同构的判断其实是一个np hard问题。所以我们在nlp中要学会怎么去转化为spaRQL问题
这里的spaRQL也可以写成图的形
JSON-LD:数据交换格式
6. RDFa、HTML5 MicroData:在网页中嵌入语义数据
上面的一句话是对一个电影的描述, 我们可以将每句话的每个词进行分类。
做结构化信息,放到一些排序的函数当中,通过知识众包去验证这是一个高质量的知识之后,搜索引擎会帮你免费的优化,使得你可以根据关键词进行排序搜索。
2.2. 知识图谱的分布式表示KG Embedding
前面的都是分布式的表示,下面的是知识图谱的分布式表示-KG Embedding
在保留语义的同时,将知识图谱中的实体和关系映射到连续的稠密的低维向量空间。 在这个过程中我们使用三种方法:张量分解、神经网络、距离模型。
张量分解: 多维的矩阵我们称为张量,它不是一个二维的,因为二维指针是二维的;所以是用来刻画我本身的entity和relation之间的关联,并且选出它们之间低维的标注,这里的A其实就是entity,R则是relation,每个relation和各个entity之间的交互
神经网络:基于neural Tensor Layer的知识图谱。使得一些正确的三元组势能更高,错误的三元组势能更低;
距离模型: 是经常用到的方法,用在在低维的向量和原本的低维向量语义的距离; 是在翻译中决定的。
3. 知识抽取: NLP + KR
从下往上看;
3.1 主要方法
模板的选取必须是准确的,有选择的;
4. 知识存储
5. 知识融合
6. 知识问答
6.1 KBQA例子:
姚明的身高;
谁是第三十五届美国总统;
6.2 KBQA基本实现流程:
7. 知识推理
简单而言,推理是指基于已知事实推出未知的事实的计算过程;
大部分搜索引擎目前都已经支持了一定的推理能力;
百度输入:姚明的女儿的妈妈的老公
这就是属性链,前面的本体的属性
7.1 基于描述逻辑的推理:本体推理
7.2 基于规则挖掘的推理
比如小明和小红是小王和小李的孩子,那也可以说小王和小李是小明和小红的父亲;
7.3 基于表示学习的推理
8. 语义搜索
9. 知识融合
Data Linking、Knowledge Fusion、Record Linkage、Entity Alignment。。。
主要目的是不同数据源中的实体信息进行整合,形成更加全面的实体信息。
比如一个人改变了发型或者是戴上墨镜等都是他本人。
比如维基百科、百度百科、互动百科都有类似的表达,或者其它没有的内容。
9.1 知识融合:典型工具-Dedupe
主要处理流程是对所有records进行clustering,然后在组内部通过计算相似度特征和机器学习分类模型对任意一对records进行预测是否为同一实体。
要求两个数据集有相似的结构
9.2 知识融合:典型工具-LIMES
不要求两个数据集的实体具有相似的结构,
可灵活配置匹配规则,自定义距离计算模型。
10.知识众包:Wikibase、Schema.ORG
结构化数据协同编辑叫wikibase;