NLP与LLM的工程化实践与学习思考 - 说说知识图谱

news2025/1/17 21:40:36

NLP与LLM的工程化实践与学习思考[24年半年工作总结] - 说说知识图谱

  • 0 真的就是先说说
  • 1 为什么知识图谱
    • 什么是知识图谱?
    • 基于图的数据结构?基于数据结构的图?
    • 知识图谱的技术要点
      • 两个技术维度:知识、图
      • 七个技术要点:表示、存储、抽取、融合、推理、问答和分析
    • 知识图谱能做什么?
  • 2 如何搭建知识图谱?
    • step1 从知识库中抽象出实体与关系的属性(知识建模)
    • step2 确定基于图的知识表示(知识表示模型)
    • step3 将属性图/RDF图存储到图数据库中(知识存储)
    • step4 将知识库中的知识抽取为一个个的三元组(知识抽取)
    • step5 知识融合
  • 3 怎么用已经搭建好的知识图谱?
    • 3.1 知识推理
    • 3.2 知识应用

0 真的就是先说说

知识图谱作为在大模型风靡之前,NLP领域的当红炸子鸡,大家几乎都或多或少听过或接触过。医疗、药物、法律条文、金融等等等等,只要能想到的,现在几乎都能直接找到对应的公开图谱。
如果仅仅只是想要搭建一个图谱,现在很轻松就可以实现,无论是百度还是华为,依托于自身对大量小模型的都提供了非常完整的从结构化、半结构化数据中直接生成图谱的商用pipeline,充钱就会变强√。
but,显然对数据安全和保密要求比较高的行业和公司,自己动手,丰衣足食。
现在也有很多有意思的开源项目,自动化的生成知识图谱,放几个地址,想玩的话可以试一下。

  • whyhow-ai:knowledge-graph-studio 这个项目实现基于规则的实体解析和模块化图构建
  • GraphRAG-SDK 这个项目用大模型自动抽取知识关系来搭建图谱

现在开源的项目主要也聚焦在自动化搭建流程上。不过今天想说的重点不在这儿。经常工程化的朋友都知道,想使用一个通用模型来解决一个专有领域的应用基本上不可能O(∩_∩)O。

1 为什么知识图谱

什么是知识图谱?

  • 知识图谱的前世今生:

    • 知识图谱的早期理念源于万维网之父Tim Berners-Lee关于语义网 (The Semantic Web)的设想,旨在采用图结构(Graph Structure)来建模和记录世界万物之间的关联关系和知识,以便有效实现更加精准的对象级搜索。知识图谱的相关技术已经在搜索引擎、智能问答、语言理解、推荐计算、大数据决策分析等众多领域得到广泛的实际应用。近年来,随着自然语言处理、深度学习、图数据处理等众多领域的飞速发展,知识图谱在自动化知识获取、知识表示学习与推理、大规模图挖掘与分析等领域又取得了很多新进展。知识图谱已经成为实现认知层面的 人工智能不可或缺的重要技术之一。

    在这里插入图片描述

    • 通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。

      在这里插入图片描述

  • 怎么理解知识图谱?

    • 知识图谱的基本组成:(节点-边-节点) ,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。
    • 可以将知识图谱看做是知识的一种离散符号表示,基于知识图谱的符号推理可以较为精准地定位答案。然而,符号推理对于语言的歧义性和噪声数据不够鲁棒。深度学习的发展推动了知识图谱的神经推理方法,能够弥补符号推理的缺陷,但推理的复杂度受限,且缺乏符号推理优秀的解释能力。
    • 总的来说,知识图谱旨在利用图结构建模、识别和推断事物之间的复杂关联关系和沉淀领域知识。

基于图的数据结构?基于数据结构的图?

—— 知识图谱到底是数据,还是数据结构?

知识图谱本质: 一种结构化的知识表示形式

即: 知识图谱是用某种结构来描述知识的一种表示形式。它的基本组成:三元组

  • 此处之所以没有明确表述是图结构还是表结构,且看后文。只是我们概念中的知识图谱,也即后文所述知识图谱均指图结构。

Question:如果基本组成就是三元组,用来描述实体以及实体与实体之间的关系,那知识图谱和表有什么区别,为什么单独提出知识图谱?似乎在基础应用上,比如:想要获取小猫行为与铲屎官之间关系,使用表还是使用图都没有区别?

  • 举个🌰:

    我使用表结构也能描述三元组关系:

    表征钱包空空幸福愤怒我儿是靓仔
    抓沙发0010
    小猫呼噜0101
    肠胃炎1000

    如果使用图结构来描述三元组关系:

    (抓沙发  ,表征,愤怒)
    (小猫呼噜,表征,幸福 )
    (小猫呼噜,表征,我儿是靓仔)
    (肠胃炎  ,表征,钱包空空)
    
  • 看到这里,是不是感觉很乱,我们不是想知道什么是知识图谱吗,似乎还是无法解释什么是知识图谱?

    • 还记得这一句话么:知识的表示形式,也就是说,无论是知识图谱还是表,都只是一种表现形式。
    • 所以,粗浅的概括,就是知识图谱是描述知识库的一种表现形式,与其它表现形式相比它具有很多优势:
      • 可以精炼、直观(相较于数据表更易于可视化)的描述一个复杂知识库
      • 可以直观的使用知识图谱进行数据挖掘
      • 可以有效实现更加精准的对象级搜索 …
    • 对于机器而言,图结构比文本更加友好。深度学习或者更为准确地说是表示学习的兴起,表明参数化的向量和神经网络是更适合机器完成快速计算的信息载体。比如,在自然语言中,可以为每个词学习一个向量表示;在图像处理中,也可以为视觉场景中的每一个对象学习一个向量表示;在知识图谱中,可以为每一个实体和关系学习一个向量表示。

    在这里插入图片描述

  • 是不是更疑惑了,知识图谱,图数据,图数据库,三元组…这些概念究竟有什么关系?又有什么区别?

  • 三元组怎么又和向量表示扯上关系了?

  • 什么又是表示学习?

  • 不要慌,先记住这些概念,当然,可以很明确的抓住一个重点:向量,往后看。

知识图谱的技术要点

要解释上面的问题,就要先明确知识图谱究竟有哪些技术点,从技术点入手,去理解知识图谱干了什么?知识图谱能干什么?

两个技术维度:知识、图

  • 从知识的角度:源于传统AI的知识表示与推理领域,关心怎么表示概念和实体,怎样刻画它们之间的关系,怎样进一步表示公理、规则等更加复杂的知识。

  • 从图的角度:源于知识图谱的互联网基因,关心图中的节点、边、链接、路径、子图结构,怎样存储大规模的图数据,怎样利用图的结构对图数据进行推理、挖掘与分析等。

七个技术要点:表示、存储、抽取、融合、推理、问答和分析

  • 表示:最基本的属性图表示和RDF图模型,以及更复杂知识的OWL本体表示和规则知识建模。
  • 存储:怎样利用已有的关系数据库存储知识图谱,也涉及性能更高的原生图存储、图查询语言等。
  • 抽取:怎样从文本中抽取概念、识别实体以及抽取三元组和事件等更为复杂的结构化知识。
  • 融合:怎样实现本体映射和概念匹配,以及实例层的实体对齐等技术。
  • 推理:基于传统符号逻辑的推理技术,以及新兴的基于表示学习和神经网络的推理技术。
  • 问答:问句理解、语义解析、答案生成和实体链接等多个智能问答领域的技术。
  • 分析:涉及传统的图算法,以及利用图嵌入、图神经网络等技术对知识图谱数据进行深度挖掘和分析等方面的技术。

在解决一个实际问题时,通常仅需要用到其中若干技术的组合。

所以,到这里有不有一点感觉了,到底什么是知识图谱:

知识图谱是一种对知识的表示形式。

  • 将知识抽象为实体与关系;从知识库中抽象出实体与关系的属性;使用三元组这一基本单元描述实体与实体之间的关系;然后将知识库中的知识抽取为一个个的三元组;我们使用属性图/RDF图模型来表示三元组;将属性图/RDF图存储到数据库中。

  • 然后将抽象出来的数据,进行推理、问答和分析等,以实现我们的任务。

可以说,知识图谱在广义上描述一个技术领域,该领域涉及表示、存储、抽取、融合、推理、问答和分析等所有技术要点和概念。在狭义上描述的是一种知识库,它的直观的表现为图结构的数据。

知识图谱能做什么?

  • QA问答

  • 搜索引擎+推荐算法

  • 逻辑决策辅助

  • 关联挖掘+根因分析

2 如何搭建知识图谱?

知识图谱的基本单位,是“实体(Entity)-关系(Relationship)-实体(Entity)”构成的三元组。

通常将知识图谱划分为两个层次:数据层和模式层。

· 数据层存储真实的数据。如 小猫肠胃炎 - 表征 - 钱包空空。

· 模式层: 在数据层之上,是知识图谱的核心,存储经过提炼的知识,通常通过本体库来管理。即: 实体-关系-实体,实体-属性-性值。


建知识图谱是一个迭代更新的过程,根据知识获取的逻辑,每一轮迭代包含:知识储存、信息抽取、知识融合、知识计算,四个阶段。

1、知识存储: 针对构建知识图谱设计底层的存储方式,完成各类知识的存储,包括基本属性知识、关联知识、事件知识、时序知识、资源类知识等。存储方式的忧虑将直接导致查询效率和应用效果。

2、信息抽取: 从各种类型的数据源中提取出实体、属性以及实体间的相互关系,在此基础上形成本体化的知识表达。

3、知识融合: 在获得新知识之后,需要对其进行整合,以消除矛盾和歧义,比如某些实体可能有多种表达,某个特定称谓也许对应于多个不同的实体等。

4、知识计算: 对于经过融合的新知识,需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分加入到知识库中,以确保知识库的质量。


用一张图可以明确表示知识图谱建立的整体流程以及技术要点:

在这里插入图片描述

那么,如何完成从0->1->100的过程呢?

key:0->1

还记不记得在上面阐述了知识图谱的概念:

  • 将知识抽象为实体与关系;
  • 从知识库中抽象出实体与关系的属性;
  • 使用三元组这一基本单元描述实体与实体之间的关系;
  • 然后将知识库中的知识抽取为一个个的三元组;
  • 我们使用属性图/RDF图模型来表示三元组;
  • 将属性图/RDF图存储到图数据库中。

这也是我们要做的0->1的过程。

step1 从知识库中抽象出实体与关系的属性(知识建模)

基于行业的应用属性、知识特点、实际需求,依据知识图谱的模式进行业务抽象和业务建模,主要是实体定义、关系定义、属性定义
举个🌰:

实体属性:
{
	"猫行为" : 1,
	"人行为" : 2
}
实体关系:
{
    "影响": 1,
    "原因": 2
}

关系模型:

idsubject_typerelation_typeobject_type
0猫行为原因人行为
1猫行为影响人行为

step2 确定基于图的知识表示(知识表示模型)

最常用的三元组表示方法有属性图RDF图两种。这两种表示方法都基于一个共同的图模型——有向标记图(Directed Labeled Graph),知识图谱就是基于有向标记图的知识表示方法。

  • 属性图:

    • 属性图是图数据库中常见的一种数据模型,它在图的节点和边上添加了属性信息,以丰富图结构中的数据。

    • 在属性图中,每个节点和边都可以有零个或多个属性,属性用于描述节点和边的特征、属性或元数据。

    • 举个🌰:

      (HeartDisease)-[:hasSymptom]->(ChestPain)
      (HeartDisease)-[:hasSymptom]->(ShortnessOfBreath)
      (HeartDisease)-[:treatedBy]->(Aspirin)
      (Aspirin)-[:belongsTo]->(Medication)
      (ChestPain)-[:belongsTo]->(Symptom)
      (ShortnessOfBreath)-[:belongsTo]->(Symptom)
      

      假设我们要描述疾病和药物之间的治疗关系,并希望在关系中添加可靠性权重,表示治疗效果的可信程度:

      (HeartDisease)-[:treatedBy {reliability: 0.9}]->(Aspirin)
      

      我们在关系描述中使用了属性来表示关系的可靠性权重。:treatedBy是疾病和药物之间的治疗关系,{reliability: 0.9}表示了这个关系的可靠性权重为0.9,即治疗效果的可信程度为90%

  • RDF图:

    • 主要用于网络信息

    • 通常以平坦的三元组形式存储在三元组数据库中,每个三元组表示一个关系或语义描述。

    • 举个🌰:

      @prefix : <http://example.org/medical#> .
      
      :HeartDisease a :Disease ;
          :hasSymptom :ChestPain ;
          :hasSymptom :ShortnessOfBreath ;
          :treatedBy :Aspirin .
      
      :Aspirin a :Medication .
      
      :ChestPain a :Symptom .
      
      :ShortnessOfBreath a :Symptom 
      
  • 除此之外还有OWL等表示模型,OWL是基于RDF的一种更为复杂和强大的知识表示语言。它支持更丰富的数据类型和关系,包括类、属性、个体等,并能表达复杂的逻辑关系,如等价类、属性限制等。OWL的优势在于其表达能力和逻辑推理能力,适用于构建复杂的领域知识图谱。OWL 本体可以转化为 RDF 三元组的形式进行存储,此处不多赘述。

step3 将属性图/RDF图存储到图数据库中(知识存储)

上面我们介绍了,最常用的知识图谱表示方法有属性图RDF图两种。

如何存储我们的图?

  • 图数据库充分利用图的结构建立微索引。这种微索引比关系数据库的全局索引在处理图遍历查询时更加廉价,其查询复杂度与数据集整体大小无关,仅正比于相邻子图的大小。因此在很多涉及复杂关联和多跳的场景中得到广泛应用。
  • 这里需要说明的是,图数据库并非知识图谱存储的必选方案

如何使用数据库存储三元组数据?

  • RDF数据的存储:
    • 存储结构:RDF数据通常以平坦的三元组形式存储在三元组数据库(关系表数据库)中,每个三元组表示一个关系或语义描述。

    • 存储格式:常见的RDF存储格式包括N-Triples、Turtle、RDF/XML等,用于序列化和交换RDF数据。

    • RDF数据也可以被存储在图数据库中,但是需要映射,因为图数据库天然支持图结构数据的存储和查询,而RDF数据正是以图的形式来表示资源之间的关系。

    • 查询:

      • 查询语言:RDF数据通常使用SPARQL查询语言进行查询,SPARQL支持对RDF图进行模式匹配、数据过滤和推理等操作。

      • 查询方式:SPARQL查询可以针对RDF图中的实体、属性和关系进行复杂的查询和分析,支持多种查询模式和语义推理功能。

  • 属性图数据的存储:
    • 存储结构:属性图的数据模型更接近于图数据库的原生数据结构,它可以更直接地映射到图数据库中的存储和查询实现。通常以图数据库的形式存储,图数据库将数据存储为节点、边和属性的集合
    • 存储格式:一些流行的图数据库包括 Neo4j、TigerGraph、Amazon Neptune 等
    • 图数据库是专门用于存储和处理图结构数据的数据库系统,它采用了图(Graph)数据结构来表示知识图谱中的实体、属性和关系。图数据库通常包含节点(Node)和边(Edge)两种基本元素,节点表示实体,边表示实体之间的关系,节点和边都可以附带属性。
    • 查询:
      • 查询语言:图数据库通常使用自己的查询语言或API来进行图查询,如Cypher、Gremlin等。
      • 查询方式:图查询语言可以针对图中的节点、边和属性进行灵活的查询和分析,支持节点遍历、图搜索、图匹配等操作。

总结一下子:

特点RDFOWL图数据库
语义表达一般一般
推理功能一般一般
查询效率一般一般
数据可视化一般一般
复杂性一般
存储开销一般

step4 将知识库中的知识抽取为一个个的三元组(知识抽取)

信息抽取(infromation extraction)信息抽取是一种自动化地从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息的技术。关键技术包括:实体抽取、关系抽取和属性抽取。

也即,从数据源抽象出表述为实体(Entity)-关系(Relationship)-实体(Entity)的知识。

可以简要的细分为以下三个方面:

1、实体抽取,也称为命名实体识别(named entity recognition,NER),是指从文本数据集中自动识别出命名实体。

2、关系抽取, 为了得到语义信息,从相关语料中提取出实体之间的关联关系,通过关系将实体联系起来,才能够形成网状的知识结构。

3、属性抽取, 目标是从不同信息源中采集特定实体的属性信息,如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息。采用数据挖掘的方法直接从文本中挖掘实体属性和属性值之间的关系模式,据此实现对属性名和属性值在文本中的定位。

  • 这三个方面可以合并为实体关系抽取任务

  • 关于知识抽取,后续专门用一个章节来讲。实际上知识图谱建立整个过程中,最麻烦和最大的工作量都来源于此。

至此,0->1的过程就完成了。但是不可能从1->100的过程直接完成了。因为在上述过程中我们会遇到一些亟待解决的问题:

  • 自动的知识抽取过程中,如何解决错误/冗余数据?
  • 如何解决同名实体的歧义问题?
  • 如何解决多个指称对应同一实体的问题?

为什么不把解决这些问题放到0->1的过程中?因为不解决这些问题,对我们的图谱来说只是有些冗余,并且描述精准度会降低。但不是不能用。

step5 知识融合

通过信息抽取,实现从原始数据中获取到了实体、关系以及实体的属性信息后,就需要通过知识融合对数据进行逻辑归属和冗杂/错误过滤。即需要实体链接知识合并两个流程实现。

1、对非结构化/半结构化数据处理:实体链接 (entity linking)的流程是通过给定的实体指称项, 通过 相似度计算 进行 实体消歧和共指消解, 确认正确实体对象后,再将该实体指称项链接到知识库中对应实体。其中 实体消歧 解决同名实体产生歧义问题,共指消解解决多个指称对应同一实体对象的问题。

2、对结构化数据处理:知识合并主要涉及“合并外部知识库”,处理数据层和模式层的冲突;以及用RDB2RDF等方法“合并关系数据库”

这五步骤完全完成,才是真正0->1的过程。

3 怎么用已经搭建好的知识图谱?

3.1 知识推理

我们在上面讨论过知识图谱能做什么,有一点抽象。那么现在阐述的就是能做什么的具象化表达:

  • 知识图谱推理的目标是利用图谱中已经存在的关联关系或事实来推断未知的关系或事实

还是有一点抽象?

再细化一点:

  • 推理可以用来实现链接预测、补全缺失属性、检测错误描述和识别语义冲突,以提升图谱质量等。
  • 在查询和问答中,推理可以用来拓展问句语义,提高查询召回。
  • 在推荐计算中,推理可用来提升推荐的精准性和可解释性。
  • 此外,推理在深度语言语义理解和视觉问答中也扮演着必不可少的角色。凡是包含深度语义理解的任务都会涉及推理的过程。

在介绍推理算法之前,我们回顾一下关于图的定义:

图通常由节点集合V、边集合E组成,图中可能存在R种类型的边,每条边可以描述为一个由节点和边类型组成的三元组。不同的图按照图结构和类型有不同的分类。按图结构可分为有向图或无向图,有环图或无环图,带权重图或不带权重图,以及稀疏图或稠密图。按类型可分为同构图,即图中只有一种类型的节点、一种类型的边,以及异构图,即图中存在多种类型的节点或多种类型的边。


当前,在知识图谱中实现推理大致可以分为基于符号逻辑的方法基于机器学习的方法基于表示学习的方法。(陈华均老师在《知识图谱导论》一书中分为基于符号逻辑的方法和基于表示学习的方法,私以为,为了区分传统智能算法与神经网络算法实现,此处另区分了基于机器学习的方法,实际都是机器学习算法)传统基于符号逻辑的方法的主要优点是具备可解释性,主要缺点是不易于处理隐含和不确定的知识。基于表示学习的方法的主要优点是推理效率高且能表征隐含知识,主要缺点是丢失可解释性。


到底如何实现推理🤔️?

  • 基于符号逻辑的方法:

    • 基于本体公理:例如,定义一条代表类别之间包含关系的公理:“人工智能公司rdfs:subClassOf高科技公司”,或者定义一条领域公理,声明投资关系的“domain”是投资人。利用这些简单的公理就可以实现一些简单的演绎推理了。比如,如果知道谷歌是一家人工智能公司,就可以应用第一条公理推理得出谷歌也是一家高科技公司。这种基于符号本体实现的演绎推理一个特点是很精确,并且不存在可解释的问题,因为每一个推理得出的结论都可以回溯和给出推理的过程。

    • 这些方法通常使用逻辑推理规则,例如谓词逻辑、规则逻辑等,根据已知的事实和规则进行推理。

    • 典型的方法包括基于规则的推理、语义推理和概率逻辑推理等。这些方法通常基于专家知识和领域本体进行推理。

    • 常用算法:Tableaux算法、Datalog、产生式…(不多赘述,感兴趣可以去看书)

怎么把知识图谱用到机器学习,深度学习上🤔️?

  • 基于机器学习的方法:

    1. 图遍历:通过遍历图中的节点和边,探索节点之间的关系,从而发现新的知识。图遍历可以是深度优先搜索(DFS)或广度优先搜索(BFS)等算法。
    2. 图匹配:在图中寻找与给定模式相匹配的子图,从而发现具有相似结构或属性的节点或子图。常用的图匹配算法包括子图同构算法和子图搜索算法。
    3. 路径推理:通过寻找节点之间的路径,发现节点之间的关联性和潜在的推理规则。路径推理可以基于图的拓扑结构,也可以考虑路径上的属性信息。即如果在路径和节点加上置信度属性,就可以把知识推理转化为最短路径问题,可以使用蚁群、A*、Dijkstra算法实现。
    4. 社区发现算法:复杂图的一个相当普遍的特征是,它们由节点集组成,这些节点集相互之间的相互作用比与该组外部节点之间的相互作用更多。例如,社交网络可能由紧密联系的朋友社区组成,而不同社区之间的友谊关系却很少。

什么是表示学习方法呢🤔️?

还记得上面提到的表示学习和向量吗,重点就在向量

  • 向量化的表示已经在人工智能的其他领域非常常见,例如在自然语言处理中,可以为句子中的每个词学习一个向量表示(Word Embedding),在图像视频中也可以为每个视觉对象学习一个向量表示。对于知识图谱,也可以为其中的每一个实体和关系学习一个向量表示,并利用向量、矩阵或张量之间的计算,实现高效的推理计算。

  • TransE和DistMul等知识图谱嵌入系列模型。这些模型的基本思想是将知识图谱中的实体和关系都投影到向量空间。

  • 首先要明确几点,我们说表示学习(或者说机器学习),可以将所有模型描述为一个万能函数拟合器,我们要如何选取这个拟合函数呢,那就一定要有一个优化目标

<这一块儿内容太多了就不放上来了,经典解决方案,可以搜搜看, TransE, TransH等等,很多>

现在对向量表示有一点概念了,我们再来说这些方法。这里要提醒一点,我们在这段落讨论的所有内容都是为一件事服务:推理

  • 表示学习的主要方法:

    • 知识图谱表示学习算法主要基于不同的假设设计损失函数,并学习实体及关系的向量表示。比如我们上面讨论的TransE和DistMult就是知识图谱表示学习算法。为什么单独强调是知识图谱表示学习算法,因为我们还有一个概念:图表示学习

    • 什么是图表示学习呢🤔️?

      • 图表示学习主要对图的结构进行学习,即使是Metapath2vector等异构图表示学习模型,都更多地考虑图结构特征对节点表示的影响。
    • 那我们现在可以说他们的异同:

      • 图表示学习主要考虑图本身的结构特征;知识图谱表示学习不仅要考虑图的结构特征,还需要考虑节点和边的语义类型信息
      • 此外,图,表示学习侧重做节点分类、链接预测等任务,而知识图谱表示学习的最终目标是要支持更为复杂的逻辑推理,因而对模型要求更高。
    • 图表示学习是要利用表示学习技术,将图中的每个节点映射到低维向量空间,得到一个向量表示,这个向量表示能够反映原先图谱的一些结构特性或语义特性。同一类型的节点用相同的颜色表示,经图表示学习算法映射后,相同类型的节点在低维向量空间中呈现聚类的特点

在这里插入图片描述

​ 总的来说,图表示学习算法都是利用节点在图上的邻居节点信息和图的结构信息学习节点的表示。

  1. 基于图的表示学习(Graph Representation Learning):这些方法利用图的拓扑结构和属性信息,学习节点和边的向量表示。常见的方法包括 DeepWalk、Node2Vec、GraphSAGE 等。
  2. 图神经网络(GNN)(Graph Neural Networks):GNN 是一种特殊的神经网络模型,专门用于学习图数据的表示。GNN 模型通过迭代地聚合节点的邻居信息,将节点表示更新为包含邻居信息的新表示。常见的 GNN 模型包括 GCN(Graph Convolutional Networks)、GAT(Graph Attention Networks)等。
  3. 节点分类和链接预测:这些任务通常利用学习到的节点表示进行进一步的分析和预测。例如,可以利用学习到的节点表示进行节点分类(预测节点的类别)或链接预测(预测节点之间是否存在边)等。
  4. 图嵌入:TransE、DistMult等
  5. 增强语义解析框架的方法——STAGG

推理方法介绍完了,还是有点抽象。现在我们知道了表示,知道了推理方案,还有一点没有落实,那就是应用。

我们在这段落讨论的所有关于推理的内容都是为一件事服务:应用

3.2 知识应用

看了上面阐述的知识推理相关的内容,是不是就有一点应用的感觉了?

比如说在上面说的:

  • KBQA问答
  • 搜索引擎+推荐算法
  • 逻辑决策辅助
  • 关联挖掘+根因分析

实际上应用就是把我们的实际业务涉及到的,如何使用知识图谱的问题,抽象为数学问题,然后利用上述知识推理的技术方法,去实现我们的目的。

啊,具体的业务场景就不举例了,贴个博客金融图谱应用,诸位可以找找感觉。

例子概括一下思路就是:
1、整个业务场景可以抽象为哪几种业务模式,比如说上面金融图谱的应用,从涉及图谱的角度出发,可以分为:

  • 子图冲突检测(反欺诈)
  • 社区发现(反欺诈)
  • 多级概率推理(风险预测)

2、以最少,含义重叠率最小的实体和关系属性覆盖业务场景(以最精简的三元组信息描述业务场景):这也是完全自动化或通用模型尽管可以使用,但是在工程中不会直接使用的原因。属性的定义与实际业务场景具有高度的关联性。

3、尽可能抽象自己业务信息来源,根据自己业务场景的实体和关系属性,优先选择最重要业务场景的主要信息类型,针对性构建信息自动化抽取pipeline(通常情况下专有信息来源的特征与后续交互流程中主要的信息处理的特征有相当的相似性)。

4、将信息抽取为三元组,构建图谱

5、设计推理系统

6、构建验证系统(仿真)


一个综述,清晰一下知识图谱的概念。至于为什么要单独花一个篇章讲知识图谱?
在NLP领域的研究中,比较普遍的研究方向:词法分析,句法分析,语义理解,信息抽取,机器翻译,情感分析,问答系统,信息检索,文本生成,语音识别和生成,文本挖掘,跨语言自然语言处理等,很大一部分都是知识图谱这个大技术领域的子模块,一个完整的基于知识图谱应用的业务流程,对其进行抽象业务实现模块,每一个子模块大致都是其中几项技术的排列组合。
CV也好,NLP也好,整个AI方向的业务实现大致上都可以以相似的思路实现:抽象主要模块,快速选型搭积木。当然,这就是说我们整个实现方法上,要尽可能灵活 - 不做重复开发,可以同时对多个模块进行优化(注意一点,灵活,解耦)。

我想想下篇写啥,关系抽取?我想想要不要先单独写Bert。

Ref:
https://zhuanlan.zhihu.com/p/352088232
https://www.fanzhuoya.com/ai/knowledge-graph/#411-%E5%8F%8D%E6%AC%BA%E8%AF%88

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2256350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS2 - C++工程创建和工程解析

ROS2 系列文章目录 文章目录 ROS2 系列文章目录前言1. 安装构建工具colcon1.1 简介1.2 安装colcon 2. 创建工作空间2.1 创建一个工作目录 3 创建一个C软件包4. 编写发布者节点4.1 使用wget获取一个模板4.2 代码解读4.2 添加依赖项4.3 修改CmakeLists.txt 5. 编写订阅者节点5.1 …

【5G】架构 Architecture

5G网络架构受到了多个因素的影响。首先是为云端实现做好准备&#xff0c;其次是应对比之前更大的数据速率和更低的时延&#xff0c;启用新服务的能力&#xff0c;以及特别是在初期阶段与长期演进&#xff08;LTE&#xff09;的互操作需求。所有这些因素都对5G架构产生了影响。除…

vue2+html2canvas+js PDF实现试卷导出和打印功能

1.首先安装 import html2canvas from html2canvas; import { jsPDF } from jspdf; 2.引入打印插件print.js import Print from "/assets/js/print"; Vue.use(Print) // 打印类属性、方法定义 /* eslint-disable */ const Print function (dom, options) {if (…

图像滤波和卷积的不同及MATLAB应用实例

滤波与卷积在图像处理中都是非常重要的运算&#xff0c;但它们有着明显的区别。以下是滤波与卷积的主要不同点&#xff0c;并附带一个MATLAB实例来展示两者在图像处理中的效果差异。 一、滤波与卷积的不同 定义与目的&#xff1a; 1&#xff09;滤波&#xff1a;滤波是一种信…

Java集合(三)- Stack Queue

目录 一、Stack & Queue概述 1.1、Queue 1.2、Deque 二、方法剖析 2.1、addFirst() 2.2、addLast() 2.3、pollFirst() 2.4、pollLast() 2.5、peekFirst() 2.6、peekLast() 一、Stack & Queue概述 Java里有一个叫做Stack的类&#xff0c;却没有叫做Queue的类…

数据结构理论

内容来源青岛大学数据结构与算法课程&#xff0c;链接&#xff1a;数据结构与算法基础&#xff08;青岛大学-王卓&#xff09;_哔哩哔哩_bilibili 绪论 数据结构概述 数据结构和算法的定义&#xff1a;我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存…

008.精读《Apache Paimon Docs - Table w/o PK》

文章目录 1. 引言2. 基本概念2.1 定义2.2 使用场景 3. 流式处理3.1 自动小文件合并3.2 流式查询 4. 数据更新4.1 查询4.2 更新4.3 分桶附加表 5 总结 1. 引言 通过本文&#xff0c;上篇我们了解了Apache Paimon 主键表&#xff0c;本期我们将继续学习附加表&#xff08;Append…

硬件选型规则

光源选型: 先用型号中带H的&#xff0c;没有的选标准的. 光源和光源控制器的搭配需要确保接口一致。 根据型号表中的最佳工作距离和相机的尺寸。 光源控制器选型&#xff1a; 首先选择海康风格系列光源控制器考虑与光源的接口匹配。功率应该满足接近光源功率。检查是否退市…

数据分析系列---requests的使用

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 主环境和虚拟环境 主环境是电脑上安装的python环境 虚拟环境在项目中可以实现环境的隔离&#xff0c;假设DemoA和DemoB分别用到了某个三方库1.0和2.0版本&#xff0c;那么在一个…

selenium常见接口函数使用

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;测试_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 1. 查找 查找方式 css_s…

深度学习之预备知识

深度学习是关于优化的学习。对一个带有参数的模型&#xff0c;找到其中能拟合数据最好的模型。 一、数据操作 张量&#xff1a;表示一个由数值组成的数组&#xff0c;这个数组可能有多个维度。具有一个轴的张量对应数学上的向量&#xff0c;具有两个轴的张量对应数学上的矩阵&…

【论文相关】期刊/会议 信息检索——IEEE各期刊投稿要求(待完善)

[吐槽] 外文期刊/会议网站的真的很难找&#xff0c;想要了解的信息很难检索&#xff1b;比如 旗下子期刊官网、子期刊具体要求不同等问题。 TIFS期刊 (IEEE Transactions on Information Forensics and Security) 期刊官网链接&#xff1a;https://mc.manuscriptcentral.com/…

ElementUI:el-tabs 切换之前判断是否满足条件

<div class"table-card"><div class"card-steps-class"><el-tabsv-model"activeTabsIndex":before-leave"beforeHandleTabsClick"><el-tab-pane name"1" label"基础设置"><span slot&…

入职体检心电图不合格的常见情况

心电图&#xff08;ECG&#xff09;是通过记录心脏的电活动来评估心脏健康状况的一项常见检查。它是体检中常见的检查项目之一&#xff0c;尤其对于从事需要高度体力活动的职业&#xff08;如医护、公安、消防等&#xff09;或对心脏健康有特别要求的行业&#xff0c;心电图的结…

释放 AI 潜能:掌握提问策略,让 AI 事半功倍

在这个 AI 大模型快速迭代的时代&#xff0c;人人都能免费使用 AI。然而&#xff0c;很多人却发现&#xff0c;自己与 AI 互动的效果并不理想。这并非 AI 的问题&#xff0c;而是方法不对。输入决定输出&#xff0c;只有掌握正确的提问策略&#xff0c;才能真正释放 AI 助手的生…

AI赋能:构建安全可信的智能电子档案库

在档案的政策与法规上&#xff0c;《中华人民共和国档案法》2020年修订新增&#xff0c;对电子档案的合法要件、地位和作用、安全管理要求和信息化系统建设等方面作出了明确规定&#xff0c;保障数字资源的安全保存和有效利用。 日前&#xff0c;国家档案局令第22号公布《电子…

【计算机网络】实验12:网际控制报文协议ICMP的应用

实验12 网际控制报文协议ICMP的应用 一、实验目的 验证ping命令和tracert命令的工作原理。 二、实验环境 Cisco Packet Tracer模拟器 三、实验过程 1.构建网络拓扑并进行信息标注&#xff0c;将所需要配置的IP地址写在对应的主机或者路由器旁边&#xff0c;如图1所示。 图…

【C语言】程序设计--算法

文章目录 1. 判断两个数的大小并交换2. 计算三角形面积3. 根据x的值计算y4. 字符大小写转换5. 百钱百鸡问题6. 计算公式y的值7. 输出所有的水仙花数8. 计算n的阶乘9. 下三角数据10. 斐波那契数列11. 学生成绩统计12. 数组的平均值1. 判断两个数的大小并交换 介绍: 从键盘输入…

使用IntelliJ IDEA开发Gradle插件并发布到本地

博主所用软件版本为&#xff1a; IntelliJ IDEA 2024.1.4 (Community Edition) Android Studio Ladybug Feature Drop | 2024.2.2 Beta 1 1、制作gradle插件&#xff08;IntelliJ IDEA 2024.1.4&#xff09; 新建groovy工程&#xff0c;File–>New–>Project… 右键点…

Trimble X9三维激光扫描仪高效应对化工厂复杂管道扫描测绘挑战【沪敖3D】

化工安全关系到国计民生&#xff0c;近年来随着化工厂数字化改革不断推进&#xff0c;数字工厂逐步成为工厂安全管理的重要手段。而化工管道作为工厂设施的重要组成部分&#xff0c;由于其数量多、种类繁杂&#xff0c;一直是企业管理的重点和难点。 传统的化工管廊往往缺乏详…