향상된 UP‑Growth 고유 효용 항목 집합 탐색
초록
본 논문은 기존 UP‑Growth 알고리즘의 실행 시간 문제를 해결하기 위해 UP‑Tree 구조를 활용한 개선 방안을 제시한다. 데이터베이스를 두 번만 스캔하여 후보 항목을 추출하고, 효율적인 트리 관리와 새로운 가지치기 전략을 도입함으로써 고유 효용 항목 집합을 빠르게 식별한다. 실험 결과, 제안 알고리즘은 Phase II의 실행 시간을 현저히 단축시키면서 메모리 사용량도 감소시켰다.
상세 분석
UP‑Growth는 고유 효용(item utility) 기반의 빈발 항목 집합 마이닝 기법으로, 전통적인 빈발 패턴 탐색과 달리 항목의 실제 가치를 고려한다. 그러나 기존 구현에서는 후보 항목 집합이 급격히 증가하면서 메모리 오버헤드와 탐색 속도가 저하되는 문제가 있었다. 이를 해결하기 위해 논문은 UP‑Tree(Utility Pattern Tree)라는 압축 트리 구조를 도입한다. UP‑Tree는 각 트랜잭션을 경로 형태로 저장하고, 노드에 항목의 총 효용, 남은 효용, 발생 빈도 등을 함께 기록한다. 이러한 설계는 두 차례의 데이터베이스 스캔만으로 후보 항목을 추출하고, 이후 트리 기반 탐색을 통해 효용 한계값(minimum utility threshold)을 만족하는 항목 집합을 효율적으로 필터링할 수 있게 한다.
핵심 개선점은 다음과 같다. 첫째, 후보 항목 선정 단계에서 기존의 전통적인 후보 생성 방식 대신, 트리 내에 저장된 항목 효용 합계를 이용해 사전 가지치기를 수행한다. 이는 불필요한 후보를 초기에 배제함으로써 메모리 사용량을 크게 절감한다. 둘째, Phase II에서 발생하는 과도한 재스캔 문제를 완화하기 위해, 트리 노드에 ‘잠재 효용(remaining utility)’ 정보를 추가하고, 이 값을 기반으로 동적 가지치기 규칙을 적용한다. 즉, 현재 경로의 누적 효용과 남은 효용의 합이 최소 효용 한계값보다 작으면 해당 서브트리를 즉시 폐기한다. 셋째, 트리 구조 자체를 압축하기 위해 동일한 항목 집합을 공유하는 경로를 병합하고, 빈도 기반 정렬을 통해 트리 깊이를 최소화한다. 이러한 압축은 탐색 단계에서의 비교 연산을 감소시켜 전체 실행 시간을 단축한다.
알고리즘의 복잡도 분석 결과, 데이터베이스 스캔 횟수는 기존 3회에서 2회로 감소했으며, 후보 집합 생성 비용은 O(|I|·|D|)에서 O(|I|·log|I|) 수준으로 낮아졌다. 실험에서는 다양한 실세계 데이터셋(예: retail, kosarak, mushroom)을 사용해 최소 효용 임계값을 1%~5% 범위로 변동시켰을 때, 제안 알고리즘이 평균 30%~45%의 실행 시간 절감을 달성했으며, 메모리 사용량도 20% 이상 감소함을 확인하였다. 이러한 결과는 고유 효용 마이닝이 대규모 트랜잭션 데이터에 적용될 때 실용성을 크게 향상시킨다.