대용량 데이터셋을 위한 Apriori 알고리즘의 MapReduce 설계 및 구현

대용량 데이터셋을 위한 Apriori 알고리즘의 MapReduce 설계 및 구현
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 대규모 구조화 데이터에서 빈발 항목집합을 추출하기 위한 Apriori 알고리즘을 Apache Hadoop 환경의 MapReduce 프레임워크에 맞게 재설계하고 구현한다. 데이터 분산, 후보 생성, 지원도 계산, 그리고 prune 단계가 각각 Map, Reduce, Combiner 로 매핑되어 클러스터 기반의 효율적인 처리를 가능하게 한다. 실험을 통해 전통적인 단일 머신 구현 대비 처리 시간과 확장성을 크게 향상시켰음을 보인다.

상세 분석

Apriori 알고리즘은 빈발 항목집합을 단계적으로 확장해 나가면서 후보 집합을 생성하고, 각 단계에서 최소 지원도(threshold)를 만족하지 못하는 후보를 제거(prune)하는 전형적인 탐색 방식이다. 전통적인 구현은 메모리 중심이며, 데이터 규모가 증가하면 메모리 부족과 연산량 폭증으로 인해 실용성이 급격히 떨어진다. 본 논문은 이러한 한계를 극복하기 위해 Hadoop 기반의 MapReduce 모델에 알고리즘을 매핑한다. 첫 번째 Map 단계에서는 입력 트랜잭션을 키-값 쌍(아이템 → 1) 형태로 변환하고, 로컬에서 1-항목집합의 지원도를 집계한다. Reduce 단계에서는 전역 합산을 수행해 전체 데이터셋에 대한 1-항목집합의 지원도를 계산하고, 최소 지원도를 만족하는 아이템을 빈발 1-항목집합(F1)으로 선정한다. 이후 후보 생성 단계에서는 Fk-1을 이용해 (k‑1)차 빈발 집합을 조인하여 Ck(후보 k‑항목집합)를 만든다. 이때 Map 작업은 각 트랜잭션에 대해 Ck에 포함될 가능성이 있는 부분집합을 추출하고, 해당 후보에 대해 로컬 카운트를 수행한다. Combiner를 활용해 로컬 집계 결과를 사전에 축소함으로써 네트워크 전송량을 크게 감소시킨다. Reduce 단계에서는 전역 합산을 통해 Ck의 실제 지원도를 계산하고, 최소 지원도 기준을 적용해 Fk를 도출한다. 이러한 과정을 반복하면서 Fk가 더 이상 생성되지 않을 때까지 진행한다. 논문은 특히 후보 생성 시 조인 연산을 Map 단계에서 수행하도록 설계함으로써 전통적인 두 단계(조인‑카운팅) 방식보다 I/O 비용을 최소화하고, 데이터 스키마가 변동될 경우에도 유연하게 대응할 수 있는 구조를 제시한다. 또한, Hadoop의 데이터 로컬리티를 활용해 각 노드가 자체 저장소에 있는 블록을 직접 처리하도록 함으로써 디스크 접근 지연을 최소화하고, 작업 스케줄링 시 동적 파티셔닝을 적용해 노드 간 부하 균형을 맞춘다. 실험 결과는 데이터 규모가 수십 기가바이트에서 수백 기가바이트로 증가함에 따라 전통적인 단일 머신 구현 대비 처리 시간이 10배 이상 단축되고, 클러스터 노드 수를 늘릴수록 선형에 가까운 확장성을 보임을 확인한다. 이러한 설계는 빈발 항목집합 탐색 외에도 연관 규칙 마이닝, 시퀀스 패턴 분석 등 다양한 데이터 마이닝 작업에 MapReduce 기반으로 확장 가능함을 시사한다.


댓글 및 학술 토론

Loading comments...

의견 남기기