20221024&20221025 图数据库/知识图谱/AI/Neo4j入门

起源/Outline

图数据库 Graph DB

计算机科学中,图数据库(英语:graph database,GDB[1])是一个使用图结构进行语义查询数据库,它使用节点和属性来表示和存储数据。该系统的关键概念是,它直接将存储中的数据项,与数据节点和节点间表示关系的的集合相关联。这些关系允许直接将存储区中的数据链接在一起,并且在许多情况下,可以通过一个操作进行检索。图数据库将数据之间的关系作为优先级。查询图数据库中的关系很快,因为它们永久存储在数据库本身中。可以使用图数据库直观地显示关系,使其对于高度互连的数据非常有用。[2]

https://zh.wikipedia.org/zh-cn/图数据库

根据存储和处理模型不同,市面上图数据库也有一些区分。

比如: Neo4J就是属于原生图数据库,它使用的后端存储是专门为Neo4J这种图数据库定制和优化的,理论上说能更有利于发挥图数据库的性能。

JanusGraph不是原生图数据库,而将数据存储在其他系统上,比如Hbase。

① 图存储

一些图数据库使用原生图存储,这类存储是经过优化的,并且是专门为了存储和管理图而设计的。并不是所有图数据库都是使用原生图存储,也有一些图数据库将图数据序列化,然后保存到关系型数据库或者面向对象数据库,或其他通用数据存储中。

关系型数据库和面向对象数据库-以社交关系为例

关系型数据库:在关系数据库中,通常有两个用于存储社交关系的表格:一个表格保存用户信息,另一个用于保存用户的朋友关系

面向对象数据库:继承、多态、封装;面向对象数据库以对象作为存储的基本单位,多个类型相同的对象的集合成为一个类。现实世界的任一实体都被统一地模型化为一个对象,每个对象有一个唯一的标识,称为对象标识。

② 图处理引擎

原生图处理(也称为无索引邻接)是处理图数据的最有效方法,因为连接的节点在数据库中物理地指向彼此。非本机图处理使用其他方法来处理CRUD操作。

https://www.cnblogs.com/mantoudev/p/10414495.html

https://www.jianshu.com/p/1c7099ed9675

https://blog.csdn.net/weixin_42034217/article/details/84574822

图数据库

https://zhuanlan.zhihu.com/p/112689382

知识图谱

知识图谱(Knowledge Graph),是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系。其基本组成单位是“实体-关系-实体”三元组,以及实体及其相关属性-值对,实体间通过关系相互联结,构成网状的知识结构。知识图谱可以实现Web从网页链接向概念链接转变,支持用户按主题而不是字符串检索,真正实现语义检索。基于知识图谱的搜索引擎,能够以图形方式向用户反馈结构化的知识,用户不必浏览大量网页即能准确定位和深度获取知识。[1]

知识表示中,知识图谱是一种知识库,其中的数据通过图结构数据模型拓扑整合而成。知识图谱通常被用来存储彼此之间具有相互联系的实体。[2]1980年代后期,格罗宁根大学特文特大学联合启动了一个名为知识图谱的项目。GoogleBingYahoo搜索引擎均已引入知识图谱并在搜索界面的右侧显示。

https://zh.wikipedia.org/zh-cn/知識圖譜

三元组是知识图谱的一种通用表示方式,即 G =(E, R, S),其中 E 是知识库中的实体,R 是知识库中的关系,S 代表知识库中的三元组。三元组的基本形式主要包括实体1、关系、实体2和概念、属性、属性值等。实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等;属性主要指对象可能具有的属性、特征、特性、特点以及参数,例如国籍、生日等;属性值主要指对象指定属性的值,例如中国、1988-09-08等。每个实体(概念的外延)可用一个全局唯一确定的ID来标识,每个属性-属性值对(attribute-value pair, AVP) 可用来刻画实体的内在特性,而关系可用来连接两个实体,刻画它们之间的关联。[4]

市场上主要的三种知识图谱类别领域:领域知识图谱、外部感知图谱和 自然语言处理 (NLP)图谱

自然语言处理(Natural Language Processing)知识图谱

区分于计算机语言,自然语言是人类发展过程中形成的一种信息交流的方式,包括口语及书面语,反映了人类的思维,都是以自然语言的形式表达。

自然语言处理(NLP)知识图谱包含关于人类语言的复杂性和细微差 别的知识。 NLP知识图 谱需要了解公司的特定技术术语、产品名称、行业首字母缩略词、部件号甚至常见的 拼写错 误。这是分析师创建知识图谱以映射含义和构建本体的地方,在此基础上进一步改进搜索并 提供更相关的结果

使计算机具有人类对于自然语言的纠错能力

NLP基本分类

NLP里细分领域和技术实在太多,根据NLP的终极目标,大致可以分为自然语言理解(NLU)和自然语言生成(NLG)两种。

NLU侧重于如何理解文本,包括文本分类、命名实体识别、指代消歧、句法分析、机器阅读理解等。

NLG则侧重于理解文本后如何生成自然文本,包括自动摘要、机器翻译、问答系统、对话机器人等。两者间不存在有明显的界限,如机器阅读理解实际属于问答系统的一个子领域。

 

图数据库是一种知识图谱,知识图谱是一种图数据库?

最受欢迎的图数据库——Neo4j配置

官网下载coummunity edition的Neo4j

解压并运行

  1. cd Downloads/Neo4j/bin 
    ./neo4j start

    进入bin目录执行
    后台启动:./neo4j start
    前台启动:./neo4j console
    查看状态:./neo4j status
    停止:./neo4j stop
    重启:./neo4j restart
  2. 报错信息为

    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/neo4j/server/startup/Neo4jCommand has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)
  3. 要求使用jdk-11,对安装的高版本jdk进行卸载

    weiwei@weiweideMacBook-Air ~ % ls /Library/Java/JavaVirtualMachines/
    jdk-11.0.16.1.jdkjdk-19.jdk
    weiwei@weiweideMacBook-Air ~ % sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-19.jdk //此处19即是上一步查看到的版本号 
    sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
    sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane
    sudo rm -fr ~/Library/Application\ Support/Java

启动成功

xRXwp4.png

xRXqN8.png

 

AI/AI和图数据库的关系

之前在IELTS练习题里面看到过对于AI的初步介绍

人工智能 (AI) 的定义

简单来说,人工智能 (AI) 是指可模仿人类智能来执行任务,并基于收集的信息对自身进行迭代式改进的系统和机器。AI 具有多种形式。例如:

  • 聊天机器人使用 AI 更快速高效地理解客户问题并提供更有效的回答

  • 智能助手使用 AI 来解析大型自由文本数据集中的关键信息,从而改善调度

  • 推荐引擎可以根据用户的观看习惯自动推荐电视节目

AI 更多的是一种为超级思考和数据分析而服务的过程和能力,而不是一种格式或功能。在不少人看来,AI 意味着高功能的类人机器人接管世界。事实上,AI 的初衷并不是要取代人类,而是大幅增强人的能力和贡献。这一特点使它成为了现代企业的一项非常宝贵的资产。

https://www.oracle.com/cn/artificial-intelligence/what-is-ai/

人工智能技术有三大类,每种类别都以不同的方式解决问题。 人工智能是一个总括性术语, 包括机器学习(ML)和深度学习(DL)的各个子集。

AI 是一类计算机过程,通过学习和模仿人类决策的方式解决问题。 请注意,这不需要具有实际智能。 然而,它确实为许多问题打开了大门,以执行人类智能所 特有的任务。AI是解决方案的目标,机器学习本质上是实现它的一种方法。

机器学习 (ML) 使用算法帮助计算机学习特定任务的示例、实现渐进式改进,而无需显式编 程。 “训练”AI涉及向算法提供大量数据,以使其能够学习如何处理这 些信息 。 机器学

习的“学习”部分意味着相关算法通过迭代以优化目标函数,例如实现最小化误 差或损失。 机器学习同时是动态的,能够在呈现更多数据时自行修正。

深度学习 (DL)使用以神经网络为模型的级联处理层来学习数据 表示,例如特征或分类。深度 学习的“深层”部分是指多个隐藏的抽象层。这些图层实现了具有层次结构的特征集,例如 向水果类别添加形状、大小和气味。

https://go.neo4j.com/rs/710-RRC-335/images/Neo4j-ai-graph-technology-white-paper-ZH.pdf

AI与图数据库

接着阅读前面一篇neo4j对于AI和图数据库的介绍

知识图谱增强机器学习:领域知识提高运行效率

知识图谱提供了提高效率的领域相关内容,因为它将数据连接起来,从而在关系上实现了多 个分离度、有利于大规模快速遍历和分析。从这一意义上说,图加速了机器学习的效果。

关系特征: 领域知识提高准确度

当前的机器学习方法通常依赖于从表构建输入数据 。这意味着尝试抽象、简化并且(有时)则 完全遗漏了大量的预测关系和领域相关知识。通过将关联的数据和关系存储为图,可以更直接地提取关系的特征、并更轻松地包含所有重要信息。

关系特性可以在许多行业中使用,尤其在调查欺诈和洗钱等金融犯罪领域。在这些案例中,犯罪分子经常试图通 过多层次混淆和复杂网络关系来隐藏犯罪活动 。传统方法可能无 法检测到这种行为,而这 正是图在提取关系特征方面所擅长的领域。

可解释的人工智能: 领域知识提供可信度

在应用AI的过程中一个最大挑战是理解AI究竟是何做出特定决策的.可解释的人工智能是一个还在逐步形成的领域。然而已经有相当多的研究表明,图使人工智能预测更易于追踪和解释。

posted @ 2022-10-25 20:05  noobwei  阅读(380)  评论(0编辑  收藏  举报