知识图谱之汽车实战案例综述与前瞻分析

知识图谱的前置介绍

什么是知识图谱

知识图谱本质(Knowledge Graph)上是一种叫做语义网络(semantic network ) 的知识库,即具有有向图结构的一个知识库;图的结点代表实体(entity)或者概念(concept),而图的边代表实体/概念之间的各种语义关系,比如说两个实体之间的相似关系;知识图谱旨在描述真实世界中存在的各种实体或概念及其关系,一般用三元组表示;

知识图谱概念由来

知识图谱(Knowledge Graph )的概念由谷歌 2012 年正式提出,旨在实现更智能的搜索引擎,并且于 2013 年以后开始在学术界和业界普及,并在智能问答、情报分析、反欺诈等应用中发挥重要作用。

知识图谱总体架构 

常用的获取知识的方法 

网络爬虫

网络爬虫原理


 

Schema.org 是一个协作、社区活动,由搜索引擎巨头 Google、Microsoft、Yahoo 和 Yandex 发起,旨在创建、维护和推广一套共同的、通用的数据标记模式(schemas),这些模式可以被搜索引擎和其他web爬虫理解。该项目的目的是为了改善互联网中信息的结构化表示,以便搜索引擎能够更好地理解网页内容,并据此提供更丰富和更精确的搜索结果。

Schema.org 提供的这些模式涵盖了各种实体类型,如人、地点、事件、产品和许多其他内容类型,以及这些实体之间的关系。这些模式通常以JSON-LD、Microdata或RDFa的形式嵌入到网页HTML中,提供了一种方式来注释网页元素,使其含义对机器更加清晰。

例如,如果一个网站使用了Schema.org的标记,它可以告诉搜索引擎,“这里列出的是一项活动,它在这个日期和这个地点举行,由这个组织主办”。这样,搜索引擎可以创建更智能的搜索结果,包括富媒体片段(如星级评分、价格范围、事件日期等),并为用户提供更直观的信息。

在搜索引擎优化(SEO)中,使用Schema.org标记被认为是一种最佳实践,因为它可以增强搜索引擎对网站内容的理解,从而可能提高网站在搜索结果中的表现。

 

wikidata

wikidata一个免费的、开放的、可编辑的知识库,它可以为维基百科和其他维基媒体基金会的项目,以及任何人使用的外部应用程序,提供结构化的数据。Wikidata 旨在成为一个中央存储库,为所有维基百科语言版本和其他维基媒体基金会的知识项目提供公共数据。

在Wikidata上,数据以项(items)和声明(statements)的形式组织。每个项都代表一个概念或实体(如人、地点、概念、事件等),并且有一个独一无二的标识符(称为QID)。声明则用于描述一个项的性质,包括与其他项的关系、属性特征等。

Wikidata是一个动态发展的项目,任何人都可以参与编辑和贡献数据,它通过社区协作,不断增加和改进数据质量。


 

图数据库

neo4j

知识图谱模型设计

设计方法论 

知识图谱设计方法论

UMLS语义网络

UMLS(统一医学语言系统,Unified Medical Language System)是美国国家医学图书馆(National Library of Medicine)建立的医学领域的一种广为接受的知识表示(knowledge representation)标准。UMLS旨在通过标准化大量医学和健康术语,以达成映射多种医学词汇体系的目标,使得不同的医学系统能够通信,并且能够更清晰地理解了各种种类的健康和生物医学代码和术语。

UMLS主要由以下三部分组成:

  1. Meta-thesaurus(元词表):这部分是 UMLS 的核心,包含来自不同来源的医学术语、疾病描述、药物信息等,并关联着多个不同医学词汇体系中的术语。元词表提供统一标识符(UMLS Concept Unique Identifiers, CUIs)来整合各种术语和概念,并显示它们之间的关系。

  2. Semantic Network(语义网络):它为术语和概念建立了一个大范围的分类框架,语义网络包含了广泛的、经过分层的、医学概念类别和类别间关系的定义。每个概念都被分配到一个或多个语义类型,像药物、疾病或医疗设备等,而语义类型之间也定义了多种可能的语义关系,比如"治疗"或"致病"。

    • SPECIALIST Lexicon and Lexical Tools(专家词汇及查词工具):这是一个包含很多与医学相关期名词与单词的大型英语词汇库。结合一组用来解析和构造自然语言的软件工具。专家词库针对生物医疗领域进行了优化,支持文字处理和自然语言理解任务比如段落、句法分析和词形变换。

UMLS 实际上可以视作一种健康医疗领域的知识图谱,因为它组织了大量的医疗术语、概念及它们之间的关联。

知识图谱模型设计之参照法-UMLS语义网络

知识图谱模型设计之参照法-UMLS语义网络

知识图谱模型设计之归纳法

模型设计流程
知识图谱模型设计之归纳法-产品生命周期模型

知识图谱语义类型设计:高层抽象可复用(参照与对标)

知识图谱语义类型设计:底层明细需适配(归纳法)
知识图谱语义类型设计:底层明细需适配(归纳法)

知识图谱语义类型设计:底层明细需适配(归纳法)-事件中抽取


 

开源框架NLP 框架

通用实体命名识别



CoreNLP,CRF

知识图谱可视化

Apache ECharts

D3 by Observable | The JavaScript library for bespoke data visualization

汽车项目可视化(基于 ECharts)

推荐系统介绍

常见的推荐系统分类
推荐系统得体系结构

推荐系统得策略模型

知识图谱和推荐系统相结合

知识图谱与推荐系统的融合,可以提升推荐内容的准确性和效果。

三种融合方式

  1. 基于实体属性的推荐:利用知识图谱中实体的属性信息来推荐内容,例如,根据用户的兴趣属性推荐相关的内容。

  2. 基于实体关系的推荐:通过分析知识图谱中实体间的关系,如朋友关系、喜好关系等,来推荐用户可能感兴趣的内容。

  3. 基于知识图谱特征向量的推荐:使用知识图谱中实体的特征向量来生成推荐,这些向量可以捕捉实体的深层次特征,从而提高推荐的个性化程度。

三种训练模式

  • 一次训练:在推荐系统中直接使用知识图谱数据进行训练。
  • 联合训练:同时训练推荐系统和知识图谱模型,使它们共享知识。
  • 交替训练:先训练推荐系统,然后使用其输出来更新知识图谱,再反过来用更新后的知识图谱来训练推荐系统。
推荐系统和知识图谱的结合训练的三种模式

RippleNet工作原理和实现机制

RippleNet是一个结合了知识图谱和推荐系统的框架,旨在通过利用知识图谱中的结构化事实来增强推荐系统的效果。在这个框架中,知识图谱的每个实体(如电影、演员、导演)和关系(如"演员参演电影")被用来丰富用户和物品的表示。

RippleNet网络结构

下面是RippleNet的工作原理和实现机制的简要说明:

RippleNet工作原理和实现机制

  1. 输入

    • 用户u:用户的唯一标识。
    • 物品v(例如,推荐系统中的电影或商品):物品的唯一标识。
    • 用户点击历史Vu​:用户过去的行为记录,如用户点击或购买的物品列表。
  2. 知识图谱

    • 知识图谱包含大量的事实,这些事实以三元组(头实体h,关系r,尾实体t)的形式表示
  3. 种子

    • 用户历史中的每个物品都被视为传播的种子点。这些种子点在知识图谱中被激活,从而影响与用户历史相关的其他实体。
  4. 传播(Propagation)

    • RippleNet通过多个跳数(Hop)对知识图谱进行传播,每一跳都会从当前实体扩散到与之关联的实体,这些实体集合称为"波纹集"(Ripple Set)。
    • 每个跳数可以看作是一层网络,每一层都会收集与上一层相关的实体和关系。
  5. 波纹集的影响

    • 用户的嵌入向量(User Embedding)受到波纹集影响,这些集合包含了用户兴趣的上下文信息。
    • 例如,如果用户点击了某部电影,那么与这部电影相关的导演、演员等实体就会影响用户的表示。
  6. 加权平均与Softmax

    • 每个波纹集会对应一个潜在的用户兴趣表示,这些表示通过加权平均得到用户的最终嵌入。
    • Softmax函数用于将加权后的用户嵌入向量转换为与特定物品相关联的预测概率。
  7. 预测

    • 用户嵌入和物品嵌入(Item Embedding)被送入神经网络中进行计算,输出用户点击给定物品的预测概率。
    • 最终,预测概率被用于生成推荐列表,优先推荐那些具有较高点击概率的物品。

简而言之,RippleNet利用知识图谱中的关系网络来富化用户和物品的表示,使得推荐结果能够更加准确地反映用户的潜在兴趣。通过跳数(Hop)不断传播,它能够考虑到用户历史行为的多个层面,从而实现更深层次的个性化推荐。

相关资料

知识图谱+推荐系统 RippleNet:论文解读+代码 - 知乎

OpenKG.CN – 开放的中文知识图谱

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

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

相关文章

大数据 Yarn - 资源调度框架

Hadoop主要是由三部分组成,除了前面我讲过的分布式文件系统HDFS、分布式计算框架MapReduce,还有一个是分布式集群资源调度框架Yarn。 但是Yarn并不是随Hadoop的推出一开始就有的,Yarn作为分布式集群的资源调度框架,它的出现伴随着…

Java Base64简单介绍

1. Base64工具 工具链接 2. Base64示例代码 public class Base64Demo {// 请注意,在处理二进制数据时(例如图片或文件),不需要将字节数组转换为字符串再进行编码或解码,// 可以直接对字节数组进行Base64操作。上述…

路由器01_工作原理

一、回顾交换机工作原理 交换机里面维护了一张MAC地址表,主要记录的是MAC地址和接口的对应关系。 交换机在初始状态下,MAC地址表是空的,当收到一个来自某接口的数据时,首先查看数据帧中的MAC地址表,对照自己的MAC地址…

在IDEA中使用git分支进行开发然后合并到Master分支,2022.1.x版本

在实际开发过程中,为了避免因为在开发中出现的问题以及方便发布版本,如果是多版本发布的情况相下,我们通常需要采用分支进行开发,这个时候,我们就需要了解git分支的相关知识点了,本篇博客也是博主在实际公司…

近5年的学习经历总结

2013年迈入工作,到今年2024年,是工作的11个年头。从C语言嵌入式方向进入IT行业,再到云计算行业;最初做了将近3年的嵌入式开发,从STM32单片机开发,到arm-linux驱动,再到学习Centos/redhat系统&am…

【MySQL】MySQL如何查询和筛选存储的JSON数据?

MySQL如何查询和筛选存储的JSON数据? 一、背景介绍二、支持的JSON数据类型三、基础数据3.1 创建表3.2 插入 JSON 数据3.3 查询 JSON 数据 四、操作函数4.1 JSON_OBJECT4.2 JSON_ARRAY4.3 JSON_EXTRACT 一、背景介绍 JSON(JavaScript Object Notation)是一种轻量级的…

LCR 143. 子结构判断

代码与解析 这是我一开始的代码,只过了45/49个测试用例,在测试用例这过不了了,不知道为啥 输入: A [-2,1,-1] B [-2,1,1] 输出 true 预期结果 false /*** Definition for a binary tree node.* public class TreeNode {* int va…

2024 .1.7 Day05_Spark_HomeWork; Spark_SQL

目录 1. 简述Spark SQL与HIVE的对比 2. Spark SQL是什么? 3.代码题 需求1 直接基于DataFrame来处理,完成SparkSQL版的WordCount词频统计。DSL和SQL两种方式都要实现 4.创建Spark DataFrame的几种方式? 5. 创建得到DataFrame的方式有哪些,各自适用场景是怎么…

Nginx(十九) range请求-断点续传/多线程下载

range请求允许服务器只发送请求的一部分响应数据给客户端,通常对大文件传输时,用以实现断点续传、多线程下载等功能。若服务端响应信息头中包含字段 Accept-Ranges:bytes,则表示服务端支持范围请求,且节点范围的单位为字节&#x…

每周一算法:倍增法查找位置

倍增法 倍增法(Binary Lifting),顾名思义,就是利用“以翻倍的速度增长”的思想来解决问题的一类算法,它能够使线性的处理转化为对数级的处理,大大地优化时间复杂度。这个方法在很多算法中均有应用&#xf…

ServiceMesh

服务网格从总体架构上来讲比较简单,由一堆紧挨着各项服务的用户代理,外加一组任务管理流程组成。在服务网格中,代理被称为数据层或数据平面(Data Plane),管理流程被称为控制层或控制平面(Contro…

【IDEA】 解决在idea中连接 Mysql8.0,驱动无法下载问题

本篇继【idea】解决sprintboot项目创建遇到的问题2-CSDN博客 目录 一、Failed to download https://download.jetbrains.com/idea/jdbc-drivers/MySQL/8/LICENSE.txt:Remote host terminated the handshake 二、no dirver files provided com.mysql.cj.jdbc.Driver 三、Serv…

STM32F407ZGT6时钟源配置

1、26M外部时钟源 1、25M外部时钟源

计算机Java项目|基于SpringBoot+Vue的图书个性化推荐系统

项目编号:L-BS-GX-10 一,环境介绍 语言环境:Java: jdk1.8 数据库:Mysql: mysql5.7 应用服务器:Tomcat: tomcat8.5.31 开发工具:IDEA或eclipse 二,项目简介 图片管理系统是一个为学生和…

kotlin take 和 drop

kotlin take的作用 从头开始获取指定数量的元素 val numbers listOf("one", "two", "three", "four", "five", "six") // 取集合的4个集合 Log.d("take", numbers.take(3).toString()) // 打印结果[…

【linux学习】重定向

目录 重定向标准输出、标准输入和标准错误标准输出重定向标准错误重定向将标准输出和标准错误重定向到同一个文件处理不想要的输出标准输入重定向 管道过滤器uniq-报告或者忽略文件中重复的行wc-打印行数、字数和字节数grep-打印匹配行head/tail 打印文件的开头部分/结尾部分te…

基于PGPGPOOL-II部署PostgreSQL高可用环境

PGPOOL-II是一个位于PostgreSQL服务器和 PostgreSQL 数据库客户端之间的中间件,具有以下功能: 1. 连接池:PGPOOL-II可以保持已经连接到 PostgreSQL 服务器的连接,并在使用相同参数(例如:用户名、数据库、协议版本)连接进来时重用它们。这可以减少连接开销,并增加系统的…

nacos与eureka区别

Nacos vs. Eureka: 微服务架构的服务发现之较 随着微服务架构的广泛应用,服务发现成为确保各个微服务之间通信的关键组件。在这个领域,Nacos和Eureka是两个备受关注的解决方案。本文将深入探讨它们的异同,以帮助你在项目中做出明智的选择。 …

C#-程序结构

C# 中的组织结构的关键概念是程序 (program)、命名空间 (namespace)、类型 (type)、成员 (member) 和程序集 (assembly)。 C# 程序由一个或多个源文件组成。 程序中声明类型,类型包含成员,并且可按命名空间进行组织。类和接口就是类型的示例。 字段 (field)、方法、属性和事件…

trino-435:dynamic catalog restful API开发

前置内容 restful API开发所在的位置core->trino-main->metadata模块下。主要实现查看已有catalog、注册catalog实现动态扩展、catalog的删除操作。coordinator和worker节点对该功能接口的实现是有区别的: coordinator节点包含查看已有catalog、注册catalog实现动态扩展…