
(完整版)领域应用知识图谱的技术和应用.docx
12页完整版)领域应用知识图谱的技术和应用 领域应用 | 知识图谱的技术与应用 本文转载自公众号:贪心科技 领域应用 | 知识图谱的技术与应用 李文哲开放知识图谱 1周前 本文转载自公众号:贪心科技 作者 | 李文哲,人工智能、知识图谱领域专家 导读:从一开始的Google搜索,到现在的聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,无一不跟知识图谱相关它在技术领域的热度也在逐年上升本文以通俗易懂的方式来讲解知识图谱相关的知识、尤其对从零开始搭建知识图谱过程当中需要经历的步骤以及每个阶段需要考虑的问题都给予了比较详细的解释对于读者,我们不要求有任何AI相关的背景知识 目录: 1.概论 2.什么是知识图谱 3.知识图谱的表示 4.知识抽取 5.知识图谱的存储 6.金融知识图谱的搭建 1.定义具体的业务问题 2.数据收集 & 预处理 3.知识图谱的设计 4.把数据存入知识图谱 5.上层应用的开发 7.知识图谱在其他行业中的应用 8.实践上的几点建议 9.结语 1. 概论 随着移动互联网的发展,万物互联成为了可能,这种互联所产生的数据也在爆发式地增长,而且这些数据恰好可以作为分析关系的有效原料。
如果说以往的智能分析专注在每一个个体上,在移动互联网时代则除了个体,这种个体之间的关系也必然成为我们需要深入分析的很重要一部分在一项任务中,只要有关系分析的需求,知识图谱就“有可能”派的上用场 2. 什么是知识图谱? 知识图谱是由Google公司在2022年提出来的一个新的概念从学术的角度,我们可以对知识图谱给一个这样的定义:“知识图谱本质上是语义网络(Semantic Network)的知识库”但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图(Multi-relational Graph) 那什么叫多关系图呢?学过数据结构的都应该知道什么是图(Graph)图是由节点(Vertex)和边(Edge)来构成,但这些图通常只包含一种类型的节点和边但相反,多关系图一般包含多种类型的节点和多种类型的边比如左下图表示一个经典的图结构,右边的图则表示多关系图,因为图里包含了多种类型的节点和边这些类型由不同的颜色来标记 在知识图谱里,我们通常用“实体(Entity)”来表达图里的节点、用“关系(Relation)”来表达图里的“边”。
实体指的是现实世界中的事物比如人、地名、概念、药物、公司等,关系则用来表达不同实体之间的某种联系,比如人-“居住在”-北京、张三和李四是“朋友”、逻辑回归是深度学习的“先导知识”等等 现实世界中的很多场景非常适合用知识图谱来表达比如一个社交网络图谱里,我们既可以有“人”的实体,也可以包含“公司”实体人和人之间的关系可以是“朋友”,也可以是“同事”关系人和公司之间的关系可以是“现任职”或者“曾任职”的关系类似的,一个风控知识图谱可以包含“”、“公司”的实体,和之间的关系可以是“通话”关系,而且每个公司它也会有固定的 3. 知识图谱的表示 知识图谱应用的前提是已经构建好了知识图谱,也可以把它认为是一个知识库这也是为什么它可以用来回答一些搜索相关问题的原因,比如在Google搜索引擎里输入“Who is the wife of Bill Gates?”,我们直接可以得到答案 -“Melinda Gates”这是因为我们在系统层面上已经创建好了一个包含“Bill Gates”和“Melinda Gates”的实体以及他俩之间关系的知识库所以,当我们执行搜索的时候,就可以通过关键词提取(”Bill Gates”, “Melinda Gates”, “wife”)以及知识库上的匹配可以直接获得最终的答案。
这种搜索方式跟传统的搜索引擎是不一样的,一个传统的搜索引擎它返回的是网页、而不是最终的答案,所以就多了一层用户自己筛选并过滤信息的过程 在现实世界中,实体和关系也会拥有各自的属性,比如人可以有“姓名”和“年龄”当一个知识图谱拥有属性时,我们可以用属性图(Property Graph)来表示下面的图表示一个简单的属性图李明和李飞是父子关系,并且李明拥有一个138开头的号,这个号开通时间是2022年,其中2022年就可以作为关系的属性类似的,李明本人也带有一些属性值比如年龄为25岁、职位是总经理等 这 种属性图的表达很贴近现实生活中的场景,也可以很好地描述业务中所包含的逻辑除了属性图,知识图谱也可以用RDF来表示,它是由很多的三元组(Triples)来组成RDF在设计上的主要特点是易于发布和分享数据,但不支持实体或关系拥有属性,如果非要加上属性,则在设计上需要做一些修改目前来看,RDF主要还是用于学术的场景,在工业界我们更多的还是采用图数据库(比如用来存储属性图)的方式感兴趣的读者可以参考RDF的相关文献,在文本里不多做解释 4. 知识抽取 知识图谱的构建是后续应用的基础,而且构建的前提是需要把数据从不同的数据源中抽取出来。
对于垂直领域的知识图谱来说,它们的数据源主要来自两种渠道:一种是业务本身的数据,这部分数据通常包含在公司内的数据库表并以结构化的方式存储;另一种是网络上公开、抓取的数据,这些数据通常是以网页的形式存在所以是非结构化的数据 前者一般只需要简单预处理即可以作为后续AI系统的输入,但后者一般需要借助于自然语言处理等技术来提取出结构化信息比如在上面的搜索例子里,Bill Gates和Malinda Gate的关系就可以从非结构化数据中提炼出来,比如维基百科等数据源 信息抽取的难点在于处理非结构化数据在下面的图中,我们给出了一个实例左边是一段非结构化的英文文本,右边是从这些文本中抽取出来的实体和关系在构建类似的图谱过程当中,主要涉及以下几个方面的自然语言处理技术: a. 实体命名识别(Name Entity Recognition) b. 关系抽取(Relation Extraction) c. 实体统一(Entity Resolution) d. 指代消解(Coreference Resolution) 下面针对每一项技术解决的问题做简单的描述,以至于这些是具体怎么实现的,不在这里一一展开,感兴趣的读者可以查阅相关资料,或者学习我的课程。
首先是实体命名识别,就是从文本里提取出实体并对每个实体做分类/打标签:比如从上述文本里,我们可以提取出实体-“NYC”,并标记实体类型为“Location”;我们也可以从中提取出“Virgil’s BBQ”,并标记实体类型为“Restarant”这种过程称之为实体命名识别,这是一项相对比较成熟的技术,有一些现成的工具可以用来做这件事情其次,我们可以通过关系抽取技术,把实体间的关系从文本中提取出来,比如实体“hotel”和“Hilton property”之间的关系为“in”;“hotel”和“Time Square”的关系为“near”等等 另外,在实体命名识别和关系抽取过程中,有两个比较棘手的问题:一个是实体统一,也就是说有些实体写法上不一样,但其实是指向同一个实体比如“NYC”和“New York”表面上是不同的字符串,但其实指的都是纽约这个城市,需要合并实体统一不仅可以减少实体的种类,也可以降低图谱的稀疏性(Sparsity);另一个问题是指代消解,也是文本中出现的“it”, “he”, “she”这些词到底指向哪个实体,比如在本文里两个被标记出来的“it”都指向“hotel”这个实体。
实体统一和指代消解问题相对于前两个问题更具有挑战性 5. 知识图谱的存储 知识图谱主要有两种存储方式:一种是基于RDF的存储;另一种是基于图数据库的存储它们之间的区别如下图所示RDF一个重要的设计原则是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上其次,RDF以三元组的方式来存储数据而且不包含属性信息,但图数据库一般以属性图为基本的表示形式,所以实体和关系可以包含属性,这就意味着更容易表达现实的业务场景 根据最新的统计(2022年上半年),图数据库仍然是增长最快的存储系统相反,关系型数据库的增长基本保持在一个稳定的水平同时,我们也列出了常用的图数据库系统以及他们最新使用情况的排名其中Neo4j系统目前仍是使用率最高的图数据库,它拥有活跃的社区,而且系统本身的查询效率高,但唯一的不足就是不支持准分布式相反,OrientDB和JanusGraph(原Titan)支持分布式,但这些系统相对较新,社区不如Neo4j活跃,这也就意味着使用过程当中不可避免地会遇到一些刺手的问题如果选择使用RDF的存储系统,Jena或许一个比较不错的选择。
6. 金融知识图谱的搭建 接下来我们看一个实际的具体案例,讲解怎么一步步搭建可落地的金融风控领域的知识图谱系统首先需要说明的一点是,有可能不少人认为搭建一个知识图谱系统的重点在于算法和开发但事实并不是想象中的那样,其实最重要的核心 在于对业务的理解以及对知识图谱本身的设计,这就类似于对于一个业务系统,数据库表的设计尤其关键,而且这种设计绝对离不开对业务的深入理解以及对未来业务场景变化的预估当然,在这里我们先不讨论数据的重要性 一个完整的知识图谱的构建包含以下几个步骤:1. 定义具体的业务问题 2. 数据的收集 & 预处理 3. 知识图谱的设计 4. 把数据存入知识图谱 5. 上层应用的开发,以及系统的评估下面我们就按照这个流程来讲一下每个步骤所需要做的事情以及需要思考的问题 6.1 定义具体的业务问题 在P2P网贷环境下,最核心的问题是风控,也就是怎么去评估一个借款人的风险上的环境下,欺诈风险尤其为严重,而且很多这种风险隐藏在复杂的关系网络之中,而且知识图谱正好是为这类问题所设计的,所以我们“有可能”期待它能在欺诈,这个问题上带来一些价值。
在进入下一个话题的讨论之前,要明确的一点是,对于自身的业务问题到底需不需要知识图谱系统的支持因为在很多的实际场景,即使对关系的分析有一定的需求,实际上也可以利用传统数据库来完成分析的所以为了避免使用知识图谱而选择知识图谱,以及更好的技术选型,以下给出了几点总结,供参考 6.2 数据收集 & 预处理 下一步就是要确定数据源以及做必要的数据预处理针对于数据源,我们需要考虑以下几点:1. 我们已经有哪些数据? 2. 虽然现在没有,但有可能拿到哪些数据? 3. 其中哪部分数据可以用来降低风险? 4. 哪部分数据可以用来构建知识图谱?在这里需要说明的一点是,并不是所有跟反欺诈相关的数据都必须要进入知识图谱,对于这部分的一些决策原则在接下来的部分会有比较详细的介绍 对于反欺诈,有几个数据源是我们很容易想得到的,包括用户的基本信息、行为数据、运营商数据、网络上的公开信息等等假设我们已经有了一个数据源的列表清单,则下一步就要看哪些数据需要进。
