KR101105363B1 - 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법 - Google Patents
롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법 Download PDFInfo
- Publication number
- KR101105363B1 KR101105363B1 KR1020100004391A KR20100004391A KR101105363B1 KR 101105363 B1 KR101105363 B1 KR 101105363B1 KR 1020100004391 A KR1020100004391 A KR 1020100004391A KR 20100004391 A KR20100004391 A KR 20100004391A KR 101105363 B1 KR101105363 B1 KR 101105363B1
- Authority
- KR
- South Korea
- Prior art keywords
- frequent
- item set
- item
- compressed
- layer
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법이 개시된다. 본 발명에 따른 빈발항목집합 탐색 방법은, 발생하는 트랜잭션을 분할하여 복수 개의 분할 트랜잭션을 생성하는 단계; 상기 복수 개의 분할 트랜잭션 각각을 복수 개의 제1 계층 전위 트리를 이용하여 마이닝하는 단계; 상기 제1 계층 전위 트리에서 생성되는 빈발항목집합을 압축하여 압축항목집합을 생성하는 단계; 및 상기 생성된 압축항목집합을 병합하고, 상기 병합된 압축항목집합을 제2 계층 전위 트리를 이용하여 마이닝하는 단계를 포함하는 것을 특징으로 한다. 이러한 본 발명에 의하면 롱 트랜잭션 데이터 스트림 환경에서 효과적으로 빈발항목집합의 탐색을 수행할 수 있다.
Description
본 발명은 데이터 마이닝에 관한 것으로, 보다 상세하게는 지속적으로 발생되는 트랜잭션들로 구성되는 비한정적 데이터 집합인 데이터 스트림으로부터 빈발항목집합을 탐색하는 방법에 관한 것이다.
일반적으로 데이터 마이닝의 대상이 되는 데이터 집합에서는 응용 도메인에 나타나는 모든 단위 정보들을 단위항목(item)으로 정의하고 응용 도메인에서 의미적인 동시성(즉, 의미적으로 서로 함께 발생하는)을 갖는 단위 정보들의 모임을 트랜잭션(transaction)이라 정의한다. 트랜잭션은 의미적인 동시성을 갖는 단위항목들의 정보를 가지며 데이터 마이닝의 분석 대상이 되는 데이터 집합은 해당 응용 도메인에서 발생된 트랜잭션들의 집합으로 정의된다.
데이터 스트림은 다양한 입력속도로 끊임없이 입력되고, 데이터 스트림을 저장하는 메모리상의 저장공간은 유한하기 때문에 모든 정보를 저장한다는 것은 불가능하다. 이런 특징이 있기 때문에 데이터 스트림에서 지식을 추출하기 위해서는 다음과 같은 제약이 있다.[10] 첫째, 데이터 스트림의 트랜잭션 정보를 단 한번만 읽고 의미있는 지식을 추출할 수 있어야 한다. 둘째, 데이터 스트림이 무한하게 생성되더라도 한정된 메모리 공간에서 처리되어야 한다. 셋째, 새롭게 생성된 데이터에 대해서 빠른 시간 안에 처리되어야 한다. 넷째, 데이터 스트림에 대해 추출된 의미 있는 지식은 사용자가 원할 때 제공될 수 있어야 한다. 이러한 제약들 때문에 데이터 스트림 마이닝 방법들은 마이닝 결과에 오차를 포함하게 된다.
기존의 빈발항목집합을 위한 마이닝 방법들[2,5,16,19]에는 몇 가지 문제점이 존재한다. 먼저 데이터 스트림의 빈발항목집합을 탐색하기 위해서 트랜잭션의 모든 항목이나 빈발이 될 가능성이 높은 항목집합을 모두 관리하기 때문에 메모리 사용량이 크다는 것으로 트랜잭션의 길이(|Tk|)가 커질수록 메모리 사용량과 수행 시간이 지수에 비례하여 증가한다. 항목이 많아서 |Tk|가 매우 큰 트랜잭션을 롱 트랜잭션이라 할 때 위와 같은 이유 때문에 롱 트랜잭션 데이터 스트림 환경에서의 빈발항목집합 탐색 수행이 불가능하다. 그리고 마이닝 결과가 너무 많이 발생하여 사용자의 의사 결정에 큰 도움을 줄 수 없는 경우가 있다. 이러한 문제를 해결하기 위해서 마이닝 결과들의 집합의 일부를 특정한 표현법으로 치환하는 압축 방법이 소개되었다.[25]
압축의 방법으로는 두 가지가 있다. 무손실 압축(lossless compression)과 손실 근사 압축(lossy approximation)으로서 전자의 경우는 폐쇄 빈발항목집합 (closed frequent itemset, CFI)[23]으로 알려져있으며 빈발항목집합의 모든 집합을 다시 복구할 수 있지만, 압축의 정도가 제한되어 있다. 후자의 경우는 최대 빈발항목집합 (maximal frequent itemset, MFI)[14]으로써 압축률이 높지만 지지도에 대한 정보가 손실되기 때문에 빈발항목집합의 모든 집합을 다시 복구할 수 없다.
본 발명이 이루고자 하는 기술적 과제는 상기된 한계점을 보완하기 위한 롱 트랜잭션 데이터 스트림을 위한 새로운 빈발항목집합 탐색 방법을 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른, 데이터 스트림으로부터 빈발항목집합을 탐색하는 방법은, (a) 발생하는 트랜잭션을 분할하여 복수 개의 분할 트랜잭션을 생성하는 단계; (b) 상기 복수 개의 분할 트랜잭션 각각을 복수 개의 제1 계층 전위 트리를 이용하여 마이닝하는 단계; (c) 상기 제1 계층 전위 트리에서 생성되는 빈발항목집합을 압축하여 압축항목집합을 생성하는 단계; 및 (d) 상기 생성된 압축항목집합을 병합하고, 상기 병합된 압축항목집합을 제2 계층 전위 트리를 이용하여 마이닝하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (b) 단계에서, Pm.k에 대응하는 분할 트랜잭션 Tm.k는 다음과 같이 표현될 수 있다.
또한, 상기 (c) 단계 및 (d) 단계는, 상기 (b) 단계에서 상기 제1 계층 전위트리에 상기 분할 트랜잭션의 멱집합에 일치하는 빈발항목집합이 있을 경우에 수행될 수 있다.
또한, 상기 (c) 단계는, 상기 제1 계층 전위트리에서 생성된 빈발항목집합 x 와 y 가 상위집합과 부분집합 관계에 있으면서 지지도 차이가 미리 설정된 임계값 ω(0 ≤ ω ≤ 1) 보다 작은 경우 상기 압축항목집합을 생성할 수 있다.
또한, 상기 (d) 단계에서의 상기 압축항목집합의 병합은, 첫번째 제1 계층 전위트리에서 생성된 압축항목집합부터 m번째 제1 계층 전위트리에서 생성된 압축항목집합을 연결하는 형태로 수행될 수 있다.
또한, 새로운 트랜잭션 Tk가 생성되었을 때의 상기 제2 계층 전위 트리를 Bk로 나타내고, 상기 압축항목집합의 병합 결과 생성되는 튜플을 부분트랜잭션 Uk라 할 때, 상기 (d) 단계는, 상기 Uk의 항목들의 사전적인 순서에 의해 Bk-1을 탐색하면서 수행하는 출현 빈도수 및 노드 갱신 단계를 포함할 수 있다.
또한, 상기 출현빈도수 및 노드 갱신 단계는, 상기 부분트랜잭션의 두 제1 계층 전위트리에 해당하는 항목을 합치고, 상기 Bk-1을 탐색하면서 탐색되는 각 노드에 대해서 출현 빈도수를 증가시킬 수 있다.
또한, 상기 (d) 단계는, 상기 Uk의 항목집합들 중 상기 Bk-1에서 관리되지 않는 중요 항목집합들을 상기 제2 계층 전위 트리에 새로 추가하는 항목집합 추가 단계를 더 포함할 수 있다.
또한, 상기 빈발항목집합 탐색 방법은, 깊이 우선 탐색으로 상기 제2 계층 전위 트리를 순회하며 각 노드의 지지도가 사전 정의된 최소 지지도 이상인 노드를 추출하는 빈발항목집합 탐색 단계를 더 포함할 수 있다.
또한, 상기 빈발항목집합 탐색 단계는, 상기 제1 계층 전위트리의 항목집합을 포함시켜 빈발항목집합을 탐색할 수 있다.
또한, 상기 제2 계층 전위 트리에서의 빈발항목집합 탐색은 상기 제1 계층 전위트리에서의 빈발항목집합 탐색보다 같거나 낮은 최소 지지도를 가지고 빈발항목집합을 탐색할 수 있다.
또한, 상기 빈발항목집합 탐색 방법은, ω > 0 인 경우에, 압축항목집합을 항목으로 가지고 있는 노드에 의해서 생성될 수 있는 임의의 항목의 출현 빈도수를 추정하는 단계를 더 포함할 수 있다.
또한, 상기 임의의 항목의 출현 빈도수를 추정하는 단계는, 상기 압축항목집합의 출현 빈도수의 값을 상기 임의의 항목의 출현 빈도수로 사용함으로써 추정할 수 있다.
상기 기술적 과제를 해결하기 위하여, 상기된 본 발명에 따른, 데이터 스트림으로부터 빈발항목집합을 탐색하는 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기된 본 발명에 따른 빈발항목집합 탐색 방법에 의하면, 롱 트랜잭션 데이터 스트림 환경에서 효과적으로 빈발항목집합의 탐색을 수행할 수 있다.
도 1a는 β-계층 전위트리의 예를 나타낸다.
도 1b는 도 1a의 β-계층 전위트리를 일반적인 전위트리로 재구성한 구조를 나타낸다.
도 2는 PET 방법의 전체적인 구성을 나타내는 개념도이다.
도 3은 PET 방법의 예제를 나타낸다.
도 4는 빈발항목집합에 대해 압축항목집합을 생성하는 예제이다.
도 5는 Pm.k에서 압축항목집합을 생성하는 과정을 나타내는 알고리즘이다.
도 6은 병합 작업의 예를 나타낸다.
도 7은 부분트랜잭션의 예로서 도 6-(b)에서 보여준 병합 결과 튜플의 일부를 나타낸다.
도 8은 β-계층 전위트리의 생성과 관리 과정을 나타낸다.
도 9는 ω-압축의 복구의 예를 나타낸다.
도 1b는 도 1a의 β-계층 전위트리를 일반적인 전위트리로 재구성한 구조를 나타낸다.
도 2는 PET 방법의 전체적인 구성을 나타내는 개념도이다.
도 3은 PET 방법의 예제를 나타낸다.
도 4는 빈발항목집합에 대해 압축항목집합을 생성하는 예제이다.
도 5는 Pm.k에서 압축항목집합을 생성하는 과정을 나타내는 알고리즘이다.
도 6은 병합 작업의 예를 나타낸다.
도 7은 부분트랜잭션의 예로서 도 6-(b)에서 보여준 병합 결과 튜플의 일부를 나타낸다.
도 8은 β-계층 전위트리의 생성과 관리 과정을 나타낸다.
도 9는 ω-압축의 복구의 예를 나타낸다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
이하에서 설명되는 본 발명의 실시예에 따른 빈발항목집합 탐색 방법을 PET(Projection, mErge and mining sTructure) 방법이라 명명하기로 한다. PET 방법은 여러 개의 α-계층 전위트리(α-Prefix tree)로 구성되는 α-계층(α-Layer), 병합 작업(merge operation), 그리고 β-계층 전위 트리(β-Prefix tree)로 구성되는 β-계층(β-Layer)으로 이루어진 마이닝 방법으로서 하나의 데이터 스트림에 대해 하나의 전위트리를 구성하는 기존 마이닝 방법과 달리 하나의 데이터 스트림을 여러 개로 분할(projection)하여 여러 개의 α-전위트리로 각각 빈발항목집합을 탐색하고, 데이터 스트림을 분할할 때 분리되는 항목집합을 관리하기 위해서 각 전위트리의 빈발항목집합을 병합하여 그 결과 튜플을 β-계층에서 마이닝한다. 이 과정에서 α-계층의 각 α-계층 전위트리가 병합 작업을 위해 빈발항목집합들을 생성할 때 하나의 빈발항목집합과 다른 빈발항목집합의 지지도 차이가 사전 정의된 압축 임계값 (compression threshold) ω 이내일 때, 해당 빈발항목집합을 병합하여 하나의 압축항목집합으로 관리하므로 매우 많은 빈발항목집합이 생성될 때 그 양을 줄임으로써 메모리 사용량과 수행시간의 부담을 줄일 수 있다.
β-계층은 다수의 항목집합을 하나의 노드에서 관리하면서 하나의 출현 빈도수와 압축 임계값 ω을 이용하여 지지도를 추정한다. β-계층은 압축 임계값 ω에 의해 노드의 개수가 변하지만 ω값이 커질수록 많은 수의 항목집합들이 하나의 노드로 표현되며 결과적으로 β-계층의 크기 및 마이닝 결과의 정확도는 감소하게 된다. 하지만 최소지지도 하한 임계값 (minimum support lower bound threshold) ε을 이용하여 β-계층의 빈발항목탐색의 정확도를 조정할 수 있다. 이러한 방법을 통해 본 발명의 실시예는 압축하는 방법에 있어서 손실 근사 압축 방법과 무손실 압축 방법의 장점을 모두 얻으면서도 메모리 사용량을 크게 줄임으로써 롱 트랜잭션 데이터 스트림 환경에서의 빈발항목집합 탐색을 가능하도록 한다.
본 명세서의 구성은 다음과 같다. 1장에서는 데이터 스트림에서 빈발항목집합의 탐색 및 압축 관리 방법에 대한 기존 연구들을 조사 및 검토한다. 2장에서는 PET 방법의 구성 요소인 α-계층과 병합 작업, β-계층에 대해 자세히 기술하고 ω-압축의 방법과 복구 방법에 대해서 자세히 기술한다. 그리고 3장에서 결론을 맺는다.
제 1 장 관련 연구
1.1 빈발항목집합 탐색 방법
유한한 트랜잭션 집합에서 빈발항목집합을 탐색하는 대표적인 알고리즘으로는 Apriori 알고리즘[2]이 제안되었다. Apriori 알고리즘은 n 의 길이를 갖는 빈발항목집합을 탐색하기 위해 n 번 후보집합을 생성하고 n+1 번 트랜잭션 정보를 탐색하므로 메모리 사용량이 매우 크며 탐색 시간도 오래 걸린다.
Carma 알고리즘[16]은 두 단계의 처리 과정을 통해 데이터 집합 내 트랜잭션을 검색하여 빈발항목집합을 탐색한다. 이러한 고정 데이터 집합을 대상으로 한 빈발항목 탐색 알고리즘은 분석 대상이 마이닝 단계 전에 정의되어야 하며 한 번 이상의 스캔이 필요하므로 데이터 스트림의 마이닝 방법으로 적합하지 않다.
데이터 집합이 점진적으로 증가되는 환경에서는 FUP-based 알고리즘[7,8], BORDERS 알고리즘[3], DAEMON 알고리즘[11]과 같은 점진적 마이닝 알고리즘을 이용하여 새로 갱신된 데이터 집합에 대한 종합적 마이닝 결과를 얻을 수 있다.
점진적 마이닝 알고리즘은 최신의 결과를 얻기 위해서 이전의 트랜잭션 정보를 사용할 수 있지만 각 트랜잭션의 정보를 모두 저장해야 하고 정확한 지지도의 계산을 위해서 이전의 트랜잭션을 탐색해야 하는 경우가 있으므로 데이터 스트림의 방법으로 적합하지 않다.
Lossy Counting 알고리즘[21]에서는 빈발항목집합 탐색 과정에서 메모리 사용량을 일정 범위로 한정하여 빈발항목집합을 찾는다. 하지만 이 알고리즘에서는 높은 효율을 얻기 위해서는 그에 비례하여 메모리 공간을 사용해야 하며, 이는 마이닝 수행 시간 증가에 영향을 끼치게 된다. FP-stream 알고리즘[12]도 마찬가지로 빈발항목집합을 찾기 위해서 모든 빈발항목을 저장하는 구조로 이루어져 있기 때문에 데이터 집합의 성격에 따라 상당히 큰 공간과 시간이 요구될 수 있다.
온라인 데이터 스트림 환경에서 효율적인 빈발항목집합 탐색을 위해 이전 연구에서 estDec 방법[5]이 제안되었다. estDec 방법은 데이터 스트림을 구성하는 트랜잭션이 생성과 동시에 처리되며, 빈발항목집합 생성을 위한 후보집합 생성없이 전위트리 구조를 갖는 모니터링 트리를 이용하여 트랜잭션에 나타난 항목집합들의 출현 빈도수를 관리한다. estDec 방법은 지연 추가와 전지 작업을 통하여 빈발항목집합이 될 가능성이 있는 중요항목집합(significant itemset)만을 관리한다.
하지만 위와 같은 데이터 스트림 마이닝 알고리즘들은 빈발항목집합이 될 가능성이 있는 모든 항목을 저장하는 구조로 이루어져 있기 때문에 빈발항목집합의 크기에 따라 저장 공간과 시간이 많이 필요할 수 있으며, 데이터 스트림을 구성하는 트랜잭션의 평균 길이가 상당히 길 경우에는 마이닝 수행 자체가 불가능 할 수 있다.
1.2 빈발항목집합의 압축 관리 방법
폐쇄빈발항목집합(CFI)을 탐색하는 무손실 압축의 대표적인 알고리즘으로는 MOMENT 알고리즘[9]과 CFI-stream 알고리즘[17]이 있다. MOMENT는 closed enumeration tree (CET)라고 불리는 데이터 구조를 이용하여 데이터 스트림 슬라이딩 윈도우안의 CFI을 탐색한다. MOMENT는 infrequent gateway nodes, unpromising gateway nodes, intermediate nodes, closed nodes의 4가지 경우로 노드를 분리하여 관리하면서 CFI을 유지한다. CFI가 아닌 경우와 빈발하지 않은 항목집합까지 유지하는 경우가 있기 때문에 많은 메모리를 소모하며 트랜잭션의 발생할 때마다 어떤 타입의 노드인지 판단하는 데에 시간이 적지 않게 소비된다.
CFI-stream 알고리즘에서는 DIU (DIrect Update)라 불리는 데이터 구조를 이용하여 데이터 스트림 상의 모든 CFI들을 관리한다. 이런 특징 때문에 최소지지도에 관계없이 거의 비슷한 메모리 사용량과 수행 시간이 든다. 따라서 비교적 높은 최소 지지도에서는 기존의 다른 연구들보다 비효율적인 경우도 생긴다.
최대빈발항목집합(MFI)을 탐색하는 손실 근사 압축 방법으로는 MAFIA 알고리즘[4]과 estMax 알고리즘 [24] 이 있다. MAFIA는 깊이 우선 방식으로 항목집합의 부분 집합 래티스를 순회하며 PEP, FHUT, HUTMFI의 방법을 통해 탐색 공간 전지 작업(Search Space Pruning)을 한다. 이를 통해 다른 MFI을 탐색하는 기존 방법들보다 빠르게 동작하지만, 데이터 스트림 환경을 위한 알고리즘은 아니다.
estMax 알고리즘은 데이터 스트림 환경이지만, estDec 방법에 기초하고 있기 때문에 빈발항목이 될 가능성이 높은 모든 항목집합을 전위트리에 유지한다. 따라서 메모리 사용량이 estDec 방법과 같기 때문에 롱 트랜잭션 데이터 스트림 상에서는 estDec 방법과 같은 한계를 갖는다.
CP-Summary[1]는 빈발항목집합을 탐색한 후의 프로파일 집합을 압축하는 방법으로서 c-profile(conditional-profile)을 구성하여 X-compressible의 관계인 빈발항목집합을 압축한다. 하지만 이러한 방법은 많은 빈발항목집합을 압축하여 보여주는 것에 불과하기 때문에 롱 트랜잭션에서 빈발항목집합을 탐색을 수행하는 것은 역시 불가능 하다.
Dif-Tid 알고리즘[20], CT-Mine 알고리즘[13]은 빈발항목집합을 압축하는 목적이 아니라, 빈발항목집합의 탐색을 하는데 사용되는 메모리양을 줄이기 위해 압축을 하는 경우이다. 하지만 Dif-Tid 알고리즘은 항목을 bit로 변환하는 과정을 통해 메모리 사용량을 많이 줄이지만 여러 번 스캔이 요구되어 데이터 스트림 환경에 적합하지 않으며, CT-Mine 알고리즘의 경우는 전위 트리 상에서 같은 노드 패턴이 있을 경우 하나로 합쳐서 관리하는 방법으로 가장 긴 항목집합에 대한 하위 트리 구조는 유지하기 때문에 트랜잭션의 평균길이가 T 일 때, 전위트리가 최대 2T의 노드 개수를 갖는다면, CT-Mine은 최대 2T-1의 노드를 갖게 된다. 따라서 롱 트랜잭션 환경에서는 마이닝 수행에 한계가 있으며 이 역시 여러 번의 스캔이 요구되어 데이터 스트림 환경에 적합하지 않다.
[25]에서는 한정된 데이터 집합에 대한 빈발항목집합 탐색 방법인 RPglobal과 RPlocal이 소개되었다. 두 개의 항목집합 p와 p'이 있을 때, p가 p'의 부분집합(subset)이면서 두 항목집합 간의 유사성이 미리 정의한 δ(0 ≤δ≤ 1)이하일 경우 p가 δ-covered라고 하고 이러한 항목집합의 집합 P 를 δ-cluster라 한다. RPglobal과 RPlocal은 모든 빈발항목집합 대신에 그것들을 대표할 수 있는 빈발항목집합만을 탐색한다. RPglobal은 압축율이 뛰어나지만 계산복잡도가 높고 RPlocal은 압축의 효율이 떨어지게 되지만 더 효율적으로 동작한다. 대표할 수 있는 빈발항목집합은 δ값을 조절함으로서 그 수를 조절할 수 있다. 이 2가지 방법은 모두 여러 번의 데이터 집합 스캔이 요구 되기 때문에 데이터 스트림에 적합하지 않다.
CP-tree[19]는 이런 한계점을 보완하기 위해서 데이터 스트림 환경에서 마이닝을 수행하는 estDec 방법을 기반으로 하여 병합 임계값 δ(0 ≤δ≤ 1)를 두고 노드와 다른 노드의 지지도가 δ이내일 경우 노드 간의 병합을 통해 메모리 사용량을 줄이는 방법을 제안했다. 하지만 CP-tree의 경우에 노드 간의 병합이 일어나더라도 관리하는 항목의 개수는 크게 변하지 않기 때문에 노드의 개수가 줄어들더라도 메모리 사용량은 크게 변하지 않으며, 노드의 분할과 병합 과정에서 수행시간의 부담이 심해져서 속도가 매우 느리다는 단점이 있다.
제 2 장 PET 방법
이번 장에서는 본 발명의 실시예에서 제안하는 방법인 PET(Projection, mErge, and mining sTructure) 방법을 설명하기 위한 기본적인 스트림 데이터 마이닝에 대한 용어 정리와 PET 방법의 구성과 동작에 대하여 자세하게 설명한다.
PET 방법은 하나의 트랜잭션을 여러 개의 α-계층 전위트리로 나누어 마이닝 하기 때문에 유지 못하는 정보가 있으며 그것을 유지하기 위해서 병합 단계가 필요하다. 하지만 병합에서의 부담과 β-계층에서의 메모리 사용 부담을 줄이기 위해서 본 발명의 실시예에서는 ω-압축(ω-compression)방법을 제안한다. 본 장에서는 이러한 방법과 ω-압축의 복구 방법과 지지도 오차를 최소화하는 방법에 대하여 설명한다.
2.1 사전 정의
빈발항목집합 마이닝을 위한 데이터 스트림은 지속적으로 발생되는 트랜잭션의 무한집합으로 다음과 같이 정의 된다.
ii) 2I 가 항목집합 I 의 멱집합을 나타낼 때, 을 만족하는 e 를 항목집합(itemset)이라 하고, 항목집합의 길이 |e|는 항목집합 e 를 구성하는 항목의 수를 의미하며 임의의 항목집합 e 는 해당 항목집합의 길이에 따라 |e|-항목집합이라 정의한다. 일반적으로 3-항목집합 는 간단히 abc 로 나타낸다.
iii) 트랜잭션은 공집합이 아닌 I 의 부분집합이며 각 트랜잭션은 트랜잭션 식별자 TID 를 갖는다. k 번째 순서로 데이터 집합에 추가되는 트랜잭션을 Tk 라 나타내며 Tk 의 TID 는 k 이다.
iv) 새로운 트랜잭션 Tk 가 추가되었을 때 현재의 데이터 집합 Dk 는 현재까지 발생하여 추가된 모든 트랜잭션들 즉, Dk = <T1, T2, …, Tk>로 구성된다.
따라서 |Dk|는 현재 데이터 집합 Dk 에 포함된 트랜잭션의 총 수를 의미한다.
Tk를 현재 트랜잭션이라 할 때, 임의의 항목집합 e에 대한 현재 출현 빈도수를 Ck(e)라 정의하며 이는 현재까지의 k 트랜잭션에서 e가 포함된 트랜잭션의 수를 나타낸다. 이와 마찬가지로 항목집합 e의 현재 지지도 Sk(e)는 현재까지의 트랜잭션의 총 수 |Dk| 대비 항목집합 e의 출현 빈도수 Ck(e)의 비율로 정의한다. 항목집합 e의 현재 지지도 Sk(e)가 사전 정의된 최소 지지도 Smin 이상일 때, 항목집합 e를 현재 데이터 스트림 Dk에서의 빈발항목집합이라 정의한다.
2.2 PET 방법의 구성
관련 연구에서 기술한 estDec 방식의 전위트리와 CP-tree의 단점을 보완하기 위해 본 발명의 실시예에서는 새로운 빈발항목탐색 방법인 PET 방법을 제안한다. 이전의 연구에서는 하나의 전위트리가 하나의 데이터 스트림의 항목집합을 관리하는데 비해, PET 방법은 하나의 데이터 스트림을 m개의 데이터 스트림으로 분할하여 m개의 α-계층 전위트리를 통해 관리한다. 이때, 데이터 스트림을 분할할 때 분리되는 항목집합의 출현 빈도수를 유지하지 못하므로 전위트리 m개에서 Tk에 대해 생성되는 빈발항목집합을 압축 임계값 ω에 대해 압축하여 병합한 후, 병합된 튜플 결과를 다른 트리 구조인 β-계층 전위트리에서 관리한다. 이러한 마이닝 구조를 다음과 같이 정의한다.
정의 1. α-계층 (an alpha layer)
α-계층은 빈발항목집합을 탐색할 수 있는 m개의 전위트리로 구성되며 α-계층에는 여러 개의 독립적인 α-전위트리가 있고 1:N의 관계를 갖는다. TID가 k일 때 발생하는 트랜잭션 Tk가 반영된 m번째 α-계층 전위트리를 Pm.k라 할 때, α-계층은 다음과 같이 나타낸다.
α-계층 전위트리의 특정 위치를 명시하지 않은 경우에는 Pk라 한다.
정의 2. β-계층 (a beta-layer)
TID 가 k 일 때 발생하는 새로운 트랜잭션 Tk 가 생성되었을 때 β-계층 Bk 는 트리 구조로 다음과 같이 나타낸다.
1. β-계층 Bk 는 "null" 값을 가지는 하나의 루트노드를 가지며, 루트노드를 제외한 각 노드들은 i1,i2,…,ik 인 항목들이 있고 항목집합 e=i1i2…ik 일 때, e 에 해당하는 항목집합을 갖는다.
2. 항목집합 e=i1i2…ik 에 대하여 항목 i1,i2,…,ik 은 사전순으로 정렬되어 있으며, 루트노드로부터 임의의 노드 n 까지 경로상에 존재하는 노드들이 의 순서를 이루고 경로상의 임의의 노드 nj 가 항목집합 ek 를 갖는다고 할 때, 노드 n 은 항목집합 en = e1e2…evek 를 표현하며 en 의 현재 출현 빈도수 Ck(en)을 관리한다.
3. 각각의 노드는 다음과 같이 4 개의 필드로 구성된다. : 항목집합 e, 항목집합의 출현 빈도수 Ck(e), 각 노드의 자식 노드를 이어주는 링크, 갱신된 TID.
본 발명의 실시예에서는 정의 1에서 설명하고 있는 빈발항목집합을 탐색할 수 있는 전위 트리를 estDec 방식으로 관리되는 전위트리로 가정하고 진행한다. 각 알고리즘의 성격에 따른 조건을 설정한다면 FP-tree[15] 과 같은 정적인 데이터집합의 빈발항목집합 알고리즘뿐만 아니라 SWIM[22]이나 [6]과 같은 실시간 데이터 스트림 환경에서의 빈발항목집합 탐색 알고리즘이 위치할 수 있다.
도 1a는 β-계층 전위트리의 예로서 이 구조를 일반적인 전위 트리로 나타내면 도 1b와 같은 구조가 된다. 도 1a와 같은 β-계층 전위트리 구조에서는 두 레벨 이상을 하나의 노드로 합치는 효과를 얻을 수 있기 때문에 노드의 개수가 줄어드는 것을 알 수 있으며 그에 따라 메모리 사용량도 줄어들게 된다.
정의 3. 분할 트랜잭션 (projected transactions)
TID가 k일 때 발생하는 트랜잭션 Tk에 대해서 α-계층에서는 Tk를 분할하여 최대 α-계층 전위트리 개수만큼의 분할 트랜잭션 (projected transaction)을 생성한다. m번째 α-계층 전위트리에 발생되는 분할 트랜잭션 Tm.k은 다음과 같이 나타낼 수 있다.
Tk = T1.k ∪ T2.k ∪ … ∪ Tm.k
(단, m ≥ 2이며 T1.k ∩ T2.k ∩ … ∩ Tm.k = ø)
PET 방법은 α-계층과 병합 작업, 여러 개의 β-계층으로 구성되는 빈발항목집합 탐색 마이닝 구조로서 TID가 k일 때 발생되는 트랜잭션 Tk가 있을 때, 이 Tk는 α-계층에서 |α|개의 분할 트랜잭션 Tm.k으로 분할되고, 이 Tm.k은 각각 α-계층 전위트리 Pm.k에서 마이닝되며, 그 때 Pm.k에 Tm.k의 멱집합에 일치하는 빈발항목집합이 있을 경우에 병합 작업 단계를 통해 병합하게 된다. 병합된 결과 튜플은 β-계층에서 빈발항목집합을 탐색하는 과정을 거쳐 최종적으로 한 개의 β-계층이 있는 β-계층에서 Tk에 대한 빈발항목집합 탐색 과정은 끝나게 된다. 이 모든 과정을 거친 후의 빈발항목집합은 모든 계층의 모든 전위트리에서 탐색된 결과를 합쳐야 한다.
도 2는 PET 방법의 전체적인 구성을 나타내는 개념도이다.
도 3은 PET 방법의 예제로서 3개의 α-계층 전위트리 Pk로 구성되며 각 α-계층 전위트리는 각기 독립적으로 분리된 Dk를 처리하게 된다. 또한 α-계층과 β-계층 사이에 병합 작업 단계가 존재함을 알 수 있다. abcghxyz 라는 트랜잭션 Tk가 발생했을 때 Tk는 T1.k: abc, T2.k: gh T3.k: xyz 로 분할되어 각각 전위트리 P1.k, P2.k, P3.k 에서 마이닝되므로 분할된 트랜잭션에 대한 출현 빈도수 관리는 가능하지만 분할과정에서 항목과 항목이 분리되어 ag, abx와 같은 일부 항목집합의 출현 빈도수 관리는 불가능하다. 따라서 병합 작업을 수행하는 병합 작업 단계에서 분리된 항목집합을 병합한 결과 튜플을 β-계층의 마이닝 입력으로 하여 모든 빈발항목집합의 관리를 하고자 한다.
2.2 ω-압축 방법
앞서 설명한 것과 같이 α-계층의 m번째 α-전위트리 Pm.k에서 마이닝되는 분할 트랜잭션 Tm.k와 Pm-1.k에서 마이닝되는 m-1번째 분할 트랜잭션 Tm-1.k에 의해 분리되는 항목집합의 관리가 불가능하기 때문에 병합 작업이 필요하다. m번째 트랜잭션 Tm.k의 공집합을 제외한 멱집합에 해당하는 항목집합이 Pm.k-1에서 관리되는 빈발항목집합일 경우 병합 작업의 대상으로 한다. 이 때 Tm.k에 대한 빈발항목집합들의 최대 개수는 Tm.k의 공집합을 제외한 멱집합의 원소수와 같기 때문에 |α|가 α-계층 전위트리의 개수를 나타낸다면 |α|가 커질수록 빈발항목집합들의 개수도 |α| 제곱에 비례하여 많아지므로 병합 작업 및 β-계층의 마이닝 과정에서 메모리 사용량과 수행 시간에 큰 부담이 된다. 따라서 각 α-계층 전위트리 Pk에서 생성되는 빈발항목집합들을 압축하여 위와 같은 부담을 줄이고자 한다.
본 발명의 실시예에서 제시하는 압축 방법인 ω-압축(ω-compression)은 하나의 트랜잭션 Tk에 대해 Pk에서 생성된 빈발항목집합 x와 y가 상위집합(superset)과 부분집합(subset) 관계에 있으면서 지지도 차이가 ω (0 ≤ ω ≤ 1)일 경우, 상위집합 x만 의미 있는 항목집합으로 보고 부분집합 y를 반영하지 않는 방법이다.
정의 4. 압축항목집합 (compressed itemsets)
사전 정의된 압축 임계값 ω에 대해, 새로운 트랜잭션 Tk가 발생했을 때 생성되는 빈발항목집합을 x라고 하면 다음의 조건을 만족하는 x를 압축항목집합 CI(compressed itemsets)라고 정의한다.
|Ck(x) - Ck(y)| / |Dk| ≤ ω (단, y ⊂ x)
도 4는 도 3의 예제에서 Smin이 0.7, ω가 0.0일 때와 1.0일 때, T11 : abc가 발생하여 얻는 빈발항목집합에 대해 압축항목집합을 생성하는 예제이다. 도 4-(a)가 압축하려는 대상 빈발항목집합이라 할 때, 도 4-(b)는 ω가 0.0일 때 얻게 되는 압축항목집합으로 abc와 ab, bc, ac가 모두 0.7의 지지도로 ω차이가 0이므로 가장 상위집합인 abc로 압축이 된다. 또한 b, c는 0.8의 지지도로 ω차이가 0이긴 하지만 하위집합 관계가 아니므로 압축이 되지 않는다. 도 4-(c)는 ω가 1.0일 때 얻는 압축항목으로서 abc의 빈발항목집합이 다른 빈발항목집합들을 모두 포함할 수 있으므로 abc만 압축항목집합으로 남는다.
ω-압축은 빈발항목집합을 모두 출력한 후 지지도가 작은 순으로 정렬하여 그 다음 항목과 비교하면서 압축을 수행하는 방법이 가장 원시적인 방법이다. 지지도의 순서가 중요한 이유는 지지도가 큰 순서대로 다음 항목과 비교하게 되면 한번 압축되었을 때 압축항목집합이 대표하는 지지도가 낮아지게 되고 낮아진 지지도로 다음 항목과 비교하게 되므로 압축되지 않아야 할 항목들까지 연속적으로 압축되는 일이 가능해지기 때문이다. 따라서 처음부터 지지도가 작은 순서대로 압축하게 되면 비교하게 되는 지지도가 커지므로 연속적인 압축을 통해 일어나는 오차를 없앨 수 있다. 하지만 이런 방법을 사용할 경우 정렬 비용과 비교하는 비용의 증가가 |Tk|의 증가에 따라 지수비례하기 때문에 도 5의 알고리즘과 같이 깊이 우선 탐색 방법을 수정하여 사용할 수 있다.
정의 5. 생산도 (producability)
TID가 k일 때 분할 된 트랜잭션 Tm.k가 전위트리 Pm.k-1에 반영될 때, Tm.k의 개수와 Pm.k-1의 노드 중에 Tm.k의 공집합을 제외한 멱집합에 해당하는 항목집합이 Smin이상인 압축항목집합 개수의 비율로서 |CIm.k|가 TID가 k일 때 발생하는 압축항목집합들의 개수일 때, 다음과 같이 나타낼 수 있다.
producability(Tm.k) = |CIm.k|
이를 m번째 분할 데이터 스트림 Dm.k에 적용하면 다음과 같다.
producability(Dm.k) = (|CIm.1|+|CIm.2|+…+|CIm.k|) / |Dm.k|
허용되는 오차를 압축 임계값 ω라 할 때, 각 Pm.k에서 발생하는 빈발항목집합들을 ω에 대해 압축하여 생산도를 감소시킬 수 있다. 생산도의 감소는 병합 작업의 수행 시간과 병합 작업에서 생성되는 튜플의 수를 감소를 의미하며 이는 β-계층의 메모리 사용량과 수행 시간 감소에도 직접적인 영향을 끼친다. 이 때, 한 Tk에 대하여 producability(Tm.k)는 최대 2t-1(t = |Tm.k|)의 값을 갖기 때문에 병합 후의 최대 튜플 개수는 x|α| (x = (producability(T1.k) + producability(T2.k) + … + producability(T|α|.k)) / |α|)로 추정할 수 있고 |Tk|의 증가에 따라 병합 후의 튜플을 입력값으로 사용하는 β-계층에 있어서 큰 부담이 되며 병합 작업의 시간도 많이 걸리게 된다.
도 4를 통해서 ω가 커질수록 생산도가 낮아진다는 것을 알 수 있다. 또한 ω를 1.0에 가까울 정도로 크게 설정하면 모든 CIk의 원소가 단 하나의 압축항목집합으로 압축될 수 있으며 이 때의 최소 생산도는 producability(Tm.k) = 1이고 Producability(Dm.k) = |Dm.k|가 된다.
2.3 병합 작업 (Merge)
병합 작업 단계의 직전 계층에 속해 있는 전위트리의 개수가 m일 때 다음 단계인 병합 작업 단계에서는 TID가 k일 때 발생되는 트랜잭션 Tk에 의한 m개의 전위 트리에서 생성되는 압축항목집합 CIk간의 병합 작업을 수행한다. 병합 작업은 m개의 CIk를 한꺼번에 병합할 뿐만 아니라 m보다 작은 수의 CIk끼리도 모두 병합해야 하기 때문에 각 CIk에 빈 항목을 삽입하여 병합 작업을 수행한다. 이는 β-계층에서 출현빈도수 갱신시의 병합 결과 튜플의 모든 부분 집합을 순회하는 것이 수행 시간 증가에 영향을 끼치기 때문에 병합 작업에서 모든 부분 집합을 미리 생성하기 위함이다. 따라서 β-계층의 출현 빈도수 갱신 방법은 기존의 estDec 방법이나 CP-tree의 방법과 다르게 동작하게 되고 뒤에서 자세히 설명한다.
병합 작업은 각 첫 번째부터 m번째의 전위트리에서 생성된 CI1.k부터 CIm.k를 TID가 같은 압축항목집합 간에 연결(concatenation)하는 형태로 진행한다. 따라서 m이 3일 때, CI1.k의 개수가 5개, CI2.k의 개수가 2개 그리고 CI3.k의 개수가 5개라면 5 * 2 * 5 = 50개의 같은 TID를 가진 병합 결과 튜플이 발생하게 된다.
도 6-(a)는 |α|가 3일 때, 각 전위트리에서 생성된 빈발항목집합의 압축항목집합을 보여준다. 이 3개의 압축항목집합에 대해 병합 작업을 수행했을 때, 먼저 P1.k 에서 (empty), P2.k 에서 (empty), P3.k 에서 (empty)가 선택되어 (empty) 결과가 나오고, 그 후로 (empty) + (empty) + xy, (empty) + (empty) + xz, … 와 같이 P3.k 에 대해 모두 스캔을 한 후 P2.k 로 돌아와서 (empty) + g + (empty), (empty) + g + xy, (empty) + g + xz 와 같이 스캔을 수행하며 병합한다. 이렇게 재귀적으로 병합을 진행한 결과가 도 6-(b)이다. 결과 튜플에는 구분자 '+' 를 포함하며 이것은 이후 β-계층에서 노드의 갱신 및 관리에 이용할 수 있도록 각기 다른 전위트리에서 발생한 압축항목집합 구분이 가능하게 한다.
2.4 β-계층 전위트리를 이용한 빈발항목탐색
β-계층은 기존의 estDec 방법을 개선하여 설계된 방법으로 동작하며 estDec 방법을 기반으로 구성되지만 중요 항목집합의 관리를 위해 데이터 구조를 기존의 전위트리가 아닌 β-계층을 이용한다.
estDec 방법에서는 감쇄율을 적용하여 시간의 흐름에 따른 정보의 가중치를 다르게 유지함으로써 최근 빈발항목집합의 탐색이 가능하다. 본 발명의 실시예에서는 β-계층을 이용한 마이닝 방법 설명에 중점을 두기 위하여 감쇄율 적용 방법에 대한 상세한 설명은 생략한다. 하지만 전위트리를 이용한 estDec 방법에서와 같이 β-계층을 사용하는 방법에서도 감쇄율 적용을 통한 최근 빈발 항목집합의 탐색이 가능하다. 또한 estDec 방법과 같이 지연 추가와 전지 과정을 수행하지만 β-계층의 특성상 약간의 차이점이 존재한다.
정의 6. 부분트랜잭션 (sub-transactions)
Tk에 대한 병합의 결과 튜플로서 β-계층 전위트리에 적용되는 튜플들을 부분트랜잭션(sub-transaction) Uk라 한다. 따라서 복수 개의 부분트랜잭션 Uk는 모두 같은 k를 TID로 갖게 되며 다음과 같이 나타낸다.
β-계층의 관리는 estDec 방법과 유사하게 매개변수 갱신 단계, 출현 빈도수 및 노드 갱신 단계, 항목집합 추가 단계, 강제 전지 단계의 네 단계로 구성된다. 데이터 스트림 Dk-1에 새로운 부분트랜잭션 Uk가 발생하였을 때, 매개변수 갱신 단계와 강제 전지 단계를 제외한 두 단계는 순차적으로 수행되며, 매개변수 갱신 단계는 부분트랜잭션의 TID가 변할 때마다 수행되고, 강제 전지 단계는 사용자 요청에 따라 주기적으로 수행된다. 이들 각 단계에 관하여 설명하면 다음과 같다.
1단계) 매개변수 갱신: 데이터 스트림 Dk의 전체 트랜잭션 수를 갱신한다. 하나의 트랜잭션에서 복수의 부분트랜잭션이 생성되므로 부분트랜잭션이 발생할 때마다 트랜잭션 수를 갱신하지 않고, 부분트랜잭션의 TID가 달라질 때 즉, 부분트랜잭션의 TID가 아닌 실제 트랜잭션의 TID가 변경될 때 갱신한다.
2단계) 출현 빈도수 및 노드 갱신: 이 단계는 새로운 부분트랜잭션 Uk의 항목들의 사전적인 순서에 의해 Bk-1을 탐색하면서 수행된다. 이 때 부분트랜잭션의 모든 부분집합을 Bk-1을 깊이우선탐색의 방법으로 찾지 않고, 부분트랜잭션의 앞의 두 α-계층 전위트리에 해당하는 항목을 합치고, 그 후 항목들은 그대로 둔 채 Bk-1을 탐색한다. 이것은 β-계층의 1-레벨 노드는 α-계층을 구성하는 두 개의 전위트리 Pa.k, Pb.k에서 생성된 압축항목집합 CIa.k 와 CIb.k가 연결된 형태의 항목집합을 항목으로 가지며, 2-레벨 이상의 노드는 α-계층을 구성하는 하나의 전위트리 Pc.k에서 생성된 압축항목집합 CIc.k을 항목으로 갖기 때문이다. Bk-1의 탐색되는 각 노드에 대해서는 출현 빈도수를 증가시키고 현재의 TID를 저장함으로써 같은 TID를 가지고 들어오는 다음 부분트랜잭션의 영향을 받지 않도록 한다.
3단계) 항목집합 추가: 항목집합 추가 단계는 부분트랜잭션 Uk의 항목집합들 중 Bk-1에서 관리되지 않는 중요 항목집합들을 모니터링 트리에 새로 추가한다. β 전위트리는 α의 전위트리 Pk에서 지지도가 Smin 이상인 빈발항목만이 반영되므로 필터링 단계는 생략할 수 있다. estDec 방법과 유사하게 각 중요 n-항목집합 e = i1i2…in (n ≥ 3)를 표현하는 Bk의 노드 m은 e ∪ in+1 ∈ Uk인 (n+1)개의 α-계층 전위트리에서 생성된 빈발항목집합 e'에 대해 탐색되며 동시에 e'의 모든 n개의 α-계층 전위트리에서 생성된 빈발항목집합이 Bk-1에서 관리되는지 검사한다. 만약 이 조건을 모두 만족하면 새로운 중요항목집합 e'의 출현 빈도수 C(e')는 estDec 방법에서 설명된 추정 방법에 의해 추정되며 C(e') ≥ Ssig일 때 e'를 표현하기 위한 새로운 노드 w가 Bk에 삽입된다.
4단계) 강제전지 단계: 앞에서 언급한 바와 같이 β-계층은 α의 Pk에서 지지도가 Smin이상인 빈발항목집합으로 구성된 부분트랜잭션으로 발생시키므로 Ssig 이하가 되는 노드에는 갱신과정에서 접근할 수 없으며 따라서 주기적으로 강제 전지를 해주어서 불필요한 노드를 제거해 주어야 한다.
도 7은 도 6-(b)에서 보여준 병합 결과 튜플의 일부이며 도 8은 트랜잭션이 도 7과 같을 경우 β-계층의 생성과 관리 과정을 보여준다. 도 7의 U1(1)에 의해 도 8-(a)의 β-계층 B1이 구성된다. β-계층에서는 부분트랜잭션 Uk가 생성될 때 각 항목이 몇 번째 α-계층 전위트리 Pk에서 생성되었는지 파악할 수 있으므로 정의 4와 같이 두 개의 Pk에서 생성된 두 개의 압축항목집합을 연결한 형태를 첫번째 레벨의 항목으로 삽입한다. 예제에서는 3개의 Pk이므로 생성될 수 있는 항목은 abcg, abcxy, gxy의 3개(=3C2)이다. 그 다음 부분트랜잭션 U1(2)가 생성될 때는 먼저 출현 빈도수를 갱신하기 위해 트리를 탐색하는데 처음 두 Pk의 압축항목집합을 병합한 abcg에 해당하는 노드를 탐색하지만 갱신된 TID와 현재 TID가 같기 때문에 출현 빈도수 갱신은 일어나지 않는다. 그 다음 항목집합 추가 단계에서 abcxz와 gxz를 추가한 모습이 도 8-(b)이다. 도 8-(c)는 TID가 변하고 U2(1)이 처리된 후를 보여준다. 먼저 출현 빈도수의 갱신은 앞서 설명했듯이 처음 두 α-계층 전위트리로 구성되는 항목집합을 먼저 찾기 때문에 abcg를 찾아서 출현 빈도수를 갱신한다. 그 후 삽입 과정은 estDec 방식과 유사하게 이루어지므로 abcgxy의 부분 Pk로 구성되는 항목집합 abcg, gxy, abcxy가 Bk에 있는지 탐색한 후에 가장 작은 출현 빈도수를 초기화 과정에서 새로 만들어지는 노드 w의 빈도수로 추정하여 삽입하게 된다. 이러한 방식으로 갱신과 삽입을 반복하여 도 7의 모든 트랜잭션을 처리한 트리 B2는 도 8-(d)와 같다.
빈발항목집합의 탐색은 estDec 방법과 같이 깊이 우선 탐색으로 트리 Bk를 순회하며 각 노드의 지지도가 Smin 이상인 것을 추출하는 방법을 따르는데, Bk는 각 α-계층 전위 트리 간의 연결되는 항목집합만을 관리하는 구조이므로 모든 항목집합의 탐색을 위해서는 모든 α-계층 전위트리 Pk의 빈발항목집합도 포함시켜야 한다.
α-계층에서 ω압축이 ω > 0.0으로 되었을 경우 P1.k에 속해있던 빈발항목 e˚가 ω-압축에 의해 압축항목집합 e로 합쳐질 때 이것이 다른 Pm/k의 빈발항목집합 b와 병합한 e+b라는 항목집합이 β-계층에서 최소지지도보다 작은 지지도를 갖는 경우가 생길 수 있다. 즉, Sk(e˚+b) > Smin > Sk(e+b)와 같은 경우로서 압축을 하지 않았다면 빈발항목집합으로 탐색이 되었겠지만 압축을 했기 때문에 빈발항목집합이 되지 않는 경우로 이럴 경우에는 false negative가 발생할 수 밖에 없게 된다. 이러한 문제점 때문에 β-계층의 빈발항목 탐색시에는 데이터 스트림의 특성에 따라서 Smin - ω*ε (0 ≤ ε ≤ 1.0)의 최소지지도보다 약간 낮은 값으로 탐색을 수행할 수 있는데 ε의 증가에 따라 false negative는 줄어들지만 false positive는 늘어나게 된다. 이러한 특성을 고려하여 각 데이터 스트림에 따라 ε의 최적값을 정할 수 있다.
2.5 ω-압축의 복구 방법
PET 방법은 압축 임계값 ω를 이용하여 출현 빈도수를 압축하여 관리하므로 압축을 하지 않는 경우인 ω= -1일 때와 ω = 0.0 일 때만 정확한 출현 빈도수를 압축하여 관리할 수 있다. 따라서 ω > 0.0 일 경우에는 압축항목집합의 출현 빈도수를 통해 생성되는 출현 빈도수를 추정해야 한다. 압축항목집합 e˚ 을 항목으로 담고 있는 노드 m이 주어졌을 때, m에 의해서 생성될 수 있는 임의의 항목 e의 출현 빈도수 Ck(e)는 단순히 Ck(e˚)의 값을 사용함으로써 추정할 수 있다. α에서 이미 ω에 대해 압축을 한 상태이므로 이 경우에도 지지도의 최대 오차는 ω를 넘지 않으며 이는 다음과 같이 증명된다.
정리 1. 출현 빈도수 추정에 따른 최대 오차
β 전위트리의 임의의 노드 m의 항목 a˚ +b와 m에 의해 생성되는 임의의 항목 a+b에 대해서, a+b의 실제 지지도를 Sk(a+b)라 하고 해당 항목 a+b의 추정 지지도를 Sk(a˚ +b)라 할 때, e의 출현 빈도수 추정에 따른 최대 오차는 항상 |Sk(a+b) - Sk(a˚+b)| ≤ ω를 만족한다.
(증명) m의 항목을 각기 다른 전위트리 Pa.k, Pb.k 에서 생성된 항목 a가 압축된 a˚ 와 b가 결합한 a˚ +b라 할 때, Apriori 성질에 의하여 Sk max (a+b)은 다음과 같이 나타낼 수 있다.
Sk max(a+b) = min( Sk(a), Sk(b) )
a˚ +b의 지지도를 아래와 같이 표시할 때,
Sk max(a˚ +b) = min( Sk(a˚ ), Sk(b) )
Sk(a) - Sk(a˚ ) ≤ ω 이므로 다음과 같이 나타낼 수 있다.
Sk max(a˚ +b) = min( Sk(a)-ω, Sk(b) )
Sk max(a+b) - Sk max(a˚ +b) = min( Sk(a), Sk(b) ) - min( Sk(a)-ω, Sk(b) )
이며, 항상 Sk(a˚ ) ≤ Sk(a)가 성립하므로, 이 부등식과 Sk(b)와의 비교를 통해 증명한다.
① Sk(a˚ ) ≤ Sk(a) ≤ Sk(b) 일 때, Sk(a) -ω≤ Sk(a)이므로 Sk max(a+b) - Sk max(a˚ +b) = Sk((a) - Sk((a)+ω = ω
② Sk(b) ≤ Sk(a˚ ) ≤ Sk(a) 일 때, Sk max(a+b) - Sk max(a˚ +b) = Sk(b) - Sk(b) = 0
③ Sk(a˚ ) ≤ Sk(b) ≤ Sk(a) 일 때, Sk(a) - ω ≤ Sk(b) ≤ Sk(a) 이므로, Sk max(a+b) - Sk max(a˚ +b) = Sk(b) - Sk(a) + ω ≤ ω
따라서 Sk max(a+b) - Sk max(a˚ +b)의 최대 지지도 오차는 ω이며, |Sk(a+b) - Sk(a˚ +b)| ≤ ω 이 성립한다.
도 9는 위의 추정방법대로 수행하는 복구의 방법을 보여준다. ω 값이 클수록 더 많은 노드들이 압축되어 관리되므로 β-계층의 메모리 사용량이 줄어들지만 항목집합의 출현 빈도수 추정과정에서 발생하는 추정 오차는 커지게 된다.
위의 압축된 빈발항목집합에서 나머지 항목을 추정할 때에는 반드시 지지도가 큰 순서로 수행해야 한다. Antimonotone 성질에 의해 한 항목과 그 항목의 부분집합(subset)이 있을 때 부분집합의 지지도가 언제나 크거나 같기 때문에 지지도 순으로 수행하게 되면 Antimonotone 성질을 어기는 일이 없게 된다. 반대로 지지도가 작은 순서대로 부분집합을 생성하게 되면 가장 길이가 짧은 항목이 가장 작은 지지도를 갖고 그 다음으로 짧은 항목이 더 큰 지지도를 갖는 일이 가능해지므로 Antimonotone 성질에 어긋나게 된다.
도 9와 같은 방법으로 최대 오차 범위 내에서의 빈발항목집합 추정이 가능하지만, 지지도의 최대 오차가 클 경우에 구해진 빈발항목집합의 지지도의 오차가 클 수 밖에 없다. 따라서 지지도의 최대 오차 범위와 압축된 빈발항목집합의 지지도를 이용하여 추정된 빈발항목집합의 지지도도 최대 오차 범위보다 더 정밀하게 추정할 수 있다. 압축된 빈발항목집합의 노드 m의 지지도를 Sk(m)이라 할 때 이 m에 의해 추정되는 빈발항목집합 ei의 현재 지지도 Sk(ei)는 다음과 같이 구할 수 있다:
f(m, ω)가 m의 지지도 Sk(m)과 최대 오차 범위 ω에 기반하여 ei의 지지도 Sk(ei)를 추정하는 지지도 추정 함수라 할 때, ei의 지지도는 Sk(ei) = Sk(m) + f(m, ω)에 의해 추정할 수 있다. 여기서 추정 함수 f(m, ω)는 데이터 집합의 특성에 맞춰서 여러 가지 형태로 정의할 수 있다. 본 발명의 실시예에서는 다음과 같은 추정 함수를 정의한다. 항목의 길이 감소에 따른 출현 빈도수 증가량이 항목의 길이가 감소될수록 커지는 것으로 가정하며 이 때의 추정 함수를 f(m, ω)라 정의하고, 출현 빈도는 Sk(m) + ω 보다 커질 수 없다.
예제 1. β 전위트리의 임의의 노드 m이 관리하는 항목집합 ei 가 abcd이고 그 지지도가 0.3, ω가 0.1일 때 빈발항목집합 ab는 다음과 같이 추정될 수 있다.
Sk(e) = Sk(m) + f(m, ω) = Sk(m) + f(m, ω)
항목집합의 지지도 추정 과정으로 인해 β-계층에서 관리되는 항목집합의 지지도는 추정 오차를 포함하고, 추정 오차의 범위는 압축 임계값 ω에 의해 영향을 받는다. 따라서 ω가 커질수록 위와 같은 지지도 추정 함수의 사용이 효과적이며 데이터 스트림의 특성에 따라서 최적의 지지도 추정 함수가 존재할 수 있다.
제 3 장 결론
무한한 데이터 스트림 상의 빈발항목집합을 탐색하기 위해서 각 빈발항목들의 출현 빈도수를 효율적으로 관리하는 것이 중요한 고려사항이다. 특히 한정된 메모리에서 마이닝을 수행함으로써 데이터 스트림의 임의 시점에서 빠른 시간 내에 빈발항목집합의 결과를 얻는 것도 중요한 요구사항이다. 이러한 요구사항을 만족하기 위해 기존 연구에서 estDec 방법이 제안되었으나 이 방법에서는 데이터 스트림에 출현한 항목집합에 대하여 지지도가 Ssig 이상인 모든 부분집합을 관리함으로써 수행시간이 오래 걸리거나 메모리 사용량이 가용 메모리 공간을 초과하여 마이닝 작업을 수행 못하는 단점이 있었다. 이러한 단점을 보완하기 위하여 본 발명의 실시예에서는 새로운 마이닝 방법인 PET 방법과 이 방법에 쓰이는 구조. 그리고 β-계층의 관리 방법을 제안하였다. 하나의 전위트리로 하나의 데이터 스트림의 항목집합을 관리하는 기존의 방법과 달리 여러 개의 전위트리를 이용하여 하나의 데이터 스트림을 m개로 나누어 관리하고, 손실되는 정보만을 β-계층에서 관리함으로써 사용 메모리나 수행시간을 감소시킬 수 있다. 또한 ω-압축을 이용하여 β-계층의 메모리 사용량을 감소시키면서 최대 ω 만큼의 지지도 오차를 갖는 결과를 얻을 수 있다. 위와 같은 특징을 통해 롱 트랜잭션 데이터 스트림에서도 빈발항목집합 탐색이 가능하며, 지지도 오차 추정 함수와 최소 지지도 하한값을 이용하여 기존 데이터 스트림 상에서의 빈발항목집합 압축 관리 방법인 CP-tree의 결과보다 더 정확한 빈발항목집합을 탐색할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
< 참 고 문 헌 >
[1] Ardian Krestanto Poernomo, Vivekanand Gopalkrishnan, ""CP-Summary: A Concise Representation for Browsing Frequent Itemsets"", Proceedings of the 15th ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 678-696, 2009.
[2] R. Agrawal, R. Srikant, ""Fast Algorithms for Mining Assoiciation Rules"", In Proceedings of the 20th International Conference on Very Large Databases, pp.487-499, 1994.
[3] Y. Aumann, R. Feldman, O. Lipshtat, and H. Manilla. ""Borders: An Efficient Algorithm for Association Generation in Dynamic Databases"", In Journal of Intelligent Information System, vol. 12, no.1, pp. 61-73, 1999.
[4] Douglas Burdick, Manuel Calimlim, Jason Flannick, Johannes Gehrke, Tomi Yiu. ""MAFIA: A Maximal Frequent Itemset Algorithm"", In Proceedings of IEEE Transactions on Knowledge and Data Engineering, vol.17, no.11, pp. 1490-1504, 2005.
[5] J.H. Chang and W.S.Lee. ""Finding recent frequent itemsets adaptively over online data streams"", In Proceedings of the 9th ACM SIGKDD international conference on Knowledge Discovery and Data Mining, pp. 487-492, 2003.
[6] James Cheng, Yiping Ke, and Wilfred Ng, ""Maintaining Frequent Itemsets over High-Speed Data Stream"", In Proceedings of the The 10th Pacific-Asia Conference on Knowledge Discovery and Data Mining, pp. 462-467, 2006.
[7] D. Cheung, J. Han, V. Ng, and C.Y. Wong. ""Maintenance of Discovered Association Rules in Large Databases: An Incremental Updating Technique"", In Proceedings of the 12th International Conference on Data Engineering, pp. 106-114, 1996.
[8] D. Cheung, S.D. Lee, and B. Kao. ""A general Incremental Technique for Maintaining Discovered Association Rules"", In Proceedings of the 5th International Conference on Databases Systems for Advanced Applications, pp. 185-194, 1997.
[9] Yun Chi, Haixun Wang, Philip S. Yu, Richard R. Muntz. ""Moment: Maintaining Closed Frequent Itemsets over a Stream Sliding Window"", In Proceedings of the 4th IEEE International Conference on Data Mining, pp.59-66, 2004.
[10] M. Garofalakis, J. Gehrke and R. Rastogi. ""Querying and mining data streams: you only get one look"", In the tutorial notes of the 28th International Conference on Very Large Databases, 2002.
[11] V. Ganti, J. Gehrke, and R. Ramakrishnan. ""DAEMON: Mining and Monitoring Evolving Data"", In Proceedings of the 16th International Conference on Data Engineering, pp. 439-448, 2000.
[12] C. Giannella et al. ""Chapter3: Mining frequent patterns in data streams at multiple time granularities. In Data Mining: Next Generation Challenges and Future Directions"", AAAI/MIT Press, 2004.
[13] R. Gopalan, Y.G. Sucahyo, ""Fast Frequent Itemset Mining using Compressed Data Representation"", In Proceedings of IASTED International Conference on Databases and Applications, 2003.
[14] D. Gunopulos, H. Mannila, R. Khardon, and H. Toivonen, ""Data mining, hypergraph transversals, and machine learning"", In Proceedings of the 16th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pp. 209-216, 1997.
[15] J. Han, J. Pei, and Y. Yin, ""Mining frequent patterns without candidate generation"", In Proceedings of 19th ACM SIGMOD International Conference on Management of Data / Principles of Database Systems, pp. 1-12, 2000.
[16] C. Hidber. ""Online Association Rule Mining"", In Proceedings of the 21st International Conference on Very Large Data Bases, pp. 432-444, 1995.
[17] N. Jiang, and L. Gruenwald, ""CFI-Stream: Mining Closed Frequent Itemsets in Data Streams"", In Proceedings of 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp.592-597, 2006.
[18] KDDCUP2000. http://www.ecn.purdue.edu/KDDCUP.
[19] D.S. Lee and W.S. Lee. ""Finding Maximal Frequent Itemsets over Online Data Streams Adaptively"" In Proceedings of the 5th IEEE International Conference on Data Mining. pp.266-273, 2005.
[20] Mafruz Zaman Ashrafi, David Taniar, Kate A. Smith. ""An Efficient Compression Technique for Frequent Itemset Generation in Association Rule Mining"", in Proceedings of 9th Pacific-Asia Conference on Knowledge Discovery and Data Mining, pp.125-135, 2005.
[21] G.S. Manku and R. Motwani. ""Approximate Frequency Counts over Data Streams"", In Proceedings of the 28th International Conference on Very Large Data Bases, pp. 346-357, 2002.
[22] B. Mozafari, H. Thakkar, C. Zaniolo, ""Verifying and Mining Freqeunt Patterns from Large Windows over Data Streams"", In Proceedings of 24th International Conference on Data Engineering, pp. 179-188, 2008.
[23] N. Pasquier, Y. Bastide, R. Taouil, and L. Lakhal, ""Discovering frequent closed itemsets for association rules"", In Proceedings of 15th International Conference on Database Theory, pp. 398-416, 1999.
[24] H. J. Woo & W. S. Lee. ""estMax: Tracing Maximal Frequent Item Sets Instantly over Online Transactional Data Streams"", In Journal of IEEE Transactions on Knowledge and Data Engineering, vol. 21, no.10, pp. 1418-1431, 2009.
[25] D. Xin, J. Han, X. Yan, and H. Cheng. ""On compressing frequent patterns"", In Journal of Data and Knowledge Engineering, vol. 60, no.1, pp. 5-29, 2007.
[26] Z. Zheng , R. Kohavi , L. Mason, ""Real world performance of association rule algorithms"", In Proceedings of the 7th ACM SIGKDD international conference on Knowledge discovery and data mining, pp.401-406, 2001.
Claims (15)
- 데이터 스트림으로부터 빈발항목집합을 탐색하는 방법에 있어서,
(a) 발생하는 트랜잭션을 분할하여 복수 개의 분할 트랜잭션을 생성하는 단계;
(b) 상기 복수 개의 분할 트랜잭션 각각을 복수 개의 제1 계층 전위 트리를 이용하여 마이닝하는 단계;
(c) 상기 제1 계층 전위 트리에서 생성되는 빈발항목집합을 압축하여 압축항목집합을 생성하는 단계; 및
(d) 상기 생성된 압축항목집합을 병합하고, 상기 병합된 압축항목집합을 제2 계층 전위 트리를 이용하여 마이닝하는 단계를 포함하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제2항에 있어서,
상기 (b) 단계에서, Pm.k에 대응하는 분할 트랜잭션 Tm.k는 다음 수학식을 만족하는 것을 특징으로 하는 빈발항목집합 탐색 방법.
Tk = T1.k ∪ T2.k ∪ … ∪ Tm.k (단, 여기서 T1.k ∩ T2.k ∩ … ∩ Tm.k = ø) - 제1항에 있어서,
상기 (c) 단계 및 (d) 단계는, 상기 (b) 단계에서 상기 제1 계층 전위트리에 상기 분할 트랜잭션의 멱집합에 일치하는 빈발항목집합이 있을 경우에 수행되는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제3항에 있어서,
상기 (c) 단계는,
상기 제1 계층 전위트리에서 생성된 빈발항목집합 x 와 y 가 상위집합과 부분집합 관계에 있으면서 지지도 차이가 미리 설정된 임계값 ω(0 ≤ ω ≤ 1) 보다 작은 경우 상기 압축항목집합을 생성하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제2항에 있어서,
상기 (d) 단계에서의 상기 압축항목집합의 병합은,
첫번째 제1 계층 전위트리에서 생성된 압축항목집합부터 m번째 제1 계층 전위트리에서 생성된 압축항목집합을 연결하는 형태로 수행되는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제6항에 있어서,
새로운 트랜잭션 Tk가 생성되었을 때의 상기 제2 계층 전위 트리를 Bk로 나타내고, 상기 압축항목집합의 병합 결과 생성되는 튜플을 부분트랜잭션 Uk라 할 때,
상기 (d) 단계는, 상기 Uk의 항목들의 사전적인 순서에 의해 Bk-1을 탐색하면서 수행하는 출현 빈도수 및 노드 갱신 단계를 포함하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제7항에 있어서,
상기 출현빈도수 및 노드 갱신 단계는, 상기 부분트랜잭션의 두 제1 계층 전위트리에 해당하는 항목을 합치고, 상기 Bk-1을 탐색하면서 탐색되는 각 노드에 대해서 출현 빈도수를 증가시키는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제7항에 있어서,
상기 (d) 단계는, 상기 Uk의 항목집합들 중 상기 Bk-1에서 관리되지 않는 중요 항목집합들을 상기 제2 계층 전위 트리에 새로 추가하는 항목집합 추가 단계를 더 포함하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제1항에 있어서,
깊이 우선 탐색으로 상기 제2 계층 전위 트리를 순회하며 각 노드의 지지도가 사전 정의된 최소 지지도 이상인 노드를 추출하는 빈발항목집합 탐색 단계를 더 포함하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제10항에 있어서,
상기 빈발항목집합 탐색 단계는, 상기 제1 계층 전위트리의 항목집합을 포함시켜 빈발항목집합을 탐색하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제11항에 있어서,
상기 제2 계층 전위 트리에서의 빈발항목집합 탐색은 상기 제1 계층 전위트리에서의 빈발항목집합 탐색보다 같거나 낮은 최소 지지도를 가지고 빈발항목집합을 탐색하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제5항에 있어서,
ω > 0 인 경우에, 압축항목집합을 항목으로 가지고 있는 노드에 의해서 생성될 수 있는 임의의 항목의 출현 빈도수를 추정하는 단계를 더 포함하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제13항에 있어서,
상기 임의의 항목의 출현 빈도수를 추정하는 단계는, 상기 압축항목집합의 출현 빈도수의 값을 상기 임의의 항목의 출현 빈도수로 사용함으로써 추정하는 것을 특징으로 하는 빈발항목집합 탐색 방법. - 제1항 내지 제14항 중 어느 한 항에 기재된 빈발항목집합 탐색 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100004391A KR101105363B1 (ko) | 2010-01-18 | 2010-01-18 | 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법 |
US13/008,686 US20110184922A1 (en) | 2010-01-18 | 2011-01-18 | Method for finding frequent itemsets over long transaction data streams |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100004391A KR101105363B1 (ko) | 2010-01-18 | 2010-01-18 | 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110084698A KR20110084698A (ko) | 2011-07-26 |
KR101105363B1 true KR101105363B1 (ko) | 2012-01-16 |
Family
ID=44309740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100004391A KR101105363B1 (ko) | 2010-01-18 | 2010-01-18 | 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110184922A1 (ko) |
KR (1) | KR101105363B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160066219A (ko) | 2014-12-02 | 2016-06-10 | 세종대학교산학협력단 | 스트림 환경의 감쇄 윈도우 및 근접 프루닝 기반 최신 빈발 패턴 유지 방법, 이를 수행하는 최신 빈발 패턴 유지 서버 및 이를 저장하는 기록매체 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2495106B (en) | 2011-09-28 | 2020-09-09 | Metaswitch Networks Ltd | Searching and storing data in a database |
US9563669B2 (en) * | 2012-06-12 | 2017-02-07 | International Business Machines Corporation | Closed itemset mining using difference update |
WO2014084849A1 (en) * | 2012-11-30 | 2014-06-05 | Hewlett-Packard Development Company, L.P. | Distributed pattern discovery |
US20160212158A1 (en) * | 2013-08-28 | 2016-07-21 | Hewlett Packard Enterprise Development Lp | Distributed pattern discovery |
US20160253366A1 (en) * | 2013-10-15 | 2016-09-01 | Hewlett Packard Enterprise Development Lp | Analyzing a parallel data stream using a sliding frequent pattern tree |
KR102295769B1 (ko) | 2014-05-20 | 2021-08-30 | 삼성전자주식회사 | 스토리지 컨트롤러 및 상기 스토리지 컨트롤러의 동작 방법 |
US9672495B2 (en) | 2014-12-23 | 2017-06-06 | Sap Se | Enhancing frequent itemset mining |
CN106371917B (zh) * | 2016-08-23 | 2019-07-02 | 清华大学 | 面向实时频繁项集挖掘的加速系统及方法 |
US9973789B1 (en) | 2017-05-23 | 2018-05-15 | Sap Se | Quantifying brand visual impact in digital media |
CN107609110B (zh) * | 2017-09-13 | 2020-12-04 | 深圳大学 | 基于分类树的最大多样频繁模式的挖掘方法及装置 |
CN109033419B (zh) * | 2018-08-06 | 2022-03-11 | 西北工业大学 | 一种多源数据流频繁情节挖掘方法及装置 |
CN109783464B (zh) * | 2018-12-21 | 2022-11-04 | 昆明理工大学 | 一种基于Spark平台的频繁项集挖掘方法 |
US11036741B2 (en) | 2019-03-01 | 2021-06-15 | International Business Machines Corporation | Association rule mining system |
CN112231438B (zh) * | 2020-09-08 | 2023-12-15 | 西北工业大学 | 一种闭项集及生成子挖掘方法及装置 |
CN112818226B (zh) * | 2021-01-28 | 2023-02-28 | 和美(深圳)信息技术股份有限公司 | 数据处理方法、推荐方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070055675A (ko) * | 2005-11-28 | 2007-05-31 | 이원석 | 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위트리와 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 |
KR100899144B1 (ko) | 2007-10-26 | 2009-05-27 | 연세대학교 산학협력단 | 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치 |
KR20100099378A (ko) * | 2009-03-03 | 2010-09-13 | 충북대학교 산학협력단 | 대용량 트랜잭션 데이터베이스 환경에서 효율적인 빈발 항목 집합 탐색 방법 |
-
2010
- 2010-01-18 KR KR1020100004391A patent/KR101105363B1/ko not_active IP Right Cessation
-
2011
- 2011-01-18 US US13/008,686 patent/US20110184922A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070055675A (ko) * | 2005-11-28 | 2007-05-31 | 이원석 | 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위트리와 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 |
KR100899144B1 (ko) | 2007-10-26 | 2009-05-27 | 연세대학교 산학협력단 | 데이터 스트림으로부터 최대 빈발항목집합을 탐색하는 방법및 장치 |
KR20100099378A (ko) * | 2009-03-03 | 2010-09-13 | 충북대학교 산학협력단 | 대용량 트랜잭션 데이터베이스 환경에서 효율적인 빈발 항목 집합 탐색 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160066219A (ko) | 2014-12-02 | 2016-06-10 | 세종대학교산학협력단 | 스트림 환경의 감쇄 윈도우 및 근접 프루닝 기반 최신 빈발 패턴 유지 방법, 이를 수행하는 최신 빈발 패턴 유지 서버 및 이를 저장하는 기록매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20110084698A (ko) | 2011-07-26 |
US20110184922A1 (en) | 2011-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101105363B1 (ko) | 롱 트랜잭션 데이터 스트림을 위한 빈발항목집합 탐색 방법 | |
KR100812378B1 (ko) | 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터 스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법 | |
US10498357B2 (en) | Method, apparatus, system, and computer program product for data compression | |
CN103412917B (zh) | 一种可扩展的多类型领域数据协调管理的数据库系统和管理方法 | |
US7912818B2 (en) | Web graph compression through scalable pattern mining | |
JP5092165B2 (ja) | データ構築方法とシステム | |
Yen et al. | A fast algorithm for mining frequent closed itemsets over stream sliding window | |
Tseng | Mining frequent itemsets in large databases: The hierarchical partitioning approach | |
KR101105736B1 (ko) | 대용량 트랜잭션 데이터베이스 환경에서 효율적인 빈발 항목 집합 탐색 방법 | |
US8140546B2 (en) | Computer system for performing aggregation of tree-structured data, and method and computer program product therefor | |
Bramandia et al. | On incremental maintenance of 2-hop labeling of graphs | |
Woon et al. | A support-ordered trie for fast frequent itemset discovery | |
Shah et al. | Incremental mining of association rules: A survey | |
Alsaeedi et al. | An Incremental Interesting Maximal Frequent Itemset Mining Based on FP‐Growth Algorithm | |
Jaysawal et al. | Sohupds: a single-pass one-phase algorithm for mining high utility patterns over a data stream | |
Motur et al. | FREQUENT ITEMSET MINING ALGORITHMS: A SURVEY. | |
Ansari et al. | TFI-Apriori: Using new encoding to optimize the apriori algorithm | |
CN112148830A (zh) | 一种基于最大区域网格的语义数据存储与检索的方法及装置 | |
Chiu et al. | Incremental mining of closed inter-transaction itemsets over data stream sliding windows | |
Eltabakh et al. | Incremental mining for frequent patterns in evolving time series datatabases | |
Lin et al. | A rapid incremental frequent pattern mining algorithm for uncertain data | |
Seyfi et al. | Mining discriminative itemsets in data streams | |
KR101793005B1 (ko) | 정적 및 동적 데이터베이스에 대한 점진적 하이 유틸리티 패턴 마이닝 방법 | |
Van et al. | An expanded prefix tree-based mining algorithm for sequential pattern maintenance with deletions | |
Dhabu et al. | Cardinality statistics based maximal frequent itemsets mining |
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: 20150713 Year of fee payment: 4 |
|
R401 | Registration of restoration | ||
FPAY | Annual fee payment |
Payment date: 20160105 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |