상위 K 동시 발생 아이템 탐색
초록
본 논문은 사용자가 지정한 쿼리 아이템셋과 동시에 가장 많이 나타나는 K개의 아이템을 찾는 새로운 과제인 Top‑K Co‑Occurrence Item Mining을 정의하고, 이를 효율적으로 수행하기 위한 Pi‑Tree 기반 알고리즘 PT와 TA 프루닝을 적용한 PT‑TA를 제안한다. 네 가지 베이스라인과 비교 실험을 통해 제안 알고리즘이 실행 시간 및 확장성 면에서 현저히 우수함을 입증한다.
상세 분석
이 연구는 전통적인 빈발 아이템셋 마이닝이 전체 데이터베이스에서 빈도를 기준으로 아이템셋을 추출하는 반면, 실제 응용에서는 특정 아이템셋과 동시에 등장하는 아이템을 찾는 것이 더 유용할 수 있다는 점에 주목한다. 이를 위해 ‘Top‑K Co‑Occurrence Item Mining’이라는 새로운 문제 정의를 제시하고, 입력으로 (Q, k)를 받아 Q와 함께 가장 빈번히 등장하는 k개의 아이템을 반환한다.
먼저 네 가지 베이스라인 알고리즘을 설계한다. ① 전통적인 Apriori‑style 후보 생성 후 필터링, ② 트랜잭션 스캔을 통한 직접 카운팅, ③ FP‑Tree 기반 빈도 집계, ④ 역인덱스 활용 방식이다. 이들은 각각 메모리 사용량, 디스크 I/O, 후보 폭발 문제 등에서 한계를 보인다.
핵심 기여는 ‘Pi‑Tree( Prefix itemset Tree)’라는 압축 트리 구조이다. Pi‑Tree는 각 트랜잭션을 사전 정의된 아이템 순서에 따라 삽입함으로써 공통 접두사를 공유하도록 설계된다. 노드에는 아이템 식별자와 해당 아이템이 포함된 서브트랜잭션 수를 저장하고, 포인터를 통해 상위·하위 관계를 유지한다. 이러한 구조는 (1) 동일 접두사를 갖는 트랜잭션을 하나의 경로에 집계해 메모리 절감, (2) 특정 아이템셋 Q에 대한 서브트리 탐색만으로 Q와 동시 발생하는 아이템들의 빈도를 효율적으로 계산할 수 있게 한다.
Pi‑Tree 기반 알고리즘 PT는 Q를 루트에서부터 탐색해 Q에 해당하는 노드 집합을 찾고, 해당 노드들의 하위 서브트리를 순회하면서 각 아이템의 co‑occurrence count를 누적한다. 누적 과정에서 ‘Upper‑Bound Pruning’을 적용해 현재까지의 카운트와 남은 서브트리에서 얻을 수 있는 최대 카운트를 비교, 상위 k개 후보보다 낮은 경우 탐색을 중단한다.
PT‑TA는 위의 PT에 ‘Threshold Algorithm(TA)’ 스타일의 다중 리스트 병합 프루닝을 추가한다. 아이템별 역인덱스 리스트를 미리 정렬해 두고, 각 리스트에서 현재까지 확인된 최대 카운트를 전역 임계값과 비교한다. 임계값 이하인 아이템은 더 이상 고려하지 않음으로써 불필요한 서브트리 방문을 크게 줄인다.
실험은 합성 데이터와 실제 거래·소셜 네트워크 데이터 두 종류에 대해 수행되었다. 다양한 데이터 규모와 k값을 변동시켰을 때, PT는 평균 310배, PT‑TA는 최악의 경우 20배 이상 베이스라인보다 빠른 성능을 보였다. 특히 데이터베이스가 커질수록 Pi‑Tree의 압축 효과가 두드러져 확장성에서 큰 이점을 나타냈다. 메모리 사용량도 FP‑Tree 대비 3050% 절감되었다.
이 논문은 Top‑K Co‑Occurrence Item Mining이라는 실용적 과제를 정의하고, Pi‑Tree라는 새로운 데이터 구조와 효율적인 탐색·프루닝 기법을 통해 기존 방법들의 한계를 극복한 점에서 의의가 크다. 다만 Pi‑Tree 구축 비용과 아이템 순서 선택이 성능에 미치는 영향에 대한 추가 연구가 필요하며, 실시간 스트리밍 환경에서의 적용 가능성도 향후 과제로 남는다.