热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Neo4j图数据科学及2.0版本介绍

导读:本文将探讨Neo4j的图数据科学平台,以及2.0版本的新功能。Neo4j是业界最早推出图算法的厂商,图算法由早期的ALGO3.5升级为了GDS1.0,预示着Neo4j从算法平

分享嘉宾



刘洋

Neo4j 亚太地区高级技术顾问

拥有多年数据平台和数据分析领域经验,曾经就职于Tableau、IBM、Teradata等公司,具有丰富的数据项目架构设计、开发、咨询和项目管理经验。



导读:本文将探讨Neo4j的图数据科学平台,以及2.0版本的新功能。主要内容包括:

  • Neo4j图数据科学(GDS)的前世今生

  • Neo4j图数据科学平台

  • Neo4j GDS 2.0 版新特性


01
Neo4j图数据科学(GDS)的前世今生

Neo4j是业界最早推出图算法的厂商,图算法由早期的ALGO 3.5升级为了GDS 1.0,预示着Neo4j从算法平台向图数据科学平台的演进。

1. 是什么在驱动业务创新?

Neo4j的业务创新不是由数字驱动,而是在深入分析各个业务环节间关系的基础上,进行相应的业务变革,从而带来业务创新,因此关系是行为的最强预测因素

例如:零售商超公司可以通过分析客户与产品间的关系进行产品推荐,通过分析商品门店与供应商之间的关系来优化供应链等。这些都是分析关系驱动业务的实际案例。而图数据库则是处理关系的最佳技术。

2. 什么是图数据科学?

顾名思义,图数据科学是一门综合了图查询、图算法、图可视化,在事物、关系上进行数据科学类研究和分析的技术。传统的关系数据库不擅长处理关系,图模型是建立在关系之上的,因此借助图数据科学可以获得更好的数据分析和预测的结果。

3. 更佳的预测结果

现有的ML方法和技术主要基于维度和指标特征建立的特征工程,忽略了数据中的网络/图结构。图机器学习不仅可以识别个体特征,还能识别个体所处的网络特征,基于关系进行建模和预测。图可以为机器学习模型提供高度可信和精准的特征预测。

例如信用卡异常用户的检测,可以由基于特征模式的传统机器学习的欺诈检测系统完成。比如一个超大额的交易或是同一时间超远异地交易等,这种个体的异常特征很容易被传统的欺诈检测方法识别到。如果欺诈者在实施欺诈的过程中仍然表现出正常行为,又该如何进行检测?研究表明70%以上的看似正常行为的欺诈都是团伙欺诈,比如互相套用真实身份信息做一些看似正常的交易,这种团伙欺诈就很难被传统的欺诈检测系统发现。而图数据科学正是识别这类团伙关系的最佳方案。


02
Neo4j图数据科学平台
1. Neo4j图数据科学平台

Neo4j图数据科学平台是由图数据库、图算法库、可视化分析组件、各类连接系统等组成的技术平台。

① Neo4j Database

提供了原生的图存储、免索引链接技术,保障各类分析查询场景下的高性能。也是支持ACID的交易型数据库,保障数据的准确性、持久性、一致性、可以用于交易生产。

② GDS Library

支持各类算法和机器学习工作流的库。

③ Bloom

图形可视化的探索工具,业务用户无需学习图查询语言就可以通过鼠标的点选和拖拽完成对图的分析和探索。

④ Connectors

提供多种连接器,如果用户习惯用Python完成ML的开发,可以使用Python去调用各种图算法的功能来完成开发。

⑤ AuraDS

AuraDS是新上线的数据科学的云端方案,可以借此完成图分析的相关工作。

2. Neo4j GDS库

① 提供最健全的图算法和ML方法

  • 计算有关拓扑结构和连接性的指标

  • 建立预测模型以扩展您的图

  • 高度并行化,可扩展到百亿级的节点

② 高效和灵活的分析工作空间

  • 自动将交易图重塑为内存中的分析图

  • 针对全局遍历和聚合进行了优化

  • 创建工作流程和分层算法

  • 在模型目录(model catalog)中存储和管理预测模型

Neo4j的图算法需要将数据投影到内存中去运行,这样做的好处是可以拥有一个高性能的方案去运行各种图算法。

Neo4j的图算法还可以在运行过程中去丰富内存图的内容,比如可以将中间结果写回到内存图被其他的算法反复地调用。

GDS库包含60+图科学算法,主要有以下几大类:

  • 路径发现&搜索

寻找网络中的最短路径等路径发现的动作。

  • 中性度&重要性分析

根据网络图中的拓扑结构寻找最有影响力的节点和它们的作用,常用来推断群体中的动态。

  • 社区检测

寻找网络中节点所形成的社区集群,揭示集群的紧密型、节点集群的孤立性和结构。

  • 启发式连接预测

确定一对节点的接近程度,考虑节点的接近性及结构元素来预测未观察到的或者未来的关系。

  • 相似度分析

根据网络图中的拓扑结构寻找相似节点。

  • 图嵌入

将图中的节点和关系通过低维向量或数组的方式表示,这些向量就可以被表示为嵌入,作为机器学习的输入。

图算法在实际应用中的演进有如下几个阶段:

  • 第一阶段:知识图谱

在关联数据中搜索特定的关联模式。例如构建企业级的应用知识图谱,借助知识图谱回答特定的问题。

  • 第二阶段:图算法

使用无监督的机器学习技术识别图中的关联、异常值和趋势。例如了解图中最重要的是什么、哪里有相似性、应该在哪步做调查。

  • 第三阶段:图原生机器学习

使用嵌入来学习图中那些可能之前不知道的重要特征,训练图内监督机器学习模型来预测链接、标签和缺失数据。例如哪些客户会购买哪些商品、哪些交易存在欺诈行为。

3. 金融欺诈检测

这里以账户持有人知识图谱为例,对比图查询、图算法、基于图的特征工程进行金融欺诈检测的功能。

① 图查询

关联分析能够提高检测的效率和精确度,例如进行可以模式的搜索和匹配等。

例如:可疑账户与黑名单账户之间是否有连接、距离有多远?账户之间有没有异常的共同点、共享关键信息?

② 图算法

借助无监督的学习对欺诈进行识别。通过连通分量算法将图切分成彼此不连通的子图;通过页面排行算法计算节点在网络中的影响力,去发现某些重要程度高的节点有什么样的特征;通过Louvain模块度算法识别频繁出现的集群/社团;用Jaccard相似度算法判断账户之间的相似程度。

③ 基于图的特征工程

无需使用多个算法来描述图结构和特征,通过图嵌入来完成对于图结构表示,使用图结构进行预测。

4. 图嵌入

通过对图进行嵌入学习,以及在图中进行有监督的机器学习,来提升数据预测精准度。图嵌入就是把图进行变换,识别出之前并不了解的一些关键的模式和信息。

图(网络)往往是高维的、难以处理的;图嵌入算法作为降维技术的一种将图的节点”嵌入”到一个D维向量空间中,从而方便机器学习算法实现诸如分类的操作。

好的图嵌入过程会将连接的(或者类似的)节点在D维空间中集聚在一起,而没有连接或者差异很大的节点则分布很远。

如上图中生成的一个二维空间中,显示了不同颜色的点的位置,可以看到其分布和聚集,可以用来进一步的分析。

图嵌入分为下面三类:

  • 节点嵌入:描述每个节点的连接信息。

  • 路径嵌入:在图上遍历的过程。

  • 子图嵌入:将一个子图嵌入成向量。

GraphSAGE是目前流行的一种能够利用节点的属性信息高效产生未知节点嵌入表示的一种归纳式(inductive)学习的框架。

5. 客户用图数据科学做什么

① BANKING CIRCLE - 欺诈检测

  • 300%+欺诈检测增长

  • 10%的正面升级(行业是<1%)

  • 大约150%支付流量增加

  • 大大减少了欺诈误报的总数量

② AstraZeneca – 药品研发

  • 分析药品研发中收集的百亿条数据关系和模式

  • 根据病患的经历找到相似案例

  • 预测最有可能受益的病人

③ Meredith – 客户360 

  • 1621%接触点长度

  • 500%每个访问实体访问时间

  • 20-30%客户偏好了解和识别

④ OrbitMI - 物流运输 

  • 亚秒级的海上航线规划

  • 减少全球碳排放6万吨

  • 为客户带来12-16Million的ROI


03 Neo4j GDS 2.0版新特性


1. GDS发展路线

Neo4j GDS不仅提供了业界最广泛的图算法和各类API,还自我定位为一个图数据科学平台。其发展围绕着以下四个方面不断演进:

① 简单易用

从加载任何来源的数据,到使用图数据科学及服务的云平台,图数据科学都很容易。

② 为数据科学家量身打造

连接数据的便利性和统一的工作空间,为数据科学家回答棘手业务问题提供了简易的平台。

③ 企业级平台

分析数以千亿计的节点和关系,从POC到生产支持。

④ 数据生态

图数据科学与你最喜欢的工具一起工作,本地连接器使其他数据专家能够轻松参与其中。

2. 新版本主要功能更新

仍然围绕上面提到的四个方面:

① 简单易用

  • 图数据库科学及服务(AuraDS)

  • 统一的ML Pipelines

  • 简单地数据投影

  • 提示&警告

② 为数据科学家量身打造

  • 原生Python客户端

  • 65+预警的算法

  • 用于加载、分析和回写的单一API

  • 生产环节保障

③ 企业级平台

  • 图备份/恢复

  • 集群兼容性

  • 压缩算法改进

  • 自动ML Ops

④ 数据生态

  • Neo4j Spark Connector

  • Neo4j BI Connector

  • Neo4j Kafka Connector

  • Datalku

  • Knime

  • AuraDS产品特性

官方链接:www.neo4j.com/aurads

AuraDS是一个纯云端针对图数据科学的平台,下方的特性可以总结为两点:开箱即用、零维护。

  • 提示和告警信息

  • 统一的ML Pipelines

ML Pipelines提供了一组基于Dataframe的统一高级API,帮助用户创建和调整ML Pipelines。

以Link Prediction为例,将步骤简化为统一格式的Pipeline:

  • 原生Python客户端

让Python用户或其他平台来对Neo4j图算法进行调用

  • Similarity变得更简单了

  • 混合部署

可以直接在read replica的节点上部署GDS,同时也支持数据的回写,大大减少数据写入到写节点的工作

  • 图备份/恢复

这里指运行算法的内存图的恢复和备份。

  • 生态系统整合

Neo4j可以与ingest、process、analyze、productionize、ML多个平台的应用使用连接器进行交互。

3. GDS 2.0版本新功能总结
  • Neo4j图数据科学平台可以提供完备的上下文分析和建模的支持。

  • 使数据科学家更容易在Neo4j图数据科学平台开展各类数据建模、数据分析的工作。




推荐阅读
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 使用种子数据在Asp.NET Core 3.0 Web API迁移过程中写入数据库的详细步骤
    本文详细阐述了如何在Asp.NET Core 3.0 Web API的迁移过程中利用种子数据将信息写入数据库的具体步骤。对于开发人员而言,掌握这一技术能够显著提高数据初始化的效率和准确性。文章不仅提供了详细的代码示例,还深入解析了每个步骤背后的原理,帮助读者更好地理解和应用这一方法。 ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
  • 利用PHP循环高效处理多条帖子表单数据 ... [详细]
  • 触发器的稳态数量分析及其应用价值
    本文对数据库中的SQL触发器进行了稳态数量的详细分析,探讨了其在实际应用中的重要价值。通过研究触发器在不同场景下的表现,揭示了其在数据完整性和业务逻辑自动化方面的关键作用。此外,还介绍了如何在Ubuntu 22.04环境下配置和使用触发器,以及在Tomcat和SQLite等平台上的具体实现方法。 ... [详细]
author-avatar
幸福的小兔子3
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有