知识图谱之汽车实战案例综述与前瞻分析
知识图谱的前置介绍
什么是知识图谱
知识图谱本质(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是一个动态发展的项目,任何人都可以参与编辑和贡献数据,它通过社区协作,不断增加和改进数据质量。
图数据库

知识图谱模型设计
设计方法论
UMLS语义网络
UMLS(统一医学语言系统,Unified Medical Language System)是美国国家医学图书馆(National Library of Medicine)建立的医学领域的一种广为接受的知识表示(knowledge representation)标准。UMLS旨在通过标准化大量医学和健康术语,以达成映射多种医学词汇体系的目标,使得不同的医学系统能够通信,并且能够更清晰地理解了各种种类的健康和生物医学代码和术语。
UMLS主要由以下三部分组成:
-
Meta-thesaurus(元词表):这部分是 UMLS 的核心,包含来自不同来源的医学术语、疾病描述、药物信息等,并关联着多个不同医学词汇体系中的术语。元词表提供统一标识符(UMLS Concept Unique Identifiers, CUIs)来整合各种术语和概念,并显示它们之间的关系。
-
Semantic Network(语义网络):它为术语和概念建立了一个大范围的分类框架,语义网络包含了广泛的、经过分层的、医学概念类别和类别间关系的定义。每个概念都被分配到一个或多个语义类型,像药物、疾病或医疗设备等,而语义类型之间也定义了多种可能的语义关系,比如"治疗"或"致病"。
-
SPECIALIST Lexicon and Lexical Tools(专家词汇及查词工具):这是一个包含很多与医学相关期名词与单词的大型英语词汇库。结合一组用来解析和构造自然语言的软件工具。专家词库针对生物医疗领域进行了优化,支持文字处理和自然语言理解任务比如段落、句法分析和词形变换。
-
UMLS 实际上可以视作一种健康医疗领域的知识图谱,因为它组织了大量的医疗术语、概念及它们之间的关联。
知识图谱模型设计之归纳法
开源框架NLP 框架
CoreNLP,CRF
知识图谱可视化
Apache ECharts
D3 by Observable | The JavaScript library for bespoke data visualization
推荐系统介绍
知识图谱和推荐系统相结合
知识图谱与推荐系统的融合,可以提升推荐内容的准确性和效果。
三种融合方式
-
基于实体属性的推荐:利用知识图谱中实体的属性信息来推荐内容,例如,根据用户的兴趣属性推荐相关的内容。
-
基于实体关系的推荐:通过分析知识图谱中实体间的关系,如朋友关系、喜好关系等,来推荐用户可能感兴趣的内容。
-
基于知识图谱特征向量的推荐:使用知识图谱中实体的特征向量来生成推荐,这些向量可以捕捉实体的深层次特征,从而提高推荐的个性化程度。
三种训练模式
- 一次训练:在推荐系统中直接使用知识图谱数据进行训练。
- 联合训练:同时训练推荐系统和知识图谱模型,使它们共享知识。
- 交替训练:先训练推荐系统,然后使用其输出来更新知识图谱,再反过来用更新后的知识图谱来训练推荐系统。
RippleNet工作原理和实现机制
RippleNet是一个结合了知识图谱和推荐系统的框架,旨在通过利用知识图谱中的结构化事实来增强推荐系统的效果。在这个框架中,知识图谱的每个实体(如电影、演员、导演)和关系(如"演员参演电影")被用来丰富用户和物品的表示。
下面是RippleNet的工作原理和实现机制的简要说明:
输入:
- 用户u:用户的唯一标识。
- 物品v(例如,推荐系统中的电影或商品):物品的唯一标识。
- 用户点击历史Vu:用户过去的行为记录,如用户点击或购买的物品列表。
知识图谱:
- 知识图谱包含大量的事实,这些事实以三元组(头实体h,关系r,尾实体t)的形式表示
种子:
- 用户历史中的每个物品都被视为传播的种子点。这些种子点在知识图谱中被激活,从而影响与用户历史相关的其他实体。
传播(Propagation):
- RippleNet通过多个跳数(Hop)对知识图谱进行传播,每一跳都会从当前实体扩散到与之关联的实体,这些实体集合称为"波纹集"(Ripple Set)。
- 每个跳数可以看作是一层网络,每一层都会收集与上一层相关的实体和关系。
波纹集的影响:
- 用户的嵌入向量(User Embedding)受到波纹集影响,这些集合包含了用户兴趣的上下文信息。
- 例如,如果用户点击了某部电影,那么与这部电影相关的导演、演员等实体就会影响用户的表示。
加权平均与Softmax:
- 每个波纹集会对应一个潜在的用户兴趣表示,这些表示通过加权平均得到用户的最终嵌入。
- Softmax函数用于将加权后的用户嵌入向量转换为与特定物品相关联的预测概率。
预测:
- 用户嵌入和物品嵌入(Item Embedding)被送入神经网络中进行计算,输出用户点击给定物品的预测概率。
- 最终,预测概率被用于生成推荐列表,优先推荐那些具有较高点击概率的物品。
简而言之,RippleNet利用知识图谱中的关系网络来富化用户和物品的表示,使得推荐结果能够更加准确地反映用户的潜在兴趣。通过跳数(Hop)不断传播,它能够考虑到用户历史行为的多个层面,从而实现更深层次的个性化推荐。
相关资料
知识图谱+推荐系统 RippleNet:论文解读+代码 - 知乎
OpenKG.CN – 开放的中文知识图谱
相关文章:
知识图谱之汽车实战案例综述与前瞻分析
知识图谱的前置介绍 什么是知识图谱 知识图谱本质(Knowledge Graph)上是一种叫做语义网络(semantic network ) 的知识库,即具有有向图结构的一个知识库;图的结点代表实体(entity)或者概念(con…...
网关Gateway
什么是网关? 网关实质上是一个网络通向其他网络的 IP 地址,是当前微服务项目的"统一入口"。 网关能做什么? 反向代理 、鉴权、 流量控制、 熔断、 日志监控等 图片原文:http://t.csdnimg.cn/SvUJh 核心概念 Router(…...
java 生成一个当前时间的时间搓
开发过程中 用时间搓数值格式存储 会更加精准 那么 我们在一些日常增删查改中就可以用时间搓来记录操作时间 就一行代码 long timestamp System.currentTimeMillis();他就能生成当前时间的时间搓 运行结果如下 然后 我们可以在 http://shijianchuo.wiicha.com/ 上进行转换查…...
金融中IC和IR的定义
当谈到金融领域时,IC(Information Coefficient)和IR(Information Ratio)通常是用来评估投资组合管理绩效的指标。它们都涉及到投资者对信息的利用和管理的效果。 信息系数(IC - Information Coefficient&a…...
Git(2):Git环境的安装
本教程里的git命令例子都是在Git Bash中演示的,会用到一些基本的linux命令,在此为大家提前列举: ls/ll 查看当前目录cat 查看文件内容touch 创建文件vi vi编辑器(使用vi编辑器是为了方便展示效果,学员可以记事本、edi…...
Pytest单元测试系列[v1.0.0][pytest插件常用技巧]
使用pytest-xdist并发执行测试 pytest-xdist:Run Tests in Parallel [https://pypi.python.org/pypi/pytest-xdist] 在自动化测试中有些资源只能同时被一个测试用例访问,如果不需要同时使用同一个资源,那么测试用例便可以并行执行 执行命令…...
嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第五天-Linux消息共享内存练习题(物联技术666)
更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…...
04set注入专题/简单类型/数组/List/Set/Map/空字符串/null/特殊符号
1.1注入外部Bean 在之前使用的案例就是注入外部Bean的方式。 <!-- class属性声明要管理哪个类中的对象 property标签的name是提示set方法名ref标签指明注入的bean的id--><bean id"userServiceBean" class"com.powernode.spring6.service.UserService…...
Linux引导和服务管理
目录 一.Linux引导: 1、Linux开机启动的完整过程: 2、bios的作用: 3、boot: 4.mbr: 5、grub: 6、加载内核文件: 7、启动进程: 8、centos6与centos7的区别: 9、完整的过程 …...
HarmonyOS 应用开发学习笔记 ets自定义组件及其引用 @Component自定义组件
Component注解的作用是用来构建自定义组件 Component组件官方文档 自定义组件具有以下特点: 可组合:允许开发者组合使用系统组件、及其属性和方法。 可重用:自定义组件可以被其他组件重用,并作为不同的实例在不同的父组件或容器…...
在做题中学习(43):长度最小的子数组
LCR 008. 长度最小的子数组 - 力扣(LeetCode) 解法:同向双指针-------滑动窗口算法 解释:本是暴力枚举做法,因为全部是正整数,就可以利用单调性和双指针解决问题来节省时间 思路: 如上面图&am…...
如何将 element-ui 中的 el-select 默认展开
<el-form-item label"藕粉桂花糖糕" prop"state" required><el-selectref"mySelect"v-model"form.state"style"width: 280px"placeholder"请选择"><el-option label"藕粉" :value"…...
Typora基本用法
文章目录 一、标题标题快捷键 二、段落1.换行2.分割线 三、文字显示1.字体2.上下标 四、列表1.无序列表2.有序列表3.任务列表 五、区块显示六、代码显示1.行内代码2.代码块 七、链接八、脚注九、图片插入十、表格十一、流程图十二、表情符号十三、数学公式的输入1.公式的插入①…...
读元宇宙改变一切笔记02_元素(上)
1. 很多组织和机构都想在元宇宙的定义上掌握话语权,使得它的定义中存在矛盾之处,也有大量含义混淆之处 1.1. 微软 1.1.1. 在谈论“多个元宇宙” 1.1.2. 微软首席执行官萨提亚纳德拉将元宇宙描述为一种可以将“整个…...
听GPT 讲Rust源代码--compiler(2)
File: rust/compiler/rustc_codegen_cranelift/build_system/prepare.rs 在Rust源代码中,rust/compiler/rustc_codegen_cranelift/build_system/prepare.rs文件的作用是为Cranelift代码生成器构建系统准备依赖项。 具体来说,该文件的主要目标是处理Crane…...
SpringCloud系列篇:核心组件之负载均衡组件
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.负载均衡组件是什么 二.负载均衡…...
多线程模板应用实现(实践学习笔记)
出处:B站码出名企路 个人笔记:因为是跟着b站的教学视频以及文档初步学习,可能存在诸多的理解有误,对大家仅供借鉴,参考,然后是B站up阳哥的视频,我是跟着他学。大家有兴趣的可以到b站搜索。加油…...
Linux系统中MYSQL重置密码(针对root忘记密码)
⼀ .进⼊MySql配置⽂件中 vi /etc/my.cnf 在最后⼀⾏添加免密码登陆: skip-grant-tables :wq 保存退出 ⼆.重启MySql service mysql restart 或 systemctl restart mysqld.service 三. 登陆数据库 mysql -uroot -p 让输⼊密码直接回⻋就可以 四.修改MySql密码 use mysql…...
蓝桥杯基础知识1 字母大小写转换
蓝桥杯基础知识1 字母大小写转换 isalpha()判断一个字符是否为字母。 isalnum()判断一个字符是否为十进制数字字符或者字母,是否属于a~ z或A~ Z或0~9。 isdigit() 判断一个字符是否是十进制数字字符。十进制数字是:0 1 2 3 4 5 6 7 8 9 isalnum()和isdig…...
攀登者1 - 华为OD统一考试
OD统一考试 分值: 100分 题解: Java / Python / C++ 题目描述 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。 地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。 例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
