基于图的机器算法 (二)

简介: 基于图的机器算法学习是一个强大的工具。结合运用模块特性,能够在集合检测中发挥更大作用。本文是基于图的机器算法系列文的第二篇。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。


基于图的机器算法 (二)

编者按:基于图的机器算法学习是一个强大的工具。结合运用模块特性,能够在集合检测中发挥更大作用。本文是基于图的机器算法系列文的第二篇(前情回顾:基于图的机器算法 (一))。


在上一篇文章中,我们进行了使用模块化优化方式来进行集合检测的探索。然而它有个不足,你的图需要适应内存。当你的节点数超过数十亿,边数将变成万亿,这很快就会出现问题。


幸运的是,我们可以利用分布式计算系统来解除这个限制。为此,我们首先需要定义节点的状态,使其包含计算期间所需的所有信息;这将构成在分布式集群的器之间传递数据的基本结构。

让我们简要回顾一下模块化优化的过程。通过迭代方式对局部模块化优化的节点进行合并,以产生新的和更小的图来工作。重复,直到满意。这种方法产生了两个重要的属性:


  • 局部性:每个节点只需要来自其第一度邻点的知识。这意味着群集之间传递的数据是最少的。这样,您就不必从节点到节点进行跳转来获取跨集群的信息。


  • 独立性:每个局部计算独立于图的布局。在迭代中,每个节点可以异步地将其信息发送到其邻点,而无需等待阻塞序列集合的操作。

让我们继续深入地探究在不同节点进行集合传送的初始步骤。记住每个节点需要读取来自其邻点的信息,以便计算局部模块化的梯度。

 

发送(Transfer)

进行大规模数据传送的最好方法是使用分布式事务。它是组成程序的对象的工作方式,用于在不同计算机(互联网)上运行对象和进行系统交互。在集合检测过程中,每个节点向其邻点发类似如下内容的消息:

“嗨,我是你友好的邻居,集合12的节点3。”


2d1baa26a0e5d57124329268594ed0d6338d942c


通过独立地向它们的第一度邻点发送消息,每个节点可以检索它们并获取为进行局部模块化优化所需的所有信息。 每个消息的内容可以任意调整,从而增加了相当大的灵活性。


 

如果你曾经使用过图,一定不会对顶点和边的概念陌生。如果不得不遍历所有的顶点及其边来进行数据传送,这将是件很痛苦的事。在GraphX的世界中,或许我们可以尝试第三种原语:三元组。

b2116e84a51c84181f51b18d292793aaf1128a4a 

GraphX中支持的三种不同的视图。更详细介绍请访问AMLab


三元组以一种简化的和有用的方式来进行顶点和边属性的逻辑连接。表面上看,EdgeTriplet类透过增添srcAttrdstAttr成员来对Edge 类进行了扩展,其分别为源和目标属性。通过减少三元组视图,。sendMsgmergeMsg都是内部函数执行必要的聚合为局部模块更新。每个节点独立和并行,等待它的将减少其所有消息转变成一个连贯的地方和加权边缘,和做决定基于局部模块化deltaQ邻近集合。

几轮迭代后,图已经聚集到局部平衡(如少量的节点达到改变集合的状态)。算法可以进展到下一步压缩那些集合形成一个紧凑的状态。这是通过创建一个含有新节点集和边的新图来完成的,这些边是有前次计算而推断得到的(例如:外部边的平均值或和)

 

压缩(Compression)

函数的选用取决于使用案例(例如:求平均值,求和等)

47f2d7847261883396867e3f89858b89df17ac1b

每次迭代时集合压缩在单节点中的影响

假设我们有足够大的磁碟,可以使用全功能函数程序来对超大图进行模块化优化工作。

 

最后和大家再分享几个知识点:


计算时间

在每次传递时meta-集合数量会自然减少,因此大部分的计算时间仅用于第一次。这表明先序数据在时间节约上有相当的优势。


af18934f9ffd90446b414f4c675b5acbb8a40cba

在集群级别的局部节点优化意味着发生更少的机器间传送


聚集

这种方法不一定收敛于最优方案。为了改善这种情况,多次迭代可以优化数据的结构。这为两个同属于某个集合的节点提供了一个便利的概率代理方式。

 

布局

布局策略的有效性要考虑图的连接性。例如,对于一个完全连接和未加权的图,输出将会退化。事先考虑阈值图像中提取数据的稀疏表示。


5044095bf7d7376d033fcbe45226c8e3828f748d


模块化的充分优化依赖图的连接模式。例如,一个点阵布局算法的执行效果将相当差。模块化优化并不能保证足够的集群;因此获得的最后一个集合不能说就绝对属于某个节点组(甚至任何组)

 

 

层次结构

这一过程的迭代特性提供了一种层次化的在后续迭代集合之间的视图。中间步骤应该被保存,以进行更深层次的有效消息发掘。

 

总结

查执行集合检测的可行性是通过GraphX分布式方法实现的。嵌入到Hadoop生态系统中的模块化优化方法实现了网络空前规模的研究;适用于营销,市场细分,基因聚类,主题建模等领域。

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

文章原标题《Graph-based machine learning: Part 2》,作者:Sebastien Dery

文章为简译,更为详细的内容,请查看原文

相关文章
|
9月前
|
存储 算法 Java
Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。
【6月更文挑战第21天】Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。二叉树遍历通过访问根、左、右子节点实现。DFS采用递归遍历图的节点,而BFS利用队列按层次访问。以下是简化的代码片段:[Java代码略]
67 4
|
7月前
|
存储 算法 调度
基于和声搜索算法(Harmony Search,HS)的机器设备工作最优调度方案求解matlab仿真
通过和声搜索算法(HS)实现多机器并行工作调度,以最小化任务完成时间。在MATLAB2022a环境下,不仅输出了工作调度甘特图,还展示了算法适应度值的收敛曲线。HS算法模拟音乐家即兴创作过程,随机生成初始解(和声库),并通过选择、微调生成新解,不断迭代直至获得最优调度方案。参数包括和声库大小、记忆考虑率、音调微调率及带宽。编码策略将任务与设备分配映射为和声,目标是最小化完成时间,同时确保满足各种约束条件。
|
8月前
|
存储 算法 Python
“解锁Python高级数据结构新姿势:图的表示与遍历,让你的算法思维跃升新高度
【7月更文挑战第13天】Python中的图数据结构用于表示复杂关系,通过节点和边连接。常见的表示方法是邻接矩阵(适合稠密图)和邻接表(适合稀疏图)。图遍历包括DFS(深度优先搜索)和BFS(广度优先搜索):DFS深入探索分支,BFS逐层访问邻居。掌握这些技巧对优化算法和解决实际问题至关重要。**
80 1
|
9月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
9月前
|
算法 调度
基于变异混合蛙跳算法的车间调度最优化matlab仿真,可以任意调整工件数和机器数,输出甘特图
**摘要:** 实现变异混合蛙跳算法的MATLAB2022a版车间调度优化程序,支持动态调整工件和机器数,输出甘特图。核心算法结合SFLA与变异策略,解决Job-Shop Scheduling Problem,最小化总完成时间。SFLA模拟蛙群行为,分组进行局部搜索和全局信息交换。变异策略增强全局探索,避免局部最优。程序初始化随机解,按规则更新,经多次迭代和信息交换后终止。
|
8月前
|
数据采集 存储 算法
「AIGC算法」图搜索算法详解
本文探讨了图搜索算法,包括遍历和最短路径搜索。DFS和BFS是遍历算法,前者使用栈深入搜索,后者用队列逐层遍历。Dijkstra、Bellman-Ford、A*、Floyd-Warshall和Johnson算法则解决最短路径问题。文中还给出了DFS的Python实现示例。这些算法在路径规划、网络分析等领域有重要应用。
340 0
|
8月前
|
机器学习/深度学习 数据采集 算法
【机器学习】CART决策树算法的核心思想及其大数据时代银行贷款参考案例——机器认知外界的重要算法
【机器学习】CART决策树算法的核心思想及其大数据时代银行贷款参考案例——机器认知外界的重要算法
|
10月前
|
存储 算法 C++
c++算法学习笔记 (8) 树与图部分
c++算法学习笔记 (8) 树与图部分
|
9月前
|
算法 计算机视觉
图像处理之基于图的广度优先搜索组件标记算法
图像处理之基于图的广度优先搜索组件标记算法
52 0
|
9月前
|
存储 算法
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
110 0

热门文章

最新文章