知识图谱生命周期概述

以 工业界 知识图谱 制作使用 流程 为主线,分别 阐述 知识图谱创建及应用过程 中,需要 经过的 step。

一,明确 知识图谱 类型及主题:

创建知识图谱之前,首先要明确 用户所需的是哪种知识图谱:
1,领域知识图谱?
如,对于医疗领域的用户,可能希望做一个 关于诊疗的知识图谱,针对这一定位,开发人员需要搜集以往诊疗记录,从中抽取出事实,构建知识图谱,辅助医生进行 疾病诊断,以及 处方开具 等。
2,百科知识图谱?
3,场景知识图谱?
如果用户希望构建一个 AI客服,则可以根据以往的客服记录,抽取出 question-answer对,构建出一个知识库。当用户输入一个问题后,首先用NLP来匹配知识库中的question,然后根据matched question,返回对应的answer。
4,语言知识图谱?
语言知识指的是那些语言层面上的知识,包括 概念体系的构建,词所属概念类别,词之间的同位,上下位 关系的描述 等。
如:知识图谱:WordNet,HowNet。
利用这些知识图谱,可以 对 文本样例中的句子进行 “分词,同义词,词间上下位关系”的解析。

insert later

5,常识知识图谱?
如,百度百科。

二,知识体系的构建

知识体系构建,也称知识建模,是指采用什么样的方式表达知识,其核心是构建一个本体,对目标知识进行描述。
在这个本体中,需要定义出知识的类别体系,每个类别下所属的概念和实体,某类概念和实体所具有的属性,以及概念之间,实体之间的语义关系,同时也包含定义在这个本体上的一些推理规则。
知识图谱中,实体对之间的关系,实体的属性信息等,常以RDF(资源描述框架的形式存储,表示。
RDF的基本数据模型包括了三个对象类型:资源(resource),谓词(predict),陈述(statement)。
资源:能够使用RDF表示的对象称之为资源;
谓词:用于描述实体之间的关系,实体的属性。通常,谓词的头部数据为实体,尾部数据为另外一个实体 或者 属性值,谓词即为 实体间关
系,或者 属性。
陈述:通常称为RDF三元组,<主体,谓词,宾语>。其中,主体是被描述的对象,谓词可以表示主体的属性,也可以表示主体和宾语之间
的关系。如:属性描述:首都(中国,北京);实体间关系描述:母亲(张三,李四);

三,知识获取

知识体系构建完成,便可开始着手考虑:如何获取所需的知识(实例)?
知识图谱构建中,主要通过 “对海量文本数据进行信息抽取” 获取所需的 知识条目。
现实世界中,构建知识图谱所需数据形式多样,大体可分为如下几种 format:
1,结构化数据
结构化数据,通常都具有统一的排版格式,因而便于 信息抽取。常见的结构化数据有如:
公司的数据库数据,这种数据可以直接用于构建 知识库,无需进一步处理。
此外,还有类似网络百科信息框 的结构化数据,这类数据通常 按照一定的format来排版,结构化程度很高,可以直接编写一个 模板程序 来提取其中的信息。
虽然结构化数据的置信度高,提取方便,但是,实际中,这个结构化数据量少,难获取。
2,半结构化数据
与结构化数据相比,半结构化数据 结构较为松散,模式不统一,难以通过一个 统一的模板程序 进行抽取。
包含隐式的列表或者表格的网页,均可视作 半结构化数据。
3,非结构化文本数据
与上述两种数据结构不同,纯文本数据 信息丰富多样,广泛存在于网络世界中。但是,对纯文本数据的信息抽取难度较大,且抽取的信息置信度都较低。
如何从文本中进行信息抽取已成为工业界和学术界极为关注的一个问题。
文本信息抽取任务主要包含3个方面的内容:
1)实体抽取(实体识别,实体消歧):
所谓实体,可以指任何对于用户有用的名词。实体抽取就是从纯文本信息中,抽取出每句话中所包含的实体。
由于自然语言表达灵活多样,同一语义可以用不同的词语表示,因而,实体抽取 具体又可分为2个步骤:
实体识别:利用NLP技术,识别文本中包含的实体条目。
实体消歧:通过“实体识别”所得实体中,必然有 一词多义的现象。如:从文本中抽取的实体“李娜”,可以是“网球冠军李娜”,也可以是“歌手李娜”,对此,可以通过“实体消歧”来判别所抽取的实体 具体为哪个李娜。
实体消歧 具体包含 2个任务:实体链接 & 实体聚类。
所谓 实体链接 是指,当知识图谱中已存在 被抽取实体 时,根据 实体的一些属性信息,将文本中抽取的实体 与 知识图谱中的 实体 进行匹配,如果为同一实体,则直接将 文本中抽取的实体 链接到知识图谱的某个实体上。
所谓 实体聚类 是指,当知识图谱 中不存在 被抽取实体时,则将所有抽取的 某个实体,根据其属性信息进行聚类,把属于同一类的实体聚为一类,从而达到消歧的目的。
目前,实体抽取主要通过“统计机器学习方法”进行。此外,深度学习也可很好的应用于 实体抽取 中。详情见后续章节。

2)关系抽取:
所谓关系抽取,是指 获取两个实体之间的语义关系。这种语义关系可以是一元关系(如:实体的类型),也可以是二元关系(如:实体的属性;两实体间的语义关系),甚至可以是更高阶的关系。
一元关系(实体的类型):即 判定一个被抽取的实体,其属于 所建知识体系 的那个类型。
二元关系(实体的属性):比如,给定一批文本数据,目标是 抽取文本中 姚明的出生地信息,用RDF可表示为:出生地(姚明,?)。
eg:姚明于1981年出生于上海。
假设我们已经识别出 “姚明” 这个实体,给定“出生地”这个关系,属性抽取的任务 即 从这句话中抽取出 “上海” 这个属性。
又如,我们现在已经识别出 “姚明” & “上海” 这两个实体,关系抽取的任务 是 从这句话中抽取出 “姚明”和“上海”这两个实体所具有的关系。
在用 机器学习 和 深度学习 进行关系抽取时,根据给定data的特点,可将关系抽取方法分为:
有监督关系抽取:data=(x,y),f(x) = y,所学f(x)即为 获取的 关系抽取系统;
无监督关系抽取:data=(x),自定义 cluster的数量n,利用无监督方法 将给定 data 聚为n类,每一类即代表一个 关系;
弱监督关系抽取:data 包含2类数据,一类数据为data1=(x,y),另一类数据为data2=(x),
首先通过data1,学习一个 有监督学习器 f(x),
通过f(x)求解data2中的部分数据的y值,并进行人工校订,最终将这批被校订的数据,归入 data1中,作为 traininng data,继续iteration,优化以学习到的 有监督学习器。
如此循环往复,直到获得一个置信度较高的 学习器。
开放关系抽取:在这种关系抽取中,对抽取的关系 不做限定,所用的数据 为所有可能的page。类似于,从网络中定期抓取 某类数据,然后对该数据中的所有可能存在的关系 进行抽取,经由这种方法抽取的 关系实例,可以用来填充知识图谱。

3)事件抽取:
所谓事件抽取,是指从指定的数据中,抽取出用户感兴趣的 一些事件信息,并以结构化的形式表现出来。
例如:成龙和于凤姣于1982.12.01在洛杉矶举行婚礼。
事件抽取的目标 就是抽取出 结婚 这个事件,包括:结婚对象,结婚时间,婚礼举行地。
事件抽取难度较大,目前主要 采用:基于模式匹配的事件抽取,基于机器学习的事件抽取,基于深度学习的事件抽取。

四,知识融合:
所谓知识融合,是指对不同来源,不同语言,不同结构的知识进行融合,从而对已有知识图谱进行补充,更新和去重。
从融合的对象来看,可以分为对:知识体系的融合 和 实例的融合。
对知识体系的融合是指:对多个知识体系进行融合,从竖向来看,可以看成是 上位item 与 下位item的对接,即:扩展原有体系各个分支的branch;从横向来看,则是对于 同一层级的 概念 进行补充。
对实例的融合则是指:将新的实例与 知识体系中对应类别,属性等 进行映射;也可以指 多语言映射,即,将不同语言的相同实例进行映射。
从技术角度来看,所谓知识融合,就是指 多个 知识图谱间 边-边,点-点 ,边-点,之间的映射。以扩展现有 知识图谱 横向,竖向 的知识广度。
实操中,其实质就是通过 映射双方的 属性,判断 二者之间是否存在关联,可以进行链接。

五,知识存储
知识图谱制作完成后,就可以进行存储。目前,存在两种存储方式:RDF 和 图数据库。
RDF(资源描述框架):将知识图谱以“三元组”的 形式逐行进行存储,每一行 代表一个 关系对,可以表示为:SPO(Subject, Predicate, Subject),RDF存储方式简单,但是其搜索效率低下,通常,为了提高搜索效率,采用“六重索引”的方法。

RDF介绍:
知识图谱中,实体对之间的关系,实体的属性 等内容,通常采用RDF(资源描述框架)进行存储表示。
RDF的基本数据模型包括了三个对象类型:资源(resource),谓词(predict),陈述(statement)。
资源:能够使用RDF表示的对象称之为资源; 谓词:用于描述实体之间的关系,实体的属性。通常,谓词的头部数据为实体,尾部数据为另外一个实体
或者 属性值,谓词即为 实体间关系,或者 属性。
陈述:通常称为RDF三元组,<主体,谓词,宾语>。其中,主体是被描述的对象,谓词可以表示主体的属性,也可以表示主体和宾语之间的关系。如:属性描述:首都(中国,北京);实体间关系描述:母亲(张三,李四);

图数据库:目前典型的开源数据库是Neo4j,这种数据库最大的优点是具有较为完善的 图查询语言,能够运用一些 挖掘算法 快速锁定想要查找的目标。但是,其缺点也很明显,数据更新慢,节点和边的更改开销很大。

  • [图数据挖掘算法? ] 子图筛选,子图同构判定。

六,知识推理
由于 抽取数据的稀缺性,构建完成的知识图谱 往往存在很多 知识缺失现象,包括:实体缺失,关系缺失。
为了进一步完善知识图谱,可以采用知识推理的方式,对缺失的部分进行填充。
从技术角度讲,这里的知识推理,是指将 知识补足 问题,转化为 规则推理问题 or 数学求解 问题 。
规则推理,即根据已有经验和常识等知识,总结归纳出一些 通用规则,计算机可以根据这些规则,将满足条件的 待解三元组 进行填充。此外,除人工制定规则外,也可以通过 机器学习的方式 自动学习推理规则。

自动学习推理规则 general process:
根据 现有数据(文本),抽取 三元组;
将抽取所得三元组进一步进行 抽象,比如:国籍(姚明,中国),国籍(安在旭,韩国),…,将这些三元组不同部分 填充的知识,泛化为其所属类别 或者 概念,即 将三元组 ?(?, ?),中的?全部替换为其 上位词,如仍然太过具体,则继续向上泛化,直到root。在 这个例子 中,我们可以将 这些具体的实例 泛化为:国籍(人名,国家名称)。
利用这种方法,扩充 现有推理规则,完善知识图谱。
需要注意的是,规则推理 时,常会遇到 规则冲突 问题。

除用规则推理这种方式外,还可以将 知识推理 转化为 数学求解问题,即 将三元组中 节点/边 用 vector表示,然后,计算缺失的 部分,其数学表达式,即vector,然后再将计算得到的vector与 字典中 词语的vector 进行相似度计算,置信度高,则可将这个”词语“视为 求解结果(实操中,不可能将求解的vector与字典中所有词进行比较,通常 会人为制定一些规则,缩小 比较范围)。基于表示学习的推理,容错率高,可学习,但是,其求解结果不可解释,缺乏语义约束。

以上提及的知识推理方法,除可用于 知识图谱补足 外,还可以 直接应用于 现实任务 中。

七,知识应用
知识图谱 目前已经在 智能搜索,自动问答,推荐,决策支持 等相关任务中得到了广泛应用。下面大致介绍一下其应用方式。
智能搜索
在智能搜索中,知识图谱可以在2个部分发挥作用:
1,当用户输入 查询词 时,可利用 知识图谱 更加准确的了解 用户意图。
比如,输入:”运动员姚明“,如果没有知识图谱做支撑,则 搜索引擎会将所有包含姚明的 page 返回。但是,如有知识图谱,可以首先利用 NLP对查询词 进行 分词,词性解析 等一系列操作,then,在通过知识图谱,锁定相对应的 三元组,从而精准定位 姚明 这个实体指向。
2,有知识图谱做支撑,搜索引擎不仅可以返回 相关网页,还可以 显示其他 与 查询词 有关的 其他信息,大大缩减用户的查询时间。
自动问答
以 智能客服 为例,公司 可通过 以往 客服资料,来构建一个 客户问答 知识库。知识库包含 问题-答案 对,其中每个问题 的子节点 可为 同一个问题的不同表述。根据需要,公司还可以制定一些 问答流程,指引客户完成 问答过程。
当 客户 向 智能客服 输入一个问题后,用NLP技术 比较 input 和 知识库 中各个问题的相似度,如果库中有这一question,则返回答案,如果没有,可以接通 人工服务,通过上述过程的不断迭代,逐渐完善知识库信息。
上述相似度求解问题,需要用到 sentence的vector表示,sentence的vector表示 可以 通过 words vector -> deeplearning alg 求解得到,而words vector 可以通过 words that are in the target-word left and right -> deeplearning alg -> target-word,或者 reverse(input , output),两种方法得到。其中未知量为 words vector,以及 deeplearning alp parameters。
推荐系统
以 歌曲 推荐为例,在知识图谱中找到 客户 所听曲目,将其所有属性信息 vector 化,然后 与知识库 中 其他歌曲 进行相似度比较,返回 相似度较高的歌曲列表(实操中,也是先制定一系列规则,缩减比较范围,以减少计算量)。
决策支持
以 辅助医生诊疗 为例,可以 对 以往 病例 进行信息抽取(患者 个人属性,病症,诊断结果/疾病,治疗方法),构建一个 诊疗知识库。医生在给病人 诊疗 时,可以在诊疗系统输入框输入 病人病症 及 个人属性 等条件,系统将在 诊疗知识库 中 搜寻 与 实例相似的 其他sample,并根据人工制定的 规则,返回最终的 诊断结果 和 治疗方案。

Reference: 《知识图谱》 赵军

…了解有限,难免有误…

猜你喜欢

转载自blog.csdn.net/u014765410/article/details/113187331