Skip to main content
QUICK REVIEW

[논문 리뷰] AC/DC: In-Database Learning Thunderstruck

Mahmoud Abo Khamis, Hung Q. Ngo|arXiv (Cornell University)|2018. 03. 20.
Machine Learning and Algorithms참고 문헌 18인용 수 10
한 줄 요약

AC/DC는 정규화된 데이터베이스 위에서 요약 집계를 인수로 활용하는 데이터베이스 통합 경사 하강법 솔버로, 최적화 문제를 분해된 집계로 나누어 데이터베이스 내 기계학습을 가속화한다. AC/DC는 희소 그룹별 집계, 기능적 의존성 인식 재매개변수화, 공유 계산을 통해 텐서플로우, libFM, MADlib와 같은 경쟁자 대비 최대 300배 빠른 성능을 달성하며, 단일 코어에서 154K개의 특징을 가진 모델을 30분 이내에 학습시킨다.

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.

연구 동기 및 목표

  • 기본적으로 범주형 특징의 one-hot 인코딩에 의존하는 전통적인 데이터베이스 기반 기계학습 시스템의 성능 저하 문제를 해결하기 위해.
  • 정규화된 데이터베이스 관계 위에서 다항 회귀 및 인수분해 기반 모델과 같은 비선형 모델의 효율적 학습을 가능하게 하기 위해.
  • 기능적 의존성과 분해된 쿼리 처리를 활용해 대규모 최적화의 계산 복잡도를 감소시키기 위해.
  • 데이터베이스 쿼리 실행과 경사 하강법 최적화를 하나의 낮은 복잡도 실행 계획으로 통합하기 위해.
  • 수백만 개의 튜플과 수만 개의 특징을 가진 데이터셋으로 확장할 때 기존 시스템의 메모리 및 타임아웃 제약을 극복하기 위해.

제안 방법

  • AC/DC는 최적화 문제를 데이터베이스 관계의 자연스러운 조인 위에서 계산되는 집계 집합—범주형 특징에 대한 그룹별 집계와 연속형 특징에 대한 스칼라 집계—으로 분해한다.
  • one-hot 인코딩의 메모리 및 계산 오버헤드를 피하기 위해 그룹별 집계를 활용한 희소 데이터 표현 방식을 도입한다.
  • 고급 쿼리 최적화 기법을 사용해 특징 조합에 걸친 집계 계산을 분해함으로써, 전체 조인 계산 대비 점점 더 낮은 점근적 복잡도를 달성한다.
  • 공유된 조인 계획 위에서 중간 결과를 재사용하는 특수한 데이터 구조를 통해 여러 집계 쿼리 간 계산을 공유한다.
  • 기능적 의존성을 활용해 모델을 재매개변수화하여 특징 공간의 차원 수를 감소시키며, 복잡한 정규화 항을 항등행렬의 합과 내적의 합으로 변환한다.
  • 수렴 단계는 선형 대수 연산을 효율적으로 수행할 수 있도록 Eigen 라이브러리와 통합하여 데이터베이스 실행 프레임워크 내에서 행렬 역행렬 계산과 기울기 갱신을 지원한다.

실험 결과

연구 질문

  • RQ1one-hot 인코딩을 피하고 희소 그룹별 집계를 사용함으로써 데이터베이스 내 기계학습의 성능을 크게 향상시킬 수 있는가?
  • RQ2전체 조인 실행 대비 분해된 집계 계산이 데이터베이스 최적화의 점근적 복잡도를 얼마나 줄일 수 있는가?
  • RQ3기능적 의존성 하에서의 모델 재매개변수화가 데이터베이스 환경에서 경사 하강법의 성능 및 확장성에 어떤 영향을 미치는가?
  • RQ4여러 집계 쿼리 간 공유 계산이 대규모 학습 워크로드에서 수십 배의 성능 향상을 이끌 수 있는가?
  • RQ5실제 고기능성 데이터셋에서 텐서플로우, libFM, MADlib와 같은 최첨단 시스템과 비교할 때 AC/DC는 속도, 메모리 사용량, 확장성 측면에서 어떤가?

주요 결과

  • AC/DC는 8600만 개의 튜플과 154,595개의 특징을 가진 릿지 선형 회귀 모델을 단일 코어에서 30분 이내에 학습시켰으며, 모든 경쟁자들을 능가했다.
  • 동일한 데이터셋에서 AC/DC는 libFM 대비 152.70배 빠르고, MADlib 대비 3.87배 빠르게 인수분해 기반 모델을 학습시켰으며, 메모리 제약으로 큰 조각에서 실패한 MADlib에 비해도 성능을 유지했다.
  • 희소 그룹별 표현 덕분에 one-hot 인코딩 대비 비제로 집계 수를 259배 감소시켜 약 119억 개에서 4600만 개로 줄였다.
  • 기능적 의존성으로 인해 그룹별 집계 수가 20% 감소했으며, 인수분해 기반 모델의 경우 성능이 최대 3.87배 향상되었고, 수렴 단계의 복잡도 증가에도 불구하고 성능 향상이 이루어졌다.
  • AC/DC의 집계 계산 단계가 총 실행 시간의 약 99%를 차지했으며, 범주형 특징 수가 증가함에 따라 비선형 스케일링을 보였고, 다항 회귀에서 특징 수가 65배 증가했을 때도 단지 13.7배의 느려짐만을 보였다.
  • 텐서플로우가 실시간 one-hot 인코딩 덕분에 범주형 특징 수 증가에 대해 안정적인 성능을 유지했지만, AC/DC는 여전히 수십 배 빠른 성능을 보였으며, 단일 학습 에포크만 계산한 경우에도 마찬가지였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.