算法原理优化
鲲鹏BoostKit大数据算法加速库在机器学习算法的原理上做了很多优化,降低算法复杂度,下面以分布式SVD算法为例进行说明。
SVD算法通常用来做信息提取、降维或者信息预处理。SVD算法基本的概念如图,将一个大矩阵分解为三个矩阵乘,SVD分为全量式和截断式,全量式指求解全部的奇异值S,截断式是求解前K大的部分的奇异值。
图1 SVD算法原理优化
在对大规模矩阵进行求解时,通常使用截断式SVD。我们对截断式SVD流程图的关键节点进行了一些创新:
- 在开始奇异值相差比较大的情况下,我们采用幂法加速的方式加快随机SVD的收敛速度。
- 在后续奇异值相差比较小时,通过构建块Krylov子空间来进一步加速不分离奇异值的收敛,提升计算性能。
- 在算法实现上,我们将矩阵乘向量的计算,优化为矩阵乘矩阵,计算效率提升明显。
最终达成SVD算法性能相比开源提升1倍以上。
图2 截断式SVD算法流程关键节点创新
父主题: 关键技术