Skip to main content
QUICK REVIEW

[论文解读] AC/DC: In-Database Learning Thunderstruck

Mahmoud Abo Khamis, Hung Q. Ngo|arXiv (Cornell University)|Mar 20, 2018
Machine Learning and Algorithms参考文献 18被引用 10
一句话总结

AC/DC 是一种集成于数据库的梯度下降求解器,通过将优化问题分解为在归一化数据库上的因子化聚集运算,加速了数据库内机器学习。它通过使用稀疏分组聚集、函数依赖感知重参数化以及共享计算,相比 TensorFlow、libFM 和 MADlib 等竞争对手实现了最高达 300 倍的加速,仅用单核核心在 30 分钟内即可训练包含高达 154K 特征的模型。

ABSTRACT

We report on the design and implementation of the AC/DC gradient descent solver for a class of optimization problems over normalized databases. AC/DC decomposes an optimization problem into a set of aggregates over the join of the database relations. It then uses the answers to these aggregates to iteratively improve the solution to the problem until it converges. The challenges faced by AC/DC are the large database size, the mixture of continuous and categorical features, and the large number of aggregates to compute. AC/DC addresses these challenges by employing a sparse data representation, factorized computation, problem reparameterization under functional dependencies, and a data structure that supports shared computation of aggregates. To train polynomial regression models and factorization machines of up to 154K features over the natural join of all relations from a real-world dataset of up to 86M tuples, AC/DC needs up to 30 minutes on one core of a commodity machine. This is up to three orders of magnitude faster than its competitors R, MadLib, libFM, and TensorFlow whenever they finish and thus do not exceed memory limitation, 24-hour timeout, or internal design limitations.

研究动机与目标

  • 解决传统数据库内机器学习系统依赖类别特征独热编码所导致的性能瓶颈。
  • 实现对归一化数据库关系中的非线性模型(如多项式回归和因子分解机)的高效训练。
  • 通过利用函数依赖和因子化查询处理,降低大规模优化中的计算复杂度。
  • 将数据库查询执行与梯度下降优化统一为单一、低复杂度的执行计划。
  • 克服现有系统在扩展至包含数百万元组和数万个特征的数据集时面临的内存和超时限制。

提出的方法

  • AC/DC 将优化问题分解为一组聚集运算——对类别特征使用分组聚集,对连续特征使用标量聚集,所有运算均在数据库关系的自然连接上执行。
  • 采用基于分组聚集的稀疏数据表示,避免独热编码带来的内存和计算开销。
  • 通过先进的查询优化技术,在特征组合上对聚集运算进行因子化,实现比全连接计算更低的渐近时间复杂度。
  • AC/DC 通过一种支持在共享连接计划上高效聚集的专用数据结构,重用中间结果,实现多个聚集查询之间的计算共享。
  • 利用函数依赖对模型进行重参数化,以降低特征空间的维度,将复杂的正则化项转化为单位矩阵之和与点积的组合。
  • 收敛步骤与 Eigen 库集成,支持在数据库执行框架内高效进行矩阵求逆和梯度更新。

实验结果

研究问题

  • RQ1通过避免独热编码并改用稀疏分组聚集,是否能显著提升数据库内机器学习的性能?
  • RQ2与全连接执行相比,因子化聚集运算在数据库优化中的渐近时间复杂度能降低多少?
  • RQ3在数据库环境中,基于函数依赖的模型重参数化对梯度下降的性能和可扩展性有何影响?
  • RQ4在多个聚集查询之间共享计算,是否能为大规模学习工作负载带来数量级的性能提升?
  • RQ5在真实世界、高基数的数据集上,AC/DC 与 TensorFlow、libFM 和 MADlib 等最先进系统相比,在速度、内存使用和可扩展性方面表现如何?

主要发现

  • AC/DC 在单核上用不到 30 分钟的时间,完成了对包含 8600 万元组和 154,595 个特征的岭回归模型的训练,性能优于所有竞争对手。
  • 在相同数据集上,AC/DC 相比 libFM 实现了 152.70 倍的加速,相比 MADlib 在因子分解机上实现了 3.87 倍的加速,即使 MADlib 因内存限制在更大数据片段上失败。
  • 由于采用稀疏分组聚集表示,AC/DC 将非零聚集数量减少了 259 倍,从约 119 亿减少到 4600 万。
  • 函数依赖将分组聚集数量减少了 20%,并使因子分解机的性能最高提升 3.87 倍,尽管收敛步骤的复杂度有所增加。
  • AC/DC 的聚集运算步骤占总运行时间的 99% 以上,且在类别特征增加时表现出次线性缩放——多项式回归中,特征数量增加 65 倍,仅导致 13.7 倍的性能下降。
  • 尽管 TensorFlow 因支持运行时独热编码而表现出稳定的性能,AC/DC 仍快出数个数量级,甚至在仅计算单个训练周期时也是如此。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。