KR20190103918A - System and method for large-scale frequent pattern mining on distributed systems - Google Patents

System and method for large-scale frequent pattern mining on distributed systems Download PDF

Info

Publication number
KR20190103918A
KR20190103918A KR1020180096301A KR20180096301A KR20190103918A KR 20190103918 A KR20190103918 A KR 20190103918A KR 1020180096301 A KR1020180096301 A KR 1020180096301A KR 20180096301 A KR20180096301 A KR 20180096301A KR 20190103918 A KR20190103918 A KR 20190103918A
Authority
KR
South Korea
Prior art keywords
candidate
item set
frequent
distributed system
item
Prior art date
Application number
KR1020180096301A
Other languages
Korean (ko)
Other versions
KR102098253B1 (en
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 재단법인대구경북과학기술원
Publication of KR20190103918A publication Critical patent/KR20190103918A/en
Application granted granted Critical
Publication of KR102098253B1 publication Critical patent/KR102098253B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

According to one embodiment of the present invention, provided is a frequent pattern mining method of a distributed system, comprising the steps of: determining a candidate (k + 1) -item set using a frequent k-item set; calculating partial supports of the candidate (k + 1) -item set using bitmap chunks distributed in the distributed system; summing the partial supports of the candidate (k + 1) -item set; and determining a frequent (k + 1) -item set based on the summation of the partial supports.

Description

분산 시스템 기반 큰 규모 빈발 패턴 마이닝 시스템 및 방법 {SYSTEM AND METHOD FOR LARGE-SCALE FREQUENT PATTERN MINING ON DISTRIBUTED SYSTEMS}Distributed system based large frequency pattern mining system and method {SYSTEM AND METHOD FOR LARGE-SCALE FREQUENT PATTERN MINING ON DISTRIBUTED SYSTEMS}

본 발명은 데이터에서 빈발 패턴(frequent pattern)을 마이닝(mining) 하는 방법에 관한 것으로, 보다 구체적으로 맵리듀스(MapRedcue) 기법을 이용하여 분산 저장된 대용량의 데이터베이스를 분산 처리하여 대용량의 트랜잭션 데이터베이스에서 빈발 패턴을 빠르게 마이닝 연산하는 것이 가능한 시스템 및 방법에 관한 것이다.The present invention relates to a method of mining a frequent pattern in data. More specifically, the present invention relates to a method of mining frequent patterns in a distributed transaction database by using a MapRedcue technique. The present invention relates to a system and a method capable of quickly mining an equation.

IT 기술의 발달과 인터넷의 등장과 함께 축적되는 데이터의 양은 기하급수적으로 증가하고 있다. 이러한 거대한 데이터에서 유용한 정보를 추출하는 것은 어려워지고 있다. 이를 해결하기 위한 노력으로 데이터 마이닝 기법들이 연구 개발되고 있다.The amount of data accumulated with the development of IT technology and the emergence of the Internet is increasing exponentially. It is becoming difficult to extract useful information from such huge data. In order to solve this problem, data mining techniques are being researched and developed.

데이터 마이닝 기법들 중에서 빈발 패턴 마이닝(frequent pattern mining)은 데이터에서 빈발하게 나타나는 패턴들을 찾아내는 기법이다. 빈발 패턴 마이닝은 항목 집합 열거 트리(itemset lattice)를 깊이 우선 방식(depth-first search)이나 너비 우선 방식(breadth-first search)으로 탐색하면서 중간 결과 패턴들을 메모리에 구체화(materialize) 시키면서 중간 결과 패턴들의 지지도(support)가 최소 지지도(minimum support)보다 크거나 같은지 검사하므로, 기본적으로 지수 시간 복잡도를 가질 수 있다. 더욱이 데이터의 양이 증가함에 따라서 빠르게 빈발 패턴을 찾는 방법들이 중요해지고 있다.Among the data mining techniques, frequent pattern mining is a technique for finding frequent patterns in data. Frequent pattern mining searches the itemset enumeration tree in depth-first or breadth-first search, while materializing the intermediate result patterns in memory, Since it checks whether the support is greater than or equal to the minimum support, it can basically have exponential time complexity. Moreover, as the amount of data increases, methods for finding frequent patterns quickly become important.

분산 시스템을 이용한 빈발 패턴 마이닝 시스템은 여러 대의 머신에 데이터를 분산 저장하고 이와 동시에 여러 대의 머신을 동시에 이용하여 분산 처리 함으로써, 단일 머신 기반의 방법들이 처리할 수 있는 데이터보다 큰 데이터에 대하여 빈발 패턴 마이닝을 수행하는 것이 가능할 수 있다.The frequent pattern mining system using a distributed system distributes and stores data on multiple machines and simultaneously distributes them using multiple machines, so that frequent pattern mining is performed for data larger than the data that a single machine-based method can handle. It may be possible to do this.

종래의 분산 시스템을 기반한 빈발 패턴 마이닝 시스템은 단일 머신의 메모리 혹은 디스크보다 큰 입력 데이터를 처리하는 것이 가능한 장점이 있으나, 기존 분산 시스템을 이용한 방법들은 높은 작업량 불균형 분배(workload skewness), 큰 크기의 중간 결과(large-scale intermediate data), 네트워크 통신 부하(communication overhead)로 인하여 속도가 느린 문제점이 있다. 또한, 머신의 개수가 증가하여 분할되는 파티션의 개수가 증가할 경우 머신 간의 데이터 중복이 증가하여 빈발 패턴 마이닝 성능이 저하되는, 즉 머신의 개수의 증가에 따른 규모 확장성이 좋지 않은 문제점이 있다. The frequent pattern mining system based on the conventional distributed system has the advantage of processing the input data larger than the memory or disk of a single machine, but the methods using the conventional distributed system have a high workload skewness and a large medium size. There is a problem that is slow due to large-scale intermediate data and network communication overhead. In addition, when the number of partitions increases due to the increase in the number of machines, there is a problem in that data redundancy between the machines increases, so that the frequent pattern mining performance is degraded, that is, the scale is poor due to the increase in the number of machines.

본 발명은 전술한 문제점을 해결하기 위하여 제안된 것으로, 큰 규모(Large-Scale)의 데이터에서 효과적으로 빈발 패턴을 추출하는 것이 가능한 시스템 및 방법을 제공하고, 처리 데이터의 규모 및 시스템에 포함되는 머신의 개수에 따른 규모 확장성(scalable) 성능을 가지는 시스템 및 방법을 제공하는 데 목적이 있다. The present invention has been proposed to solve the above-described problems, and provides a system and method capable of effectively extracting frequent patterns from large-scale data, and the scale of the processed data and the system included in the system. It is an object of the present invention to provide a system and method having scalable performance in accordance with the number.

일 측에 따른 분산 시스템의 빈발 패턴 마이닝 방법은 빈발 k-항목 집합을 이용하여 후보 (k+1)-항목 집합을 결정하는 단계; 상기 분산 시스템에 분산 저장된 비트맵 청크들을 이용하여 상기 후보 (k+1)-항목 집합의 부분 지지도들을 계산하는 단계; 상기 후보 (k+1)-항목 집합의 부분 지지도들을 합산하는 단계; 및 상기 부분 지지도들의 합산 결과에 기초하여 빈발 (k+1)-항목 집합을 결정하는 단계를 포함한다.A frequent pattern mining method of a distributed system according to one side includes determining a candidate (k + 1) -item set using a frequent k-item set; Calculating partial supports of the candidate (k + 1) -item set using bitmap chunks distributed in the distributed system; Summing partial supports of the candidate (k + 1) -item set; And determining a frequent (k + 1) -item set based on the result of the sum of the partial supports.

상기 빈발 패턴 마이닝 방법은 상기 빈발 (k+1)-항목 집합을 상기 분산 시스템에 브로드캐스트(broadcast) 하는 단계를 더 포함할 수 있다.The frequent pattern mining method may further include broadcasting the frequent (k + 1) -item set to the distributed system.

상기 분산 시스템은 상기 비트맵 청크들에 대응하는 복수의 매퍼들을 포함할 수 있다. 상기 후보 (k+1)-항목 집합의 부분 지지도들을 계산하는 단계는 상기 비트맵 청크들 각각을 해당하는 매퍼로 로드(load)하는 단계; 상기 복수의 매퍼들 각각에서, 해당하는 비트맵 청크에 포함된 비트 벡터들의 AND 연산을 통해 상기 후보 (k+1)-항목 집합에 포함된 후보 (k+1)-항목들의 비트 벡터들을 계산하는 단계; 및 상기 복수의 매퍼들 각각에서, 해당하는 비트 벡터들에 기초하여 상기 후보 (k+1)-항목 집합의 부분 지지도를 계산하는 단계를 포함할 수 있다.The distributed system may include a plurality of mappers corresponding to the bitmap chunks. Computing the partial supports of the candidate (k + 1) -item set includes loading each of the bitmap chunks into a corresponding mapper; In each of the plurality of mappers, bit vectors of candidate (k + 1) -items included in the candidate (k + 1) -item set are calculated through an AND operation of bit vectors included in a corresponding bitmap chunk. step; And calculating, at each of the plurality of mappers, partial support of the candidate (k + 1) -item set based on corresponding bit vectors.

상기 빈발 (k+1)-항목 집합을 결정하는 단계는 상기 후보 (k+1)-항목 집합에 포함된 복수의 후보 (k+1)-항목들 중 부분 지지도를 합산한 지지도가 미리 정해진 최소 지지도 이상인 후보 (k+1)-항목을 상기 빈발 (k+1)-항목 집합에 포함시키는 단계를 포함할 수 있다.The determining of the frequent (k + 1) -item set may include: a predetermined minimum support of a plurality of candidate (k + 1) -items included in the candidate (k + 1) -item set; And including the candidate (k + 1) -item with support or higher in the frequent (k + 1) -item set.

상기 빈발 패턴 마이닝 방법은 상기 후보 (k+1)-항목 집합이 존재하지 않을 경우, 상기 빈발 패턴 마이닝을 종료하는 단계를 더 포함할 수 있다.The frequent pattern mining method may further include terminating the frequent pattern mining when the candidate (k + 1) -item set does not exist.

상기 부분 지지도들을 합산하는 단계는 상기 후보 (k+1)-항목 집합에 포함된 복수의 후보 (k+1)-항목들 중 동일한 후보 (k+1)-항목에 해당하는 부분 지지도 값들이 동일한 리듀서로 전달되도록, 상기 부분 지지도들을 셔플(shuffle)하는 단계를 더 포함할 수 있다.The adding of the partial support may include partial support values corresponding to the same candidate (k + 1) -item among a plurality of candidate (k + 1) -items included in the candidate (k + 1) -item set. Shuffle the partial supports to be delivered to a reducer.

상기 후보 (k+1)-항목 집합을 결정하는 단계는 상기 분산 시스템에 브로드캐스트 된 상기 빈발 k-항목 집합을 수신하는 단계; 및 상기 빈발 k-항목 집합에 포함된 복수의 빈발 k-항목들을 조합함으로써, 후보 (k+1)-항목들을 결정하는 단계를 포함할 수 있다.Determining the candidate (k + 1) -item set comprises receiving the frequent k-item set broadcast to the distributed system; And determining candidate (k + 1) -items by combining a plurality of frequent k-items included in the frequent k-item set.

상기 빈발 패턴 마이닝 방법은 상기 분산 시스템에 분산 저장된 데이터들에 포함된 복수의 항목들을 미리 정해진 방식으로 분할하는 단계; 상기 분할된 항목들에 기반한 패턴들을 결정하는 단계; 및 상기 분산 저장된 데이터들 각각에 대응하는 매퍼를 이용하여, 해당하는 데이터에 포함된 상기 패턴들을 나타내는 비트 벡터들을 결정함으로써 해당하는 매퍼를 위한 비트맵 청크를 생성하는 단계를 더 포함할 수 있다. 상기 항목들은 빈발 1-항목 집합(FREQUENT 1-ITEM SET)에 해당할 수 있다.The frequent pattern mining method may include: dividing a plurality of items included in data distributed and stored in the distributed system in a predetermined manner; Determining patterns based on the divided items; And generating a bitmap chunk for the corresponding mapper by determining bit vectors representing the patterns included in the corresponding data, using the mapper corresponding to each of the distributed and stored data. The items may correspond to a frequent 1-item set.

상기 비트맵 청크는 키-값(key-value) 구조를 갖고, 상기 키(key)는 상기 패턴들에 대응되는 항목 집합이고, 상기 값(value)는 상기 비트 벡터들을 포함할 수 있다. 상기 비트맵 청크들은 서로 동일한 키를 갖을 수 있다.The bitmap chunk has a key-value structure, the key is a set of items corresponding to the patterns, and the value may include the bit vectors. The bitmap chunks may have the same key.

상기 비트맵 청크를 생성하는 단계는 상기 분산 저장되어 있는 데이터를 입력으로 하여, 상기 분할된 빈발 1-항목 집합의 조합에 대응하는 비트 벡터들을 결정하는 단계를 포함할 수 있다.The generating of the bitmap chunk may include determining bit vectors corresponding to the combination of the divided frequent 1-item sets by using the distributed stored data as an input.

상기 비트맵 청크를 생성하는 단계는 상기 해당하는 데이터를 라인별로 나누어 수신하는 단계; 및 상기 라인의 수에 대응되는 비트 수로 구성되고, 상기 라인에 상기 데이터가 존재할 경우 제1 논리 값을, 존재하지 않을 경우 제2 논리 값을 갖도록 상기 비트 벡터를 결정하는 단계를 포함할 수 있다.The generating of the bitmap chunk may include receiving the corresponding data by dividing the corresponding data by line; And a bit number corresponding to the number of lines, and determining the bit vector to have a first logical value when the data exists in the line and a second logical value when there is no data in the line.

일 측에 따른 빈발 패턴 마이닝을 위한 분산 시스템은 빈발 k-항목 집합을 이용하여 후보 (k+1)-항목 집합을 결정하고, 상기 분산 시스템에 분산 저장된 비트맵 청크들을 이용하여 상기 후보 (k+1)-항목 집합의 부분 지지도들을 계산하는 매퍼 모듈; 및 상기 후보 (k+1)-항목 집합의 부분 지지도들을 합산하여, 빈발 (k+1)-항목 집합을 결정하는 리듀서 모듈을 포함한다.The distributed system for frequent pattern mining according to one side determines a candidate (k + 1) -item set using a frequent k-item set, and uses the bitmap chunks distributed in the distributed system to store the candidate (k +). 1) -mapper module for calculating partial supports of the set of items; And a reducer module that adds the partial support of the candidate (k + 1) -item set to determine a frequent (k + 1) -item set.

상기 리듀서 모듈은 상기 빈발 (k+1)-항목 집합을 상기 분산 시스템에 브로드캐스트(broadcast) 할 수 있다.The reducer module may broadcast the frequent (k + 1) -item set to the distributed system.

상기 매퍼 모듈에 포함된 매퍼들 각각은 해당하는 비트맵 청크를 로드(load)하고, 해당하는 비트맵 청크에 포함된 비트 벡터들의 AND 연산을 통해 상기 후보 (k+1)-항목 집합에 포함된 후보 (k+1)-항목들의 비트 벡터들을 계산하며, 해당하는 비트 벡터들에 기초하여 상기 후보 (k+1)-항목 집합의 부분 지지도를 계산할 수 있다.Each of the mappers included in the mapper module loads a corresponding bitmap chunk and is included in the candidate (k + 1) -item set through an AND operation of bit vectors included in the corresponding bitmap chunk. Compute bit vectors of candidate (k + 1) -items, and calculate partial support of the candidate (k + 1) -item set based on the corresponding bit vectors.

상기 리듀서 모듈은 상기 후보 (k+1)-항목 집합에 포함된 복수의 후보 (k+1)-항목들 중 부분 지지도를 합산한 지지도가 미리 정해진 최소 지지도 이상인 후보 (k+1)-항목을 상기 빈발 (k+1)-항목 집합에 포함시킬 수 있다.The reducer module selects a candidate (k + 1) -item whose support, which is the sum of partial support of the plurality of candidate (k + 1) -items included in the candidate (k + 1) -item set, is greater than or equal to a predetermined minimum support. It can be included in the frequent (k + 1) -item set.

상기 후보 (k+1)-항목 집합에 포함된 복수의 후보 (k+1)-항목들 중 동일한 후보 (k+1)-항목에 해당하는 부분 지지도 값들은 상기 리듀서 모듈 내 동일한 리듀서로 전달될 수 있다.Partial support values corresponding to the same candidate (k + 1) -item among a plurality of candidate (k + 1) -items included in the candidate (k + 1) -item set may be delivered to the same reducer in the reducer module. Can be.

본 발명에 따른 분산 시스템을 이용한 큰 규모 데이터 빈발 패턴 마이닝 시스템 및 방법은 메인 메모리보다 작은 데이터는 물론이고, 종래 기술에서 제안하고 있지 아니한 전처리 단계(pre-computation phase)를 통하여, 단일 머신의 메모리 혹은 디스크보다 큰 규모의 트랜잭션 데이터와 후보 항목 집합 데이터를 데이터의 규모 및 시스템에 포함되는 머신들의 개수에 따라 규모 가변적(scalable) 성능으로 처리하는 것이 가능한 효과가 있다. The large-scale data frequent pattern mining system and method using the distributed system according to the present invention, as well as data smaller than the main memory, through a pre-computation phase not proposed in the prior art, the memory of a single machine or It is possible to process transaction data and candidate item set data larger than a disk with scalable performance according to the size of the data and the number of machines included in the system.

즉, 트랜잭션 데이터인 비트맵 청크와 후보 항목 집합 데이터를 각 머신들에 메모리 문제없이 적재하고, 마이닝 연산 중에 중간 결과를 생성하지 않는 방법을 제안함으로써, 메인 메모리보다 큰 규모의 데이터를 처리하는 경우에도 우수한 성능으로 빈발 패턴 마이닝을 처리하는 것이 가능하다.That is, even when processing data larger than main memory by suggesting a method of loading bitmap chunks and candidate item set data, which are transaction data, into each machine without a memory problem and generating an intermediate result during a mining operation. It is possible to handle frequent pattern mining with good performance.

따라서, 본 발명은 큰 데이터로부터 얻은 패턴 결과물을 이용해 네트워크 서비스, 웹 서비스, 비즈니스 인텔리전스, 생명 과학, 신경 과학 등 데이터 처리의 매우 다양한 분야에 적용되어, 분산 시스템을 사용하는 데이터 스트리밍 처리 실현이 가능하다.Therefore, the present invention is applied to a wide variety of data processing such as network services, web services, business intelligence, life sciences, neurosciences, and the like by using pattern outputs obtained from large data, so that data streaming processing using distributed systems can be realized. .

본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to those mentioned above, and other effects that are not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 일 실시예에 따른 분산 시스템을 이용한 데이터 빈발 패턴 마이닝 시스템을 도시한 블록도.
도 2는 일 실시예에 따른 분산 시스템을 이용한 데이터 빈발 패턴 마이닝 시스템의 전체 동작을 도시한 도면.
도 3은 일 실시예에 따른 전처리 방법을 도시한 순서도.
도 4는 일 실시예에 따른 전처리 단계를 도시한 도면.
도 5는 일 실시예에 따른 하둡 기반 분산 시스템의 빈발 패턴 마이닝 방법을 도시한 순서도.
도 6은 일 실시예에 따른 비트맵 청크를 이용해서 빈발 2-항목 집합을 구하는 방법을 도시한 도면.
도 7은 일 실시예에 따른 비트맵 청크를 이용해서 빈발 3-항목 집합을 구하는 방법을 도시한 도면.
1 is a block diagram illustrating a data frequent pattern mining system using a distributed system according to an exemplary embodiment.
2 is a diagram illustrating an overall operation of a data frequent pattern mining system using a distribution system according to an exemplary embodiment.
3 is a flowchart illustrating a pretreatment method according to an embodiment.
4 illustrates a preprocessing step according to one embodiment.
5 is a flowchart illustrating a frequent pattern mining method of a Hadoop-based distributed system according to an embodiment.
FIG. 6 illustrates a method of obtaining a frequent two-item set using a bitmap chunk according to an embodiment. FIG.
FIG. 7 illustrates a method of obtaining a frequent 3-item set using a bitmap chunk according to an embodiment. FIG.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, various changes may be made to the embodiments so that the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, and substitutes for the embodiments are included in the scope of rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of description and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described on the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components regardless of reference numerals will be given the same reference numerals and duplicate description thereof will be omitted. In the following description of the embodiment, when it is determined that the detailed description of the related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

데이터 마이닝(Data Mining)은 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 것이다. 데이터를 마이닝 하는 과정에서 얻어진 패턴들은 데이터의 특성을 분석하거나 의사결정을 위해 필요한 정보를 얻는데 활용되고 웹 데이터, 고객 데이터, 제품 데이터 및 교통과 통신 데이터 등 다양한 실제 데이터(Real Data) 분석에도 활용될 수 있다.Data mining is the systematic and automatic discovery of statistical rules or patterns in large amounts of stored data. Patterns from the data mining process can be used to analyze the characteristics of data or to obtain the information necessary for decision making, and to analyze various real data such as web data, customer data, product data, and traffic and communication data. have.

패턴 마이닝은 중요한 데이터 마이닝의 연구 분야 중에 하나로서, 지지율을 기반으로 중요한 연관 규칙, 즉 패턴을 찾아내는 기술이다. 빈발 패턴들은 데이터 집합에서 빈번하게 발생하는 패턴들이다. 빈발 패턴 마이닝을 통해 데이터베이스에서 지지도(Support) 임계치 이상의 지지도를 가지는 모든 패턴들을 찾아낼 수 있다.Pattern mining is one of the major areas of data mining research, and it is a technique for finding important association rules, or patterns, based on support rates. Frequent patterns are patterns that occur frequently in a data set. Frequent pattern mining can find all patterns in the database that have support above the support threshold.

빈발 패턴 마이닝을 통해 주어진 데이터 집합에서 재귀 관계(recurring relationships)를 찾을 수 있다. 빈발 패턴 마이닝의 일 예인 장바구니 분석(market basket analysis)이 표 1에 나타나 있다.Frequent pattern mining can find recurring relationships in a given data set. Market basket analysis, an example of frequent pattern mining, is shown in Table 1.

고객번호Customer number 맥주(i1)Beer (i1) 땅콩(i2)Peanut (i2) 후추(i3)Pepper (i3) 커피(i4)Coffee (i4) 달걀(i5)Egg (i5) 우유(i6)Milk (i6) t1t1 1One 1One 1One 00 00 00 t2t2 1One 00 1One 1One 00 00 t3t3 1One 00 1One 00 1One 00 t4t4 00 1One 00 00 1One 1One t5t5 00 00 1One 1One 00 1One

표1은 각 상품의 구매여부를 1과 0으로 표시하여 이진벡터(데이터)로 나타낸 것이다.표 1에 따르면, 5명의 고객이 상품을 구입한 목록을 볼 수 있다. 트랜잭션(transaction)은 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아 놓은 것으로, 데이터베이스에서 논리적인 작업의 단위일 수 있다. 예를 들어, 고객마다 구입한 상품의 수와 종류가 다른데, 한 고객이 구입한 상품 모두에 대한 처리를 하였을 때, 이를 트랜잭션 데이터를 하나 처리하였다고 할 수 있다.k개의 항목을 갖는 항목 집합을 k-항목 집합이라고 할 수 있다. 예를 들어 {맥주, 땅콩}은 2-항목 집합일 수 있다.Table 1 shows the purchase or non-purchase of each product as a binary vector (data). According to Table 1, a list of five customers who bought a product can be seen. A transaction is a collection of operations in a database that are required to perform a single task. A transaction can be a logical unit of work in a database. For example, if the number and type of goods purchased are different for each customer, when a customer processes all the purchased goods, it can be said to process one transaction data. It can be called an item set. For example, {beer, peanut} can be a two-item set.

최소 지지도(minimum support) 이상을 갖는 항목 집합을 빈발 항목 집합(frequent itemset)이라 할 수 있다. 표 1을 참조하면, 최소 지지도가 3인 경우, 트랜잭션 데이터에서 3번 이상 동시에 나타나는 {맥주, 후추} 항목 집합은 빈발 항목 집합(frequent itemset)일 수 있다. An item set having a minimum support or more may be referred to as a frequent itemset. Referring to Table 1, when the minimum support is 3, the {beer, pepper} item set that appears three or more times in the transaction data may be a frequent itemset.

빈발 k-항목 집합은 상기 데이터에서 미리 정해진 최소 지지도 이상 반복되는 데이터의 항목 집합 중, k개의 항목을 갖는 항목 집합일 수 있다. 예를 들어, {맥주, 후추} 항목 집합은 트랜잭션 데이터에서 3번 이상 동시에 나타나고, 2개의 항목을 갖는 빈발 항목 집합이기 때문에, 빈발 2-항목 집합일 수 있다. {맥주}, {후추} 항목 집합은 트랜잭션 데이터에서 3번 이상 나타나고, 1개의 항목을 갖는 빈발 항목 집합이기 때문에 빈발 1-항목 집합일 수 있다.The frequent k-item set may be an item set having k items among the item sets of data repeated over a predetermined minimum support degree in the data. For example, the {beer, pepper} item set may be a frequent two-item set because it appears at least three times in transaction data simultaneously and is a frequent item set having two items. The {beer} and {pepper} item sets may be frequent 1-item sets because they appear more than three times in the transaction data and are frequent item sets with one item.

표 1을 참조하면, 데이터베이스가 총 n개의 트랜잭션 데이터로 구성되며, 전체 m개의 항목을 포함하고 있을 때, 모든 상품들의 항목 집합을 i={i1, i2, ... , im}라 하고 모든 고객 트랜잭션들의 집합을 T={t1, t2, ... , tn}이라 표현할 수 있다.Referring to Table 1, when a database consists of a total of n transaction data and contains a total of m items, the item set of all products is i = {i1, i2, ..., im} and all customers A set of transactions can be expressed as T = {t1, t2, ..., tn}.

도 1은 일 실시예에 따른 분산 시스템을 이용한 빈발 패턴 마이닝 시스템을 도시한 블록도이다.1 is a block diagram illustrating a frequent pattern mining system using a distribution system according to an exemplary embodiment.

도 1을 참조하면, 일 실시예에 따른 분산 시스템을 이용한 데이터 빈발 패턴 마이닝 시스템(100)은 이전 단계에서 계산된 빈발 (k-1)-항목 집합들을 분산 시스템 내의 모든 머신에 복제시키는 데이터 복제 컨트롤러(120)와 복수 개의 머신들(140, 150, 160)을 포함할 수 있다. 머신(140)은 저장된 비트 벡터 데이터를 이용해 후보 항목 집합의 부분 지지도(partial support)를 구하는 마이닝 모듈(141)과 디스크(disk)(143)를 포함할 수 있고, 디스크(143)는 사전(145), 비트맵 청크1(147)를 포함할 수 있다. 분산 시스템을 이용한 데이터 빈발 패턴 마이닝 시스템(100)은 분산 시스템에서 마이닝 모듈들을 관리하는 마이닝 모듈 컨트롤러(110)와 상기 계산된 후보 항목 집합의 부분 지지도를 동기화하는 동기화매니저(130)를 포함할 수 있다.Referring to FIG. 1, a data frequent pattern mining system 100 using a distributed system according to an exemplary embodiment may include a data replication controller for replicating frequent (k-1) -item sets calculated in a previous step to all machines in a distributed system. 120 and a plurality of machines 140, 150, and 160. The machine 140 may include a mining module 141 and a disk 143 that obtain partial support of a set of candidate items using the stored bit vector data, the disk 143 being a dictionary 145. ), It may include a bitmap chunk 1 147. The data frequent pattern mining system 100 using a distributed system may include a mining module controller 110 for managing mining modules in a distributed system and a synchronization manager 130 for synchronizing partial support of the calculated candidate item set. .

각 머신에서 맵퍼는 후보 항목 집합을 생성하고 비트맵 청크를 이용하여 후보 항목 집합의 부분 지지도를 구할 수 있다. 리듀서는 부분 지지도를 합산하여 전체 데이터에 대한 후보 항목 집합의 지지도를 구하여 빈발 항목 집합을 구할 수 있다.On each machine, the mapper can create a set of candidate items and use bitmap chunks to get partial support for the set of candidate items. The reducer can obtain the frequent item set by adding the partial support and obtaining the support of the candidate item set for the entire data.

일 실시예에 따른 시스템은 하둡 기반 분산 시스템을 포함할 수 있다.The system according to an embodiment may include a Hadoop based distributed system.

도 1의 분산 시스템을 이용한 데이터 빈발 패턴 마이닝 시스템(100)의 각 구성들은 아래에서 자세히 서술하겠다.Each configuration of the data frequent pattern mining system 100 using the distributed system of FIG. 1 will be described in detail below.

도 2는 일 실시예에 따른 분산 시스템을 이용한 데이터 빈발 패턴 마이닝 시스템의 전체 동작을 도시한 도면이다.2 is a diagram illustrating an overall operation of a data frequent pattern mining system using a distributed system according to an exemplary embodiment.

종래 대부분의 패턴 마이닝 방법들은 중간 데이터를 생성하여 재사용함으로써 계산량을 줄이는 방법을 이용한다. 종래 패턴 마이닝 방법들은 트랜잭션 데이터베이스의 크기가 증가하거나 중간 규모가 커지는 경우에 메모리 부족으로 인하여 마이닝 연산 자체가 실패하는 경향이 있다.Most of the conventional pattern mining methods use a method of reducing computational amount by generating and reusing intermediate data. Conventional pattern mining methods tend to fail the mining operation itself due to insufficient memory when the size of the transaction database increases or grows medium.

도 2를 참조하면, 일 실시예에 따른 분산 시스템을 이용한 데이터 빈발 패턴 마이닝 시스템은 위에서 언급한 문제를 해결하기 위해서 맵리듀스(MapReduce) 기법을 이용하여 분산 저장된 대용량의 데이터베이스에서 미리 구해진 패턴(pattern)들에 대응되는 비트 벡터(bit vector)들을 생성하여 분산 저장하는 전처리 단계(pre-computation phase)(210)와 저장된 비트 벡터를 이용하여 빈발 패턴을 찾는 단계(finding Fk phase)(250)를 통하여 단일 머신의 메모리 혹은 디스크보다 큰 규모의 데이터를 처리할 수 있다.Referring to FIG. 2, a data frequent pattern mining system using a distributed system according to an embodiment may include a pattern obtained in advance from a large-capacity database that is distributed and stored using a MapReduce technique to solve the above-mentioned problem. the through a bit vector (bit vector), the pre-treatment step (pre-computation phase) for distributed storage to produce 210 and finding the frequency pattern using the stored bit vector (finding F k phase) (250) corresponding to Can handle data larger than a single machine's memory or disk.

실시예에 따르면 미리 구해진 패턴들에 대응되는 비트 백터를 분산 저장 시스템에 저장하기 위해서, 비트맵 청크(bitmap chunk)라는 데이터 포맷(format)을 제안한다. 입력 트랜잭션 데이터베이스 D가 {D1, D2, …, Dn}으로 나뉘어 분산 저장되었다고 가정할 수 있다. 각 머신은 분할된 데이터 Di를 메모리에 적재하고 Di와 관련된 비트맵 청크 TCi를 생성할 수 있다. 비트맵 청크는 키-값(key-value)구조를 따를 수 있다. 키(key)는 미리 계산된 항목 집합이고, 값(value)은 항목 집합과 관련된 비트 벡터일 수 있다.According to an embodiment, in order to store bit vectors corresponding to previously obtained patterns in a distributed storage system, a data format called bitmap chunk is proposed. The input transaction database D is {D 1 , D 2 ,... , D n } can be assumed to be distributed and stored. Each machine can load the partitioned data D i into memory and generate a bitmap chunk TC i associated with D i . Bitmap chunks may follow a key-value structure. The key is a precalculated set of items and the value may be a bit vector associated with the set of items.

전처리 단계(210)에서는 맵퍼(230)를 이용하여 각 맵퍼에게 할당 받은 데이터(220)에 관련된 비트맵 청크(240)를 생성하여 각 디스크에 저장할 수 있다. In the preprocessing step 210, the bitmap chunk 240 related to the data 220 allocated to each mapper may be generated using the mapper 230 and stored on each disk.

빈발 패턴을 찾는 단계(250)에서, 맵퍼(230)는 후보 항목 집합들을 생성하고, 자신과 관련된 비트맵 청크(240)를 읽어서 부분 지지도를 구한 후에, 리듀서(260)로 보내어 부분 지지도를 합산함으로써 빈발 패턴(270)을 구할 수 있다.In the step 250 of finding frequent patterns, the mapper 230 generates candidate item sets, reads the bitmap chunk 240 associated with itself to obtain partial support, and then sends it to the reducer 260 to sum up the partial support. The frequent pattern 270 can be obtained.

빈발 패턴을 찾는 단계(250)에서, 각 디스크에 저장된 비트맵 청크(240)는 네트워크를 통해서 이동되지 않을 수 있다. 대신 비트맵 청크보다 작은 크기의 빈발 패턴(270)만 네트워크를 통해 이동되기 때문에, 네트워크 오버헤드는 무시할 수 있을 정도로 작을 수 있다.In operation 250, the bitmap chunk 240 stored in each disk may not be moved through the network. Instead, network overhead can be negligibly small because only frequent patterns 270 of a size smaller than the bitmap chunk are moved through the network.

도 3은 일 실시예에 따른 전처리 방법을 도시한 순서도이다.3 is a flowchart illustrating a pretreatment method according to an exemplary embodiment.

일 실시예에 따른 전처리 방법은 분산 저장되어 있는 데이터를 수신하는 단계, 분산 저장되어 있는 데이터를 입력으로 하여, 미리 정해진 패턴들에 대응하는 비트 벡터들로 구성된 비트맵 청크를 출력하는 단계, 비트맵 청크를 분산 시스템의 각 디스크에 분산 저장하는 단계를 포함한다.A preprocessing method according to an embodiment may include receiving data that is distributed and stored, outputting a bitmap chunk composed of bit vectors corresponding to predetermined patterns by receiving the data that is distributed and stored, and a bitmap. Distributedly storing the chunks on each disk of the distributed system.

빈발 패턴을 찾는 단계에서 입력 트랜잭션 데이터베이스를 직접 마이닝 하는 대신, 전처리 단계에서 생성되어 각 디스크에 저장된 비트맵 청크를 이용하여 데이터 마이닝을 하기 때문에, 전처리 단계는 데이터 마이닝에 적합한 미리 정해진 패턴들에 대응하는 비트맵 청크를 생성하는 것을 목표로 할 수 있다.Instead of directly mining the input transaction database in the step of finding frequent patterns, the preprocessing step corresponds to predetermined patterns suitable for data mining, because the data is mined using bitmap chunks created in the preprocessing step and stored on each disk. You can aim to generate bitmap chunks.

데이터 마이닝에 적합한 미리 정해진 패턴들에 대응하는 비트맵 청크를 생성하기 위해, 미리 정해진 패턴들은 미리 정해진 개수의 조각으로 분할될 수 있고, 이에 따라 비트맵 청크도 미리 정해진 개수 만큼 분할될 수 있다.In order to generate bitmap chunks corresponding to predetermined patterns suitable for data mining, the predetermined patterns may be divided into a predetermined number of pieces, and thus, the bitmap chunks may also be divided by a predetermined number.

일 실시예에 따르면, 미리 정해진 패턴은 빈발 1-항목 집합을 이용하여 생성될 수 있다.According to one embodiment, the predetermined pattern may be generated using a frequent 1-item set.

도 3을 참조하면, 일 실시예에 따른 전처리 방법은 분산 저정된 데이터를 로드하는 단계(310), 분산 저장된 데이터를 스캔하는 단계(315), 빈발 1-항목 집합을 구하는 단계(330), 조각을 생성하는 단계(335), 각 조각 별 모든 항목 집합 P를 조합하는 단계(340), P의 비트 벡터를 계산하는 단계(345), 파티션에 대한 P의 비트 벡터를 저장하는 단계(350)를 포함할 수 있다.Referring to FIG. 3, the preprocessing method according to an exemplary embodiment includes loading 310 stored data, scanning 315 distributed data, and obtaining a frequent 1-item set 330. Generating 335, combining all sets of items P for each piece (340), calculating a bit vector of P (345), and storing a bit vector of P for a partition (350). It may include.

빈발 1-항목 집합을 구하는 단계(330)는 1-항목 집합의 부분 지지도를 구하는 단계(320), 1-항목 집합의 부분 지지도를 합산하는 단계(325)를 포함할 수 있다.Obtaining a frequent 1-item set 330 may include obtaining 320 a partial support of the 1-item set, and adding up 325 of the partial support of the 1-item set.

도 4는 일 실시예에 따른 전처리 단계를 도시한 도면이다.4 is a diagram illustrating a pretreatment step according to an exemplary embodiment.

도 4를 참조하면, 입력 트랜잭션 데이터베이스 D가 {D1(410), D2(420)}로 나뉘어 분산 저장되었다고 가정할 수 있다. 각 디스크에 분산 저장된 D1(410), D2(420)는 각각 3개의 트랜잭션 데이터로 구성되며, 전체 {A, B, C, D, E} 5개의 항목을 포함하고 있다.Referring to FIG. 4, it may be assumed that the input transaction database D is divided and stored in {D 1 410 and D 2 420}. D 1 410 and D 2 420 distributed and stored on each disk are composed of three transaction data, and each includes five items {A, B, C, D, E}.

빈발 1-항목 집합(430)은 1-항목 집합의 부분 지지도를 구하고, 1-항목 집합의 부분 지지도를 합산하여 구할 수 있다.The frequent 1-item set 430 may be obtained by calculating partial support of the 1-item set and summing partial support of the 1-item set.

빈발 1-항목 집합(430)을 구하기 위해 1-항목 집합의 부분 지지도를 구해보면, D1(410)의 {A}는 2, {B}는 3, {C}는 0, {D}는 3, {E}는 2의 부분 지지도를 갖고, D2(420)의 {A}는 2, {B}는 2, {C}는 0, {D}는 1, {E}는 1의 부분 지지도를 갖는다. 1-항목 집합의 부분 지지도를 합산하면 {A}는 4, {B}는 5, {C}는 0, {D}는 4, {E}는 3의 지지도를 갖는다.To obtain the partial support of the 1-item set to obtain the frequent 1-item set 430, {A} of D 1 410 is 2, {B} is 3, {C} is 0, and {D} is 3, {E} has a partial support of 2 , D 2 420 has {A} of 2, {B} of 2, {C} of 0, {D} of 1, and {E} of 1 Have support. When the partial support of the 1-item set is summed, {A} has 4, {B} is 5, {C} is 0, {D} is 4, and {E} is 3 support.

최소 지지도가 3이라 가정할 때, 빈발 1-항목 집합(430)는 3의 지지도 이상인 항목 집합 {A, B, D, E}일 수 있다.Assuming that the minimum degree of support is three, the frequent one-item set 430 may be an item set {A, B, D, E} that is greater than or equal to three.

일 실시예에 따른 빈발 1-항목 집합(430)을 이용하여 비트맵 청크를 생성할 수 있다. 비트맵 청크1(TC1)(440)은 D1(410)을 이용해서 생성되었고, 비트맵 청크2(TC2)(460)는 D2(420)를 이용해서 생성될 수 있다.A bitmap chunk may be generated using the frequent 1-item set 430 according to an embodiment. Bitmap chunk 1 (TC 1 ) 440 may be generated using D 1 410, and bitmap chunk 2 (TC 2 ) 460 may be generated using D 2 420.

빈발 1-항목 집합(430)을 미리 정해진 크기로 분할하여 복수개의 조각들을 생성하고, 이를 이용하여 비트맵 청크를 생성할 수 있다.The frequent 1-item set 430 may be divided into a predetermined size to generate a plurality of pieces, and a bitmap chunk may be generated using the pieces.

예를 들어, 빈발 1-항목 집합 F1(430)이 {A, B, D, E}일 때, 조각의 크기(Q)가 2라고 가정할 수 있다. 조각의 크기가 2이기 때문에, 빈발 1-항목 집합(430)을 두 개의 조각 {A, B}(431), {D, E}(432)으로 나눌 수 있다. 다른 예로, 빈발 1-항목 집합 F1이 {A, B, C, D, E, F}, 조각의 크기(Q)가 3이라면, {A, B, C}, {D, E, F} 두 개의 조각으로 나눌 수 있다.For example, when the frequent one-item set F 1 430 is {A, B, D, E}, it may be assumed that the size Q of the piece is two. Since the size of the pieces is two, the frequent one-item set 430 can be divided into two pieces {A, B} 431, {D, E} 432. As another example, if the frequent 1-item set F 1 is {A, B, C, D, E, F}, and the size of the piece (Q) is 3, then {A, B, C}, {D, E, F} It can be divided into two pieces.

일 실시예에 따른 각 머신의 맵퍼(480, 490)는 분산 저장되어 있는 데이터를 입력으로 하여, 조각마다 조각에 포함되는 모든 빈발 1-항목 집합을 조합하고, 조합된 항목 집합의 비트 벡터를 미리 계산하여 비트맵 청크를 출력할 수 있다. The mapper 480 and 490 of each machine according to an embodiment inputs distributed data, combines all frequent 1-item sets included in each piece for each piece, and previews a bit vector of the combined item set in advance. Can compute and output bitmap chunks.

예를 들어, 맵퍼(480)에 D1(410)을 입력으로 하여, 조각(431, 432)마다 조각(431, 432)에 포함되는 모든 빈발 1-항목 집합의 조합(441, 442)에 대응하는 비트 벡터들(451, 452)로 구성된 비트맵 청크1(TC1)(440)를 출력할 수 있다. 맵퍼(480)는 D1(410)에 기초하여, {A, B}(431) 조각에 포함된 빈발 1-항목 집합인 {A}와 {B}를 이용하여 {A}, {B} {A, B} 항목 집합(441)과, 각각에 대응하는 비트 벡터(451)를 생성할 수 있다. {D, E}(432) 조각도 마찬가지로 D1(410)에 기초하여, {A, B}(431) 조각에 포함된 빈발 1-항목 집합인 {D}와 {E}를 이용하여 {D}, {E} {D, E} 항목 집합(442)과, 각각에 대응하는 비트 벡터(452)를 생성할 수 있다. For example, inputting D1 410 into the mapper 480 corresponds to the combination 441, 442 of all frequent 1-item sets included in the pieces 431, 432 for each piece 431, 432. The bitmap chunk 1 (TC 1 ) 440 including the bit vectors 451 and 452 may be output. The mapper 480 uses {A} and {B} {A} and {B}, which is a frequent one-item set included in the {A, B} 431 fragment, based on D 1 410. A, B} item sets 441 and bit vectors 451 corresponding to the item sets 441 may be generated. {D, E} 432 fragments are similarly based on D 1 410, using {D} and {E}, the frequent 1-item sets included in {A, B} 431 fragments. , A {E} {D, E} item set 442 and a bit vector 452 corresponding to each may be generated.

마찬가지로 맵퍼(490)에 D2(420)을 입력으로 하여, 조각(431, 432)마다 조각(431, 432)에 포함되는 모든 빈발 1-항목 집합의 조합(461, 462)에 대응하는 비트 벡터들(471, 472)로 구성된 비트맵 청크2(TC2)(460)를 출력할 수 있다.Similarly, with D2 420 as input to mapper 490, bit vectors corresponding to the combination 461, 462 of all frequent 1-item sets included in pieces 431, 432 for pieces 431, 432, respectively. A bitmap chunk 2 (TC 2 ) 460 including 471 and 472 may be output.

비트맵 청크의 비트 벡터는 Di의 트랜잭션 개수(|Di|)에 대응되는 비트 수로 구성되고, 해당 트랜잭션에 해당데이터가 존재할 경우 제1 논리 값을, 존재하지 않을 경우 제2 논리 값을 갖도록 결정될 수 있다. 제1 논리 값은 1, 제2 논리 값은 0일 수 있다. 예를 들어, 비트맵 청크1(440)의 {A}는 D1의 첫번째 트랜잭션과 세번째 트랜잭션에만 존재하기 때문에, {A}의 비트 벡터는 101일 수 있고, {D}의 경우, D1의 모든 트랜잭션에 존재하기 때문에 {D}의 비트 벡터는 111일 수 있다.The bit vector of the bitmap chunk consists of the number of bits corresponding to the number of transactions of D i (| D i |), and has a first logical value if the data exists in the transaction and a second logical value if it does not exist. Can be determined. The first logical value may be 1 and the second logical value may be 0. For example, since {A} of bitmap chunk 1 440 exists only in the first and third transactions of D 1 , the bit vector of {A} may be 101, and in the case of {D}, D 1 The bit vector of {D} may be 111 because it exists in every transaction.

항목 집합 {D, E}의 지지도는 최소 지지도보다 작지만, 본 발명은 해당 비트 벡터를 비트맵 청크에서 제거하지 않는다. 그 이유는 상기 항목 집합의 비트 벡터를 제거하는 비용이 크기 때문이다.The support of the item set {D, E} is smaller than the minimum support, but the present invention does not remove the corresponding bit vector from the bitmap chunk. This is because the cost of removing the bit vector of the item set is high.

일 실시예에 따른 각 비트맵 청크 TCi는 여러 개의 조각들로 수평적으로 나뉘어질 수 있다. 키 부분(TCi의 항목 집합)을 사전(dictionary)이라 할 수 있다. 분산 시스템의 모든 비트맵 청크는 동일한 사전을 갖을 수 있다. 사전의 크기는 조각의 수에 따라서 결정된다. 사전의 크기는 비트맵 청크의 높이를 의미할 수 있다. 조각의 수는 빈발 1-항목 집합의 크기를 조각의 크기로 나눈 값일 수 있다. 사전의 크기는 조각의 수와 각 조각에 포함된 빈발 1-항목 집합의 공집합을 제외한 부분 집합의 수를 곱하여 구할 수 있다. 이는 수학식 1과 같이 나타낼 수 있다.Each bitmap chunk TC i according to an embodiment may be divided horizontally into several pieces. The key part (set of items of TC i ) may be referred to as a dictionary. All bitmap chunks of a distributed system may have the same dictionary. The size of the dictionary depends on the number of pieces. The size of the dictionary may mean the height of the bitmap chunk. The number of pieces may be the size of the frequent 1-item set divided by the size of the pieces. The size of a dictionary can be obtained by multiplying the number of fragments by the number of subsets excluding the empty set of frequent 1-item sets included in each fragment. This may be represented as in Equation 1.

Figure pat00001
Figure pat00001

예를 들어, F1={A, B, C, D, E, F}, Q=2라고 하면, 사전의 크기는 6/2 x(22-1)=9일 수 있다.For example, if F1 = {A, B, C, D, E, F}, Q = 2, the size of the dictionary may be 6/2 × (2 2 −1) = 9.

비트맵 청크의 너비는 Di의 트랜잭션 개수(|Di|)에 따라서 결정될 수 있다. 따라서, 본 발명은 비트맵 청크의 크기를 Q와 |Di|를 통해서 조정할 수 있다.The width of the bitmap chunk transaction number of D i may be determined according to (| | D i). Therefore, the present invention can adjust the size of the bitmap chunk through Q and | D i |.

전처리 단계에 의해 생성된 비트맵 청크들(440, 460)은 각 맵퍼(480, 490)가 포함된 머신의 디스크에 분산 저장될 수 있다.The bitmap chunks 440, 460 generated by the preprocessing step may be distributed and stored on a disk of a machine including the mappers 480, 490.

본 발명의 실시예에 따르면 빈발 패턴 Fk를 찾는 단계는 모든 빈발 항목 집합을 찾을 때까지, 후보 생성 및 테스트 방법 2가지 단계를 반복하여 항목 집합 격자(lattice)의 각 레벨에서 빈발 항목 집합들을 찾을 수 있다. 각 반복에서 맵(Map) 단계에서 각 맵퍼(Mapper)는 후보 k-항목 집합 Ck를 생성하고 부분 지지도를 계산할 수 있다. 리듀스(Reduce) 단계는 실제로 빈발 k-항목 집합을 찾기 위해서 부분 지지도를 합할 수 있다. 서로 다른 리듀서(Reducer)는 서로 다른 Fk를 찾을 수 있다. 다음 단계의 맵퍼가 완전한 Fk를 공유하기 위해서 리듀서의 결과인 빈발 k-항목 집합 Fk를 모든 머신에 복사할 수 있다. 빈발 패턴 Fk를 찾는 단계에서, 분산 저장 시스템에 저장된 비트맵 청크는 네트워크를 통해서 이동되지 않을 수 있다. 대신 비트맵 청크보다 작은 크기의 Fk만 네트워크를 통해 이동되기 때문에, 네트워크 오버헤드는 무시할 수 있을 정도로 작을 수 있다.According to an embodiment of the present invention, the finding of the frequent pattern F k may be performed by finding two sets of frequent items at each level of the item set lattice by repeating the two steps of the candidate generation and test method until all the frequent item sets are found. Can be. In each iteration, in the Map phase, each Mapper may generate a candidate k-item set C k and calculate partial support. The reduce step may actually add partial support to find a frequent set of k-items. Different reducers can find different F k . In order for the next mapper to share the complete F k , we can copy the frequent k-item set F k that results from the reducer to all machines. In the step of finding the frequent pattern F k , the bitmap chunks stored in the distributed storage system may not be moved through the network. Instead, network overhead can be negligibly small because only F k, which is smaller than the bitmap chunk, is moved across the network.

도 5는 일 실시예에 따른 하둡 기반 분산 시스템의 빈발 패턴 마이닝 방법을 도시한 순서도이다.5 is a flowchart illustrating a frequent pattern mining method of a Hadoop-based distributed system according to an embodiment.

도 5를 참조하면, 하둡 기반 분산 시스템의 빈발 패턴 마이닝 방법은 전처리 단계(510)부터 시작할 수 있다. 전처리 단계(510)를 통해 트랜잭션 데이터베이스에 관한 비트맵 청크들을 생성하고, 각 머신의 디스크에 저장할 수 있다.Referring to FIG. 5, the frequent pattern mining method of the Hadoop-based distributed system may start from the preprocessing step 510. The preprocessing step 510 may generate bitmap chunks for the transaction database and store them on disk of each machine.

비트맵 청크들을 저장하면, 빈발 패턴 Fk를 순서대로 찾을 수 있다. 먼저 K=2인 빈발 2-항목 집합(F2) 부터 차례대로 찾을 수 있다(515).If we store the bitmap chunks, we can find the frequent patterns F k in order. First, it can be found in order from the frequent 2-item set (F 2 ) with K = 2 (515).

이전 단계에서, 리듀서의 결과인 빈발 k-항목 집합 Fk가 모든 머신에 복사되어 있을 수 있다. 복사된 빈발 k-항목 집합 Fk를 로드하고, 이를 이용하여 후보 (k+1)-항목 집합 Ck+1을 결정할 수 있다(520).In the previous step, the frequent k-item set F k that results from the reducer may be copied to all machines. The copied frequent k-item set F k may be loaded and used to determine a candidate (k + 1) -item set C k + 1 (520).

후보 (k+1)-항목 집합 Ck+1-이 더 이상 존재하지 않는 경우, 빈발 패턴 마이닝을 종료할 수 있다(530).If the candidate (k + 1) -item set C k + 1- no longer exists, the frequent pattern mining may be terminated (530).

후보 (k+1)-항목 집합 Ck+1-이 존재하는 경우, 하둡 기반 분산 시스템의 각 디스크에 분산 저장된 비트맵 청크의 AND 연산을 이용하여 후보 (k+1)-항목 집합의 지지도를 계산할 수 있다(535).If the candidate (k + 1) -item set C k + 1- exists, the support of the candidate (k + 1) -item set is determined using the AND operation of the bitmap chunks distributed on each disk of the Hadoop-based distributed system. Can be calculated (535).

후보 (k+1)-항목 집합의 지지도가 최소 지지도 이상인 경우, 후보 (k+1)-항목 집합을 빈발 (k+1)-항목 집합으로 결정할 수 있다(545).If the support of the candidate (k + 1) -item set is greater than or equal to the minimum support, the candidate (k + 1) -item set may be determined as the frequent (k + 1) -item set (545).

후보 (k+1)-항목 집합의 지지도가 최소 지지도 미만인 경우와, 후보 (k+1)-항목 집합을 빈발 (k+1)-항목 집합으로 결정한 경우, k를 k+1로 갱신하여 위 단계를 반복할 수 있다(550).If the support of the candidate (k + 1) -item set is less than the minimum support, and if the candidate (k + 1) -item set is determined to be the frequent (k + 1) -item set, then update k to k + 1 The step may be repeated (550).

일 실시예에 따르면 본 발명은 비트맵 청크를 이용해서 부분 지지도를 효율적으로 계산할 수 있다. 비트맵 청크는 키-값(key-value) 형태로 저장되어 있기 때문에, 이는 쉽게 해시 맵(hash map)의 형태로 메모리에 적재할 수 있기 때문에 임의의 항목 집합 x의 비트 벡터에 쉽게 접근할 수 있다. 후보 항목 집합 x가 주어졌을 때, 우리는 쉽게 x를 여러 개의 겹치지 않고 각 조각에 완전히 속하는 부분 항목 집합 P(x)로 나눌 수 있다. 예를 들어, 후보 항목 집합 x={A,B,E}이 주어졌을 때, P(x)는 {{A,B},{E}}가 된다. 각 맵퍼는 주어진 비트맵 청크 TCi내의 비트 벡터 TCi[{A,B}]와 TCi[{E}]에 대해서 비트 AND 연산을 취한다. 그 후에 결과 비트 벡터 내의 1의 개수를 셈으로써 맵퍼는 쉽게 {A,B,E}의 부분 지지도를 구할 수 있다.According to an embodiment, the present invention may efficiently calculate partial support using a bitmap chunk. Because bitmap chunks are stored in key-value form, they can be easily loaded into memory in the form of a hash map, making it easy to access the bit vector of any set of items x. have. Given a set of candidate items x, we can easily divide x into subitem sets P (x) that completely belong to each fragment without multiple overlaps. For example, given a candidate item set x = {A, B, E}, P (x) becomes {{A, B}, {E}}. Each mapper takes a bitwise AND operation on bit vectors TC i [{A, B}] and TC i [{E}] within a given bitmap chunk TC i . Then, by counting the number of 1s in the result bit vector, the mapper can easily find the partial support of {A, B, E}.

일 실시예에 따르면, 각 머신에서 동일한 후보 항목 집합을 생성하고, 서로 다른 비트맵 청크를 이용하여 독립적으로 부분 지지도를 구할 수 있다.According to an embodiment, the same set of candidate items may be generated in each machine, and partial support may be independently obtained using different bitmap chunks.

도 6은 일 실시예에 따른 비트맵 청크를 이용해서 빈발 2-항목 집합을 구하는 방법을 도시한 도면이다.6 is a diagram illustrating a method of obtaining a frequent two-item set using a bitmap chunk according to an embodiment.

도 6을 참조하면, 최소 지지도가 3일 경우 빈발 2-항목 집합F2(655)를 구하는 방법을 보여준다. 리듀서의 개수는 한 개라고 가정할 수 있다. 빈발 1-항목 집합F1={A, B, D, E}(610)을 모든 맵퍼에 복사할 수 있다. 각 맵퍼(613, 614)는 빈발 1-항목 집합F1={A, B, D, E}(610)을 이용하여 6개의 후보 2-항목 집합(620)을 생성할 수 있다. Referring to FIG. 6, when the minimum support is 3, a method of obtaining a frequent 2-item set F 2 655 is shown. It can be assumed that the number of reducers is one. The frequent 1-item set F 1 = {A, B, D, E} 610 can be copied to all mappers. Each mapper 613, 614 may generate six candidate two-item sets 620 using the frequent one-item set F 1 = {A, B, D, E} 610.

후보 항목 집합의 부분 지지도를 구하기 위해서 전처리 단계에서 생성, 저장한 비트맵 청크를 이용할 수 있다. 맵퍼 M1(613)은 후보 2-항목 집합의 부분 지지도를 구하기 위해서 비트맵 청크(611)를 이용하여 부분 지지도를 구할 수 있다. 예를 들어, {B,D}의 부분 지지도를 구하기 위해서 TC1[{B}]와 TC1[{D}]간 비트 AND 연산을 취할 수 있다. 결과 비트 벡터가 111이기 때문에 맵퍼 M1(613)은 ({B, D},3)을 출력할 수 있다. 이와 마찬가지로 맵퍼 M2(614)는 TC2[{B}]와 TC2[{D}]간 비트 AND 연산을 취해 ({B, D},1)을 출력할 수 있다. The bitmap chunks created and stored in the preprocessing step may be used to obtain partial support of the candidate item set. The mapper M 1 613 may obtain partial support using the bitmap chunk 611 to obtain partial support of the candidate two-item set. For example, a bit AND operation between TC 1 [{B}] and TC 1 [{D}] may be performed to obtain partial support of {B, D}. Since the result bit vector is 111, mapper M 1 613 may output ({B, D}, 3). Similarly, the mapper M 2 614 may output a bitwise ({B, D}, 1) by performing a bitwise AND operation between TC 2 [{B}] and TC 2 [{D}].

해당 후보 2-항목 집합(620, 630)과 부분 지지도(640, 645)들은 부분 지지도가 계산된 상기 후보 (k+1)-항목 집합을, 같은 원소끼리 셔플(shuffle)되고, 리듀서(650)에 의해서 결합될 수 있다. 지지도가 최소 지지도인 3보다 큰 후보 2-항목 집합은 빈발 2-항목 집합(655)로 결정될 수 있다. 예를 들어, 후보 항목 집합 {B, D}의 지지도는 4로 최소 지지도인 3보다 크기 때문에 빈발 2-항목 집합으로 결정될 수 있다.The candidate two-item sets 620 and 630 and the partial support 640 and 645 shuffle the candidate (k + 1) -item sets for which the partial support is calculated, with the same elements, and reducer 650. Can be combined by. A candidate two-item set with support greater than 3, which is the minimum support, may be determined as the frequent two-item set 655. For example, since the support of the candidate item set {B, D} is 4, which is larger than the minimum support of 3, it may be determined as the frequent 2-item set.

후보 항목 집합 {A, D}와 {D, E}의 지지도는 최소 지지도보다 작기 때문에 출력되지 않을 수 있다.The support of the candidate item set {A, D} and {D, E} may not be output because it is smaller than the minimum support.

결정된 빈발 (k+1)-항목 집합을 하둡 기반 분산 시스템에 포함된 모든 마이닝 모듈에 복사할 수 있다. 예를 들어, 빈발 2-항목 집합(655)는 분산 저장 시스템에 저장되고 모든 머신에 복사될 수 있다. The determined frequent (k + 1) -item set can be copied to all mining modules included in the Hadoop-based distributed system. For example, the frequent two-item set 655 may be stored in a distributed storage system and copied to all machines.

빈발 3-항목 집합을 구하기 위해 위 단계를 반복할 수 있다.You can repeat the above steps to get a frequent 3-item set.

도 7은 일 실시예에 따른 비트맵 청크를 이용해서 빈발 3-항목 집합을 구하는 방법을 도시한 도면이다.FIG. 7 illustrates a method of obtaining a frequent 3-item set using a bitmap chunk according to an embodiment.

도 7을 참조하면, 최소 지지도가 3일 경우 빈발 3-항목 집합F2(755)를 구하는 방법을 보여준다. 리듀서의 개수는 한 개라고 가정할 수 있다. 도 6에서 구한 빈발 2-항목 집합F2={{A,B}, {A, E}, {B, D}, {B, E}}(710)을 모든 맵퍼에 복사할 수 있다. 각 맵퍼(713, 714)는 빈발 2-항목 집합F2={{A,B}, {A, E}, {B, D}, {B, E}}(710)을 이용하여 후보 3-항목 집합(720)을 생성할 수 있다.Referring to FIG. 7, when the minimum support is 3, a method of obtaining a frequent 3-item set F 2 755 is shown. It can be assumed that the number of reducers is one. The frequent two-item set F 2 = {{A, B}, {A, E}, {B, D}, {B, E}} 710 obtained in FIG. 6 may be copied to all mappers. Each mapper 713, 714 uses candidate two-item set F 2 = {{A, B}, {A, E}, {B, D}, {B, E}} 710 An item set 720 may be generated.

빈발k-항목 집합을 이용해서 후보-(k+1) 항목 집합을 생성할 수 있다. 빈발 k-항목 집합으로부터 후보-(k+1) 항목 집합을 생성하는 방법은 다양하게 구현될 수 있다.A frequent k-item set can be used to generate a candidate- (k + 1) item set. The method for generating the candidate- (k + 1) item set from the frequent k-item sets can be implemented in various ways.

일 예로, 빈발 k- 항목 집합의 같은 라인에 같은 항목이 존재하는 경우에만 후보-(k+1) 항목 집합이 생성될 수 있다. 도 7의 실시예를 참조하면, 빈발 2-항목 집합 {A, B}와 {A, E}는 첫 번째 라인에 같은 항목인 A가 존재하기 때문에, {A, B}와 {A, E}를 이용하여 후보 3-항목 집합{A, B, E}를 생성할 수 있다. 하지만 빈발 2-항목 집합 {A, B}와 {B, D}는 첫 번째 라인에 같은 항목이 존재하지 않기 때문에, {A, B}와 {B, D}를 이용하여 후보 3-항목 집합을 생성할 수 없다. 빈발 2-항목 집합을 이용해서 후보-3 항목 집합인 {A, B, E}, {B, D, E}을 생성할 수 있다. For example, the candidate- (k + 1) item set may be generated only when the same item exists in the same line of the frequent k-item set. Referring to the embodiment of FIG. 7, the frequent two-item set {A, B} and {A, E} have {A, B} and {A, E} because the same item A exists in the first line. Can generate candidate 3-item sets {A, B, E}. However, since the frequent two-item sets {A, B} and {B, D} do not have the same items on the first line, they use {A, B} and {B, D} to form the candidate three-item sets. It cannot be created. Using the frequent two-item set, candidate-item sets {A, B, E}, {B, D, E} can be generated.

후보 항목 집합의 부분 지지도를 구하기 위해서 전처리 단계에서 생성, 저장한 비트맵 청크를 이용할 수 있다. 맵퍼 M1(713)은 후보 3-항목 집합의 부분 지지도를 구하기 위해서 비트맵 청크(711)를 이용하여 부분 지지도를 구할 수 있다. 예를 들어, {B, D, E}의 부분 지지도를 구하기 위해서 TC1[{B}]와 TC1[{D, E}]간 비트 AND 연산을 취할 수 있다. 결과 비트 벡터가 101이기 때문에 맵퍼 M1(713)은 ({B, D, E}, 2)을 출력할 수 있다. 이와 마찬가지로 맵퍼 M2(714)는 TC2[{B}]와 TC2[{D, E}]간 비트 AND 연산을 취해 ({B, D, E}, 0)을 출력할 수 있다. The bitmap chunks created and stored in the preprocessing step may be used to obtain partial support of the candidate item set. The mapper M 1 713 may obtain partial support using the bitmap chunk 711 to obtain partial support of the candidate 3-item set. For example, a bit AND operation between TC 1 [{B}] and TC 1 [{D, E}] may be performed to obtain partial support of {B, D, E}. Since the result bit vector is 101, the mapper M 1 713 may output ({B, D, E}, 2). Similarly, the mapper M 2 714 may perform a bitwise AND operation between TC 2 [{B}] and TC 2 [{D, E}] to output ({B, D, E}, 0).

해당 후보 3-항목 집합(720, 730)과 부분 지지도(740, 745)들은 셔플(shuffle)되고, 리듀서(750)에 의해서 결합될 수 있다. 지지도가 최소 지지도인 3보다 큰 후보 3-항목 집합은 빈발 3-항목 집합(755)로 결정될 수 있다. 예를 들어, 후보 항목 집합 {A, B, E}의 지지도는 3으로 최소 지지도인 3과 같기 때문에 빈발 3-항목 집합으로 결정될 수 있다.The candidate three-item set 720, 730 and partial support 740, 745 may be shuffled and combined by the reducer 750. A candidate three-item set with support greater than 3, which is the minimum support, may be determined as the frequent three-item set 755. For example, since the support of the candidate item set {A, B, E} is 3, which is equal to the minimum support of 3, it may be determined as the frequent 3-item set.

후보 항목 집합 {A, D, E}의 지지도는 최소 지지도보다 작기 때문에 출력되지 않을 수 있다.The support of the candidate item set {A, D, E} may not be output because it is smaller than the minimum support.

결정된 빈발 (k+1)-항목 집합을 하둡 기반 분산 시스템에 포함된 모든 마이닝 모듈에 복사할 수 있다. 예를 들어, 빈발 3-항목 집합(755)는 분산 저장 시스템에 저장되고 모든 머신에 복사될 수 있다. The determined frequent (k + 1) -item set can be copied to all mining modules included in the Hadoop-based distributed system. For example, the frequent three-item set 755 may be stored in a distributed storage system and copied to all machines.

빈발 4-항목 집합을 구하기 위해 위 단계를 반복할 수 있다.You can repeat the above steps to get a frequent 4-item set.

후보 4-항목 집합은 빈발 3-항목 집합을 이용하여 생성될 수 있지만, 빈발 3-항목 집합이 {A, B, E} 하나이기 때문에, 후보 4-항목 집합을 생성할 수 없다. 후보 4-항목 집합이 존재하지 않으면 빈발 패턴 마이닝을 종료할 수 있다.The candidate 4-item set may be generated using the frequent 3-item set, but since the frequent 3-item set is {A, B, E} one, the candidate 4-item set cannot be generated. If there is no candidate 4-item set, the frequent pattern mining may be terminated.

도 8은 일 실시예에 따른 분산 시스템을 이용한 빈발 패턴 마이닝 방법의 부분 지지도를 구하는 방법을 나타내는 순서도이다.8 is a flowchart illustrating a method of obtaining partial support of a frequent pattern mining method using a dispersion system according to an exemplary embodiment.

도 8을 참조하면, 분산 시스템을 이용한 빈발 패턴 마이닝 방법의 부분 지지도를 구하는 방법은 각 후보 항목 집합을 여러 개의 겹치지 않고 임의의 조각에 완전히 속하는 부분 항목 집합들로 나누는 단계(810), Ck의 부분 항목 집합들과 관련된 비트 벡터를 비트맵 청크에서 추출하는 단계(820), 비트 벡터를 이용하여 Ck의 부분 지지도를 구하는 단계(830), 각 머신에서 구한 Ck의 부분 지지도를 합산하여 전체 데이터에 대한 Ck의 지지도를 구하는 단계(840)를 포함할 수 있다.Referring to FIG. 8, a method of obtaining partial support of a frequent pattern mining method using a distributed system includes dividing each candidate item set into partial item sets completely belonging to an arbitrary fragment without overlapping (step 810), C k . Extracting a bit vector associated with the partial item sets from the bitmap chunk (820), obtaining a partial support of C k using the bit vector (830), adding the partial support of C k obtained from each machine, Obtaining support of C k for the data may include 840.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the accompanying drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.

Claims (19)

분산 시스템의 빈발 패턴 마이닝 방법에 있어서,
빈발 k-항목 집합을 이용하여 후보 (k+1)-항목 집합을 결정하는 단계;
상기 분산 시스템에 분산 저장된 비트맵 청크들을 이용하여 상기 후보 (k+1)-항목 집합의 부분 지지도들을 계산하는 단계;
상기 후보 (k+1)-항목 집합의 부분 지지도들을 합산하는 단계; 및
상기 부분 지지도들의 합산 결과에 기초하여 빈발 (k+1)-항목 집합을 결정하는 단계
분산 시스템의 빈발 패턴 마이닝 방법.
In the frequent pattern mining method of a distributed system,
Determining a candidate (k + 1) -item set using the frequent k-item set;
Calculating partial supports of the candidate (k + 1) -item set using bitmap chunks distributed in the distributed system;
Summing partial supports of the candidate (k + 1) -item set; And
Determining a frequent (k + 1) -item set based on the sum of the partial supports
Frequency pattern mining method of distributed systems.
제1항에 있어서,
상기 빈발 (k+1)-항목 집합을 상기 분산 시스템에 브로드캐스트(broadcast) 하는 단계
를 더 포함하는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 1,
Broadcasting the frequent (k + 1) -item set to the distributed system
Frequency pattern mining method of the distributed system further comprising a.
제1항에 있어서,
상기 분산 시스템은 상기 비트맵 청크들에 대응하는 복수의 매퍼들을 포함하고,
상기 후보 (k+1)-항목 집합의 부분 지지도들을 계산하는 단계는
상기 비트맵 청크들 각각을 해당하는 매퍼로 로드(load)하는 단계;
상기 복수의 매퍼들 각각에서, 해당하는 비트맵 청크에 포함된 비트 벡터들의 AND 연산을 통해 상기 후보 (k+1)-항목 집합에 포함된 후보 (k+1)-항목들의 비트 벡터들을 계산하는 단계; 및
상기 복수의 매퍼들 각각에서, 해당하는 비트 벡터들에 기초하여 상기 후보 (k+1)-항목 집합의 부분 지지도를 계산하는 단계;
를 포함하는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 1,
The distributed system includes a plurality of mappers corresponding to the bitmap chunks,
Computing partial supports of the candidate (k + 1) -item set
Loading each of the bitmap chunks into a corresponding mapper;
In each of the plurality of mappers, bit vectors of candidate (k + 1) -items included in the candidate (k + 1) -item set are calculated through an AND operation of bit vectors included in a corresponding bitmap chunk. step; And
Calculating, in each of the plurality of mappers, partial support of the candidate (k + 1) -item set based on corresponding bit vectors;
Frequency pattern mining method of a distributed system comprising a.
제1항에 있어서,
상기 빈발 (k+1)-항목 집합을 결정하는 단계는
상기 후보 (k+1)-항목 집합에 포함된 복수의 후보 (k+1)-항목들 중 부분 지지도를 합산한 지지도가 미리 정해진 최소 지지도 이상인 후보 (k+1)-항목을 상기 빈발 (k+1)-항목 집합에 포함시키는 단계
를 포함하는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 1,
Determining the frequent (k + 1) -item set
Among the candidate (k + 1) -item sets, a candidate (k + 1) -item having a support sum of partial support of a plurality of candidate (k + 1) -items or more is greater than or equal to a predetermined minimum support rate (k + 1) -item (k Steps to include in your +1) -item set
Frequency pattern mining method of a distributed system comprising a.
제1항에 있어서,
상기 후보 (k+1)-항목 집합이 존재하지 않을 경우, 상기 빈발 패턴 마이닝을 종료하는 단계
를 더 포함하는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 1,
If the candidate (k + 1) -item set does not exist, ending the frequent pattern mining
Frequency pattern mining method of the distributed system further comprising a.
제1항에 있어서,
상기 부분 지지도들을 합산하는 단계는
상기 후보 (k+1)-항목 집합에 포함된 복수의 후보 (k+1)-항목들 중 동일한 후보 (k+1)-항목에 해당하는 부분 지지도 값들이 동일한 리듀서로 전달되도록, 상기 부분 지지도들을 셔플(shuffle)하는 단계
를 더 포함하는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 1,
Summing the partial supports
The partial support values such that partial support values corresponding to the same candidate (k + 1) -item among a plurality of candidate (k + 1) -items included in the candidate (k + 1) -item set are transmitted to the same reducer Step to shuffle the ears
Frequency pattern mining method of the distributed system further comprising a.
제1항에 있어서,
상기 후보 (k+1)-항목 집합을 결정하는 단계는
상기 분산 시스템에 브로드캐스트 된 상기 빈발 k-항목 집합을 수신하는 단계; 및
상기 빈발 k-항목 집합에 포함된 복수의 빈발 k-항목들을 조합함으로써, 후보 (k+1)-항목들을 결정하는 단계
를 포함하는, 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 1,
Determining the candidate (k + 1) -item set
Receiving the frequent k-item set broadcast to the distributed system; And
Determining candidate (k + 1) -items by combining a plurality of frequent k-items included in the frequent k-item set
Including, frequent pattern mining method of the distributed system.
제1항에 있어서,
상기 분산 시스템에 분산 저장된 데이터들에 포함된 복수의 항목들을 미리 정해진 방식으로 분할하는 단계;
상기 분할된 항목들에 기반한 패턴들을 결정하는 단계; 및
상기 분산 저장된 데이터들 각각에 대응하는 매퍼를 이용하여, 해당하는 데이터에 포함된 상기 패턴들을 나타내는 비트 벡터들을 결정함으로써 해당하는 매퍼를 위한 비트맵 청크를 생성하는 단계
를 더 포함하는, 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 1,
Dividing a plurality of items included in data distributed and stored in the distributed system in a predetermined manner;
Determining patterns based on the divided items; And
Generating a bitmap chunk for a corresponding mapper by determining bit vectors representing the patterns included in the corresponding data, using a mapper corresponding to each of the distributed stored data.
Further comprising, the frequent pattern mining method of the distributed system.
제8항에 있어서,
상기 비트맵 청크는 키-값(key-value) 구조를 갖고, 상기 키(key)는 상기 패턴들에 대응되는 항목 집합이고, 상기 값(value)는 상기 비트 벡터들을 포함하는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 8,
The bitmap chunk has a key-value structure, the key is a set of items corresponding to the patterns, and the value is a frequent pattern of a distributed system including the bit vectors. Mining method.
제8항에 있어서,
상기 비트맵 청크들은 서로 동일한 키를 갖는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 8,
The frequent pattern mining method of a distributed system in which the bitmap chunks have the same key.
제 8항에 있어서,
상기 항목들은
빈발 1-항목 집합(FREQUENT 1-ITEM SET)에 해당하는, 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 8,
The above items
A method of mining frequent patterns in a distributed system, corresponding to a frequent 1-item set.
제11항에 있어서,
상기 비트맵 청크를 생성하는 단계는
상기 분산 저장되어 있는 데이터를 입력으로 하여, 상기 분할된 빈발 1-항목 집합의 조합에 대응하는 비트 벡터들을 결정하는 단계
를 포함하는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 11,
Generating the bitmap chunk
Determining bit vectors corresponding to the combination of the divided frequent 1-item sets by using the distributed stored data as an input;
Frequency pattern mining method of a distributed system comprising a.
제8항에 있어서,
상기 비트맵 청크를 생성하는 단계는
상기 해당하는 데이터를 라인별로 나누어 수신하는 단계; 및
상기 라인의 수에 대응되는 비트 수로 구성되고, 상기 라인에 상기 데이터가 존재할 경우 제1 논리 값을, 존재하지 않을 경우 제2 논리 값을 갖도록 상기 비트 벡터를 결정하는 단계
를 포함하는 분산 시스템의 빈발 패턴 마이닝 방법.
The method of claim 8,
Generating the bitmap chunk
Receiving the data by dividing the corresponding line by line; And
Determining the bit vector having a number of bits corresponding to the number of lines and having a first logical value if the data is present in the line and a second logical value if the data is not present in the line;
Frequency pattern mining method of a distributed system comprising a.
하드웨어와 결합되어 제1항 내지 제13항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a medium in combination with hardware to carry out the method of any one of claims 1 to 13.
빈발 패턴 마이닝을 위한 분산 시스템에 있어서,
빈발 k-항목 집합을 이용하여 후보 (k+1)-항목 집합을 결정하고, 상기 분산 시스템에 분산 저장된 비트맵 청크들을 이용하여 상기 후보 (k+1)-항목 집합의 부분 지지도들을 계산하는 매퍼 모듈; 및
상기 후보 (k+1)-항목 집합의 부분 지지도들을 합산하여, 빈발 (k+1)-항목 집합을 결정하는 리듀서 모듈
을 포함하는, 분산 시스템.
In a distributed system for frequent pattern mining,
A mapper that determines a candidate (k + 1) -item set using a frequent k-item set, and computes partial support of the candidate (k + 1) -item set using bitmap chunks distributed in the distributed system. module; And
Reducer module that adds partial support of the candidate (k + 1) -item set to determine a frequent (k + 1) -item set
Including, distributed system.
제15항에 있어서,
상기 리듀서 모듈은
상기 빈발 (k+1)-항목 집합을 상기 분산 시스템에 브로드캐스트(broadcast) 하는, 분산 시스템.
The method of claim 15,
The reducer module
Broadcast the frequent (k + 1) -item set to the distributed system.
제15항에 있어서,
상기 매퍼 모듈에 포함된 매퍼들 각각은
해당하는 비트맵 청크를 로드(load)하고,
해당하는 비트맵 청크에 포함된 비트 벡터들의 AND 연산을 통해 상기 후보 (k+1)-항목 집합에 포함된 후보 (k+1)-항목들의 비트 벡터들을 계산하며,
해당하는 비트 벡터들에 기초하여 상기 후보 (k+1)-항목 집합의 부분 지지도를 계산하는,
분산 시스템.
The method of claim 15,
Each of the mappers included in the mapper module
Load the corresponding bitmap chunk,
Calculating bit vectors of candidate (k + 1) -items included in the candidate (k + 1) -item set by performing an AND operation on the bit vectors included in the corresponding bitmap chunk,
Calculating partial support of the candidate (k + 1) -item set based on corresponding bit vectors,
Distributed system.
제15항에 있어서,
상기 리듀서 모듈은
상기 후보 (k+1)-항목 집합에 포함된 복수의 후보 (k+1)-항목들 중 부분 지지도를 합산한 지지도가 미리 정해진 최소 지지도 이상인 후보 (k+1)-항목을 상기 빈발 (k+1)-항목 집합에 포함시키는,
분산 시스템.
The method of claim 15,
The reducer module
Among the candidate (k + 1) -item sets, a candidate (k + 1) -item having a support sum of partial support of a plurality of candidate (k + 1) -items or more is greater than or equal to a predetermined minimum support rate (k + 1) -item (k +1)-to include in the set of items,
Distributed system.
제15항에 있어서,
상기 후보 (k+1)-항목 집합에 포함된 복수의 후보 (k+1)-항목들 중 동일한 후보 (k+1)-항목에 해당하는 부분 지지도 값들은 상기 리듀서 모듈 내 동일한 리듀서로 전달되는,
분산 시스템.


The method of claim 15,
Partial support values corresponding to the same candidate (k + 1) -item among a plurality of candidate (k + 1) -items included in the candidate (k + 1) -item set are transmitted to the same reducer in the reducer module. ,
Distributed system.


KR1020180096301A 2018-02-13 2018-08-17 System and method for large-scale frequent pattern mining on distributed systems KR102098253B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180017559 2018-02-13
KR20180017559 2018-02-13

Publications (2)

Publication Number Publication Date
KR20190103918A true KR20190103918A (en) 2019-09-05
KR102098253B1 KR102098253B1 (en) 2020-04-07

Family

ID=67949846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180096301A KR102098253B1 (en) 2018-02-13 2018-08-17 System and method for large-scale frequent pattern mining on distributed systems

Country Status (1)

Country Link
KR (1) KR102098253B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112884614A (en) * 2019-11-29 2021-06-01 北京金山云网络技术有限公司 Frequent sequence based route recommendation method and device and electronic equipment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070091099A1 (en) * 2005-10-18 2007-04-26 Via Technologies, Inc. Event memory assisted synchronization in multi-GPU graphics subsystem
KR20100062854A (en) * 2008-12-02 2010-06-10 한국전자통신연구원 Method for stream pattern mining using bitwise map
KR20120091550A (en) * 2011-02-09 2012-08-20 주식회사 글로벌미디어테크 High speed encoding and decoding apparatus for image data using parallel processors on graphics processing unit and the method thereof
KR20120101925A (en) * 2011-03-07 2012-09-17 연세대학교 산학협력단 Apparatus for discovering sequential patterns over data stream using dual tree and method thereof
KR20120136677A (en) * 2011-06-09 2012-12-20 성균관대학교산학협력단 Method and tree structure of database for extracting data steams frequent pattern based on weighted support and structure of database
KR20160093237A (en) * 2015-01-29 2016-08-08 충북대학교 산학협력단 Sliding window based frequent patterns management method for mining weighted maximal frequent patterns over data stream
KR20170048084A (en) * 2015-10-26 2017-05-08 충북대학교 산학협력단 Apparatus and Method for Operating Write-Ahead-Logging

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070091099A1 (en) * 2005-10-18 2007-04-26 Via Technologies, Inc. Event memory assisted synchronization in multi-GPU graphics subsystem
KR20100062854A (en) * 2008-12-02 2010-06-10 한국전자통신연구원 Method for stream pattern mining using bitwise map
KR20120091550A (en) * 2011-02-09 2012-08-20 주식회사 글로벌미디어테크 High speed encoding and decoding apparatus for image data using parallel processors on graphics processing unit and the method thereof
KR20120101925A (en) * 2011-03-07 2012-09-17 연세대학교 산학협력단 Apparatus for discovering sequential patterns over data stream using dual tree and method thereof
KR20120136677A (en) * 2011-06-09 2012-12-20 성균관대학교산학협력단 Method and tree structure of database for extracting data steams frequent pattern based on weighted support and structure of database
KR20160093237A (en) * 2015-01-29 2016-08-08 충북대학교 산학협력단 Sliding window based frequent patterns management method for mining weighted maximal frequent patterns over data stream
KR20170048084A (en) * 2015-10-26 2017-05-08 충북대학교 산학협력단 Apparatus and Method for Operating Write-Ahead-Logging

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112884614A (en) * 2019-11-29 2021-06-01 北京金山云网络技术有限公司 Frequent sequence based route recommendation method and device and electronic equipment
CN112884614B (en) * 2019-11-29 2024-05-14 北京金山云网络技术有限公司 Route recommendation method and device based on frequent sequences and electronic equipment

Also Published As

Publication number Publication date
KR102098253B1 (en) 2020-04-07

Similar Documents

Publication Publication Date Title
US10209908B2 (en) Optimization of in-memory data grid placement
Rathee et al. R-Apriori: an efficient apriori based algorithm on spark
US10185752B2 (en) Mining association rules in the map-reduce framework
Patwary et al. Window-based streaming graph partitioning algorithm
US8370326B2 (en) System and method for parallel computation of frequency histograms on joined tables
CN107729423B (en) Big data processing method and device
CN105517644B (en) Data partitioning method and equipment
Reguieg et al. Event correlation analytics: scaling process mining using mapreduce-aware event correlation discovery techniques
US20190149419A1 (en) Information processing device and information processing method
US20130117264A1 (en) Object arrangement apparatus, method therefor and computer program
KR101998020B1 (en) Method and apparatus for graph generation
CN110796401A (en) Inventory deduction method, system and server
Sahoo et al. A novel approach for distributed frequent pattern mining algorithm using load-matrix
Ali et al. Parallel collaborative filtering for streaming data
Salah et al. A highly scalable parallel algorithm for maximally informative k-itemset mining
KR101361080B1 (en) Apparatus, method and computer readable recording medium for calculating between matrices
KR102098253B1 (en) System and method for large-scale frequent pattern mining on distributed systems
Lin et al. Mining high-utility sequential patterns from big datasets
Gawwad et al. Frequent itemset mining for big data using greatest common divisor technique
US9361588B2 (en) Construction of tree-shaped bayesian network
Gupta et al. An approach for optimizing the performance for apache spark applications
Bamha et al. A skew-insensitive algorithm for join and multi-join operations on shared nothing machines
Ji et al. Localtgep: A lightweight edge partitioner for time-varying graph
Sheng et al. GraBi: Communication-efficient and workload-balanced partitioning for bipartite graphs
Jamadagni et al. GoDB: From batch processing to distributed querying over property graphs

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