介绍分布式机器学习系统架构GraphLab。
GraphLab简介
是一个以数据为中心的机器学习系统。
实际中很多模型都可以转化为图的形式:
- 社交网络
- 推荐系统
- 文本分析
- 概率图模型
我们之前已经有了基于BSP Model的Pregel,其主要特点是需要进行同步(双屏障),而同步是由最慢的节点决定,造成:
- 资源的浪费(大部分节点会等待少部分节点收敛)
- 某些算法可能并不需要同步更新
某些机器学习计算的特点
- 异步迭代(Asynchronous Iterative)
- 参数不一定需要同步更新
- 某些梯度下降算法可能不需要同步
- 动态计算(Dynamic Computation)
- 某些参数可能快速收敛
- 大部分顶点在很少的次数就已经收敛
- 在Pregel中可以通过设置inactive实现
- 可串行化(Serializability)
- 计算过程存在一定的顺序依赖关系,或者 顺序计算的效果(收敛速度、精确度)更
- 在有些特征的图中(线性/链式),用BSP会造成消息传输冗余
- 并行会造成计算量更大,传输消息更多
- 但也不能直接单线程执行
- 考虑事务,并发的运行过程等价于某种串行化的结果