当前位置: 首页 > news >正文

图机器学习(13)——图相似性检测

图机器学习(13)——图相似性检测

    • 0. 前言
    • 1. 基于图嵌入的方法
    • 2. 基于图核的方法
    • 3. 基于GNN的方法
    • 4. 应用

0. 前言

图机器学习 (machine learning, ML) 方法能广泛应用于各类任务,其应用场景涵盖从药物设计到社交网络推荐系统等多个领域。值得注意的是,由于这类方法在设计上具有通用性,同一算法可用于解决不同问题。
学习图之间相似性的定量度量是一个关键问题。事实上,这是网络分析的重要步骤,同时也有助于解决许多其它机器学习任务,如分类、聚类和排名。例如,许多聚类算法利用相似性概念来判断某个对象是否应归属于某个群体。
在图数据领域,寻找有效的相似性度量方法对众多应用至关重要。举例来说,考虑某个节点在图中的作用——该节点可能对信息传播或网络鲁棒性至关重要,比如它可能是星型图的中心,或是某个团 (clique) 的成员。在这种情况下,若能依据节点角色进行比较,将非常有用。例如,我们可能希望搜索具有相似角色的个体,或识别表现出相似异常行为的节点;还可以用于搜索相似的子图,或判断网络间的兼容性以便进行知识迁移。例如,如果找到了一种增加网络鲁棒性的方法,并且已知该网络与另一个网络高度相似,那么可以直接将适用于第一个网络的解决方案应用到第二个网络中。
衡量两个对象间相似性(或距离)的指标众多,例如欧氏距离、曼哈顿距离、余弦相似度等。然而,这些指标可能无法捕捉特定数据的结构特征,尤其在图这种非欧几里得数据结构中。如下图所示,考虑图 G1G_1G1G2G_2G2 的"距离",它们看似相似,但如果 G2G_2G2 红色社区缺失的连接导致信息严重损失,这种相似性可能就无法成立。
针对该问题,提出了多种基于图同构、编辑距离和公共子图等数学概念的算法与启发式方法。尽管这些方法常需指数级计算时间来解决 NP 完全问题,它们仍被广泛应用于实际场景。因此,为特定任务寻找或学习合适的相似性度量至关重要——这正是机器学习发挥作用的领域。
根据相似性度量的使用方式,图相似性技术可以大致分为三大类。基于图嵌入的方法使用嵌入技术来获得图的嵌入表示,并利用这种表示来学习相似性函数;基于图核的方法通过测量图的构成子结构之间的相似性来定义图之间的相似性;基于图神经网络 (graph neural network, GNN) 的方法使用图神经网络联合学习嵌入表示和相似性函数。

1. 基于图嵌入的方法

这种技术通过应用图嵌入技术来获取节点级别或图级别的表示,并进一步使用这些表示进行相似性学习。例如,DeepWalkNode2Vec 可以用来提取有意义的嵌入,之后可以用来定义相似性函数或预测相似性分数。例如,使用 Node2Vec 生成节点嵌入,将嵌入构成的二维直方图输入经典二维卷积神经网络 (convolutional neural network, CNN),该简洁而高效的方法在多个基准数据集上取得了优异效果。

2. 基于图核的方法

基于图核的方法能够有效捕捉图之间的相似性,这类方法通过比较图的子结构相似性来计算整体相似度。根据它们使用的子结构,存在不同的图核,包括随机游走、最短路径和子图。例如,名为深度图核 (Deep Graph Kernel, DGK) 将图分解为被视为"单词"的子结构,继而采用自然语言处理技术(如 CBOWSkip-gram )学习子结构的潜在表示。通过这种方式,两个图的核相似度可通过子结构空间的相似性来定义。

3. 基于GNN的方法

随着深度学习技术的兴起,图神经网络 (graph neural network, GNN) 已成为图表示学习的强有力工具。这类模型可灵活适配多种任务(包括图相似性学习)。此外,它们相较于其他传统的图嵌入方法具有一个关键优势:传统图嵌入方法通常孤立地进行表示学习,GNN 能够联合优化表示学习与目标任务,从而更充分地利用图特征服务于特定学习场景。

4. 应用

图相似度学习已在多个领域取得显著成果。例如,在化学和生物信息学中,可用于寻找与查询化合物最相似的化学分子,在神经科学领域,相似度学习方法正被应用于测量多受试者脑网络的相似性,为脑部疾病的临床研究开辟了新途径。
图相似性学习在计算机安全中也得到了探索,提出了新方法用于检测软件系统中的漏洞以及硬件安全问题。该技术在计算机视觉问题解决中也逐渐得到应用,将图像转换为图数据,针对视频序列中的人类行为识别、场景物体匹配等领域提出创新解决方案。

http://www.xdnf.cn/news/1142929.html

相关文章:

  • 西门子工业软件全球高级副总裁兼大中华区董事总经理梁乃明先生一行到访庭田科技
  • OpenTelemetry学习笔记(四):OpenTelemetry 语义约定,即字段映射(1)
  • Simulink建模-Mux与Demux模块虚拟向量的组装与拆解
  • QML vscode语法高亮和颜色区分。
  • 51c视觉~合集13
  • 用 React-Three-Fiber 实现雪花下落与堆积效果:从零开始的 3D 雪景模拟
  • 【HCI log】Google Pixel 手机抓取hci log
  • 几款开源的安全监控与防御工具分享
  • 零碳园区势在必行!安科瑞EMS3.0助力园区低碳智慧升级
  • RS485转PROFIBUS DP网关写入命令让JRT激光测距传感器开启慢速模式连续测量
  • CityEngine自动化建模
  • HTTP性能优化实战技术文章大纲
  • 设计循环队列oj题(力口622)
  • 铁路基础设施无人机巡检技术及管理平台
  • Glary Utilities(系统优化工具) v6.20.0.24 专业便携版
  • 麒麟操作系统unity适配
  • Spring全面讲解(无比详细)
  • SpringBoot中使用MessageSource的getMessage获取i18n资源文件中的消息
  • [spring6: PointcutAdvisor MethodInterceptor]-简单介绍
  • Spring学习笔记:Spring SPEL表达式语言深入的学习和使用
  • 算法竞赛备赛——【图论】求最短路径——小结
  • [论文阅读] 人工智能 + 软件工程 | 单会话方法论:一种以人类为中心的人工智能辅助软件开发协议
  • nginx-http反向代理与负载均衡
  • Mysql定位慢查询
  • 数组/链表/【环形数组】实现 队列/栈/双端队列【移动语义应用】【自动扩缩】
  • 前端笔记之 async/await 异步编程详解
  • A33-vstar笔记及资料分享:搭建交叉编译环境
  • 怎么把图片做成实拍的感觉?给图片加上拍摄时间,相机信息等就可以了
  • Linux系统安装Docker及部署Node.js 20.15.0(含pnpm、pm2)完整指南
  • JavaSE -- 对象序列化和反序列化详细讲解