KR100899144B1 - 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치 - Google Patents

데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치 Download PDF

Info

Publication number
KR100899144B1
KR100899144B1 KR1020070108074A KR20070108074A KR100899144B1 KR 100899144 B1 KR100899144 B1 KR 100899144B1 KR 1020070108074 A KR1020070108074 A KR 1020070108074A KR 20070108074 A KR20070108074 A KR 20070108074A KR 100899144 B1 KR100899144 B1 KR 100899144B1
Authority
KR
South Korea
Prior art keywords
maximum
node
item set
item
frequent
Prior art date
Application number
KR1020070108074A
Other languages
English (en)
Other versions
KR20090042362A (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 KR1020070108074A priority Critical patent/KR100899144B1/ko
Priority to US12/258,645 priority patent/US8150873B2/en
Publication of KR20090042362A publication Critical patent/KR20090042362A/ko
Application granted granted Critical
Publication of KR100899144B1 publication Critical patent/KR100899144B1/ko

Links

Images

Classifications

    • 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/24568Data stream processing; Continuous queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법 및 장치가 개시된다. 본 발명에 따른 최대 빈발항목집합 탐색 방법은, 이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 노드들 각각은, 해당 노드에 대응하는 항목집합의 출현빈도수, 상기 항목집합이 이후에 전혀 출현하지 않더라도 빈발한 상태로 남아 있을 수 있는 최대의 시점인 최대 수명, 및 상기 항목집합이 최대 빈발항목집합인지 여부를 나타내는 마크의 정보를 가질 때, 현재 시점 k에서 발생한 트랜잭션 Tk를 입력받는 단계, 상기 전위트리의 노드들 중 상기 Tk에 포함된 항목집합들에 해당하는 각 노드가 가지고 있는 상기 정보를 갱신하는 단계, 상기 Tk에 포함된 항목집합들 중 상기 전위트리에서 관리되지 않는 항목집합들에 해당하는 각 노드를 상기 전위트리에 추가하고, 상기 추가된 노드의 상기 정보를 설정하는 단계 및 상기 전위트리의 노드들 중 상기 마크가 최대 빈발항목집합임을 나타내는 노드를 방문하면서 해당하는 항목집합이 빈발한지 여부를 검사함으로써 최대 빈발항목집합을 찾는 단계를 포함하는 것을 특징으로 한다.
데이터 마이닝, 데이터 스트림, 빈발항목집합, 최대 빈발항목집합

Description

데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법 및 장치{Method and apparatus for finding maximal frequent itemsets over data streams}
본 발명은 대량의 데이터 집합을 분석하여 특정 정보를 찾아내는 데이터 마이닝에 관련된 것으로서, 특히 지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법 및 장치에 관한 것이다.
최근 들어, 한정적인 데이터 집합을 처리 대상으로 하는 기존의 데이터베이스 처리 기술과 달리 데이터 스트림을 대상으로 하는 데이터 스트림 처리 기술에 대한 연구가 활발히 진행되고 있다. 데이터 스트림은 지속적으로 발생되는 데이터로 구성되는 무한 집합으로 정의된다. 따라서, 발생되는 모든 데이터 객체를 한정된 공간에서 별도로 저장하는 것은 불가능하다. 이런 특성을 고려하여 데이터 스트림의 정보에 대한 지식을 추출하기 위해서는 몇 가지 조건들을 만족해야 한다. 첫째, 데이터 스트림의 각 트랜잭션 정보를 단 한번만 읽고 마이닝 결과를 생성해야 한다. 둘째, 데이터 스트림을 분석하기 위해 아무리 새로운 데이터가 계속적으로 무한히 생성된다 하더라도 물리적으로 한정된 메모리 공간으로 처리해야 한다. 셋째, 새롭게 생성된 데이터 객체는 최대한 빠르게 처리되어 결과를 제공해야 한다. 이러한 요구 조건을 만족시키기 위해 일반적으로 데이터 스트림에 대한 마이닝 방법들은 마이닝 결과에 다소의 오차를 포함할 수 밖에 없다.
일반적으로 빈발항목 탐색은 한정적인 데이터 집합에서 특정 지지도 임계값(support threshold)보다 큰 지지도를 갖는 모든 항목을 파악하는 작업이다. 데이터 스트림 환경에서의 빈발항목 탐색 방법은 이전에 발생한 모든 트랜잭션의 정보를 유지하는 것이 불가능하므로 마이닝 결과로 구해진 빈발항목 집합이나 출현 빈도 수에 다소의 오차를 포함할 수 있다. 데이터 스트림 환경에서 빈발항목을 탐색하는 방법 중 하나인 Count Sketch 알고리즘은 각 단위 항목의 지지도 탐색에 초점을 맞추며, 현재까지 생성된 트랜잭션에서 단위 항목의 출현 빈도 수를 추정하여 임계값 이상을 만족하는 단위 항목들의 집합을 생성한다. 반면에 Lossy Counting 알고리즘은 최소 지지도와 최대 허용 오차가 주어졌을 때 허용 오차 내에서 최소 지지도 이상의 빈발항목들의 집합을 찾는다. 스트림에서 새로 발생한 트랜잭션들은 메모리 내의 고정된 크기의 버퍼에 채워져 일괄 처리되며, 빈발항목이 될 가능성이 있는 항목들의 출현 빈도 수와 이들 각각의 오차를 관리한다. 이 알고리즘은 버퍼의 크기를 크게 했을 경우 새로 발생한 많은 트랜잭션들에 대한 처리가 가능하므로 일괄 연산의 수가 줄어들지만 상대적으로 메모리 사용량을 증가시키게 된다.
빈발항목 집합들 중 폐쇄 빈발항목 집합(closed frequent itemset) 및 최대 빈발항목 집합(maximal frequent itemset)을 탐색하는 데에 특화된 알고리즘들이 존재한다. Chi 등은 데이터 스트림에서 폐쇄 빈발항목 집합을 마이닝하기 위한 방법으로 MOMENT 알고리즘을 제안하였다. MOMENT는 슬라이딩 윈도우 상에서 유효한 트랜잭션에 대해 CET(Closed Enumeration Tree)라는 메모리 내의 트리 기반 구조를 사용하여 스트림 상에서 출현한 폐쇄 빈발항목 집합을 관리한다. CFI-Stream은 MOMENT와 거의 흡사한 방식으로 폐쇄 빈발항목 집합을 마이닝하고 탐색하는 알고리즘으로, 간소화된 DIU(Direct Update) 트리 구조를 이용하여 MOMENT에 비해 메모리 사용량과 소요 시간이 다소 개선되었다.
최대 빈발항목집합(maximal frequent itemsets)이란 빈발항목 집합들 중 가장 길이가 긴 개별의 빈발항목들을 가리킨다. 즉, 항목 집합의 지지도가 사용자 최소 지지도 이상이고 빈발한 상위 집합(superset)이 존재하지 않으면 최대 빈발하다(maximal frequent)고 한다. 데이터 스트림 환경에서 최대 빈발항목 집합을 탐색하는 방법으로는 DSM-MFI 알고리즘이 있다. DSM-MFI 방법은 전위트리 구조를 확장한 SFI-forest(Summary Frequent Itemset forest)를 제안하였다. SFI-forest는 특정 시점부터 현재까지의 데이터들을 대상으로 하는 랜드마크(landmark) 윈도우에서 후위 트리(suffix tree) 구조로 이루어진 빈발항목 집합 목록을 관리한다. 최대 빈발항목 집합을 탐색하기 위한 또 다른 방법으로 INSTANT 알고리즘이 있다. INSTANT 방법은 트리를 구성하고 갱신하는 기존의 방법들과 달리, 항목 집합들을 관리하기 위해 단순한 배열 구조를 사용한다. 모든 항목 집합들은 그 항목 집합이 현재까지 출현한 빈도 수 i 별로 각각의 배열 U[i]에 저장되고, 빈도수가 갱신되면 해당 항목 집합들을 다른 배열, 즉 U[i+1]로 이동시킨다. 이 때 이동되는 항목집합의 부분집합(subset)인 다른 항목 집합이 해당 배열 내에 존재하는 경우 이들을 제거한다. 이를 통해 가장 길이가 긴 항목 집합들이 빈도 수 별로 배열로 저장된다. 이 배열 구조들 중, 빈도 수가 최소 지지도 이상인 항목 집합들은 최대 빈발항목 집합으로서 결과를 출력하고 배열에서 제거한다. INSTANT 알고리즘은 모든 항목 집합들을 각각 비교하고 가장 긴 항목 집합들과 빈도 수를 모두 관리하기 때문에 결과가 항상 정확하다는 것을 보장한다. 그러나 이러한 비교 과정에서 모든 항목 집합들을 유지해야 하므로 수행 시간 및 메모리 사용량이 지나치게 많이 소요되는 단점이 있으며 이는 데이터 스트림 환경에 적합하다고 할 수 없다.
본 발명이 해결하고자 하는 기술적 과제는, 지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색함에 있어서, 전위트리를 이용하여 수행 시간 및 메모리 사용량을 줄이면서 효율적으로 최대 빈발항목집합을 탐색할 수 있는, 최대 빈발항목집합을 탐색 방법 및 장치를 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른, 지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법은, 이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 노드들 각각은, 해당 노드에 대응하는 항목집합의 출현빈도수, 상기 항목집합이 이후에 전혀 출현하지 않더라도 빈발한 상태로 남아 있을 수 있는 최대의 시점인 최대 수명, 및 상기 항목집합이 최대 빈발항목집합인지 여부를 나타내는 마크의 정보를 가질 때, (a) 현재 시점 k에서 발생한 트랜잭션 Tk를 입력받는 단계; (b) 상기 전위트리의 노드들 중 상기 Tk에 포함된 항목집합들에 해당하는 각 노드가 가지고 있는 상기 정보를 갱신하는 단계; (c) 상기 Tk에 포함된 항목집합들 중 상기 전위트리에서 관리되지 않는 항목집합들에 해당하는 각 노드를 상기 전위트리에 추가하고, 상기 추가된 노드의 상기 정보를 설정하는 단계; 및 (d) 상기 전위트리의 노드들 중 상기 마크가 최대 빈발항목집합임을 나타내는 노드를 방문하면서 해당하는 항목집합이 빈발한지 여부를 검사함으로써 최대 빈발항목집합을 찾는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 (b) 단계는, 상기 전위트리의 노드들 중 해당하는 항목집합의 지지도가 소정 값인 중요 지지도보다 작은 노드를 상기 전위트리로부터 전지하는 단계를 포함할 수 있다.
또한, 상기 (c) 단계에서 상기 각 노드를 상기 전위트리에의 추가함에 있어서, 상기 항목집합들의 출현빈도수를 추정하고, 상기 추정된 출현빈도수에 따른 지지도가 소정 값인 중요 지지도보다 크거나 같은 경우에만 해당하는 노드를 상기 전위트리에 추가할 수 있다.
또한, 상기 (b) 단계는, 상기 노드들 중 상기 Tk의 부분항목집합임을 만족하는 최대 빈발항목집합인 Tk-max에 해당하는 노드에 대하여, 상기 Tk-max의 지지도 추정 과정에서 발생한 최대 오차가 소정 값인 최대 오차 임계값 이내인 경우에만 상기 Tk-max에 해당하는 노드가 가지고 있는 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 갱신할 수 있다.
또한, 상기 Tk-max에 해당하는 노드인지의 판단은, 상기 최대 수명이 상기 현재 시점 k 이전에서 상기 현재 시점 k 이후로 갱신된 노드 또는 상기 출현빈도수에 따른 지지도가 소정 값인 최소 지지도 이상이며 상기 트랜잭션 Tk에 출현하는 항목집합에 대응하는 자식 노드를 가지지 않는 노드를 상기 Tk-max에 해당하는 노드로 판단할 수 있다.
또한, 상기 (b) 단계는, 상기 Tk-max에 해당하는 노드들 중 해당하는 항목집합의 길이가 긴 순서대로 미리 정해진 개수의 노드들에 대하여만 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 갱신할 수 있다.
또한, 상기 (c) 단계는, (c1) 상기 Tk에 포함된 항목들 중에서 지지도가 상기 중요 지지도보다 작은 항목을 제외하여 생성되는 트랜잭션 T k에 대하여, 상기 T k에 포함된 항목집합들 중에서 상기 전위트리에서 관리되지 않는 항목집합들의 출현빈도수를 추정하고, 상기 추정된 출현빈도수에 따른 지지도가 상기 중요 지지도보다 크거나 같은 경우에, 해당하는 노드를 상기 전위트리에 추가하는 단계; 및 (c2) 상기 추가된 노드에 해당하는 항목집합의 상기 (c1) 단계에서 발생하는 최대 오차가 소정 값인 최대 오차 임계값 이내인 경우에, 상기 추가된 노드의 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 설정하고, 상기 최대 수명을 설정하는 단 계를 포함할 수 있다.
또한, 상기 (c) 단계는, 상기 (c2) 단계에서 상기 마크가 최대 빈발항목집합임을 나타내는 것으로 설정된 노드에 해당하는 항목집합의 부분항목집합에 해당하는 노드들에 대하여, 상기 마크를 최대 빈발항목집합이 아님을 나타내는 것으로 갱신하고, 상기 최대 수명을 갱신하는 단계를 더 포함할 수 있다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명에 따른, 지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 장치는, 이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 노드들 각각은, 해당 노드에 대응하는 항목집합의 출현빈도수, 상기 항목집합이 이후에 전혀 출현하지 않더라도 빈발한 상태로 남아 있을 수 있는 최대의 시점인 최대 수명, 및 상기 항목집합이 최대 빈발항목집합인지 여부를 나타내는 마크의 정보를 가지도록 상기 전위트리를 저장하기 위한 메모리; 상기 전위트리의 노드들 중 현재 시점 k에서 발생한 트랜잭션 Tk에 포함된 항목집합들에 해당하는 각 노드가 가지고 있는 상기 정보를 갱신하는 정보 갱신부; 상기 Tk에 포함된 항목집합들 중 상기 전위트리에서 관리되지 않는 항목집합들에 해당하는 각 노드를 상기 전위트리에 추가하고, 상기 추가된 노드의 상기 정보를 설정하는 정보 설정부; 및 상기 전위트리의 노드들 중 상기 마크가 최대 빈발항목집합임을 나타내는 노드를 방문하면서 해당하는 항목집합이 빈발한지 여부를 검사함으로써 최대 빈발항목집합을 찾는 최대빈발항목집합 탐색부를 포함하는 것을 특징으로 한다.
여기서, 상기 정보 갱신부는, 상기 전위트리의 노드들 중 해당하는 항목집합의 지지도가 소정 값인 중요 지지도보다 작은 노드를 상기 전위트리로부터 전지할 수 있다.
또한, 상기 정보 설정부가 상기 각 노드를 상기 전위트리에의 추가함에 있어서, 상기 항목집합들의 출현빈도수를 추정하고, 상기 추정된 출현빈도수에 따른 지지도가 소정 값인 중요 지지도보다 크거나 같은 경우에만 해당하는 노드를 상기 전위트리에 추가할 수 있다.
또한, 상기 정보 갱신부는, 상기 노드들 중 상기 Tk의 부분항목집합임을 만족하는 최대 빈발항목집합인 Tk-max에 해당하는 노드에 대하여, 상기 Tk-max의 지지도 추정 과정에서 발생한 최대 오차가 소정 값인 최대 오차 임계값 이내인 경우에만 상기 Tk-max에 해당하는 노드가 가지고 있는 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 갱신할 수 있다.
또한, 상기 정보 갱신부에서 상기 Tk-max에 해당하는 노드인지의 판단은, 상기 최대 수명이 상기 현재 시점 k 이전에서 상기 현재 시점 k 이후로 갱신된 노드 또는 상기 출현빈도수에 따른 지지도가 소정 값인 최소 지지도 이상이며 상기 트랜잭션 Tk에 출현하는 항목집합에 대응하는 자식 노드를 가지지 않는 노드를 상기 Tk-max에 해당하는 노드로 판단할 수 있다.
또한, 상기 정보 갱신부는, 상기 Tk-max에 해당하는 노드들 중 해당하는 항목집합의 길이가 긴 순서대로 미리 정해진 개수의 노드들에 대하여만 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 갱신할 수 있다.
또한, 상기 정보 설정부는, 상기 Tk에 포함된 항목들 중에서 지지도가 상기 중요 지지도보다 작은 항목을 제외하여 생성되는 트랜잭션 T k에 대하여, 상기 T k에 포함된 항목집합들 중에서 상기 전위트리에서 관리되지 않는 항목집합들의 출현빈도수를 추정하고, 상기 추정된 출현빈도수에 따른 지지도가 상기 중요 지지도보다 크거나 같은 경우에, 해당하는 노드를 상기 전위트리에 추가하고, 상기 추가된 노드에 해당하는 항목집합의 상기 출현빈도수의 추정에서 발생하는 최대 오차가 소정 값인 최대 오차 임계값 이내인 경우에, 상기 추가된 노드의 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 설정하고, 상기 최대 수명을 설정할 수 있다.
또한, 상기 정보 설정부는, 상기 마크가 최대 빈발항목집합임을 나타내는 것으로 설정된 노드에 해당하는 항목집합의 부분항목집합에 해당하는 노드들에 대하여, 상기 마크를 최대 빈발항목집합이 아님을 나타내는 것으로 갱신하고, 상기 최대 수명을 갱신할 수 있다.
상기 또 다른 기술적 과제를 해결하기 위하여, 상기된 본 발명에 따른, 지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 따르면, 지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색함에 있어서, 전위트리를 이용하여 수행 시간 및 메모리 사용량을 줄이면서 효율적으로 최대 빈발항목집합을 탐색할 수 있다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
먼저, 본 발명을 설명함에 있어서 사용될 기호에 대하여 정의한다.
데이터 스트림은 지속적으로 발생되는 트랜잭션의 무한집합으로 다음과 같이 정의된다.
ⅰ) 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 >로 구성된다. 현재 데이터 집합 Dk에 포함된 트랜잭션의 총 수는 |D| k 로 나타낸다.
T k 를 현재 시점 k에서 발생한 트랜잭션이라고 할 때, 임의의 항목집합 e에 대한 현재 출현 빈도 수를 Ck(e)라 정의하며 이는 현재까지의 k 트랜잭션에서 e가 포함된 트랜잭션의 수를 나타낸다. 이와 마찬가지로, 항목집합 e의 현재 지지도 Sk(e)은 현재까지의 트랜잭션의 총 수 |D| k 대비 항목집합 e의 출현 빈도 수 Ck(e)의 비율, 즉 Ck(e)/|D| k 로 정의한다. 항목집합 e의 현재 지지도 Sk(e)가 미리 정의된 최소 지지도 Smin 이상일 때 항목집합 e를 현재 데이터 스트림 Dk에서의 빈발항목집합이라 정의한다. 또한 빈발항목집합 e 중, ee'인 모든 항목집합 e'의 지지도 Sk(e')가 Smin 미만일 때 항목집합 e를 현재 데이터 스트림 Dk에서의 최대 빈발항목집합이라고 한다.
다음으로, 본 발명의 일 실시예의 기초가 되는, 데이터 스트림을 대상으로 빈발항목집합을 탐색하기 위한 방법인 estDec 방법을 설명하기로 한다.
estDec 방법은 데이터 스트림을 구성하는 트랜잭션이 생성과 동시에 처리되며, 빈발항목집합 생성을 위한 후보집합 생성 없이 전위트리 구조를 갖는 모니터링 트리를 이용하여 트랜잭션에 나타난 항목집합들의 출현 빈도수를 관리한다. 현재 데이터 집합 Dk가 주어질 때, 전위 트리 Pk는 다음과 같은 특징을 갖는다.
i) P k 는 "null"값을 가지는 하나의 루트노드 r을 가지며 r을 제외한 다른 노드들은 하나의 항목 i∈I를 갖는다.
ⅱ) 주어진 전위트리 P k 의 한 항목 i n ∈I를 갖는 임의의 노드 n에 대하여, 루트노드로부터 노드 n까지의 경로상에 존재하는 노드들이 n root n 1 n 2 n v →n 의 순서를 이루고 경로상의 임의의 노드 n j 가 항목 i j ∈I (1 ≤ j v)를 갖는다고 할 때, 노드 n은 항목집합 e n =i 1 i 2i v i n 을 표현하며, e n 의 현재 출현 빈도수 C k (e n )를 관리한다.
또한, estDec 방법에서는, 빈발항목집합이 될 가능성이 있는 항목집합들만을 메모리 상의 전위트리 구조를 이용하여 관리하기 위해 지연 추가와 항목 전지 작업을 수행한다. estDec방법에서 데이터 스트림 Dk에 출현한 항목집합이 메모리 상의 전위트리에서 관리되는 경우는 다음과 같은 두 가지 경우이다. 첫째, 새로운 트랜잭션 Tk에서 최초로 발생된 길이 1인 항목집합은 무조건 전위트리에 추가되어 관리된다. 둘째, T k 에서 전위트리에서 관리되지 않는 길이 n(n≥2)인 새로운 항목집합이 생성되었을 때에는 해당 항목집합이 가까운 미래에 빈발항목집합이 될 수 있을 정도로 큰 지지도를 가질 때 전위트리에 추가된다. 즉, 전위트리에서 관리되고 있지 않은 새로운 n-항목집합 e는 자신의 모든 (n-1)-부분 항목집합들이 전위트리에서 관리될 때, e의 지지도를 이들 (n-1)-부분 항목집합의 출현 빈도수로부터 추정하며, 추정 값이 미리 정의된 중요 지지도 Ssig 이상일 때 전위트리에 추가된다. 이를 지연 추가라 부른다. 즉, 이 n-항목집합 e의 추정된 출현 빈도수는 e의 모든 (n-1)-부분 항목집합 {l 1,l 2,…,l n}들의 출현 빈도수들 중에서 최소값
Figure 112007076732501-pat00001
(1≤in)이며, 따라서 e의 지지도 추정 과정에서 발생하는 최대 오차 ε(l i )는
Figure 112007076732501-pat00002
이고, 오차율 s(l i )는
Figure 112007076732501-pat00003
이다.
한편, 이미 전위트리에서 관리되고 있는 항목집합들에 대해 현재 항목집합의 지지도가 Ssig 미만으로 감소할 때 해당 항목집합은 앞으로 빈발항목집합이 될 가능성이 상대적으로 낮은 중요하지 않은 항목집합으로 간주하여 해당 항목집합을 표현하는 노드와 그 노드의 모든 자손 노드들을 전위트리에서 제거한다. 이를 항목 전지라 한다. 이러한 두 가지 연산(지연 추가 및 항목 전지)을 통해 항목집합들의 출현 빈도수 관리를 위한 전위트리의 크기를 감소시킬 수 있게 된다.
이제, 본 발명의 바람직한 실시예에 따른 데이터 스트림으로부터 최대 빈발항목집합의 탐색에 관하여 설명한다.
본 발명의 일 실시예에 따르면, 전위트리의 각 노드는 상기된 정보 외에, 최대 빈발항목집합을 관리할 수 있도록 추가적인 정보로서, 항목집합이 이후에 전혀 출현하지 않더라도 빈발한 상태로 남아 있을 수 있는 최대의 시점인 최대 수명(maximum lifetime, 이하 ML이라 한다)과 항목집합이 최대 빈발항목집합인지 여 부를 나타내는 최대 마크(maximality mark, 이하 IS_MAX라 한다) 등의 정보를 관리한다. 보다 구체적으로는 다음과 같이 정의할 수 있다.
ⅰ) 최대 수명(ML)
현재 데이터 스트림 Dk에 대해서 빈발항목집합 e의 최대 수명 ML(e)는 항목집합 e가 앞으로 전혀 출현하지 않음에도 불구하고 빈발한 상태로 남아 있을 수 있는 최대의 시점이다.
한편, 상기된 정의에 따라 최대 수명은 다음과 같은 특징을 가진다.
특징1. 최도 지지도 Smin에 대하여, 항목집합 e의 최대 수명 ML(e)는
Figure 112007076732501-pat00004
이다.
특징 2. 두 개의 항목집합 e1, e 2에 대해 e1e 2이면 MLk(e1)≥ML k (e2)이다.
ⅱ) 최대 마크(IS_MAX)
최대 마크 IS_MAX는 현재 데이터 스트림 Dk에서 항목집합 e가 최대 빈발항목집합인가 아닌가를 표시하는 마크이다. 즉, e가 최대 빈발항목집합이면 IS_MAX(e)=T 또는 TRUE로, 최대 빈발항목집합이 아니면 IS_MAX(e)=F 또는 FALSE로 표시할 수 있다.
또한, 본 발명의 일 실시예에서는 최대 빈발항목집합을 보다 효율적으로 찾기 위하여 다음과 같은 개념을 도입한다.
ⅲ) 트랜잭셔널 최대 빈발항목집합
현재 데이터 스트림 Dk의 항목집합 e에 대해 e⊆Tk를 만족하는 최대 빈발항목집합을 트랜잭셔널 최대 빈발항목집합이라 하기로 하고, T k -max로 표기하기로 한다.
ⅳ) top-L 트랜잭셔널 최대 빈발항목집합
현재 데이터 스트림 Dk에서 발견되는 모든 Tk-max들을 길이가 긴 순서대로 내림차순하였을 때 미리 정해진 임계값 L개 이내의 순위에 들어가는 Tk-max들을 top-L 트랜잭셔널 최대 빈발항목집합이라 하기로 한다.
새로운 트랜잭션 Tk가 발생하였을 때 항목집합 e에 대하여, ML k -1(e)>k이고 IS_MAX k -1(e)=T이면 항목집합 e는 현재 데이터 스트림 Dk에서 최대 빈발항목집합임을 알 수 있다. 반면, 어떤 항목집합 e가 Tk-max이면서 ML k -1(e)<k≤ML k (e)이면 이 항목집합 e는 Tk-1까지는 최대 빈발항목집합이 아니었으나 트랜잭션 Tk에서의 출현에 따라 새로운 최대 빈발항목집합이 되는 경우로서, IS_MAX k (e)=T로 갱신된다. 최대 빈발항목집합으로 간주된 항목집합 e의 부분집합 ep는 더 이상 최대 빈발하지 않으므로(non-maximal frequent) 모든 ep에 대해서 IS_MAX(e p )=F로 갱신되고 ML(e p )=ML(e)로 값이 변경된다.
이하에서는, 최대 빈발항목집합을 찾음에 있어서 그 오차를 감소시킬 수 있는 방식을 설명한다.
전위트리를 이용한 빈발항목 탐색 방법에서 새로운 유효 항목집합(significant itemset) e를 정확하게 찾을 수 있도록, 항목집합 e의 모든 부분집합들의 빈도수를 이용하여 현재 항목집합 e의 빈도수 CI(e)를 추정하게 된다. 항목집합의 추정 빈도수가 미리 정의된 중요 지지도 Ssig 이상이면 해당 항목집합은 유효한 항목집합으로서 전위트리에 추가되고 이 때 빈도수는 추정된 값 CI(e)으로 결정된다. 추정된 빈도수는 오차가 포함된 값으로서, 데이터 스트림이 추가되면서 점차 감소하게 된다. 다시 말하면, 현재 데이터 스트림 Dk에서 최초로 관리되기 시작한 n-항목집합 e에 대해서 그 오차 s(e)는
Figure 112007076732501-pat00005
이며, 데이터 스트림이 무한하게 진행됨에 따라 오차는 0으로 수렴한다.
만약 추정 빈도수 CI(e)가 최소 지지도 Smin 이상이면 항목집합 e는 새로운 최대 빈발항목집합으로 간주될 수 있다. 그러나 추정 빈도수는 항상 정확한 빈도수보다 크거나 같으므로 실제로는 최대 빈발항목집합이 아닌데도 최대 빈발항목집합이라고 잘못 판단하는 경우가 발생할 수 있다. 이러한 경우, 원래 최대 빈발항목집합인 항목집합 e의 부분집합들이 최대 빈발항목집합이 아닌 것으로 간주되므로 결과 집합에 오차가 크게 발생하게 된다. 따라서 항목집합 e가 최대 빈발하기 위해서 해당 항목집합이 가지고 있는 오차가 정확한 빈도수가 근접하였을 때에만 IS_MAX(e)를 TRUE로 갱신함으로써 최대 빈발항목집합인 e의 부분집합들이 잘못 판단되는 경우를 최소화시키도록 하는 것이 바람직하다. 이를 위하여, 항목집합의 오 차가 미리 정해진 최대 오차 임계값 Serr 이내인 경우에만 항목집합을 최대 빈발항목집합으로 갱신할 수 있다.
도 1은 본 발명의 일 실시예에 따라 최대 빈발항목집합을 찾기 위한 전위트리 구조의 일 예를 나타낸다. 여기서, 최소 지지도 Smin = 0.4, 중요 지지도 S sig =0.25, 그리고 최대 오차 임계값 S err =0.05라 가정하기로 한다. 음영으로 표시된 노드들은 IS_MAX가 TRUE임을 나타낸다. 도 1의 (a)는 트랜잭션이 19개 입력된 상황에서의 전위트리를 나타내고, 이후 T20 = {a,b,c,d}이 새로운 트랜잭션으로 들어온 상황인 경우의 전위트리가 (b)에 도시되어 있다. T 20이 입력되면 새로운 항목집합 abcd가 전위트리로 삽입된다. 이 때 항목집합 abcd의 추정 오차 s(abcd)는 8 - 6 / 20 = 0.1로서 최대 오차 임계값 0.05보다 크기 때문에 IS_MAX(abcd)가 TRUE로 갱신되지 않는다. 반면 항목집합 abcd의 부분집합들 중 오차가 Serr 이내인 항목집합들은 최대 빈발항목집합으로 간주되어 IS_MAX가 갱신된다. 항목집합 abcd는 오차가 0.05보다 작아지는 시점인 T40까지 진행된 후에야 비로소 최대 빈발항목집합으로 간주될 것이다. 이와 같이, 최대 빈발항목집합의 결정 시점을 오차가 충분히 적어질 때까지 지연시킴으로써 전체 결과 집합의 오차를 최소화할 수 있다.
이제, 본 발명의 일 실시예에 따른 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법을 보다 구체적으로 설명하기로 한다. 본 실시예에 따른 방법은 이미 설명된 바와 같은 전위트리 구조와 오차 감소 방식을 적용하여 최대 빈발항목 집합을 탐색한다. 또한, estDec 방법과 마찬가지로 지연 추가 및 항목 전지 과정을 수행한다.
본 실시예에 따른 방법에서는, 새로운 트랜잭션 Tk가 발생하게 되면 전위트리 Pk에 존재하는 Tk의 항목들 및 항목집합들에 해당하는 노드를 차례로 방문하면서 각 노드의 정보를 갱신한다. T k 의 항목들은 사전적 순서로 정렬되어 있으며, 전위트리 구조 내의 이들 항목에 대해 깊이 우선 방식으로 탐색을 수행한다. 이때, 전위트리를 탐색하면서 해당 항목집합이 트랜잭셔널 최대 빈발항목집합 Tk-max인지 여부를 검사하여 Tk-max인 노드의 주소를 저장하여 둔다. 데이터의 특성에 따라 Tk-max의 개수가 상당히 많을 수도 있기 때문에 모든 Tk-max를 관리하는 것이 큰 부하를 발생시킬 수 있다. 따라서 top-L 트랜잭셔널 최대 빈발항목집합에 관하여 설명한 바와 같이, 미리 정의된 L개 이내의 순위에 들어가는 Tk-max들만을 관리하도록 할 수도 있다.
도 2는 본 발명의 일 실시예에 따른 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법의 흐름도이다.
210단계에서, 현재 시점 k에서 발생한 트랜잭선 Tk가 입력된다. 이때, 전체 트랜잭션의 수 |D| k 가 갱신된다.
220단계에서, 전위트리의 노드들 중 Tk에 포함된 항목집합들에 해당하는 각 노드가 가지고 있는 정보, 즉 출현빈도수와 최대 수명, 그리고 IS_MAX를 갱신한다. 이때, 출현빈도수가 갱신된 노드들 중 1-레벨이 아닌 노드들의 출현빈도수가 중요 지지도 Ssig 미만인 경우에, 해당하는 노드를 전위트리로부터 전지한다. 그리고, 전지되지 않은 노드들 중 최대 수명이 현재 시점 k 이전에서 k 이후로 갱신된 노드들은 Tk-max에 해당하는 노드로서 관리된다. 또한, 출현빈도수에 따른 지지도가 최소 지지도 Smin 이상인 노드들 역시 Tk-max에 해당하는 노드로서 관리된다. 나아가, Tk-max의 지지도 추정 과정에서 발생한 최대 오차가 최대 오차 임계값 Serr 이내인 경우에 최대 빈발항목집합으로 간주하여 IS_MAX를 TRUE로 갱신한다.
도 3은 이러한 220단계를 보다 상세하게 설명하기 위한 흐름도이다. 도 3에 도시된 단계들은 Tk에 포함된 항목집합들에 해당하는 노드들을 방문하면서 노드들 각각에 대하여 수행된다.
310단계에서, 방문된 노드가 Tk-max에 해당하는 노드인지 판단하여, 그러할 경우 320단계로 진행하고, 그렇지 않을 경우 해당 노드에 대한 처리를 수행하지 않는다. 이때 Tk-max에 해당하는 노드인지의 판단은 이미 설명한 바와 같이, 최대 수명이 현재 시점 k 이전에서 현재 시점 k 이후로 갱신된 노드 또는 출현빈도수에 따른 지지도가 최소 지지도 Smin 이상이며 트랜잭션 Tk에 출현하는 항목집합에 대응하는 자식 노드를 가지지 않는 노드를 Tk-max에 해당하는 노드로 판단한다.
320단계에서는, Tk-max에 해당하는 노드의 항목집합의 지지도 추정 과정에서 발생한 최대 오차가 최대 오차 임계값 이내인지 판단하고, 그러할 경우 330단계로 진행하여 해당 노드가 가지고 있는 IS_MAX를 TRUE로 갱신하고, 그렇지 않을 경우 340단계로 진행하여 해당 노드가 가지고 있는 IS_MAX를 유지한다.
다시 도 2를 참조하면, 230단계에서, 트랜잭션 Tk에 포함된 항목집합들 중 전위트리에서 관리되지 않는 항목집합들에 해당하는 각 노드를 전위트리에 추가하고, 추가된 노드의 정보, 즉 출현빈도수와 최대 수명, 그리고 IS_MAX를 갱신한다. 도 4는 이러한 230단계를 보다 상세하게 설명하기 위한 흐름도이다.
도 4를 참조하면, 우선 410단계에서 길이 1인 항목집합에 대응하는 노드를 전위트리에 추가한다. 길이 1인 항목집합은 출현빈도수 추정 과정을 거치지 않고 전위트리의 첫 번째 레벨에 추가된다. 이때 추가된 1-레벨의 노드는 현재 시점에서 새로 발생한 최대빈발항목집합일 수 있으므로 Tk-max로 간주한다.
415단계에서, 비중요(insignificant) 항목을 포함하는 항목집합은 비중요 항목집합이므로, 트랜잭션 Tk에 포함된 항목들 중에서 중요 지지도 Ssig보다 작은 항목을 제외하여, 필터링된 트랜잭션 T k를 생성한다.
그리고, 도 4에 도시된 후술할 420단계 내지 465단계는 필터링된 트랜잭션 T k를 대상으로 하여, T k에 포함된 항목집합들 중 길이 2 이상인, 전위트리에서 관리되지 않는 항목집합들 각각에 해당하는 노드를 방문하면서, 방문된 노드에 대하여 수행된다.
420단계에서 T k에 포함된 항목집합들 중 전위트리에서 관리되지 않는 항목집합들의 출현빈도수를 추정한다.
425단계에서, 상기 추정된 출현빈도수 Ck I(e)가 중요 지지도 Ssig보다 크거나 같은지 판단하여, 그러한 경우 430단계로 진행하고, 그렇지 않은 경우 항목집합에 대한 처리를 수행하지 않는다.
430단계에서는, 현재 시점에서 길이가 가장 긴 새로운 항목집합이 발견된 것으로 볼 수 있으므로, 해당 항목집합을 표현하는 노드를 Tk-max에 해당하는 노드로서 전위트리에 추가한다.
435단계에서, 420단계에서의 지지도 추정 과정에서 발생하는 최대 오차를 계산하고, 그 최대 오차 s(e)가 최대 오차 임계값 Serr 이내인지 판단하고, 그러할 경우에 최대 빈발항목집합으로 볼 수 있으므로, 440단계로 진행하여 해당 노드가 가지고 있는 IS_MAX를 TRUE로 설정하고, 그렇지 않을 경우 450단계로 진행하여 해당 노드가 가지고 있는 IS_MAX를 FALSE로 설정한다.
465단계에서는, 해당 노드의 최대 수명을 로 설정한다.
470단계에서, 440단계에서 IS_MAX가 TRUE로 설정된 항목집합의 부분항목집합들에 해당하는 노드가 가지고 있는 IS_MAX를 FALSE로 갱신하고 최대 수명을 그 항목집합과 동일하게 갱신한다. 한편, 상기된 420단계 내지 465단계를 수행하기 위하여 각 노드를 방문하는 동안, 전위트리에 이미 존재하고 있는 항목집합의 노드들을 방문하게 되므로, 이러한 노드를 방문할 때마다, 470단계에서 설명된 바와 같이, 방문된 노드의 IS_MAX와 최대 수명을 갱신할 수도 있다.
다시 도 2를 참조하면, 새로 발생한 트랜잭션에 대하여 상술한 210단계 내지 230단계를 수행하기 위하여, 240단계에서 k를 1 증가시키고, 210단계로 돌아가서 새로운 트랜잭션을 입력받는다.
한편으로 250단계에서, 최대 빈발항목집합을 탐색할 것인지 요청이 있는 경우에 260단계로 진행한다.
260단계에서, 전위트리의 노드들 중 IS_MAX가 TRUE인 노드를 방문하면서 해당하는 항목집합이 빈발한지 여부를 검사함으로써 최대 빈발항목집합을 찾는다. 즉, 항목집합의 지지도를 최소 지지도 Smin과 비교하여, 지지도가 최소 지지도 Smin 이상인 경우에 최대 빈발항목집합으로 판단한다. 이 경우 최대 빈발항목집합으로 간주되지 않는 노드들, 즉 IS_MAX가 FALSE인 노드들은 탐색을 하지 않기 때문에 최대 빈발항목집합을 찾기 위한 시간이 현저히 감소하게 된다.
한편, 단순히 빈발항목집합을 찾고자 하는 경우라면, 전위트리를 순차적으로 탐색하여 각 노드에 해당하는 항목집합의 지지도가 최소 지지도 Smin 이상이면 빈발항목집합으로 판단한다.
도 5는 본 발명의 일 실시예에 따른 데이터스트림으로부터 최대 빈발항목집합을 탐색하는 장치의 블록도이다.
메모리(530)는, 발생한 트랜잭션들에 포함된 항목집합들 및 항목집합들의 출 현빈도수가 전위트리를 이용하여 관리되고, 전위트리의 노드들 각각은, 해당 노드에 대응하는 항목집합의 출현빈도수, 항목집합이 이후에 전혀 출현하지 않더라도 빈발한 상태로 남아 있을 수 있는 최대의 시점인 최대 수명 ML 및 상기 항목집합이 최대 빈발항목집합인지 여부를 나타내는 마크 IS_MAX 등의 정보를 가지도록 전위트리를 저장한다. 여기서 전위트리의 구조와 노드들 각각이 가지는 상기 정보는 이미 설명한 바와 동일하므로 구체적인 설명은 생략한다.
정보 갱신부(510)는 메모리(530)에 저장된 전위트리의 노드들 중 현재 시점 k에서 발생한 트랜잭션 Tk에 포함된 항목집합들에 해당하는 각 노드가 가지고 있는 정보를 갱신한다. 정보 갱신부(510)의 동작은 도 2에 도시된 220단계에 관하여 설명된 내용과 동일하므로, 구체적인 설명은 생략한다.
정보 설정부(520)는 트랜잭션 Tk에 포함된 항목집합들 중 메모리(530)에 저장된 전위트리에서 관리되지 않는 항목집합들에 해당하는 각 노드를 상기 전위트리에 추가하고, 추가된 노드의 정보를 설정한다. 정보 설정부(520)의 동작은 도 2에 도시된 230단계에 관하여 설명된 내용과 동일하므로, 구체적인 설명은 생략한다.
최대 빈발항목집합 탐색부(540)는 메모리(530)에 저장된 전위트리의 노드들 중 마크 IS_MAX가 최대 빈발항목집합임을 나타내는 노드를 방문하면서 해당하는 항목집합이 빈발한지 여부를 검사함으로써 최대 빈발항목집합을 찾고, 그 결과를 출력한다. 최대 빈발항목집합 탐색부(540)의 동작은 도 2에 도시된 260단계에서 관하여 설명된 내용과 동일하므로, 구체적인 설명은 생략한다.
상술한 본 발명에 따르면, 데이터 스트림 환경에서 최대 빈발항목집합을 탐 색하기 위하여 전위트리에서 추가적인 정보를 유지함으로써 최대 빈발항목집합들은 물론 기존의 빈발항목집합들 역시 탐색할 수 있다. 또한, 전위트리 구조 내의 항목집합들의 추정된 지지도 오차가 소정 임계값 이내일 때에 해당 노드가 가지고 있는 정보를 갱신함으로써 제한된 메모리 공간 내에서의 마이닝 결과, 즉 최대 빈발항목집합 탐색의 정확도를 극대화할 수 있으며, 최대 빈발항목집합을 찾기 위해서 모든 노드들을 탐색하지 않고 최대 빈발항목집합 여부를 나타내는 마크에 따라서 일부 노드만을 탐색하므로, 최대 빈발항목집합을 찾기 위한 시간이 현저히 감소하게 된다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으 로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따라 최대 빈발항목집합을 찾기 위한 전위트리 구조의 일 예를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법의 흐름도이다.
도 3은 도 2에 도시된 220단계를 보다 상세하게 설명하기 위한 흐름도이다.
도 4는 도 2에 도시된 230단계를 보다 상세하게 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 데이터스트림으로부터 최대 빈발항목집합을 탐색하는 장치의 블록도이다.

Claims (17)

  1. 지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법에 있어서,
    이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 노드들 각각은, 해당 노드에 대응하는 항목집합의 출현빈도수, 상기 항목집합이 이후에 전혀 출현하지 않더라도 빈발한 상태로 남아 있을 수 있는 최대의 시점인 최대 수명, 및 상기 항목집합이 최대 빈발항목집합인지 여부를 나타내는 마크의 정보를 가질 때,
    (a) 현재 시점 k에서 발생한 트랜잭션 Tk를 입력받는 단계;
    (b) 상기 전위트리의 노드들 중 상기 Tk에 포함된 항목집합들에 해당하는 각 노드가 가지고 있는 상기 정보를 갱신하는 단계;
    (c) 상기 Tk에 포함된 항목집합들 중 상기 전위트리에서 관리되지 않는 항목집합들에 해당하는 각 노드를 상기 전위트리에 추가하고, 상기 추가된 노드의 상기 정보를 설정하는 단계; 및
    (d) 상기 전위트리의 노드들 중 상기 마크가 최대 빈발항목집합임을 나타내는 노드를 방문하면서 해당하는 항목집합이 빈발한지 여부를 검사함으로써 최대 빈발항목집합을 찾는 단계를 포함하는 것을 특징으로 하는 최대 빈발항목집합 탐색 방법.
  2. 제1항에 있어서,
    상기 (b) 단계는, 상기 전위트리의 노드들 중 해당하는 항목집합의 지지도가 소정 값인 중요 지지도보다 작은 노드를 상기 전위트리로부터 전지하는 단계를 포함하는 것을 특징으로 하는 최대 빈발항목집합 탐색 방법.
  3. 제1항에 있어서,
    상기 (c) 단계에서 상기 각 노드를 상기 전위트리에의 추가함에 있어서, 상기 항목집합들의 출현빈도수를 추정하고, 상기 추정된 출현빈도수에 따른 지지도가 소정 값인 중요 지지도보다 크거나 같은 경우에만 해당하는 노드를 상기 전위트리에 추가하는 것을 특징으로 하는 최대 빈발항목집합 탐색 방법.
  4. 제1항에 있어서, 상기 (b) 단계는,
    상기 노드들 중 상기 Tk의 부분항목집합임을 만족하는 최대 빈발항목집합인 Tk-max에 해당하는 노드에 대하여, 상기 Tk-max의 지지도 추정 과정에서 발생한 최대 오차가 소정 값인 최대 오차 임계값 이내인 경우에만 상기 Tk-max에 해당하는 노드가 가지고 있는 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 갱신하는 것을 특징으로 하는 최대 빈발항목집합 탐색 방법.
  5. 제4항에 있어서, 상기 Tk-max에 해당하는 노드인지의 판단은,
    상기 최대 수명이 상기 현재 시점 k 이전에서 상기 현재 시점 k 이후로 갱신된 노드 또는 상기 출현빈도수에 따른 지지도가 소정 값인 최소 지지도 이상이며 상기 트랜잭션 Tk에 출현하는 항목집합에 대응하는 자식 노드를 가지지 않는 노드를 상기 Tk-max에 해당하는 노드로 판단하는 것을 특징으로 하는 최대 빈발항목집합 탐색 방법.
  6. 제4항에 있어서, 상기 (b) 단계는,
    상기 Tk-max에 해당하는 노드들 중 해당하는 항목집합의 길이가 긴 순서대로 미리 정해진 개수의 노드들에 대하여만 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 갱신하는 것을 특징으로 하는 최대 빈발항목집합 탐색 방법.
  7. 제3항에 있어서, 상기 (c) 단계는,
    (c1) 상기 Tk에 포함된 항목들 중에서 지지도가 상기 중요 지지도보다 작은 항목을 제외하여 생성되는 트랜잭션 T k에 대하여, 상기 T k에 포함된 항목집합들 중에서 상기 전위트리에서 관리되지 않는 항목집합들의 출현빈도수를 추정하고, 상기 추정된 출현빈도수에 따른 지지도가 상기 중요 지지도보다 크거나 같은 경우에, 해당하는 노드를 상기 전위트리에 추가하는 단계; 및
    (c2) 상기 추가된 노드에 해당하는 항목집합의 상기 (c1) 단계에서 발생하는 최대 오차가 소정 값인 최대 오차 임계값 이내인 경우에, 상기 추가된 노드의 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 설정하고, 상기 최대 수명을 설정하는 단계를 포함하는 것을 특징으로 하는 최대 빈발항목집합 탐색 방법.
  8. 제7항에 있어서, 상기 (c) 단계는,
    상기 (c2) 단계에서 상기 마크가 최대 빈발항목집합임을 나타내는 것으로 설정된 노드에 해당하는 항목집합의 부분항목집합에 해당하는 노드들에 대하여, 상기 마크를 최대 빈발항목집합이 아님을 나타내는 것으로 갱신하고, 상기 최대 수명을 갱신하는 단계를 더 포함하는 것을 특징으로 하는 최대 빈발항목집합 탐색 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 기재된 최대 빈발항목집합 탐색 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  10. 지속적으로 발생되는 트랜잭션들로 구성되는 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 장치에 있어서,
    이미 발생한 트랜잭션들에 포함된 항목집합들 및 상기 항목집합들의 출현빈도수가 전위트리를 이용하여 관리되고, 상기 전위트리의 노드들 각각은, 해당 노드에 대응하는 항목집합의 출현빈도수, 상기 항목집합이 이후에 전혀 출현하지 않더라도 빈발한 상태로 남아 있을 수 있는 최대의 시점인 최대 수명, 및 상기 항목집합이 최대 빈발항목집합인지 여부를 나타내는 마크의 정보를 가지도록 상기 전위트리를 저장하기 위한 메모리;
    상기 전위트리의 노드들 중 현재 시점 k에서 발생한 트랜잭션 Tk에 포함된 항목집합들에 해당하는 각 노드가 가지고 있는 상기 정보를 갱신하는 정보 갱신부;
    상기 Tk에 포함된 항목집합들 중 상기 전위트리에서 관리되지 않는 항목집합들에 해당하는 각 노드를 상기 전위트리에 추가하고, 상기 추가된 노드의 상기 정보를 설정하는 정보 설정부; 및
    상기 전위트리의 노드들 중 상기 마크가 최대 빈발항목집합임을 나타내는 노드를 방문하면서 해당하는 항목집합이 빈발한지 여부를 검사함으로써 최대 빈발항목집합을 찾는 최대빈발항목집합 탐색부를 포함하는 것을 특징으로 하는 최대 빈발항목집합 탐색 장치.
  11. 제10항에 있어서,
    상기 정보 갱신부는, 상기 전위트리의 노드들 중 해당하는 항목집합의 지지도가 소정 값인 중요 지지도보다 작은 노드를 상기 전위트리로부터 전지하는 것을 특징으로 하는 최대 빈발항목집합 탐색 장치.
  12. 제10항에 있어서,
    상기 정보 설정부가 상기 각 노드를 상기 전위트리에의 추가함에 있어서, 상 기 항목집합들의 출현빈도수를 추정하고, 상기 추정된 출현빈도수에 따른 지지도가 소정 값인 중요 지지도보다 크거나 같은 경우에만 해당하는 노드를 상기 전위트리에 추가하는 것을 특징으로 하는 최대 빈발항목집합 탐색 장치.
  13. 제10항에 있어서, 상기 정보 갱신부는,
    상기 노드들 중 상기 Tk의 부분항목집합임을 만족하는 최대 빈발항목집합인 Tk-max에 해당하는 노드에 대하여, 상기 Tk-max의 지지도 추정 과정에서 발생한 최대 오차가 소정 값인 최대 오차 임계값 이내인 경우에만 상기 Tk-max에 해당하는 노드가 가지고 있는 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 갱신하는 것을 특징으로 하는 최대 빈발항목집합 탐색 장치.
  14. 제13항에 있어서,
    상기 정보 갱신부에서 상기 Tk-max에 해당하는 노드인지의 판단은, 상기 최대 수명이 상기 현재 시점 k 이전에서 상기 현재 시점 k 이후로 갱신된 노드 또는 상기 출현빈도수에 따른 지지도가 소정 값인 최소 지지도 이상이며 상기 트랜잭션 Tk에 출현하는 항목집합에 대응하는 자식 노드를 가지지 않는 노드를 상기 Tk-max에 해당하는 노드로 판단하는 것을 특징으로 하는 최대 빈발항목집합 탐색 장치.
  15. 제13항에 있어서, 상기 정보 갱신부는,
    상기 Tk-max에 해당하는 노드들 중 해당하는 항목집합의 길이가 긴 순서대로 미리 정해진 개수의 노드들에 대하여만 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 갱신하는 것을 특징으로 하는 최대 빈발항목집합 탐색 장치.
  16. 제12항에 있어서, 상기 정보 설정부는,
    상기 Tk에 포함된 항목들 중에서 지지도가 상기 중요 지지도보다 작은 항목을 제외하여 생성되는 트랜잭션 T k에 대하여, 상기 T k에 포함된 항목집합들 중에서 상기 전위트리에서 관리되지 않는 항목집합들의 출현빈도수를 추정하고, 상기 추정된 출현빈도수에 따른 지지도가 상기 중요 지지도보다 크거나 같은 경우에, 해당하는 노드를 상기 전위트리에 추가하고, 상기 추가된 노드에 해당하는 항목집합의 상기 출현빈도수의 추정에서 발생하는 최대 오차가 소정 값인 최대 오차 임계값 이내인 경우에, 상기 추가된 노드의 상기 마크를 최대 빈발항목집합임을 나타내는 것으로 설정하고, 상기 최대 수명을 설정하는 것을 특징으로 하는 최대 빈발항목집합 탐색 장치.
  17. 제16항에 있어서, 상기 정보 설정부는,
    상기 마크가 최대 빈발항목집합임을 나타내는 것으로 설정된 노드에 해당하는 항목집합의 부분항목집합에 해당하는 노드들에 대하여, 상기 마크를 최대 빈발 항목집합이 아님을 나타내는 것으로 갱신하고, 상기 최대 수명을 갱신하는 것을 특징으로 하는 최대 빈발항목집합 탐색 장치.
KR1020070108074A 2007-10-26 2007-10-26 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치 KR100899144B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070108074A KR100899144B1 (ko) 2007-10-26 2007-10-26 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치
US12/258,645 US8150873B2 (en) 2007-10-26 2008-10-27 Method and apparatus for finding maximal frequent itemsets over data streams

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070108074A KR100899144B1 (ko) 2007-10-26 2007-10-26 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치

Publications (2)

Publication Number Publication Date
KR20090042362A KR20090042362A (ko) 2009-04-30
KR100899144B1 true KR100899144B1 (ko) 2009-05-27

Family

ID=40584202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070108074A KR100899144B1 (ko) 2007-10-26 2007-10-26 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치

Country Status (2)

Country Link
US (1) US8150873B2 (ko)
KR (1) KR100899144B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101105363B1 (ko) 2010-01-18 2012-01-16 연세대학교 산학협력단 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법
KR20160066219A (ko) 2014-12-02 2016-06-10 세종대학교산학협력단 스트림 환경의 감쇄 윈도우 및 근접 프루닝 기반 최신 빈발 패턴 유지 방법, 이를 수행하는 최신 빈발 패턴 유지 서버 및 이를 저장하는 기록매체

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7937388B2 (en) * 2008-08-20 2011-05-03 International Business Machines Corporation Probabilistic lossy counting
KR101105736B1 (ko) * 2009-03-03 2012-01-17 충북대학교 산학협력단 대용량 트랜잭션 데이터베이스 환경에서 효율적인 빈발 항목 집합 탐색 방법
KR101130734B1 (ko) * 2010-08-12 2012-03-28 연세대학교 산학협력단 상황 구조 생성 방법 및, 상황 구조 생성 시스템
CN104008185A (zh) * 2014-06-11 2014-08-27 西北工业大学 基于相同结点表和频繁情节树的频繁闭情节挖掘方法
CN105989104B (zh) * 2015-02-13 2019-09-03 华为技术有限公司 一种确定大数据流中的特殊数据项的方法及装置
CN104778475B (zh) * 2015-03-30 2018-01-19 南京邮电大学 一种基于环形区域最大频繁视觉单词的图像分类方法
US10445323B2 (en) * 2015-09-30 2019-10-15 University Of Virginia Patent Foundation Association rule mining with the micron automata processor
CN105930457A (zh) * 2016-04-21 2016-09-07 南开大学 基于分布式架构的数据流频繁项挖掘方法
CN109165241B (zh) * 2018-07-31 2023-06-30 武汉大学 一种获取数据流频繁项的方法
CN110096629B (zh) * 2019-05-15 2023-07-28 重庆大学 一种用于事务处理的内存优化方法
US11893983B2 (en) * 2021-06-23 2024-02-06 International Business Machines Corporation Adding words to a prefix tree for improving speech recognition

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040026178A (ko) * 2002-09-23 2004-03-30 이원석 데이터 마이닝 시스템 및 그 방법
KR20070035300A (ko) * 2005-09-27 2007-03-30 인하대학교 산학협력단 시간차를 이용한 상대적인 빈발항목 탐색 시스템 및 방법
KR20070055675A (ko) * 2005-11-28 2007-05-31 이원석 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위트리와 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217055A1 (en) * 2002-05-20 2003-11-20 Chang-Huang Lee Efficient incremental method for data mining of a database
US20060149766A1 (en) * 2004-12-30 2006-07-06 Amol Ghoting Method and an apparatus to improve processor utilization in data mining
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
KR100896528B1 (ko) * 2007-08-20 2009-05-08 연세대학교 산학협력단 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040026178A (ko) * 2002-09-23 2004-03-30 이원석 데이터 마이닝 시스템 및 그 방법
KR20070035300A (ko) * 2005-09-27 2007-03-30 인하대학교 산학협력단 시간차를 이용한 상대적인 빈발항목 탐색 시스템 및 방법
KR20070055675A (ko) * 2005-11-28 2007-05-31 이원석 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위트리와 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문:한국정보과학회

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101105363B1 (ko) 2010-01-18 2012-01-16 연세대학교 산학협력단 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법
KR20160066219A (ko) 2014-12-02 2016-06-10 세종대학교산학협력단 스트림 환경의 감쇄 윈도우 및 근접 프루닝 기반 최신 빈발 패턴 유지 방법, 이를 수행하는 최신 빈발 패턴 유지 서버 및 이를 저장하는 기록매체

Also Published As

Publication number Publication date
KR20090042362A (ko) 2009-04-30
US8150873B2 (en) 2012-04-03
US20090112863A1 (en) 2009-04-30

Similar Documents

Publication Publication Date Title
KR100899144B1 (ko) 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치
KR100896528B1 (ko) 데이터 스트림으로부터 연관규칙을 생성하는 방법 및데이터 마이닝 시스템
KR100812378B1 (ko) 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법
Boyen et al. Discovering the hidden structure of complex dynamic systems
KR101105363B1 (ko) 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법
Aljazzar et al. K⁎: A heuristic search algorithm for finding the k shortest paths
CN112765477B (zh) 信息处理、信息推荐的方法和装置、电子设备和存储介质
Zhu et al. Efficient single-source shortest path and distance queries on large graphs
KR20100045682A (ko) 다차원 데이터 스트림을 위한 클러스터링 방법 및 시스템
US8996501B2 (en) Optimally ranked nearest neighbor fuzzy full text search
CN114757302A (zh) 一种文本处理用聚类方法系统
Iqbal et al. Mining non-redundant distinguishing subsequence for trip destination forecasting
KR100776640B1 (ko) 시간차를 이용한 상대적인 빈발항목 탐색 시스템 및 방법
CN118069532A (zh) 测试用例确定方法、装置、计算机设备和存储介质
Mallick et al. Incremental mining of sequential patterns: Progress and challenges
Shajib et al. An efficient approach for mining frequent patterns over uncertain data streams
CN110222055B (zh) 一种动态图下多边更新的单轮核值维护方法
CN111723092A (zh) 数据处理方法及装置
Chen et al. Label and distance-constraint reachability queries in uncertain graphs
Wang et al. H-mrst: a novel framework for supporting probability degree range query using extreme learning machine
Xu et al. Multiagent coverage search based on Voronoi and sparse heteroscedastic Gaussian process
Fu et al. Neurons merging layer: Towards progressive redundancy reduction for deep supervised hashing
Zhang et al. Effective shortest travel-time path caching and estimating for location-based services
CN113792202B (zh) 一种用户分类的筛选方法
Huan et al. TEA+: a novel temporal graph random walk engine with hybrid storage architecture

Legal Events

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

Payment date: 20130312

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140423

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150521

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee