【码银送书第十九期】《图算法:行业应用与实践》

图片

  • 作者:嬴图团队

01 前言

在当今工业领域,图思维方式与图数据技术的应用日益广泛,成为图数据探索、挖掘与应用的坚实基础。本文旨在分享嬴图团队在算法实践应用中的宝贵经验与深刻思考,不仅促进业界爱好者之间的交流,更期望从技术层面为企业在图数据库选型时提供新的视角与思路。

02 K邻算法的实践意义

K邻算法(K-Hop Neighbor),即K跳邻居算法,是一种基于广度优先搜索(BFS)[1] 的遍历策略,用于探索起始节点周围的邻域。该算法在关系发现、影响力预测、好友推荐等预测类场景中得到了广泛应用。

图片

图1 在图数据库中基于广度优先遍历的K邻查询

在图论中,沿着一条边移动被视为一跳(hop)。在遍历图中的顶点时,我们需要考虑多跳问题。图论起源于数学家欧拉在1836年提出的哥尼斯堡七桥问题,它奠定了图计算的数学基础。自20世纪80年代以来,图计算技术迅速发展,成为现代计算领域的重要组成部分。

在现实世界中,危机的传播正是K邻搜索的一个典型应用。以发生危机的实体为起点,顺着或逆着(取决于边的具体定义)边的方向进行1步、2步、3步乃至更深层次的查询,得到的就是先后会被危机波及到的实体。

03 创新应用与案例分析

以某知名房地产企业HD的供应链图谱为例,我们可以通过持股方向、资金流向等信息,清晰直观地揭示危机的传播路径和传递对象。

图片

图2 HD系“交叉性风险”传导全景图

以HD为例,危机发生后,风险传播路径如下:

  • 第一层:影响HD的关联公司;

  • 第二层:影响公司员工和供应商;

  • 第三层:影响购房者(供应商停止供货、工人停工,可能导致HD的在建工程停滞)。

  • ……

风险从HD集团开始,逐步扩散至关联公司、员工、供应商、购房者等,形成了一张复杂的“网络”,呈现出明显的“链条效应”。

然而,许多与风险传导相关的实际应用并未采用图计算,而是依赖于手工计算,如银行KYC部门在计算UBO时仍使用Excel表。这种做法的效率和准确率可想而知。这与金融机构IT系统的陈旧和工作方法的落后有直接关系,阻碍了业务的开展,如企业影响力分析。

企业影响力分析不仅涉及持股关系、生产供求关系等传统问题,还应包括与企业相关的所有金融行为和事件,以及与这些行为事件直接或间接相关的事务。分析的视角不应仅限于企业实体,而应扩展至企业发布的产品、债券等。

如图3所示,分析的核心是企业的某个债券,其价格下跌可能直接影响其他债券的价格:

图片

图3 某债券价格下跌影响该公司其他债券的价格

图4则标出了持有该债券的、可能受影响的省内其他企业:

图片

图4 某债券价格下跌影响持有该债券的其他公司

图3和图4展示的是该债券的1步邻居,从这些邻居继续向外探寻就能得到该债券价格下跌后产生的危机传递效应,如图5所示:

图片

图5 某债券价格下跌影响整个债券市场

专家们已越来越认识到,金融风险并不是孤立存在的,不同风险间具有链条效应,任何一只蝴蝶扇动翅膀,都有可能造成跨市场的风险传染——风险的关联性具有相互转化、传递和耦合的特点——图技术与蝴蝶效应在本质上是不谋而合的,即通过深度挖掘不同来源的数据,以网络化分析的方式去洞察。

此外,金融场景是一种基于长链条计算的场景,这就导致技术实现时的规则更为复杂,因为会涉及到各种回溯、归因,而且数据的计算量更大,同时也更注重时效性。只有实现真正的实时、全面、深度穿透、逐笔追溯、精准计量的监测和预警,才能保障金融风控中不会出现“蝴蝶效应”式的风险发生。

值得注意的是,图往往包含着复杂的属性及定义,例如:边的有向、无向,边的属性权重,K 邻是否包含 K-1 邻,如何处理计算环路等等,这些问题会导致 K 邻算法具体实现的差异。此外,在一些实际场景中,图自身拓扑结构的变化,过滤条件的设定,节点、边属性的变化都会影响到 K 邻计算的结果。

在行业应用中,K邻算法通常应用于多模态的异构图,即将多个单一信息的图融合在一起形成的综合性图谱。这对算法实现者的数据收集和构图能力提出了高要求,同时也对K邻算法的灵活性和功能性提出了更高标准。嬴图的高密度并发图算法库是目前全球运行最快、最丰富的图算法集合,支持通过EXTA接口进行热插拔和扩展。

如果在公开资料中看到K邻算法的应用多是同构图(只有一种点、一种边),可能是因为作者想通过简单的例子阐明观点,或者因为构图能力不足限制了算法的应用,也可能是K邻算法的实现不尽人意,无法对异构图进行恰当处理。K邻算法的应用应该是广泛且实际的,能够解决现实问题的,如果是因为后面两种情况而限制了算法的“大展宏图”,那么相关图厂商就应该反思一二并提高自身了!

最后,一个优秀的算法设计不仅应具备解决问题的能力,还应关注计算效率,即算力。我们列举了一些高性能图计算系统应具备的核心能力,以供企业在评估市场上各种图计算产品时作为参考:

  • 高速图搜索能力:高QPS/TPS、低延时,实时动态剪枝能力;

  • 对任何规模图的深度、实时搜索与遍历能力(10层以上);

  • 高密度、高并发图计算引擎:极高的吞吐率;

  • 成熟稳定的图数据库、图计算与存储引擎、图中台等;

  • 可扩展的计算能力:支持垂直与水平可扩展;

  • 3D+2D高维可视化、高性能的知识图谱Web前端系统;

  • 便捷、低成本的二次开发能力(图查询语言、API/SDK、工具箱等)。

K邻算法:在风险传导中的创新应用与实践价值

本文摘编自《图算法:行业应用与实践》,经出版方授权发布。

图片

延伸阅读《图算法:行业应用与实践》

推荐语:这是一本全面讲解当下主流图算法原理与工程实践的著作,旨在帮助读者在分析和处理各种复杂的数据关系时能更好地得其法、善其事、尽其能。本书概念清晰、内容丰富、实用性强、语言流畅,深入浅出、重点突出,既适合入门读者阅读,又适合有一定图数据库基础的进阶人员阅读。

送书规则:

  • 数量:一到二本(依据阅读量而定)
  • 活动时间:截止到2024-05-16
  • 参与方式:关注博主,点赞评论“人生苦短,我爱学习!!!”

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

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

相关文章

RabbitMQ 是如何做延迟消息的 ?——Java全栈知识(15)

RabbitMQ 是如何做延迟消息的 ? 1、什么是死信? 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): 消费者使用 basic.reject 或 basic.nack 声明消费失败,并且消息的 reque…

2.4Java全栈开发前端+后端(全栈工程师进阶之路)-前端框架VUE3-基础-Vue组件

初识Vue组件 Vue中的组件是页面中的一部分,通过层层拼装,最终形成了一个完整的组件。这也是目前前端最流行的开发方 式。下面是Vue3官方给出的一张图,通过图片能清楚的了解到什么是Vue中的组件。 图的左边是一个网页,网页分为了…

ECS弹性云服务器居然这么好用。

引言 在过去的十年里,云计算从一个前沿概念发展为企业和开发者的必备工具。传统的计算模型通常局限于单一的、物理的位置和有限的资源,而云计算则通过分布式的资源和服务,为计算能力带来了前所未有的"弹性"。 云弹性服务器——为什…

AAA、RADIUS、TACACS、Diameter协议介绍

准备软考高级时碰到的一个概念,于是搜集网络资源整理得出此文。 概述 AAA是Authentication、Authorization、Accounting的缩写简称,即认证、授权、记帐。Cisco开发的一个提供网络安全的系统。AAA协议决定哪些用户能够访问服务,以及用户能够…

精品干货 | 数据中台与数据仓库建设(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 数据中台与数据仓库建设 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT/WORD原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT/WORD解决方…

PPO 学习笔记

用PPO算法求解整个神经网络在迭代过程中的梯度问题 每走一步就会得到一个新的状态,把这个状态传到网络里面,会得到一个 action,执行这个 action 又会到达一个新状态 policy 中由状态 st 生成动作 at,生成的这个 at 是由整个网络的…

什么是X电容和Y电容?

先补充个知识: 一、什么是差模信号和共模信号 差模信号:大小相等,方向相反的交流信号;双端输入时,两个信号的相位相差180度 共模信号:大小相等。方向相同。双端输入时,两个信号相同。 二、安规…

Redis探索之旅(基础)

目录 今日良言:满怀憧憬,阔步向前 一、基础命令 1.1 通用命令 1.2 五大基本类型的命令 1.2.1 String 1.2.2 Hash 1.2.3 List 1.2.4 Set 1.2.5 Zset 二、过期策略以及单线程模型 2.1 过期策略 2.2 单线程模型 2.3 Redis 效率为什么这么高 三…

cmake进阶:文件操作

一. 简介 前面几篇文章学习了 cmake的文件操作,写文件,读文件。文章如下: cmake进阶:文件操作之写文件-CSDN博客 cmake进阶:文件操作之读文件-CSDN博客 本文继续学习文件操作。主要学习 文件重命名,删…

python爬虫(一)之 抓取极氪网站汽车文章

极氪汽车文章爬虫 闲来没事,将极氪网站的汽车文章吃干抹尽,全部抓取到本地,还是有点小小的难度。不能抓取太快,太快容易被封禁IP,不过就算被封了问题也不大,大不了重启路由器,然后你的IP里面又…

文件夹加密软件哪个好?文件夹加密软件排行榜

许多人给小编说,我们公司想实现文件私自发出呈乱码状态,这说明公司逐渐认识到文件加密的重要性。 目前,加密软件已经广泛应用于企业办公、商业贸易、个人应用等多个领域,成为保护数据安全和隐私的重要手段。 为了保护企业机密&am…

OpenNJet评测,探寻云原生之美

在信息时代的大海上,云原生应用引擎如一艘航行于波涛之间的帆船,承载着创新的梦想和数字化的未来。本文将带领您登上这艘船,聚焦其中之一的OpenNJet,一同探寻其中的奥秘和精妙,领略其独特之美。 OpenNJet 内容浅析 O…

智慧工地)智慧工地标准化方案(107页)

2.2 设计思路 对于某某智慧工地管理系统的建设,绝不是对各个子系统进行简单堆砌,而是在满足各子系统功能的基础上,寻求内部各子系统之间、与外部其它智能化系统之间的完美结合。系统主要依托于智慧工地管理平台,来实现对众多子系统…

OpenNJet应用引擎——云原生时代的Web服务新选择

文章目录 OpenNJet应用引擎——云原生时代的Web服务新选择引言:数字化转型的推动力:OpenNJet应用引擎为什么选择OpenNJet? OpenNJet的核心优势1. 云原生功能增强2. 安全加固3. 代码重构与性能优化4. 动态加载机制5. 多样化的产品形态6. 易于集…

Python测试框架Pytest的参数化详解

上篇博文介绍过,Pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升。 在实际工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余。这里,我们来了解一下pytest.mark.parametrize装饰器&…

后端接口返回二进制数据流,前端如何将其转换成对应的excel、csv和json文件格式并下载

本文主要是介绍在工作中遇到的后端接口返回一个二进制数据流,前端在界面上创建下载按钮并下载成对应格式的文件导出。 downloadData({start: startTime,end: endTime,exportType: 0, // 0-excel, 1-csv, 2-json }).then((res) > {download(res, startTime, endTi…

毕业设计:《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》

前言 《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》,这是我在本科阶段的毕业设计,通过引入 Prometheus 和 ELK 架构实现企业对指标与日志的全方位监控。并且基于云原生,使用容器化持续集成部署的开发方式,通过 Sprin…

通信系列:通信中如何度量消息中所包含的信息量?如何评估通信系统的性能?

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、通信中如何度量消息…

小吉/希亦/鲸立内衣洗衣机怎么样?深度测评谁更好用!

内衣洗衣机是近几年新兴的家电产品,以清洁效果好、除菌能力强,被很多人种草入手了!但网上有不少人虽感兴趣,但不清楚如何选。担心买到质量差,清洗不干净的产品。作为一名家电测评博主,我今天特意围绕被问最…

神奇的Vue3 - 组件探索

神奇的Vue3 第一章 神奇的Vue3—基础篇 第二章 神奇的Vue3—Pinia 文章目录 神奇的Vue3了解组件一、注册组件1. 全局注册​2. 局部注册3. 组件命名 二、属性详解1. Props(1)基础使用方法(2)数据流向:单项绑定原则&…