当前位置: 首页 > 科技观察

从一无所知到3分钟快速看懂“知识图谱”_0

时间:2023-03-13 00:51:14 科技观察

【.com原稿】知识图谱是一把开启智能机器大脑的钥匙,可以打开Web3.0时代的知识宝库。本文将从概念、架构、关键技术、应用领域,以及一些需要注意的问题等方面带你走进知识图谱的世界。什么是知识图谱?知识图谱由一组相互关联的类型化实体及其属性组成。知识图谱本质上是一个语义网络,是由节点(Point)和边(Edge)组成的基于图的数据结构。在知识图谱中,每个节点代表一个存在于现实世界中的“实体”,每条边是实体之间的“关系”。知识图谱是关系最有效的表示。通俗地说,知识图谱就是连接所有不同类型的信息(异构信息)而得到的关系网络。知识图谱提供了从“关系”的角度分析问题的能力。知识图谱的概念最早由谷歌提出,主要用于优化现有的搜索引擎。不同于传统的基于关键词搜索的搜索引擎,知识图谱可以用来更好地查询复杂的相关信息,从语义层面理解用户意图,提高搜索质量。例如,当你在谷歌搜索框中输入科比时,出生日期、家庭情况等与科比相关的信息就会出现在搜索结果页面的右侧。在知识图谱中,我们通常用“实体”来表示图中的节点,用“关系(Relation)”来表示图中的“边”。实体是指现实世界中的人、地名、概念、公司等事物,关系是用来表达不同实体之间的某种联系,比如人——“住”——北京、张三、李四是“朋友”等等。通过上面的例子,读者应该对知识图谱有了一个初步的印象,本质上就是代表知识。从实际应用的角度,知识图谱可以简单理解为多关系图(Multi-relationalGraph)。知识图的表示什么是多关系图?图由节点(Vertex)和边(Edge)组成,但这些图通常只包含一类节点和边。但相反,多关系图通常包含多种类型的节点和多种类型的边。比如下图,是因为图中包含了多种类型的节点和边。这些类型用不同的颜色标记。当知识图谱具有属性时,我们可以使用属性图来表示它。如上图所示,科比和瓦妮莎是夫妻。他们的结婚时间是2001年到2020年,结婚时间可以作为关系的属性,同样的,科比也有自己的属性,比如性别,出生日期等等,这个属性图的表达方式非常接近现实生活中的场景,也能很好地描述业务中包含的逻辑。除了属性图之外,知识图谱也可以用RDF表示,RDF由许多三元组组成。RDF设计的主要特点是易于发布和共享数据,但不支持实体或与属性的关系。如果必须添加属性,则需要进行一些设计修改。目前RDF主要应用于学术场景。在业界,我们仍然使用图数据库(例如,存储属性图)。知识图谱的存储方式主要有两种:一种是基于RDF的存储;另一种是基于图形数据库的存储。RDF的一个重要设计原则是数据的轻松发布和共享,而图数据库则侧重于高效的图查询和搜索。其次,RDF以三元组的形式存储数据,不包含属性信息,而图数据库一般以属性图作为基本表示形式,因此实体和关系可以包含属性,这意味着更容易表达现实的业务场景。知识抽取知识图谱的架构是指模型结构的构建,如下图所示。知识图谱的构建过程需要随着人的认知能力不断更新迭代。所谓静态关系图,就是我们不考虑图结构本身随时间的变化,只关注当前的知识图结构。然而,我们也知道地图的结构会随着时间而改变。在下图中,我们给出了时间T和T+1的知识图谱结构。我们很容易看出,在这两个时刻之间,图结构(或部分结构)发生了明显的变化。那么如何判断这些结构变化呢?感兴趣的读者可以关注我,我会持续更新知识图谱相关的技术栈。本文不会过多讨论。回到知识图谱的架构图,知识图谱的构建是后续应用的基础,而构建的前提是需要从不同的数据源中提取数据。对于垂直领域的知识图谱,其数据来源主要来自两个渠道:一是业务本身的数据,通常包含在公司的数据库表中,结构化存储;另一种是在互联网上发布和爬取的数据,通常以网页的形式存在,因此属于半结构化/非结构化数据。前者一般只需要简单的预处理,即可作为后续AI系统的输入,而后者一般需要借助自然语言处理等技术提取结构化信息。例如,在上面的搜索示例中,可以从非结构化数据中提取科比和瓦内萨之间的关系,例如维基百科等数据源。信息抽取的难点在于处理非结构化数据。需要从一段非结构化文本中提取实体、关系和属性。例如,下图是从维基百科获取的科比的文本信息:从大量文本中构建类似于文章开头的知识图谱,需要自然语言处理技术的几个方面:名称实体识别关系抽取、实体Resolution,和CoreferenceResolution首先是实体命名识别,也就是从文本中抽取实体,并对每个实体进行分类/标注:例如,从上面的文本中,我们可以抽取实体-“KobeBryant”,并将实体类型标记为“人”;我们还可以从中提取“Philadelphia,Pennsylvania”并将实体类型标记为“Location”。这个过程叫做实体命名识别,这是一个比较成熟的技术,有一些现成的工具可以用来做这个。其次,我们可以利用关系抽取技术从文本中抽取实体之间的关系。例如,实体“科比”与“宾夕法尼亚州费城”的关系是“出生于”等。另外,在实体命名识别和关系抽取过程中,存在两个难点问题:一是实体统一,即有些实体写法不同,但实际上指向同一个实体。比如“KobeBeanBryant”和“Kobe”表面上是不同的字符串,但都是指科比,所以需要合并。实体统一不仅可以减少实体的种类,还可以降低地图的稀疏性;另一个问题是指称的解析,指称是文中出现的“他”、“它”、“她”所指向的实体。.实体统一和共指消解问题比前两个问题更具挑战性。大规模知识库的构建和应用需要多种智能信息处理技术的支持。通过知识抽取技术,可以从一些公共的半结构化和非结构化数据中抽取实体、关系、属性等知识元素。通过知识融合,消除实体、关系、属性、事实对象等指称项之间的歧义,形成高质量的知识库。知识推理是在已有知识库的基础上进一步挖掘隐含知识,从而丰富和扩展知识库。分布式知识表示形成的综合向量对知识库的构建、推理、融合和应用具有重要意义。作为一篇科普文章,本文旨在为大家介绍知识图谱更深层次的知识抽取、知识表示、知识融合和知识推理技术。篇幅有限,将是下一篇文章的重点内容,供大家参考。关于构建知识图谱首先要说明的是,构建知识图谱系统最重要的核心是对业务的理解和知识图谱本身的设计,类似于一个业务的数据库表的设计系统。这样的设计绝对离不开对业务的深入理解和对未来业务场景变化的预测。当然,我们不会在这里讨论数据的重要性。一个完整的知识图谱的构建包括以下步骤:具体业务问题的定义数据收集与预处理知识图谱设计将数据存入知识图谱开发上层应用和系统评估。关于具体业务问题的定义,需要明确的一点是自身业务问题是否需要知识图谱系统的支持。因为在很多实际场景中,即使有一定的关系分析需求,其实也可以使用传统的数据库来完成分析。因此,为了避免使用知识图谱而选择知识图谱,以及更好的技术选择,下面做几点总结,以供参考。下一步是确定数据源并进行必要的数据预处理。这里我只是想说明一下,并不是所有相关数据都必须包含在知识图谱中。这部分的一些决策原则将在后续文章中进行更详细的介绍。知识图谱的设计是一门艺术。作为程序员,我把它留给更专业的人。在存储方面,我们不得不选择存储系统,但是由于我们设计的知识图谱是有属性的,图数据库可以是首选。但至于选择哪种图数据库,还要看业务量和对效率的要求。如果数据量特别大,Neo4j可能无法满足业务的需求。这时候你就不得不选择OrientDB、JanusGraph等支持准分布式系统的系统,或者通过效率和冗余的原则将信息存储在传统数据库中。减少知识图谱携带的信息量。一般来说,Neo4j足以应对规模小于10亿节点的图。做完这些,就可以来到我们最熟悉的环节,开始应用开发(代码)了。知识图谱的应用知识图谱的应用前提是知识图谱已经构建,也可以看成是知识库。当我们进行搜索时,我们可以直接通过关键词提取和知识库匹配得到最终答案。这种搜索方式不同于传统的搜索引擎。传统的搜索引擎返回的是网页,而不是最终的答案,因此多了一个用户自己过滤和过滤信息的过程。知识图谱的应用主要集中在搜索和推荐领域:在语义搜索方面,知识图谱的搜索不同于常规搜索。传统的搜索是根据关键词找到对应的网页集合,然后通过页面排名等算法来分配网页集合。对网站中的网页进行排名,然后展示给用户;基于知识图谱的搜索遍历现有图谱知识库中的知识,然后将查询到的知识返回给用户。通常,如果路径正确,查询的知识只有一种。或者几个,非常准确。对于问答系统,系统也会首先借助知识图谱对用户使用自然语言提出的问题进行语义分析和语法分析,然后将其转化为结构化的查询语句,再在知识中查询答案图。几点实用建议首先,知识图谱是一个比较新的工具,主要作用是分析关系,尤其是深层关系。所以,在业务上,首先要保证它的必要性。其实很多问题都可以用非知识图来解决。知识图谱领域最重要的主题之一是知识推理。而知识的推理是迈向强人工智能的必由之路。但遗憾的是,很多从语义网络角度讨论的推理技术(如基于深度学习、概率统计等)在实际的垂直应用中很难实现。事实上,目前最有效的方法是基于一些基于规则的方法论,除非我们有非常大的数据集。最后还是要强调一下,知识图谱项目本身还是以业务为中心,以数据为中心。不要低估业务和数据的重要性。如果本文对您有帮助,请点个赞,互相鼓励!参考文献:《知识图谱技术综述》许增林、盛永攀、何立荣、王亚芳知识图谱基础(一)——什么是知识图谱这是一本通俗易懂的知识图谱技术与应用指南作者:臧元辉简介:我工作中科星途股份有限公司(北京)研发部后端技术组。个人擅长Python/Java开发,了解前端基础知识;精通MySQL、MongoDB、Redis;熟悉Linux开发环境,掌握Shell编程,有良好的Git源码管理习惯;精通Nginx、Flask、Swagger开发框架;有Docker+Kubernetes云服务开发经验。他对人工智能和云原生技术有更大的兴趣。【原创稿件,合作网站转载请注明原作者和出处为.com】