KR100812378B1 - 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 - Google Patents

지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 Download PDF

Info

Publication number
KR100812378B1
KR100812378B1 KR1020050113919A KR20050113919A KR100812378B1 KR 100812378 B1 KR100812378 B1 KR 100812378B1 KR 1020050113919 A KR1020050113919 A KR 1020050113919A KR 20050113919 A KR20050113919 A KR 20050113919A KR 100812378 B1 KR100812378 B1 KR 100812378B1
Authority
KR
South Korea
Prior art keywords
prefix tree
item
data
frequency
mining
Prior art date
Application number
KR1020050113919A
Other languages
English (en)
Other versions
KR20070055675A (ko
Inventor
이원석
이대수
Original Assignee
이원석
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이원석 filed Critical 이원석
Priority to KR1020050113919A priority Critical patent/KR100812378B1/ko
Priority to US11/604,368 priority patent/US7610284B2/en
Publication of KR20070055675A publication Critical patent/KR20070055675A/ko
Application granted granted Critical
Publication of KR100812378B1 publication Critical patent/KR100812378B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 대량의 데이터 집합을 분석하여 특정 정보를 찾아내는 데이터 마이닝 방법 및 이 방법을 이용하여 구현된 데이터 마이닝 시스템에 관한 것이다. 지속적으로 발생되는 데이터의 무한집합으로 정의되는 데이터 스트림 환경에서의 마이닝은 이들 데이터로부터 중요한 지식을 효과적으로 찾아내는 방법으로 최근 들어 다양한 마이닝 방법들이 활발히 제안되고 있다. 개개의 데이터 요소가 빠른 속도로 무한히 발생되는 데이터 스트림의 특성을 고려할 때 이들 마이닝 방법에서는 마이닝 수행에 필요한 메모리 사용량을 가용 범위 내로 제한하는 것이 중요한 고려사항이 되고 있다.
본 발명은 데이터 스트림 환경에서 빈발 항목을 탐색하는데 효과적인 데이터 구조를 정의하고 이 데이터 구조를 이용하여 필요한 정보를 탐색한다. 본 발명에서 제안하는 데이터 구조를 축약형 전위 트리 구조라 정의하며 축약형 전위 트리는 기존의 데이터 마이닝에 응용된 전위 트리 구조와 비교하여 마이닝 수행과정 중에 노드를 병합하거나 분리하여 다수의 항목을 하나의 노드에서 관리함으로써 동적으로 트리의 크기를 유연하게 조절할 수 있다. 이러한 동적 조절 기능은 데이터 스트림의 변화로 인해 빈발항목집합이 될 가능성이 높은 항목집합들의 수의 변화폭이 클 경우 전위 트리에 있는 노드들을 동적으로 병합 및 분리 함으로써 제한된 메모리 공간내에서 마이닝 결과의 정확도, 즉, 탐색되는 빈발항목집합의 정확도를 극대화한다.
본 발명은 축약형 전위 트리 구조를 이용하여 가용 메모리 범위에서 최적의 마이닝 결과를 얻도록 지원하는 메모리 사용량 최적화 방법을 제시한다.
데이터 마이닝, 데이터 스트림, 실시간 데이터 마이닝, 빈발항목집합 탐색

Description

지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 {estDec+ method for finding frequent itemsets over data streams using compressed-Prefix trees}
도 1은 본 발명에서 고안한 데이터 스트림 환경에서 축약형 전위 트리를 이용한 빈발항목집합 탐색의 상위 레벨 구성도이다.
도 2 는 전위 트리와 축약형 전위 트리를 구성하기 위한 트랜잭션 데이터베이스와 종래 데이터 스트림에서 빈발항목집합 탐색을 위해 사용된 전위 트리 구조, 그리고 이로부터 동등한 축약형 전위 트리 구조를 구성하는 과정에 대한 예이다.
도3은 축약형 전위 트리를 구성하고 이를 이용하여 빈발항목집합을 탐색하는 단계의 흐름도이다.
도 3a 는 축약형 전위 트리를 갱신할 때 트랜잭션에서 나타난 항목집합의 출현 빈도수를 갱신하고 트리를 구성하고 있는 노드를 병합하거나 분리하는 단계의 흐름도이다.
도 4는 축약형 전위 트리를 이용한 적응형 메모리 사용량 최적화 단계의 흐름도이다.
A. Hafez, J. Deogun, and V. V. Raghavan. The Item-Set Tree: A data Structure for Data Mining. In proc. Of 1st int'l conf on datawarehousing and knowledge discovery, pages 183 ~ 192, Aug 1999.
M. Charikar, K. Chen, and M. Farach-Colton, Finding Frequent Items in Data Streams, Proc. 29th Int'l Colloq. Automata, Language and Programming, 2002.
G.S. Manku and R. Motwani, pproximate Frequency Counts over Data Streams, Proc. 28th Int'l Conf. Very Large Data Bases (VLDB 02), 2002.
J. H. Chang and W. S. Lee. Finding recent frequent itemsets adaptively over online data streams. In Proc. of the 9th ACM SIGKDD Int'l Conf. on Knowledge Discovery and Data Mining (KDD 03), pp. 487-492, 2003.
S.. Brin, R. Motwani, J.D. Ullman, and S. Tsur, "Dynamic Itemset Counting and Implication Rules for Market Basket Data," Proc. ACM SIGMOD Int'l Conf. Management of Data (SIGMOD 97), pp. 255-264, 1997.
M.J. Zaki, "Generating Non-Redundant Association Rules," Proc. 6th ACM SIGKDD Int'l Conf. Knowledge Discovery and Data Mining (KDD 00), pp. 34-43, 2000.
본 발명은 대량의 데이터 집합에서 데이터 집합을 분석하여 특정 정보를 찾아내는 데이터 마이닝 방법 및 이 방법을 이용하여 구현된 데이터 마이닝 시스템에서 빈발 항목 집합을 얻는 방법에 관한 것이다. 보다 상세하게 기술하면 시간 흐름에 따라 새로운 데이터가 지속적으로 발생하고 새롭게 발생된 데이터를 계속적으로 포함하는 비한정적 데이터 집합 (이하 “데이터 스트림”이라고 지칭함)에서 미리 정의된 지지도 임계값(support threshold)보다 큰 출현 빈도수를 갖는 빈발항목집합(frequent itemset)과 전체 데이터 집합에서 특정 항목집합의 출현회수 비율을 나타내는 값으로 데이터 집합을 구성하는 총 트랜잭션의 수 대비 해당 항목집합이 출현한 트랜잭션의 비율로 정의되는 지지도(support)를 실시간으로 탐색하는 것이다.
일반적으로 데이터 마이닝의 대상이 되는 데이터 집합에서는 응용분야에 나타나는 모든 단위 정보들을 항목(item)으로 정의하고 응용분야에서 의미적인 동시성(즉, 의미적으로 서로 함께 발생하는)을 갖는 단위 정보들의 모임을 트랜잭션(transaction)이라 정의한다. 트랜잭션은 의미적인 동시성을 갖는 항목들의 정보를 가지며 데이터 마이닝의 분석 대상이 되는 데이터 집합은 해당 응용분야에서 발생된 트랜잭션들의 집합으로 정의된다.
빈발항목집합을 탐색하는 종래의 기술은 데이터 마이닝 분석 시점에서 고정된 데이터 집합을 정의하고 고정된 데이터 집합에서 빈발항목집합을 탐색하는데 그 목적이 있다. 이러한 종래의 기술들은 데이터 집합이 고정적으로 정의되므로 특정 시간대에 발생된 지식만이 그 대상이 된다. 하지만 시간의 흐름에 따라 새롭게 생성된 트랜잭션들에 내포된 지식은 변화될 수 있으며 이와 같이 최근에 발생한 데이터 집합에 대한 마이닝 결과도 새로운 데이터가 계속적으로 발생하면 머지않은 장래에 유효성에 대한 문제가 발생되므로 새롭게 발생된 데이터 집합을 포함하는 정확한 마이닝 결과를 얻기 위해서는 이전의 마이닝 대상 집합과 그 이후에 발생한 새로운 트랜잭션들을 포함하는 전체 데이터 집합에 대한 마이닝 작업을 다시 수행해야 한다. 일반적으로 데이터 집합이 커질수록 기존의 마이닝 방법을 활용한 마이닝 작업은 긴 작업 시간과 많은 컴퓨터 처리 능력을 필요로 하므로 실시간으로 결과를 제공할 수 없다.
일반적으로 빈발항목집합 탐색은 한정적인 데이터 집합에서 전체 트랜잭션 수 대비 항목집합이 발생한 트랜잭션수 비율이 특정지지도 임계값(support threshold)보다 큰 지지도를 갖는 모든 항목집합을 파악하는 작업이다. 데이터 집합이 간헐적으로 증가되는 환경에서 빈발항목집합 탐색을 위해서는 점진적인 마이닝(incremental mining) 방법들이 필요하다. 빈발항목집합 탐색을 위해 제안된 많은 데이터 구조 중에서 점진적인 마이닝을 위해 메모리 사용량을 줄이기 위한 한 방법으로 “A. Hafez, J. Deogun, and V. V. Raghavan. The Item-Set Tree: A data Structure for Data Mining. In proc. Of 1st int'l conf on datawarehousing and knowledge discovery, pages 183 ~ 192, Aug 1999“에서 제시한 항목집합 트리 구조(itemset tree structure)는 기본적으로 트랜잭션 전체를 하나의 노드로 구성하 여 관리한다. 새로운 트랜잭션이 발생했을 때, 항목집합 트리는 다음의 두 단계를 거쳐 생성된다. 첫 번째 단계는 새로운 항목집합에 대한 노드 생성단계이고, 두 번째 단계는 새로운 항목집합에 의해 갱신 될 수 있는 노드들의 출현 빈도수 갱신 단계이다. 새로운 항목집합에 대한 노드를 생성하기 위해 트리를 탐색 할 때 새로 발생한 트랜잭션으로 생성된 항목집합들 중 항목집합 트리의 노드를 구성하고 있는 노드들과 비교하여 공통된 항목집합이 있으면 공통된 항목집합을 상위 노드로 공유하고, 나머지 항목집합을 하위 노드로 생성한다. 항목집합 트리 구조에 있는 각각의 노드는 정확한 출현 빈도수를 관리하기 때문에 두 번째 단계에서 전체 트리를 탐색하여 출현 빈도수를 갱신한다. 항목집합 트리는 대량의 데이터를 처리 할 때 노드의 공유로 인해 메모리 사용량을 효과적으로 줄일 수 있으나 각 노드의 출현 빈도수를 갱신하기 위해 전체 트리를 재 탐색해야 하므로 처리 시간이 오래 걸리고 생성된 모든 트랜젝션에 대한 정보를 메모리상에 저장하여야 하므로 동적으로 항목집합 트리의 크기를 조절할 수 있는 기능이 없다. 이런 단점으로 인해 항목집합 트리 구조는 실시간으로 마이닝 결과를 원하는 온라인 데이터 스트림을 대상으로 한 빈발항목집합 탐색 방법으로는 적합하지 않다.
데이터 스트림 환경에서의 빈발항목집합 탐색 방법으로는 “M. Charikar, K. Chen, and M. Farach-Colton, inding Frequent Items in Data Streams, Proc. 29th Int'l Colloq. Automata, Language and Programming, 2002.”에서 제안된 Count Sketch 알고리즘과 “G.S. Manku and R. Motwani, pproximate Frequency Counts over Data Streams, Proc. 28th Int'l Conf. Very Large Data Bases (VLDB 02), 2002”에서 제안한 Lossy Counting 알고리즘이 있다. 이 두 알고리즘은 이전에 발생한 모든 트랜잭션의 정보를 유지하는 것이 불가능하므로 마이닝 결과로 구해진 빈발항목집합이나 출현 빈도수에 다소의 오차를 포함한다. Count Sketch알고리즘은 데이터 스트림에서 빈발항목을 탐색하는데 초점을 맞추고 있다. Count Sketch 알고리즘은 현재까지 생성된 트랜잭션에서 항목의 출현 빈도수를 추정하여 임계값 이상을 만족하는 항목들의 집합을 생성한다. 반면에 Lossy Counting 알고리즘은 최소지지도와 최대허용오차가 주어졌을 때 데이터 스트림에서 발생한 빈발항목집합을 찾는다. 데이터 스트림에서 발생하는 각 트랜잭션들은 메인 메모리에 유지되는 고정된 크기의 버퍼에 채워져 버퍼 단위로 일괄 처리되며 각 항목집합들의 출현빈도 수 관리 구조는 보조 저장장치에서 유지된다. 버퍼에 채워진 트랜잭션들에 대해 항목들의 출현 빈도수를 갱신하며 새로운 빈발가능 항목집합은 이전까지 발생된 트랜잭션의 수를 고려하여 해당 항목집합에 포함될 수 있는 최대 오차를 추정하여 함께 관리한다. 이 알고리즘은 버퍼의 크기에 영향을 받는다. 버퍼의 크기를 크게 했을 경우 많은 트랜잭션들에 대한 일괄 처리가 가능하므로 데이터 연산 수가 줄어들지만 메모리 사용량이 커지므로 적절한 버퍼 크기를 고려하여야 한다. Lossy Counting 알고리즘은 결과에 어느 정도의 오차를 포함하지만 메모리 사용량을 줄일 수 있고 마이닝 수행 과정 중 한 번의 탐색으로 결과를 찾을 수 있으므로 데이터 스트림 마이닝에 유용하다. 그러나 Lossy Counting 알고리즘은 버퍼 단위로 처리되므로 임의 시점에서 마이닝 결과를 신속하게 구하고자 하는 온라인 데이터 스트림에는 비효율적이다.
온라인 데이터 스트림 환경에서 빈발항목집합을 탐색하기 위해 “J. H. Chang, W. S. Lee Finding recent frequent itemsets adaptively over online data streams. In Proc. Of the 9th ACM SIGKDD Int'l Conf. on Knowledge Discovery and Data Mining, Washington, DC, Aug. 2003. (CIKM 01), pp. 263-270, 2001.”에서 제안한 estDec 방법은 데이터 스트림을 구성하는 트랜잭션이 생성과 동시에 처리된다는 점에서 Lossy Counting 알고리즘과 차이점을 갖는다. estDec방법은 “S. Brin, R. Motwani, J.D. Ullman, and S. Tsur, "Dynamic Itemset Counting and Implication Rules for Market Basket Data," Proc. ACM SIGMOD Int'l Conf. Management of Data (SIGMOD 97), pp. 255-264, 1997.” 및 “ M.J. Zaki, "Generating Non-Redundant Association Rules," Proc. 6th ACM SIGKDD Int'l Conf. Knowledge Discovery and Data Mining (KDD 00), pp. 34-43, 2000.”에서 제안한 전위 트리 구조(Prefix lattice tree)를 이용하며 지연 추가와 전지 작업을 통하여 빈발항목집합이 될 가능성이 있는 항목집합들만을 메모리상의 전위 트리 구조를 이용하여 관리한다. estDec 방법에서 데이터 스트림에 출현한 항목집합이 메모리상의 전위 트리에서 관리되는 경우는 다음과 같은 두 가지 경우이다. 첫째, 길이 1인 항목집합은 무조건 전위 트리에 추가되어 관리된다. 둘째, 길이 n (n ≥ 2)인 새로운 항목집합이 생성되었을 때에는 해당 항목집합이 가까운 미래에 빈발항목집합이 될 수 있을 정도로 큰 지지도를 갖는 중요 항목집합일 때 해당 전위 트리에 추가된다. 즉, 현재까지 중요 항목집합이 아니었던 항목집합의 지지도를 해당 항목집합의 부분항목집합들로부터 추정하고, 추정값이 미리 정해진 지연추가 임계값 이 상일 때 전위 트리에 추가된다(지연 추가). 한편, 이미 전위 트리에서 관리되고 있는 항목집합에 대해 일정 시점에서 항목집합의 지지도가 전지 임계값 미만으로 감소할 때 해당 항목집합을 빈발항목집합이 될 가능성이 적은 비중요 항목집합으로 판단하고 메모리상의 전위 트리에서 제거한다(전지). 이러한 두 가지 작업(지연 추가 및 전지)을 통해 항목집합들의 출현 빈도수 관리를 위한 전위 트리의 크기를 감소시킨다. estDec 방법의 부가적인 특징은 무한히 증가하는 데이터 스트림의 트랜잭션에 대해 트랜잭션들의 생성 시점에 따라 다른 가중치를 부여하여 최근에 생성된 트랜잭션이 마이닝 결과에 충분히 반영될 수 있도록 한다.
종래의 연구들이 빈발항목집합 탐색을 위해 소개되었지만 다음과 같은 기술적 한계를 가진다.
● 기본적인 마이닝 방법에서의 한계
- 종래 기술은 데이터 마이닝 작업 이전에 대상이 되는 데이터 집합을 미리 정의하여 이들에 대한 기본적인 통계적 전 처리 분석이 가능한 경우에 효율적으로 결과를 얻을 수 있도록 설계되었다. 하지만 데이터 집합을 구성하는 항목들이 변화될 수 있고 데이터 집합이 지속적으로 증가되는 환경에서는 데이터 집합을 구성하는 항목과 이들의 트랜잭션들을 한정적으로 정의하는 것은 불가능하며 따라서 데이터 집합에 대한 기본적인 통계적 전 처리 분석이 불가능하다.
- 종래의 데이터 마이닝 시스템은 고정적인 데이터 집합에 대한 분석 정보의 제공을 목적으로 한다. 따라서 새로운 데이터들의 추가에 의한 데이터 집합의 변화에 기인한 분석 정보의 새로운 변화를 신속하게 사용자에게 제공하지 못한다.
● 마이닝 처리 시간 단축 및 실시간 처리의 한계
- 종래 기술은 지속적으로 증가되는 데이터 집합에서 최근에 발생한 정보를 포함하는 분석 결과를 얻기 위해서 긴 처리 시간을 필요로 한다. 즉, 새로운 트랜잭션이 지속적으로 발생하는 환경에서 데이터 집합이 확장되는 경우 이전의 분석 결과는 과거의 정보가 되어 최근까지 발생한 전체 데이터 집합의 정보를 포함하는 최신의 정보로서의 가치가 감소되며 새로 발생된 데이터 집합을 포함하는 분석 결과를 얻기 위해서는 이전의 데이터 집합 일부 또는 전체와 새로 발생한 모든 트랜잭션들에 대해 다시 마이닝 작업을 재수행 해야 한다. 따라서 마이닝 작업을 여러번 반복 수행할 수 있고 해당 데이터 집합이 커져 수행 시간이 길어지는 단점을 갖는다.
- 종래 기술은 실시간으로 마이닝 결과를 얻는데 한계가 있다. 마이닝 작업에 대한 실시간 처리 능력이란 제한된 빠른 시간 안에 분석 결과를 얻어낼 수 있는 능력이다. 종래의 기술에서는 분석 대상이 되는 데이터 집합에 대한 정확한 정보 분석만을 고려하여 신속한 처리 시간을 지원하는데 한계를 갖는다. 특히 데이터 집합을 구성하는 각 트랜잭션을 여러 번 반복해서 읽어야 하므로 지속적으로 데이터 집합이 증가되는 환경에서는 이전의 모든 트랜잭션을 별도로 저장해야 하며 최근에 발생한 데이터 집합의 정보를 포함하는 마이닝 결과를 얻기 위한 작업 시간이 길어지므로 실시간으로 결과를 얻는데 한계가 있다. 즉, 새로운 트랜잭션이 발생했을 때 트랜잭션 추가에 따른 마이닝 결과를 전체 데이터 집합에 대한 분석을 통해 얻을 수 있도록 설계되어 있으므로 새로운 트랜잭션들의 추가에 의한 마이닝 결과를 실시간으로 제공하지 못한다.
● 한정된 메모리 공간을 이용한 처리의 한계
- 종래 기술은 한정된 메모리 공간에서 빈발항목집합을 탐색하기 위해 마이닝 대상이 되는 데이터 집합이 사전 정의되어 있다는 가정을 통해 마이닝 수행에 필요한 메모리 사용량을 미리 예측할 수 있다. 그러나 데이터 스트림 환경에서의 실시간 데이터 마이닝에서는 데이터 집합이 사전 정의 되어 있지 않을 뿐 아니라 데이터가 지속적으로 증가되므로 사전에 필요한 메모리 사용량을 예측 할 수 없다.
- 데이터 스트림을 대상으로 한 종래의 마이닝 방법들에서는 빈발항목집합 탐색을 위해 데이터 집합에 대한 요약 정보를 트리와 같은 다양한 데이터 구조를 이용하여 메모리 상에 저장하며 활용한다. estDec의 전위 트리와 Lossy Counting의 항목집합 출현 빈도수 관리 구조가 이러한 요약 정보를 저장 관리하는 데이터 구조이다. 따라서 마이닝 수행 중에 저장되는 요약 정보의 양이 한정된 메모리 공간을 초과할 경우 메모리 내에서의 수행 자체가 불가능하다.
본 발명에서는 이상과 같은 종래 기술의 문제점을 해결하고 응용 환경 및 요 구사항 변화를 만족하기 위해 데이터 마이닝 기법 중 하나인 빈발항목집합 탐색에 대해 동적 메모리 사용량의 유연한 조절기능을 통하여 한정된 메모리 공간으로도 데이터 스트림의 변화에 최적의 정확도를 제공할 수 있는 데이터 구조를 고안한다.
본 발명은 지속적으로 확장되는 무한 데이터 집합으로 정의되는 데이터 스트림 환경에서 새로운 트랜잭션을 포함하는 빈발항목집합 탐색 결과를 실시간으로 추출할 수 있는 마이닝 방법을 이용하여 데이터 집합의 분석을 통해 생성된 항목집합들 중 전체 트랜잭션의 수 대비 출현 빈도수의 비율이 사용자 정의 임계값 이상이 되는 항목집합들을 탐색하는 것을 목적으로 한다. 데이터 스트림 마이닝에서 빈발항목집합 탐색을 위한 데이터 집합은 다음과 같이 정의된다.
ⅰ) I = {i 1, i 2, … , i n }는 현재까지의 항목(item)의 집합이며 항목은 응용 도메인에서 발생한 단위 정보를 의미한다.
ⅱ) 2 I 가 항목집합 I의 멱집합을 나타낼 때, e ∈ (2 I - {Ø})을 만족하는 e를 항목집합(itemset)이라 하고, 항목집합의 길이 |e|는 항목집합 e를 구성하는 항목의 수를 의미하며 임의의 항목집합 e는 해당 항목집합의 길이에 따라 |e|-항목집합이라 정의한다. 일반적으로 3-항목집합 {a,b,c}는 간단히 abc로 나타낸다.
ⅲ) 트랜잭션은 공집합이 아닌 I의 부분집합이며 각 트랜잭션은 트랜잭션 식별자 TID를 갖는다. k번째 순서로 데이터 집합에 추가되는 트랜잭션을 T k 라 나타내며 T k TIDk이다.
ⅳ) 새로운 트랜잭션 T k 가 추가되었을 때 현재의 데이터 집합 D k 는 현재까지 발생하여 추가된 모든 트랜잭션들 즉, D k = <T 1, T 2, … , T k >로 구성된다. 따라서 |D| k 는 현재 데이터 집합 D k 에 포함된 트랜잭션의 총 수를 의미한다.
T k 를 현재 트랜잭션이라 할 때, 임의의 항목집합 e에 대한 현재 출현 빈도수를 C k (e)라 정의하며 이는 현재까지의 k 트랜잭션에서 e가 포함된 트랜잭션의 수를 나타낸다. 이와 마찬가지로, 항목집합 e의 현재 지지도 S k (e)은 현재까지의 트랜잭션의 총 수 |D| k 대비 항목집합 e의 출현 빈도수 C k (e) 의 비율로 정의한다. 항목집합 e의 현재 지지도 S k (e)가 사전 정의된 최소 지지도 S min 이상일 때, 항목집합 e를 현재 데이터 스트림 D k 에서의 빈발항목집합이라 정의한다.
온라인 데이터 스트림 환경에서 종래 “지속적으로 발생되는 트랜잭션 데이터 집합에서 빈발항목 및 빈발 순차패턴의 실시간 탐색 방법 및 도구”에서 제안된 estDec 방법은 데이터 스트림을 구성하는 트랜잭션이 생성과 동시에 처리되며, 빈발항목집합 생성을 위한 후보집합 생성 없이 전위 트리 구조를 갖는 모니터링 트리를 이용하여 트랜잭션에 나타난 항목집합들의 출현 빈도수를 관리한다. 현재 데이터 집합 D k 가 주어질 때, 전위 트리 P k 는 다음과 같은 특징을 갖는다:
1. P k 는 “null”값을 가지는 하나의 루트 노드 r을 가지며 r을 제외한 다른 노드들 은 하나의 항목 iI를 갖는다.
2. 항목 i k 를 가지는 노드 n은 루트 노드로부터 자신까지의 경로 rooti 1→…→i k (i k I, k ≥ 1)에 있는 노드들이 갖는 항목들의 정렬된 항목집합 i 1 i 2i k (i k I, k ≥ 1)의 출현 빈도수 μ를 관리한다.
estDec 방법은 도2-(b)의 전위 트리 구조를 이용하여 트랜잭션으로부터 생성될 수 있는 항목집합들에 대한 정보를 메모리에 저장한다. 전위 트리는 항목집합과 그 항목집합의 출현 빈도수를 관리하는 노드(201)와 한 노드에서 자식 노드들을 연결하는 링크(202)로 구성된다. 전위 트리의 노드는 루트(root) 노드로부터 그 노드까지의 유일한 경로로 표현되는 하나의 항목집합으로 구성되며 각 노드까지의 경로로 표현되는 항목집합의 출현 빈도수를 저장한다. 전위 트리를 이용한 빈발항목집합 탐색 방법에서는 지지도가 높은 항목집합들이 많이 발생하여 관리되어야 할 항목집합들의 수가 증가되는 경우 전위 트리의 크기가 급격히 증가되며 이로 인해 빈발항목집합 탐색 과정에서 메모리 사용량이 증가하게 되어 필요한 메모리 공간이 주어진 메모리 공간을 초과한 경우 빈발항목집합 탐색작업이 더 이상 진행될 수 없게 된다. 본 발명에서는 이러한 전위 트리의 단점을 보완하기 위해서 트리의 크기를 관리 대상 항목집합의 수에 적합하게 동적으로 조절할 수 있는 축약형 전위 트리를 정의한다. 축약형 전위 트리는 데이터 스트림에서 발생되는 항목집합들 중에서 유사한 항목집합이면서 비슷한 출현 빈도수를 갖는 항목집합들을 병합하여 관리할 수 있는 기능을 지원하여 빈발항목집합 탐색을 위한 저장 공간을 필요 시 유연 하게 감소시킬 수 있다.
1. 축약형 전위 트리의 정의 및 구성
전위 트리의 한 노드가 하나의 항목집합을 표현하는데 반해, 축약형 전위 트리의 한 노드는 한 개 이상의 항목집합을 표현한다. 축약형 전위 트리의 부모-자식 관계에 있는 연속된 두 노드는 두 노드에서 관리되는 항목집합들의 지지도 차가 사전에 정의된 병합 임계값(merging gap threshold) δ∈(0,1) 이하일 때 하나의 노드로 병합하여 관리한다. 이로 인해 축약형 전위 트리의 노드수를 δ값에 따라 유동적으로 조절할 수 있다. 축약형 전위 트리를 구성하는 노드 CP-node의 상세 구조는 다음과 같이 정의된다.
[CP-node의 정의]
데이터 스트림 D k 에 의해 생성된 전위 트리 P k 의 서브트리(subtree) S에서 S의 루트노드 r(rS)이 나타내는 항목집합 e r 과 루트노드를 제외한 S의 각 노드가 나타내는 모든 항목집합들의 지지도 차가 미리 정해진 병합 임계값 δ 이내일 때, 즉, ∀nS, nr에 대해 |C k (e r ) - C k (e n )| / |D| k δ일 때, S의 모든 노드들은 P k 와 동등한 축약형 전위 트리 Q k 에서 하나의 노드 m으로 병합 가능하며 서브트리 S의 정보를 간략히 나타내기 위해 축약형 전위 트리 Q k 의 노드 m에 다음의 네 개의 엔트리 (τ, π, c S , c L )을 유지한다.
● 항목 리스트 τ: 서브트리 S의 상위에서 하위레벨로 좌에서 우순서로 존재하는 노드들의 항목 리스트로 τ[k]는 τk번째 항목을 나타낸다. τ에 있는 항목들의 개수 |τ|은 m이 나타내는 서브트리 S의 노드 수와 같다.
● 부모 항목 리스트 π: π[k]는 S에서 τ[k]에 해당하는 노드의 부모 노드가 갖는 항목이 위치하는 τ의 인덱스를 나타낸다. 만약 m.τ[k]의 부모 항목 i p i p m.τ이고 m.τ[j] = i p (1 ≤ j < k)이면 π[k] = m.j로 나타낸다. m p m의 부모 노드라 할 때, i p i p m p .τ이고 m p .τ[j] = i p (1 ≤ j ≤ |m p .τ|)이면 π[k] = m p .j로 나타낸다.
● 최대 출현 빈도수 c L : 서브트리 S의 루트 노드 r이 나타내는 항목집합의 출현 빈도수 C k (e r )를 의미하며 이 항목집합을 최소 항목집합이라 정의하고 e S 으로 표현한다.
● 최소 출현 빈도수 c S : 서브트리 S의 최하위 레벨의 가장 오른쪽 노드가 나타내는 항목집합, 즉, 가장 많은 항목으로 이루어지면서 항목 정렬 순서에서 가장 뒤에 해당하는 항목집합의 출현 빈도수를 의미하며 이 항목집합을 최대 항목집합이라 정의하고 e L 으로 표현한다.
도 2 는 S min = 0.5, δ = 0.2 일 때, (a)의 트랜잭션 데이터베이스 D에 의해 생성되는 전위 트리 P k 와 이와 동등한 축약형 전위 트리 Q k 의 예를 보여준다. 트리의 간략한 표현을 위해 S min 이하의 지지도를 갖는 항목집합의 표현은 생략되었다. 전위 트리 P k 의 노드 n 1, n 5, n 6로 구성되는 서브트리는 루트 노드 n 1이 나타내는 항목집합 an 1의 자식노드 n 5, n 6가 나타내는 항목집합 abac의 지지도 차가 사전 정의된 병합 임계값 δ = 0.2 이내 이므로 Q k 의 노드 m 1으로 축약되며 서브트리의 구조는 항목 리스트 m 1.τ = <a, b, c>와 m 1.π = <m 0.1, m 1.1, m 1.1>에 의해 반영된다. 서브트리의 루트 노드 n 1m 1의 항목 리스트 τ의 첫 번째 항목 m 1.τ[1]에 의해 표현되며 n 1의 부모노드는 m 1.π[1] = m 0.1에 의해 Q k 의 노드 m 0임을 알 수 있다. 이와 유사하게, n 2와 대응되는 m 1.τ[2] = b와 항목 b의 부모 항목이 m 1.τ[1] = a임을 나타내는 m 1.π[2] = m 1.1에서 노드 n 2의 부모 노드가 n 1임을 유추할 수 있다. [CP-node의 정의]로부터 m 1의 최소 항목집합과 최대 항목집합이 각각 aac임을 알 수 있으며, c L c S 에서 aac의 현재 출현 빈도수를 유지한다. P k 의 노드 n 1, n 5, n 6로 구성된 서브트리의 축약 과정과 유사하게 노드 n 2n 8Q k 의 노드 m 2로 축약되며 n 3n 9Q k m 3로 축약된다. 반면, 노드 n 4, n 7, n 10은 [CP-node의 정의]에 기술된 병합 조건을 만족하지 않으므로 축약 과정 없이 Q k 의 노드 m 4, m 5, m 6로 변환된다.
2. 병합된 항목집합의 출현 빈도수 추정
축약형 전위 트리의 각 노드는 최대 두 항목집합의 출현 빈도수 만을 관리한다. 따라서, 셋 이상의 항목집합이 하나의 노드 m에 병합된 경우 e S e L 를 제외한 나머지 항목집합들의 출현 빈도수는 m.c L m.c S 로부터 추정된다. 노드 m의 항목 리스트 m.τ = <i 1, i 2, …, i n >이 주어졌을 때, 리스트의 임의의 항목 i k (1 < k < n)에 의해 표현되는 항목집합
Figure 112005068644614-pat00001
의 출현 빈도수는 다음과 같이 구할 수 있다:
f(m, k)가
Figure 112005068644614-pat00002
Figure 112005068644614-pat00003
의 출현 빈도수 차이를 추정하는 출현 빈도수 추정 함수라 할 때,
Figure 112005068644614-pat00004
의 출현 빈도수는
Figure 112005068644614-pat00005
에 의해 구해진다. 여기서, 추정 함수 f(m, k)는 데이터 집합의 특성을 고려하여 다양한 형태로 정의할 수 있다. 본 발명에서는 다음과 같은 두 가지 추정 함수를 정의한다. 하나는 항목집합의 길이 증가에 따른 출현 빈도수 감소량이 일정한 것으로 가정하며 이때의 추정함수를 f 1(m, k)로 나타낸다. 다른 하나는 항목집합의 길이 증가에 따른 출현 빈도수 감소량이 항목집합의 길이가 증가될수록 작아지는 것으로 가정하며 이때의 추정함수를 f 2(m, k)라 정의한다.
Figure 112005068644614-pat00006
Figure 112005068644614-pat00007
항목집합의 출현 빈도수 추정 과정으로 인해 축약형 전위 트리에서 관리되는 항목집합의 출현 빈도수는 어느 정도의 추정오차를 포함하며 추정오차의 범위는 병합 임계값 δ에 의해 영향을 받는다. δ값이 클수록 더 많은 노드들이 병합되어 관리되므로 축약형 전위 트리의 크기는 줄어들지만 항목집합의 출현 빈도수 추정과정에서 발생하는 추정오차는 커지게 된다. 하지만 추정된 출현 빈도수에 포함될 수 있는 오차는 δ 이내로 한정된다.
3. 축약형 전위 트리를 사용한 빈발항목집합 탐색
도 3 은 데이터 스트림 환경에서 발생하는 데이터 집합으로부터 축약형 전위 트리를 구성하고 이를 이용하여 빈발항목집합을 탐색하는 과정을 보여준다. 축약형 전위 트리는 온라인 데이터 스트림에서 한정된 메모리 공간에 저장해야 할 빈발항목집합의 변화폭이 클 경우에 효과적으로 사용된다. 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법은 이전의 연구에서 제안된 estDec방법을 개선하여 설계되었으며 estDec+라 지칭한다.
estDec+ 방법은 “지속적으로 발생되는 트랜잭션 데이터 집합에서 빈발항목 및 빈발 순차패턴의 실시간 탐색 방법 및 도구”에서와 마찬가지로 지연추가 및 전 지 작업을 수행한다. 이를 통해서 가까운 미래에 빈발 항목집합이 될 수 있는 중요한 항목집합들만 메모리상에서 관리한다. 하지만, 전위 트리 기반의 모니터링 래티스를 활용하여 항목집합들의 출현 빈도수를 관리하는 estDec 방법과 달리 estDec+ 방법에서는 축약형 전위 트리 기반의 모니터링 트리를 이용하여 항목집합들의 출현 빈도수를 관리한다. 이를 통해 마이닝 수행 과정에서 메모리 사용량을 감소시킬 수 있다. estDec+ 방법은 매개변수 갱신 단계, 출현 빈도수 및 노드 갱신 단계, 항목집합 추가 단계 및 빈발 항목집합 선택 단계와 같이 네 단계로 구성된다.
축약형 전위 트리는 트리의 모든 부분에서 병합 현상이 발생될 수 있다. 하지만, 빈발 항목집합 탐색 과정에서 최소지지도에 근접한 항목집합들이 병합되는 경우 이들 항목집합의 추정 출현 빈도수에 포함되는 오차로 인해 개별 항목집합의 지지도에 오차가 발생되는 뿐만 아니라 마이닝 결과 집합 자체에 오차가 발생될 수 있다. 즉, 빈발 항목집합을 구할 수 없거나 또는 빈발 항목집합이 아닌 항목집합이 빈발 항목집합으로 탐색될 수 있다. 본 발명에서 제안하는 estDec+ 방법에서는 마이닝 결과로 구해진 빈발 항목집합에서 개별 항목집합의 지지도에는 다소간의 오차를 허용하더라도 마이닝 결과 집합 자체의 오차를 배제하기 위해서 축약형 전위 트리에서 병합 대상 항목집합들의 범위를 제한할 수 있도록 한다. 즉, 지지도가 일정 임계값 이상인 항목집합들에 대해서만 병합 작업을 허용한다. 이때, 기준이 되는 임계값을 병합 하한값(merging threshold)이라 정의하고 S merge 로 나타낸다. 축약형 전위 트리에서 부모 노드의 최소 항목집합 e S 와 자식 노드의 최대 항목집합 e L 간의 지지도 차이가 δ 이하일지라도 병합 하한값 미만의 지지도를 갖는 항목집합들에 대해서는 해당 항목집합의 발생빈도의 정확도를 높게 유지하기 위해 두 노드를 병합하지 않고 독립적으로 별도의 노드를 유지한다. 따라서, estDec+ 방법에서 병합 하한값은 항상 S min < S merge < 1을 만족한다.
최소 지지도 S min 과 병합 임계값 δ가 주어졌을 때, 데이터 스트림 D k -1 에 의해 구성된 축약형 전위 트리를 Qk -1이라 하자. 데이터 스트림 Dk와 이와 연관된 축약형 전위 트리 기반의 모니터링 트리 Qk -1에 대해서, 새로운 트랜잭션 Tk가 발생했을 때, 빈발 항목집합 탐색 단계를 제외한 세 단계가 순차적으로 수행된다.
[Step 1] (매개변수 갱신) 전체 트랜잭션의 수를 |D| k = |D| k-1 + 1로 갱신한다 (301).
[Step 2] (출현 빈도수 및 노드 갱신) 사전적 순서에 의해 정렬된 항목들로 구성되는 트랜잭션 T k 에 출현한 각 항목집합에 영향을 받는 노드의 출현 빈도 수를 갱신한다 (302). 새로운 트랜잭션 T k 가 발생했을 때, T k 에 출현한 항목집합들을 표현하는 Q k -1 의 노드들이 깊이 우선 탐색 방법에 의해 탐색된다. 노드 m의 항목 리스트 τj번째 항목이 i이고 j가 부모 항목 리스트 π의 엔트리가 아닐 때, 즉, m.τ[j] = i 이고 jm.π[l] (∀l, 1 ≤ l ≤ |τ|) 일 때, 항목 i를 리프 레벨 항목(leaf-level item)이라 정의한다. m p 가 노드 m의 부모 노드이고 i p 가 출현 빈도수 갱신을 위해 T k 의 항목을 탐색하는 과정에서 발생한 리프 레벨 항목일 때, T k 의 아직 매치되지 않은 항목 i q (p < q ≤ |T| k )에 대해 m.π[1] = m p .i p 이고 m.τ[1] = i q 인지 비교한다. 만약 m.τ[1] ≠ i q 이면 노드 m에 대한 검색 과정을 종료하고 m의 부모 노드 m p 로 복귀한다. 반면, m.τ[1] = i q 인 경우, m.c L 을 1 증가시킨다 (3001). m.τ[1]과 매치된 공통 항목을 ci 1, 다음 매치 항목을 ci 2라 하면, m.τ[1]을 제외한 m.τ의 엔트리들이 ci 2와 비교된다. 이와 함께, m.τ에서 ci 1ci 2의 부모 항목인지 비교된다. 즉, m.τ에서 ci 1ci 2j 1j 2의 항목 리스트 인덱스를 가질 때, m.π[j 2] = m.j 1를 만족하는지 비교한다. 이 탐색 방법을 이용하여 Q k 를 재귀적으로 탐색함으로써 T k 의 남아있는 항목들을 m.τ에서 매치하며, 매치 항목이 m.τ[|τ|]와 매치되면 m.c S 을 1 증가시킨다 (3002). 이 과정을 통해 축약형 전위 트리의 노드에서는 최소 항목집합의 출현 빈도수와 최대 항목집합의 출현 빈도수를 정확히 관리한다. 현재 매치 항목이 m.τ의 리프 레벨 항목과 매치되면 T k 의 다음 매치 항목을 비교하기 위해 m의 자식 노드로 이동하여 해당 노드의 항목 리스트와 매치 과정을 수행한다. 이 과정은 T k 에 더 이상의 매치 항목이 없을 때 종료된다.
도 2의 축약형 전위 트리 Q k 에 새로운 트랜잭션 T 11 = {a, c, d}가 발생했을 때, m 1의 항목 리스트의 첫 엔트리 m 1.τ[1] = a 인지 비교한다. m 1.τ[1] = a 이므 로 m 1.c L 이 1 증가된다. T 11a가 매치되었으므로 다음 항목 c에 대해 m 1.τa 이외의 엔트리에서 m 1.τ[j] = c이고 m 1.π[j] = m 1.1 (2 ≤ j ≤ |m 1.τ|)인 엔트리가 있는지 비교한다. m.τ[3] = c이고 m.π[3] = m 1.1 이므로 m 1.cS가 1 증가되며 m.τ[3] = c는 리프 레벨 항목이므로 m 1에서 매치 과정을 종료하고 m 1의 첫 번째 자식 노드 m 5로 이동한다. T 11의 아직 매치되지 않은 항목 d와 노드 m 5에 대해 m 5.τ[1] = d이고 m 5.π[1] = m 1.2인지 비교한다. m 5가 이 경우를 만족하고 m 5가 표현하는 항목집합 acdm 5의 최소 항목집합이면서 최대 항목집합이므로 m 5.c L m 5.c S 를 1 증가시킨다. m 5의 최대 출현 빈도수와 최소 출현 빈도수 갱신 후, 깊이 우선 탐색 방법에 의해 m 1으로 복귀한다. T 11a에 대해 항목집합 ad를 표현하는 d가 매치되지 않았으므로 m 1.τ[j] = d이고 m 1.π[j] = m 1.1 (2 ≤ j ≤ |m 1.τ|)인 엔트리를 찾는다. 조건을 만족하는 엔트리가 없으므로 m 1의 또 다른 자식 노드 m 6에서 m 6.τ[1] = d이고 m 6.π[1] = m 1.1 인지 비교하며 m 6τπ가 조건을 만족하므로 m 6의 최대 출현 빈도수 m 6.c L 와 최소 출현 빈도수 m 6.c S 를 1 증가시킨다. 이와 같은 방법에 의해 m 3m 4의 최대 출현 빈도수와 최소 출현 빈도수가 갱신되며 T 11에 대한 항목집합의 출현 빈도수 갱신 과정을 종료한다.
해당 노드의 갱신된 최대 출현 빈도수 c L 이 중요항목 지지도 S sig 미만인 경 우 해당 항목집합(즉, 해당 항목집합에 연관된 노드)을 모니터링 트리로부터 전지한다. estDec 방법에서는 지연추가 임계값 S ins 와 전지 임계값 S prn 을 별도로 정의하였지만, estDec+ 방법에서는 이들 두 임계값을 하나로 통합하여 중요항목 지지도 S sig 라 정의하고 현재 지지도가 S sig 이상인 항목집합들을 중요 항목집합이라 정의 한다. 지연추가 및 전지 작업은 중요 항목집합 지지도 S sig 를 기준으로 수행된다. 전지되지 않은 항목집합에 대해서는 트랜잭션의 총 수 및 노드의 출현 빈도수 변화를 고려하여 노드의 병합 (303) 또는 분리 (304) 작업을 수행한다. 노드의 병합과 분리 작업을 도 3a 에 나타내었다.
(i) 노드의 병합 (3004): 노드 병합 연산은 다음의 두 경우에 적용된다. 하나는 T k 에 새로 출현한 항목집합을 표현하는 노드 m 2에 대해 m 2m 2의 부모 노드 m 1 간의 지지도 차이가 병합 임계값 δ 이하가 되는 경우이다. 다른 하나는 축약형 전위 트리에 존재하는 임의의 노드 m 2m 2의 부모 노드 m 1 간의 출현 빈도수 차이는 변하지 않으나 트랜잭션의 총수 |D| k 가 증가되어 두 노드간의 지지도 차이가 δ 이하로 작아진 경우이다. 이 때, 두 노드간의 지지도 차이를 계산하기 위해 사용되는 노드 m 1의 출현 빈도수는 최소 항목집합 출현 빈도수 m 1.c L 을 사용하며 자식 노드 m 2의 출현 빈도수는 최대 항목집합 출현 빈도수 m 2.c S 를 사용한다 (3003).
(ii) 노드의 분리 (3006): 축약형 전위 트리의 임의의 노드 m1은 m 1.c S m 1.c L 사 이의 지지도 차가 δ 보다 큰 경우, 즉, (m 1.c L - m 1.c S ) / |D| k > δ 인 경우, 두 노드로 분리된다 (3005). m 1.c L 이 증가하는 경우 m 1.c L m 1.c S 에서 관리되는 출현 빈도수 차이가 커지게 되고, 두 출현 빈도수로부터의 지지도 차가 δ 보다 클 때, 노드가 별도로 분리된다.
[Step 3] (항목집합 추가) 트랜잭션 T k 에 출현한 항목집합들 중 모니터링 트리에서 관리되지 않는 항목집합들을 모니터링 트리에 새로 추가한다. 삽입 대상 항목집합들 중 길이 1인 항목집합은 출현 빈도수 추정 과정을 거치지 않고 모니터링 트리의 첫 번째 레벨에 바로 삽입된다. 이 때, 비중요 항목집합, 즉, S sig 이하의 지지도를 갖는 항목집합을 포함하는 항목집합은 비중요 항목집합이므로 해당 트랜잭션에서 출현한 항목집합들 중에서 비중요 항목집합을 제거하여 필터링된 트랜잭션
Figure 112005068644614-pat00008
을 생성하고 이후 모든 작업은 필터링된 트랜잭션
Figure 112005068644614-pat00009
대상으로 수행된다.
길이 2 이상인 항목들에 대해서는 가까운 미래에 빈발항목집합이 될 가능성이 있는 항목집합들만 모니터링 래티스에 삽입한다. 즉, 추가될 항목집합들의 출현 빈도수를 4절의 방법에 따라 추정하며, 추정된 지지도가 중요항목 지지도 S sig 이상인 중요 항목집합인 경우에만 해당 항목집합을 추가한다. 즉, 해당 항목집합을 표현하는 노드를 생성한다 (305). 노드 병합의 첫 번째 경우와 같이, 추가할 항목집합의 지지도와 노드가 생성될 부모 노드가 표현하는 항목집합의 지지도의 차이가 병합 임계값 δ 이내인 경우, 항목집합은 부모 노드에 병합된다 (306).
[Step 4] (최대 빈발 항목집합 선택) 이 단계는 현재 시점의 최대 빈발 항목집합을 구하고자 하는 경우에만 수행되며 모니터링 래티스를 순차적으로 탐색함으로써 마이닝 결과를 얻는다. 모니터링 트리에 대한 탐색 과정에서 병합되어 관리되는 항목집합들에 대해서는 해당 노드에 병합된 모든 항목집합들의 출현 빈도수를 추정하고, 이를 이용하여 최대 빈발 항목집합 여부를 판단한다 (307).
4. 새로운 항목집합의 출현 빈도수 추정
estDec+ 방법의 항목집합 모니터링 구조인 축약형 전위 트리는 estDec 방법의 전위 트리와 같이 S sig 이상의 지지도를 갖는 항목집합만을 관리한다. 따라서, 새로 나타난 항목집합의 축약형 전위 트리의 추가 여부를 판정하기 위해 해당 항목집합의 현재 출현 빈도수를 해당 항목집합의 부분 항목집합들로부터 추정한다. 이때, 부분 항목집합이 병합되어 존재하는 경우에는 앞에서 기술한 출현 빈도수 추정 방법을 통해 해당 부분 항목집합의 출현 빈도수를 구한다. 만약 하나 이상의 부분 항목집합이 모니터링 래티스에 존재하지 않는다면 해당 항목집합은 출현빈도 수를 추정하지 않는다. 이는 부분 항목집합 중 일부가 현재의 모니터링 래티스에서 관리되지 않는다면 해당 항목집합의 출현빈도 수 추정값이 S sig 이상의 값을 가질 수 없음이 명백하므로 출현빈도 수 추정 과정을 더 이상 진행하지 않더라도 해당 항목집합이 모니터링 래티스에 추가될 필요가 없음을 판단할 수 있다. 모든 부분 항목집합이 모니터링 래티스에 존재하는 경우 출현빈도 수 추정 단계를 거쳐 출현빈도 수 의 가능한 최대값 및 최소값을 추정한다. 여기서 구해진 출현빈도 수의 최대값이 S sig 보다 크거나 같은 경우 해당 항목집합은 모니터링 래티스에 추가하여 모니터링을 시작한다. 일부 부분 항목집합이 존재하지 않거나 출현빈도 수 추정값의 최대값이 지연추가 임계값보다 작은 경우 해당 항목집합은 추가 불가하다고 판정한다.
출현빈도 수를 추정하고자 하는 항목집합을 e라 할 때 출현빈도 수의 가능한 최대값 및 최소값은 다음과 같이 추정된다. 출현빈도 수 추정을 위해서 먼저 e의 부분 항목집합들의 집합, m-부분항목집합들의 집합, m-부분항목집합들의 출현빈도 수 집합을 다음과 같이 정의한다.
(ⅰ) 하나의 항목집합 e를 구성하는 항목으로 구성 가능한 모든 항목집합을 e의 부분항목집합들의 집합이라 하며 다음과 같이 나타낸다.
Ρ(e) = { α | α∈(2 e -{e}) 그리고 α≠Ø 인 모든 α }
(ⅱ) P(e)에 속하는 항목집합들 중에서 m개의 항목으로 구성되는 항목집합, 즉 길이가 m인 항목집합들의 집합을 m-부분항목집합들의 집합이라 하며 다음과 같이 나타낸다.
Ρm(e) = { α | αΡ(e) 그리고 |α|=m 인 모든 α }
(ⅲ) Pm(e)에 속하는 항목집합들의 출현빈도 수 집합으로서 서로 다른 출현빈도 수들로 구성된 집합을 m-부분항목집합들의 출현빈도 수 집합이라 하며 다음과 같이 나타낸다.
Figure 112005068644614-pat00010
= { Ck(α) | αΡ m (e) 인 모든 α }
한편, 두 개의 항목집합 e 1e 2가 주어졌을 때 병합항목집합 e 1e 2와 공통항목집합 e 1e 2를 다음과 같이 정의한다.
(ⅰ) 병합항목집합 e 1e 2e 1 또는 e 2에 속하는 모든 항목들로 구성된 항목이다.
(ⅱ) 공통항목집합 e 1e 2e 1e 2에 모두에 속하는 모든 항목들로 구성된 항목이다.
이때, 하나의 항목집합에 대해서 각 부분항목집합들은 적어도 해당 항목의 출현빈도 수만큼의 출현빈도 수를 갖는다. 예를 들어 항목집합을 구성하는 모든 항목들이 항상 동시에 출현하는 경우 해당 항목집합은 해당 항목집합의 부분항목집합들과 동일한 출현빈도 수를 갖게 된다. 따라서, 항목집합의 출현빈도 수는 항목집합을 구성하는 항목들이 얼마나 빈번히 함께 출현하는가에 영향을 받게 된다. 이러한 분석 결과를 고려하여 항목집합의 출현빈도 수를 결정하는 명확한 두 가지 분포 형태를 다음과 같이 정의한다. 먼저, 다수의 트랜잭션으로 구성되는 데이터 집합에 출현한 임의의 두 항목에 대해서 이들 두 항목집합이 가능한 많은 트랜잭션에서 함께 출현한 경우를 최소배타분포라 한다. 다음으로 이들 두 항목집합이 최대한 배타적으로 출현한 경우를 최대배타분포라 한다. 예를 들어 10개의 트랜잭션으로 구성되는 데이터 집합에서 두 항목집합 e 1e 2가 출현한 트랜잭션의 수가 각각 6개와 7개라고 할 때, 가능한 모든 트랜잭션에서 병합항목집합 형태로 출현하였다면(즉, 병합항목집합의 출현빈도 수가 6이라면) 이들 두 항목집합은 최소배타분포라고 할 수 있다. 한편, 병합항목집합이 단지 3개의 트랜잭션에서만 출현하였다면 이들 두 항목집합은 최대배타분포라고 할 수 있다.
두 항목집합 e 1e 2가 최소배타분포 및 최대배타분포일 때 병합항목집합 e 1e 2의 출현빈도 수는 다음과 같이 구할 수 있다. 먼저, 트랜잭션으로 구성되는 데이터 집합을 D라 하자. 이때, |D|는 데이터 집합에 포함되는 트랜잭션의 총수를 나타낸다. 또한 TS(e) 데이터 집합에서 항목집합 e가 나타나는 모든 트랜잭션들의 집합을 나타내며 C(e)는 TS(e)에 속하는 트랜잭션의 총수를 나타낸다. 이때, 두 항목집합 e 1e 2에 대해서는 병합항목집합의 정의에 의해 다음 식이 성립한다.
TS(e 1e 2) = TS(e 1) ∩ TS(e 2)
만약 두 항목집합이 최소배타분포 상태라면 TS(e 1)⊆TS(e 2) 또는 TS(e 1)⊇TS(e 2) 관계가 성립한다. 그러므로 TS(e 1e 2)는 TS(e 1) 또는 TS(e 2)와 동일한 집합이 된다. 따라서 C(e 1e 2) 는 두 항목집합의 출현빈도 수 C(e 1) 및 C(e 2)중에서 최소값과 동일한 값을 갖게 된다. 즉, 다음과 같은 관계가 성립한다.
C(e 1e 2)=min(C(e 1), C(e 2))
한편, min(V)는 숫자 값들의 집합 V에 대해서 집합에 포함된 값들 중에서 최소값을 구해주는 함수이다. 여기서, 두 항목집합의 공통항목집합 e 1e 2가 존재한다면 다음과 같은 관계가 성립한다.
TS(e 1e 2) = TS(e 1) ∪ TS(e 2)
이때, 집합의 원소 개수를 구하는 과정을 고려하면 다음 식이 성립됨을 알 수 있다.
C(e 1e 2) = C(e 1)+C(e 2)-C(e 1e 2) 즉, C(e 1e 2) = C(e 1)+C(e 2)-C(e 1e 2)
만약 e 1e 2이 존재하지 않는다면 두 항목집합의 병합항목집합의 출현빈도 수는 데이터 집합을 구성하는 트랜잭션의 총수를 고려하여 구할 수 있다. TS(e 1) 및 TS(e 2)이 데이터 집합 D의 부분집합이므로 다음과 같은 관계가 성립한다.
TS(e 1)∪TS(e 2) ⊆ D
이때, 집합의 원소 개수를 고려하면 다음과 같은 식이 성립함을 알 수 있다.
C(e 1)+C(e 2)-C(e 1e 2) ≤ |D| 즉, C(e 1)+C(e 2)-|D| ≤ C(e 1e 2)
만약 두 항목집합의 출현빈도 수 C(e 1) 및 C(e 2)의 합이 전체 데이터 집합의 트랜잭션 총수 |D| 보다 작다면 C(e 1e 2)가 0보다 작은 값을 가질 수 있다. 하지만, C(e 1e 2)는 항목집합의 출현빈도 수이므로 0 이상의 값을 가져야 한다. 두 항목이 최대배타분포일 때 두 항목집합으로 구성되는 병합항목집합이 취할 수 있는 값 중에서 가장 작은 값을 취하게 되며 다음 식과 같이 구해질 수 있다.
Figure 112005068644614-pat00011
여기서, max(V)는 숫자 값들의 집합 V에 대해서 집합에 포함된 값들 중에서 최대값을 구해주는 함수이다.
두 항목집합이 최소배타분포일 때, 병합항목집합의 출현빈도 수는 최대값을 갖게된다. 반면, 두 항목집합이 최대배타분포일 때, 병합항목집합의 출현빈도 수는 최소값을 갖게된다. 즉, 병합항목집합의 출현빈도 수는 최대배타분포인 경우의 출현빈도 수보다 크고 최소배타분포인 경우의 출현빈도 수보다 작은 범위에서 값을 갖게된다.
앞서 설명한 것과 같이 지연 추가 대상 항목집합들에 대한 출현빈도 수는 해당 항목집합의 부분 항목집합들의 출현빈도 수로부터 구할 수 있다. 이때, 가능한 최소 출현빈도 수와 최대 출현빈도 수를 모두 구하게 된다. 본 발명의 이하 부분에서 최소 가능 출현빈도 수 C min (e) 및 최대 가능 출현빈도 수 C max (e)는 항목집합 e의 가능한 최소 출현빈도 수 및 최대 출현빈도 수를 나타낸다. 항목집합들의 최대 가능 출현빈도 수는 모든 부분 항목집합들이 최소배타분포 상태일 경우를 가정하여 값을 구하게 된다. 즉, 부분 항목집합들이 가능한 많은 트랜잭션에서 동시에 출현하는 것으로 가정하여 출현빈도 수를 구한다. 항목집합 e에 있어서 해당 항목집합의 두 부분항목집합 α i α j 가 최소배타분포일 때, 이들의 병합항목집합 (즉, 항목집합 e와 동일)의 출현빈도 수는 앞서 기술한 바와 같이 min(C(α i ), C(α j ))와 같이 구해진다. 따라서, 해당 항목집합의 모든 부분 항목집합들이 최소배타분포일 때, 항목집합 e의 최대 가능 출현빈도 수 C max (e)는 모든 부분 항목집합들의 출현빈도 수 중에서 최소값으로 정의될 수 있다. 그런데, 모든 부분 항목집합들 중에서 최대 길이의 부분 항목집합이 가장 작은 출현빈도 수를 갖게 된다. 그러므로, C max (e)는 (n-1)-부분항목집합들의 출현빈도 수만을 고려하여 구할 수 있다. 즉, 항목집합 e에 대해서 (n-1)-부분항목집합 P n -1 (e)가 공집합이 아닐 때, 최대 가능 출현빈도 수 C max (e)는 다음과 같이 구해진다.
Figure 112005068644614-pat00012
항목집합 e의 최소 가능 출현빈도 수 C min (e)도 모든 부분항목집합들의 출현빈도 수로부터 구하거나 또는 (n-1)-부분항목집합의 출현빈도 수로부터 구할 수 있다. 그러나 이는 해당 부분항목집합들이 최대배타분포 상태일 경우를 고려하여 구한다. 서로 다른 두 개의 (n-1)-부분항목집합 α i α j 로 구성되는 각 조합에 대해서 두 부분항목집합이 최대배타분포 상태일 때, 최소 가능 출현빈도 수 C min (e)는 앞서 설명된 것과 같이 구할 수 있다. 여기서 모든 조합에서 구해지는 최소 가능 출현빈도 수 중에서 최대값이 항목집합 e의 최소 가능 출현빈도 수가 될 수 있다. 즉, (n-1)-부분항목집합 P n -1 (e)가 공집합이 아니며 그들이 최대배타분포 상태일 때 최소 가능 출현빈도 수 C min (e)는 다음과 같이 구해진다.
C min (e) = max({C(α i α j ) | α i ,α j P n -1 (e) 그리고 ij 인 모든 α i ,α j })
항목집합 e에 대해서, C max (e)가 해당 항목의 실제 출현빈도 수로 지정된다. 그러나, C max (e)는 추정에 의해 구해진 값이므로 각 항목집합의 출현빈도 수에는 추정에 따른 오차가 포함될 수 있다. 이때, 최대 가능 출현빈도 수와 최소 가능 출현빈도 수의 차이를 해당 항목의 추정 오차 ε(e)라 하며 출현빈도 수 추정에 의해 발생 가능한 최대 오차를 나타낸다. 하지만 출현빈도 수 추정 오차로 간주되는 만큼의 출현빈도 수는 해당 항목의 출현빈도 수를 추정하는 시점의 값으로 고정되어 있으나 새로운 트랜잭션이 추가됨에 따라 트랜잭션의 총수가 증가되어 추정오차로 인한 지지도 차이는 매우 작은 정도가 된다. 따라서 지연추가에 의해 추가된 항목의 출현빈도 수는 일정 시간이 흐른 뒤에는 무시할 수 있는 정도의 오차를 갖는다. 즉, 신뢰할 수 있는 마이닝 결과를 얻게 된다.
5. 축약형 전위 트리를 이용한 적응형 메모리 사용량 최적화
도 4 는 축약형 전위 트리를 이용한 적응형 메모리 사용량 최적화 과정을 보여준다. 데이터 스트림에 대한 빈발항목 탐색 과정에서 축약형 전위 트리를 이용함으로써 마이닝 수행 과정에서의 메모리 사용량을 감소시킨다. 하지만, 데이터 스트림은 시간 흐름에 따른 변화 가능성이 크므로 모니터링 트리에서 유지되어야 하는 중요 항목집합의 수도 변화한다. 따라서, 이러한 데이터 스트림에 대한 마이닝을 제한된 메모리 공간에서 효율적으로 수행하기 위해서는 마이닝 수행 과정에서 요구되는 메모리 사용량을 데이터 스트림의 변화에 따라 동적으로 적응시킬 필요가 있다. 축약형 전위 트리에서 트리의 크기는 병합 임계값 δ에 영향을 받는다. 즉, δ값을 크게 하는 경우 병합 노드의 비율이 증가되어 트리 크기가 감소되며, 따라서 마이닝 수행 과정에서 메모리 사용량을 감소시킬 수 있다. 하지만, δ값이 커지는 경우 마이닝 결과의 정확도가 낮아지는 단점을 갖는다. 즉, δ값을 크게 설정하면 메모리 사용량을 감소시킬 수 있지만 마이닝 결과의 정확도가 낮아진다. 따라서, 데이터 스트림에 대한 빈발항목집합 탐색을 위한 가용 메모리 공간이 한정적으로 주어졌을 때, 제한된 범위를 넘지 않으면서 최대한 활용함으로써 주어진 환경에서 최적의 마이닝 결과를 얻을 수 있다. 이를 위해서, estDec+ 방법에서 축약형 전위 트리의 병합 임계값을 데이터 스트림의 변화를 고려하여 동적으로 조절함으로써 최적의 마이닝 결과를 얻는다. 이를 적응형 estDec+ 방법(Adaptive estDec+ method)이라 지칭한다.
데이터 스트림 D k , 이와 연관된 축약형 전위 트리에 대해서 병합 임계값이 δ old 에서 δ new 로 변화되었을 때, 축약형 전위 트리는 병합 임계값 변화 이후 새로 발생되는 트랜잭션들에 의해 탐색되는 노드들에 대해서만 새로운 병합 임계값 δ new 이 적용된다. 이 경우, 새로운 트랜잭션에 의해 탐색되지 않은 병합된 노드들은 변화된 병합 임계값 δ new 와 다른 조건으로 병합된 상태로 존재할 수 있다. 이러한 상 황을 방지하기 위해서는 병합 임계값이 변화될 때마다 축약형 전위 트리의 모든 노드들을 탐색하여 각 노드를 새로운 병합 임계값을 적용하여 갱신하는 방법이 있지만 이 경우 수행 시간이 크게 증가된다. 따라서, 적응형 estDec+ 방법에서는 온라인 데이터 스트림 처리에 적합하도록 수행시간을 단축하기 위해서 병합 임계값이 변화 되더라도 새로 발생되는 트랜잭션에 의해 탐색되는 노드들에 대해서만 갱신된 병합 임계값을 적용한다.
적응형 estDec+ 방법으로 온라인 데이터 스트림의 빈발항목집합을 탐색할 때, 가용 메모리 공간과 현재 메모리 사용량을 비교하여 병합 임계값을 변경한다. 병합 임계값 δ의 적응적 변경 과정은 매개변수 갱신 단계에서 수행된다. 현재 축약형 전위 트리에서 사용되는 메모리 사용량, 메모리 상한 허용량, 메모리 하한 허용량, 가용 메모리의 크기를 각각 M C , M U , M L , M A 로 나타낼 때, 새로운 병합 임계값 δ new δ old 로부터 다음과 같이 갱신될 수 있다.
Figure 112005068644614-pat00013
α는 한번의 메모리 적응 과정에 따른 δ의 단위 변화폭을 나타내며 사용자에 의해 정의된다. 축약형 전위 트리에 의한 현재 메모리 사용량 M C 가 메모리 상한 허용량 M U 를 초과하는 경우 δ를 증가시킴으로써 병합되는 노드의 수를 증가시키고 축약형 전위 트리의 크기를 감소시킨다 (401). 이를 통해 메모리 사용량이 감소된다. 이와 는 반대로, M C 가 메모리 하한 허용량 M L 미만이 되는 경우 δ를 감소시키고 축약형 전위 트리의 크기를 증가시킨다 (402). 이를 통해 메모리 사용량을 가용 메모리 범위 내에서 최대가 되도록 하여 δ의 증가로 인한 빈발항목집합의 오차를 줄인다.
지속적으로 증가되는 무한정의 데이터 집합인 데이터 스트림에서 빈발항목집합을 탐색하기 위해서는, 해당 데이터 스트림에 발생한 항목들의 출현 빈도수를 효율적으로 관리하는 것이 중요한 고려사항이다. 특히, 온라인 데이터 스트림에서는 메모리에서 마이닝을 수행함으로써 해당 데이터 스트림의 임의 시점에서 마이닝 결과를 빠른 시간 내에 얻는 것이 중요한 요구사항이다. 이러한 요구사항을 만족하기 위해 estDec 방법이 제안되었으나 이 방법에서는 마이닝 수행 과정에서 데이터 스트림에 출현한 항목집합들의 출현 빈도수 관리를 위한 메모리 사용량이 항상 가용 메모리 공간 이내로 유지된다고 보장하기 힘들다. 이러한 단점을 보완하기 위해 본 발명에서 축약형 전위 트리와 함께 estDec+ 방법을 제시한다.
개별 항목집합이 단일 노드에서 표현되는 전위 트리와는 달리 축약형 전위 트리는 전위 트리를 기반으로 전위 트리에서 근접한 노드들간의 지지도 차이가 병합 임계값 δ 이하일 경우 해당 노드들을 하나의 노드로 병합하여 여러 항목집합을 하나의 노드에서 표현함으로써 마이닝 과정에서 사용되는 메모리 사용량을 감소시킨다. 축약형 전위 트리를 이용하여 데이터 스트림의 빈발항목집합을 탐색하는 estDec+ 방법은 병합 하한값 S merge 를 높게 설정하여 최소 지지도와 유사한 지지도를 갖는 항목집합을 병합 대상에서 제외시킴으로써 메모리 사용량을 최소화하는 동시에 빈발항목집합의 출현 빈도수를 정확히 관리할 수 있다. estDec+ 방법은 데이터 스트림에서 발생하는 정보의 양의 변화를 고려하여 축약형 전위 트리의 병합 임계값 δ를 동적으로 조절함으로써 가용 메모리 공간이 매우 작게 한정된 경우에도 마이닝 결과를 효율적으로 구할 수 있다. 이러한 병합 임계값의 동적인 조절을 통해 주어진 메모리 공간을 최대한 활용함으로써 마이닝 결과의 정확도를 높게 유지할 수 있다.

Claims (12)

  1. 삭제
  2. 삭제
  3. 한정된 메모리 공간에서 데이터 스트림의 빈발항목집합을 탐색하는 방법에 있어서,
    데이터 스트림 환경에서 발생하는 트랜젝션 데이터 집합으로부터 지연추가 및 전지 과정에 의해 구성되는 축약형 전위 트리를 이용하되,
    새로운 트랜젝션이 발생하는 경우에 전체 트랜젝션의 수를 갱신하는 것을 포함하여 매개변수를 갱신하는 제 1단계와;
    상기 축약형 전위 트리를 탐색하여 축약형 전위 트리에서 모니터링되는 항목집합에 대해 데이터 스트림의 새로운 트랜잭션에서 발생한 각 항목집합의 출현 빈도수를 갱신하는 제 2단계와,
    축약형 전위 트리에서 관리되지 않는 항목집합이 여러 트랜잭션에서 반복적으로 발생하여 빈발항목집합이 될 가능성이 있는 새로운 항목집합을 축약형 전위 트리에 추가하는 제 3단계로 이루어지는 것을 특징으로 하는 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법.
  4. 삭제
  5. 청구항 3에 있어서,
    상기 제 2단계는 새로운 트랜잭션에서 발생한 항목집합과 관련된 축약형 전위 트리의 노드를 깊이 우선 탐색 방법에 기반하여 탐색하고 탐색 중인 노드의 최소 항목집합 eS 이 트랜잭션에서 발생했을 때 노드의 최대 출현 빈도수 cL 를 갱신하고, 또한 노드의 최대 항목집합 eL 이 트랜잭션에서 발생했을 때 노드의 최소 출현 빈도수 cS 를 갱신하는 것을 특징으로 하는 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법.
  6. 청구항 5에 있어서,
    데이터 스트림에서 새롭게 발생한 트랜잭션에 있는 항목집합의 출현 빈도수 갱신을 위해 축약형 전위 트리를 탐색하는 과정에서, 부모-자식 관계에 있는 연속된 두 노드에서 관리되는 항목집합들의 전체 트랜잭션 수 대비 출현 빈도수 비율인 지지도의 차이가 미리 정해진 병합 임계값 δ 이하일 경우에는 독립된 두 개의 노드를 하나의 노드로 병합하고, 하나의 노드에서 관리되는 다수의 항목집합들에 대해 지지도의 차이가 병합 임계값 δ를 초과할 경우에는 서로 다른 노드로 관리되도록 해당 노드를 분리하는 것을 특징으로 하는 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법.
  7. 청구항 6에 있어서,
    최소 지지도 Smin 이상의 값을 갖는 병합 하한값 Smerge 를 정의하여 상기 병합 하한값 Smerge 미만의 지지도를 갖는 항목집합을 표현하는 축약형 전위 트리의 노드를 병합 대상에서 제외시킴으로써 축약형 전위 트리를 이용하여 탐색한 최대 빈발항목집합들의 오차를 감소시키는 것을 특징으로 하는 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법.
  8. 청구항 6에 있어서,
    노드를 분리하는 과정에서, 축약형 전위 트리의 하나의 노드가 셋 이상의 다른 항목집합을 나타낼 때, 최소 항목집합 eS 과 최대 항목집합 eL 을 제외한 항목집합들의 출현 빈도수를 최대 출현 빈도수 cL 과 최소 출현 빈도수 cS 및 출현 빈도수 추정 함수 f(m, k)를 이용하여 해당 항목집합의 출현 빈도수를 추정하는 것을 특징으로 하는 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법.
  9. 청구항 8에 있어서,
    항목집합의 길이 증가에 따라 출현 빈도수가 감소하는 함수를 추정 함수 f(m, k)로 정의하고, 상기 f(m, k)로서, 항목집합의 길이 증가에 따른 출현 빈도수 감소량이 일정한 것으로 가정하여 출현 빈도수를 추정하는 추정 함수 f 1(m, k), 또는 항목집합의 길이 증가에 따른 출현 빈도수 감소량이 항목집합의 길이가 증가될수록 작아지는 것으로 가정하여 출현 빈도수를 추정하는 추정 함수 f 2(m, k)를 이용하는 것을 특징으로 하는 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법.
  10. 청구항 3에 있어서,
    상기 제 3단계는 새로 나타난 항목집합의 축약형 전위 트리의 추가 여부를 판정하기 위해 해당 항목집합의 현재 출현 빈도수를 해당 항목집합의 부분항목집합들로부터 추정하고 추정값이 미리 정해진 지연추가 임계값 이상일 때 해당 항목집합과 추정된 출현 빈도수를 상기 축약형 전위 트리에 추가하는 지연추가 방법을 적용하는 것을 특징으로 하는 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법.
  11. 삭제
  12. 청구항 6에 있어서,
    한정된 메모리 공간의 크기를 최대한 활용할 수 있도록 축약형 전위 트리의 크기를 적응적으로 조절하면서 빈발항목집합의 오차를 감소시키기 위하여, 상기 병합 임계값 δ는 매개변수를 갱신하는 단계에서 적응적으로 변경하여 갱신하되, 현재 축약형 전위 트리에서 사용되는 메모리 사용량, 메모리 상한 허용량, 메모리 하한 허용량, 가용 메모리의 크기를 고려하여 갱신하고, 갱신된 병합 임계값 δ는 새로 발생된 트랜젝션에 의해 탐색되는 노드들에 대해서만 적용하는 것을 특징으로 하는 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법.
KR1020050113919A 2005-11-28 2005-11-28 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 KR100812378B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050113919A KR100812378B1 (ko) 2005-11-28 2005-11-28 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법
US11/604,368 US7610284B2 (en) 2005-11-28 2006-11-27 Compressed prefix trees and estDec+ method for finding frequent itemsets over data streams

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050113919A KR100812378B1 (ko) 2005-11-28 2005-11-28 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법

Publications (2)

Publication Number Publication Date
KR20070055675A KR20070055675A (ko) 2007-05-31
KR100812378B1 true KR100812378B1 (ko) 2008-03-11

Family

ID=38276966

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050113919A KR100812378B1 (ko) 2005-11-28 2005-11-28 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법

Country Status (2)

Country Link
US (1) US7610284B2 (ko)
KR (1) KR100812378B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101187958B1 (ko) 2011-03-30 2012-10-08 숭실대학교산학협력단 연관 규칙 추출 장치 및 방법
KR20160093237A (ko) 2015-01-29 2016-08-08 충북대학교 산학협력단 데이터 스트림 상에서 가중화 최대 빈발 패턴을 마이닝하기 위한 슬라이딩 윈도우 기반 빈발 패턴 관리 방법
KR20160122589A (ko) 2015-04-14 2016-10-24 세종대학교산학협력단 연관 패턴 마이닝 방법, 연관 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100896528B1 (ko) * 2007-08-20 2009-05-08 연세대학교 산학협력단 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템
KR100899144B1 (ko) * 2007-10-26 2009-05-27 연세대학교 산학협력단 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치
US20090254594A1 (en) * 2008-04-02 2009-10-08 Microsoft Corporation Techniques to enhance database performance
KR101128504B1 (ko) * 2008-12-02 2012-03-27 한국전자통신연구원 비트맵을 이용한 스트림 빈발 패턴 마이닝 방법
KR101105363B1 (ko) * 2010-01-18 2012-01-16 연세대학교 산학협력단 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법
US20110219016A1 (en) * 2010-03-04 2011-09-08 Src, Inc. Stream Mining via State Machine and High Dimensionality Database
US8407245B2 (en) * 2010-11-24 2013-03-26 Microsoft Corporation Efficient string pattern matching for large pattern sets
JP5749486B2 (ja) * 2010-12-17 2015-07-15 任天堂株式会社 プログラム、情報処理装置、情報処理システムおよび情報処理方法
CN102306183B (zh) * 2011-08-30 2014-05-21 王洁 一种对事务数据流进行闭合加权频繁模式挖掘的方法
GB2495106B (en) 2011-09-28 2020-09-09 Metaswitch Networks Ltd Searching and storing data in a database
US8707221B2 (en) * 2011-12-29 2014-04-22 Flextronics Ap, Llc Circuit assembly yield prediction with respect to manufacturing process
KR101376444B1 (ko) * 2012-01-31 2014-03-19 충북대학교 산학협력단 데이터 스트림에서 가중치를 고려하여 하향식으로 트리를 탐색하는 패턴 마이닝 방법
US9232630B1 (en) 2012-05-18 2016-01-05 Flextronics Ap, Llc Method of making an inlay PCB with embedded coin
US9563669B2 (en) * 2012-06-12 2017-02-07 International Business Machines Corporation Closed itemset mining using difference update
US9876638B2 (en) * 2012-06-22 2018-01-23 Palo Alto Research Center Incorporated System and method for compressed level-ordered edge sequence encoding
US9092712B2 (en) 2012-11-02 2015-07-28 Flextronics Ap, Llc Embedded high frequency RFID
DE102014102917B4 (de) 2013-03-05 2024-01-18 Flextronics Ap, Llc Bauteil mit Abzugsstrecken, Halbleiterbaugruppe mit Druckentlastungsstruktur und Verfahren zur Verhinderung von Druckaufbau in einer Halbleiterverpackung
US9521754B1 (en) 2013-08-19 2016-12-13 Multek Technologies Limited Embedded components in a substrate
US9801277B1 (en) 2013-08-27 2017-10-24 Flextronics Ap, Llc Bellows interconnect
US9053405B1 (en) 2013-08-27 2015-06-09 Flextronics Ap, Llc Printed RFID circuit
US9565748B2 (en) 2013-10-28 2017-02-07 Flextronics Ap, Llc Nano-copper solder for filling thermal vias
US9661738B1 (en) 2014-09-03 2017-05-23 Flextronics Ap, Llc Embedded coins for HDI or SEQ laminations
TWI541662B (zh) * 2014-12-31 2016-07-11 中原大學 估計熵值之方法與系統
CN105989104B (zh) * 2015-02-13 2019-09-03 华为技术有限公司 一种确定大数据流中的特殊数据项的方法及装置
US10321560B2 (en) 2015-11-12 2019-06-11 Multek Technologies Limited Dummy core plus plating resist restrict resin process and structure
CN111382086B (zh) * 2018-12-29 2022-07-29 贵州白山云科技股份有限公司 一种前缀树存储方法、装置、存储介质和计算机设备
US11290476B1 (en) 2019-11-29 2022-03-29 Amazon Technologies, Inc. Time bounded lossy counters for network data
CN112835920B (zh) * 2021-01-22 2022-10-14 河海大学 基于混合存储模式的分布式sparql查询优化方法
CN112883080B (zh) * 2021-02-22 2022-10-18 重庆邮电大学 一种基于UFIM-Matrix算法改进的不确定频繁项集营销数据挖掘算法
CN115473933B (zh) * 2022-10-10 2023-05-23 国网江苏省电力有限公司南通供电分公司 一种基于频繁子图挖掘的网络系统关联服务发现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010031687A (ko) * 1997-11-04 2001-04-16 포만 제프리 엘 온라인 데이터베이스 마이닝
KR20040026178A (ko) * 2002-09-23 2004-03-30 이원석 데이터 마이닝 시스템 및 그 방법
KR20040036201A (ko) * 2002-10-23 2004-04-30 삼성전자주식회사 Xml 데이터 검색을 위한 질의 처리 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138117A (en) * 1998-04-29 2000-10-24 International Business Machines Corporation Method and system for mining long patterns from databases
US6415287B1 (en) * 2000-01-20 2002-07-02 International Business Machines Corporation Method and system for mining weighted association rule
US6473757B1 (en) * 2000-03-28 2002-10-29 Lucent Technologies Inc. System and method for constraint based sequential pattern mining
US20030217055A1 (en) * 2002-05-20 2003-11-20 Chang-Huang Lee Efficient incremental method for data mining of a database
US20040181519A1 (en) * 2002-07-09 2004-09-16 Mohammed Shahbaz Anwar Method for generating multidimensional summary reports from multidimensional summary reports from multidimensional data
US7496592B2 (en) * 2005-01-31 2009-02-24 International Business Machines Corporation Systems and methods for maintaining closed frequent itemsets over a data stream sliding window

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010031687A (ko) * 1997-11-04 2001-04-16 포만 제프리 엘 온라인 데이터베이스 마이닝
KR20040026178A (ko) * 2002-09-23 2004-03-30 이원석 데이터 마이닝 시스템 및 그 방법
KR20040036201A (ko) * 2002-10-23 2004-04-30 삼성전자주식회사 Xml 데이터 검색을 위한 질의 처리 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101187958B1 (ko) 2011-03-30 2012-10-08 숭실대학교산학협력단 연관 규칙 추출 장치 및 방법
KR20160093237A (ko) 2015-01-29 2016-08-08 충북대학교 산학협력단 데이터 스트림 상에서 가중화 최대 빈발 패턴을 마이닝하기 위한 슬라이딩 윈도우 기반 빈발 패턴 관리 방법
KR20160122589A (ko) 2015-04-14 2016-10-24 세종대학교산학협력단 연관 패턴 마이닝 방법, 연관 패턴 마이닝 서버 및 이를 수행하는 프로그램을 기록하는 기록매체

Also Published As

Publication number Publication date
KR20070055675A (ko) 2007-05-31
US7610284B2 (en) 2009-10-27
US20070198548A1 (en) 2007-08-23

Similar Documents

Publication Publication Date Title
KR100812378B1 (ko) 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법
KR100896528B1 (ko) 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템
KR101105363B1 (ko) 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법
EP1360616B1 (en) Database system and query optimiser
US5899992A (en) Scalable set oriented classifier
Lee et al. Finding maximal frequent itemsets over online data streams adaptively
US7987180B2 (en) Classification-based method and apparatus for string selectivity estimation
Chen et al. Mining frequent patterns in a varying-size sliding window of online transactional data streams
Yagoubi et al. Dpisax: Massively distributed partitioned isax
US8666971B2 (en) Intelligent adaptive index density in a database management system
AU2002229734A1 (en) Database system and query optimiser
Thabtah et al. A new Classification based on Association Algorithm
Youn et al. Efficient data stream clustering with sliding windows based on locality-sensitive hashing
Shin et al. CP-tree: An adaptive synopsis structure for compressing frequent itemsets over online data streams
Kipf et al. Estimating filtered group-by queries is hard: Deep learning to the rescue
Tseng Mining frequent itemsets in large databases: The hierarchical partitioning approach
Shah et al. Incremental mining of association rules: A survey
US20050108204A1 (en) System and method for managing OLAP summary tables
Mallick et al. Incremental mining of sequential patterns: Progress and challenges
KR100913027B1 (ko) 데이터 마이닝 시스템 및 그 방법
Ansari et al. TFI-Apriori: Using new encoding to optimize the apriori algorithm
Thakkar et al. Designing an inductive data stream management system: the stream mill experience
Gothwal et al. The survey on skyline query processing for data-specific applications
Chang et al. Finding frequent itemsets over online data streams
Seyfi et al. Mining discriminative itemsets in data streams

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130215

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140110

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160725

Year of fee payment: 9