KR20230037830A - Method and system for compressing graph stream based on incremental frequent patterns - Google Patents
Method and system for compressing graph stream based on incremental frequent patterns Download PDFInfo
- Publication number
- KR20230037830A KR20230037830A KR1020210120873A KR20210120873A KR20230037830A KR 20230037830 A KR20230037830 A KR 20230037830A KR 1020210120873 A KR1020210120873 A KR 1020210120873A KR 20210120873 A KR20210120873 A KR 20210120873A KR 20230037830 A KR20230037830 A KR 20230037830A
- Authority
- KR
- South Korea
- Prior art keywords
- subgraph
- pattern
- graph
- frequent
- dictionary
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000007906 compression Methods 0.000 claims abstract description 123
- 230000006835 compression Effects 0.000 claims abstract description 116
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000000750 progressive effect Effects 0.000 claims description 34
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 24
- 238000005065 mining Methods 0.000 description 10
- 238000013138 pruning Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 8
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/9024—Graphs; Linked lists
-
- 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/23—Updating
- G06F16/2393—Updating materialised views
-
- 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/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
-
- 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/9035—Filtering based on additional data, e.g. user or group profiles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Auxiliary Devices For And Details Of Packaging Control (AREA)
Abstract
Description
본 발명은 그래프스트림 압축 방법에 연관되며, 보다 특정하게는 점진적 빈발패턴을 이용한 그래프스트림의 압축 효율 향상에 연관된다.The present invention relates to a method for compressing a graph stream, and more particularly, to improving compression efficiency of a graph stream using a gradual frequency pattern.
소셜 네트워크, 사물인터넷(Internet of Things), 모바일 기기, 생물 같은 복잡한 연결 관계를 표현하기 위해 그래프 데이터가 활용되고 있다.Graph data is being used to express complex connections such as social networks, the Internet of Things, mobile devices, and living things.
이러한 서비스에서 생성되는 그래프 데이터는 실시간으로 확장되고 변화되며 정보의 양이 거대한 특징이 존재한다.The graph data generated by these services is expanded and changed in real time, and the amount of information is huge.
이에 따라 객체를 나타내는 정점이나 객체 간 관계를 나타내는 간선의 추가, 삭제, 변경과 같은 불규칙적인 그래프의 변화를 나타내는 '그래프스트림'이 실시간적으로 발생한다.Accordingly, a 'graph stream' representing irregular graph changes, such as adding, deleting, or changing vertices representing objects or edges representing relationships between objects, is generated in real time.
이처럼 실시간적으로 변화하는 그래프스트림(그래프 데이터)을 제한적인 인메모리(In-Memory)에 효율적으로 저장하기 위해, 그래프스트림을 압축 저장하기 위한 다양한 그래프 마이닝 기술이 제안되었다.In order to efficiently store such a graph stream (graph data) that changes in real time in a limited in-memory, various graph mining techniques for compressing and storing the graph stream have been proposed.
하지만, 그래프스트림의 고차원적이고 복잡한 구조와 형태로 인해, 기존 제안된 그래프 마이닝 기술을 직접적으로 적용하기 어려운 문제가 있다.However, there is a problem in that it is difficult to directly apply the previously proposed graph mining technology due to the high-dimensional and complex structure and shape of the graph stream.
구조적인 그래프 압축 기법의 일례로 제안된 'StarZIP'(비특허문헌 1 참조) 및 'GraphZIP'(비특허문헌 2 참조)과 같은 그래프 마이닝 알고리즘에 따르면, 압축률은 높지만, 그래프의 구조(예, Star, Clique, Bipartite….)를 찾는 전처리 과정에서 수행 시간이 오래 걸려 실시간으로 데이터가 생성되는 환경에 적용하기 어려우며, 변환하는 값이 지나치게 커질 경우 비압축 데이터를 저장하는 것보다 오히려 압축 효과가 떨어지게 된다.According to graph mining algorithms such as 'StarZIP' (see Non-Patent Document 1) and 'GraphZIP' (See Non-Patent Document 2), which have been proposed as examples of structural graph compression techniques, the compression rate is high, but the structure of the graph (eg, Star , Clique, Bipartite….) takes a long time to perform, making it difficult to apply to an environment where data is generated in real time, and if the value to be converted becomes excessively large, the compression effect is lower than that of storing uncompressed data. .
또한, 기존의 사전 기반 그래프 압축 기법의 일례로 제안된 'GraphZip'(비특허문헌 3 참조)과 같은 그래프 마이닝 알고리즘에서는, 정점과 간선에 공통으로 나타난 그래프를 기준패턴으로 정하고, 기준패턴에서 변경된 사항을 기술하는 방법을 사용하고 있지만, 기준패턴이 일정 크기 이상으로 늘어나면 기준패턴을 탐색하는데 시간이 오래 걸리게 되고, 기준패턴과 완전히 다른 새로운 패턴이 입력될 때 적용할 수 있는 기준패턴이 적거나 없어, 기준패턴을 다시 탐색하는 과정이 필요하므로 압축률이 감소할 수 있다.In addition, in a graph mining algorithm such as 'GraphZip' (see Non-Patent Document 3) proposed as an example of an existing dictionary-based graph compression technique, a graph commonly appearing in vertices and edges is set as a reference pattern, and changes in the reference pattern are made. However, if the reference pattern increases beyond a certain size, it takes a long time to search for the reference pattern, and there are few or no reference patterns that can be applied when a new pattern completely different from the reference pattern is input. , the compression rate may decrease because the process of searching for the reference pattern again is required.
따라서 압축률 및 압축시간을 중점적으로 고려한 기존 압축 기법에 시간 경과에 따라 정점과 간선이 실시간 변화하는 그래프스트림 환경을 고려해 그래프 마이닝을 적용하여, 그래프스트림의 압축 효율을 높이기 위한 기술이 요구된다.Therefore, a technique for increasing the compression efficiency of graph streams is required by applying graph mining in consideration of the graph stream environment in which vertices and edges change in real time over time in addition to the existing compression techniques that focus on compression rate and compression time.
본 발명의 실시예는 그래프스트림에 대하여 효율적으로 압축을 처리하기 위해 시간에 따른 정점과 간선의 변화를 고려헤 압축하는 그래프스트림 압축 기법을 제안하는 것을 목적으로 한다.An object of the present invention is to propose a graph stream compression technique that compresses a graph stream in consideration of changes in vertices and edges over time in order to efficiently compress the graph stream.
본 발명의 실시예는 실시간으로 입력되는 그래프스트림으로부터 빈발하는 패턴을 찾아 기준 빈발패턴으로서 패턴 사전에 유지하고, 빈발하지 않는 패턴을 패턴 사전에서 제외하여, 그래프스트림의 압축에 적용할 데이터를 줄임으로써, 그래프스트림의 압축 처리 속도를 높이는 것을 목적으로 한다.An embodiment of the present invention finds a frequent pattern from a graph stream input in real time, maintains it in a pattern dictionary as a reference frequent pattern, and excludes infrequent patterns from the pattern dictionary to reduce data to be applied to graph stream compression. , the purpose of which is to increase the compression processing speed of graph streams.
본 발명의 실시예는 이전시점에 입력된 일부의 그래프스트림에서 빈발하는 패턴과, 현시점에 입력된 일부의 그래프스트림에서 빈발하는 패턴을 모두 패턴 사전에 저장할 경우 새로운 스트림이 입력될 때마다 패턴 사전의 크기가 점차 커지고 그에 따라 그래프스트림의 압축 효율이 떨어지는 기존 그래프 마이닝 기법을 개선하기 위해, 시간 변화에 따라 변화하는 그래프스트림의 전체에서 자주 사용되는 최소한의 기준 빈발패턴을 패턴 사전에 남김으로써, 그래프스트림의 압축 효율을 높이는 것을 목적으로 한다.In the embodiment of the present invention, when both patterns that are frequent in some graph streams input at the previous time and patterns that are frequent in some graph streams input at the current time are stored in the pattern dictionary, every time a new stream is input, the pattern dictionary In order to improve the existing graph mining technique, in which the size gradually increases and the compression efficiency of the graph stream decreases accordingly, the minimum standard frequent pattern frequently used throughout the graph stream that changes over time is left in the pattern dictionary, The purpose is to increase the compression efficiency of
본 발명의 실시예는 이전시점에 발견하여 패턴 사전에 저장한 빈발패턴을, 현시점에 발견한 빈발패턴을 이용해 확장시켜 업데이트하는 과정을, 시간 경과에 따른 스트림 입력 시마다 반복하여, 패턴 사전 내의 빈발패턴을 점진적으로 업데이트함으로써, 정해진 종료시점에 도달했을 때 패턴 사전에 시간 변화에 따라 변화하는 그래프스트림의 전체에서 기준이 되는 빈발패턴이 남도록 하는 것을 목적으로 한다.An embodiment of the present invention repeats a process of expanding and updating a frequent pattern found at a previous time and stored in a pattern dictionary using a frequent pattern found at the current time, every time a stream is input over time, and frequently patterns in the pattern dictionary The purpose of this is to ensure that a frequent pattern, which is a reference, remains in the entire graph stream that changes with time in the pattern dictionary when a predetermined end point is reached by gradually updating .
본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 방법은, 실시간으로 입력되는 그래프스트림에 대한 압축 명령에 따라, 상기 그래프스트림 중 제1 시간 동안 입력된 서브스트림으로부터 제1 서브그래프를 추출하는 단계와, 상기 제1 서브그래프를 초기 빈발패턴으로서 패턴 사전에 저장하는 단계와, 상기 그래프스트림 중 상기 제1 시간의 경과시점부터 제2 시간 동안 입력된 서브스트림으로부터 상기 제1 서브그래프와 상이한 제2 서브그래프가 추출되면, 상기 제2 서브그래프를 이용하여, 상기 패턴 사전 내에서 상기 제1 서브그래프를 확장 서브그래프로 업데이트하여 유지하는 단계, 및 상기 제1 및 제2 시간을 합산한 시간이 정해진 시간에 도달하면, 상기 패턴 사전 내에 유지되는 상기 확장 서브그래프를, 기준 빈발패턴으로서, 압축 처리하는 단계를 포함할 수 있다.A method for compressing a graph stream based on a gradual frequent pattern according to an embodiment of the present invention extracts a first subgraph from a substream input during a first time among the graph streams according to a compression command for the graph stream input in real time. and storing the first subgraph as an initial frequent pattern in a pattern dictionary, and a substream input during a second time from the lapse of the first time among the graph streams differs from the first subgraph in a pattern dictionary. If the second subgraph is extracted, updating and maintaining the first subgraph as an extended subgraph in the pattern dictionary using the second subgraph, and a sum of the first and second times. When the predetermined time is reached, compressing the extended subgraph maintained in the pattern dictionary as a reference frequent pattern may be included.
또한, 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템은, 실시간으로 입력되는 그래프스트림에 대한 압축 명령에 따라, 상기 그래프스트림 중 제1 시간 동안 입력된 서브스트림으로부터, 제1 서브그래프를 추출하는 추출부와, 상기 제1 서브그래프를 초기 빈발패턴으로서 패턴 사전에 저장하는 저장부와, 상기 추출부에 의해 상기 그래프스트림 중 상기 제1 시간의 경과시점부터 제2 시간 동안 입력된 서브스트림으로부터 상기 제1 서브그래프와 상이한 제2 서브그래프가 추출되면, 상기 제2 서브그래프를 이용하여, 상기 패턴 사전 내에서 상기 제1 서브그래프를 확장 서브그래프로 업데이트하여 유지하는 업데이트부, 및 상기 제1 및 제2 시간을 합산한 시간이 정해진 시간에 도달하면, 상기 패턴 사전 내에 유지되는 상기 확장 서브그래프를, 기준 빈발패턴으로서, 압축 처리하는 처리부를 포함할 수 있다.In addition, in the graph stream compression system based on the gradual recurrence pattern according to an embodiment of the present invention, according to a compression command for a graph stream input in real time, from a sub-stream input during a first time among the graph streams, a first sub-stream An extraction unit for extracting a graph; a storage unit for storing the first subgraph as an initial frequent pattern in a pattern dictionary; When a second subgraph different from the first subgraph is extracted from a substream, an update unit that updates and maintains the first subgraph as an extended subgraph within the pattern dictionary using the second subgraph; and and a processor that compresses the extended subgraph maintained in the pattern dictionary as a reference frequent pattern when the sum of the first and second times reaches a predetermined time.
본 발명에 따르면, 실시간으로 입력되는 그래프스트림으로부터 빈발하는 패턴을 찾아 기준 빈발패턴으로서 패턴 사전에 유지하고, 빈발하지 않는 패턴을 패턴 사전에서 제외하여, 그래프스트림의 압축에 적용할 데이터를 줄임으로써, 그래프스트림의 압축 처리 속도를 향상시킬 수 있다.According to the present invention, by finding a frequent pattern from a graph stream input in real time, maintaining it in a pattern dictionary as a reference frequent pattern, and excluding infrequent patterns from the pattern dictionary, reducing data to be applied to compression of the graph stream, The compression processing speed of the graph stream can be improved.
본 발명에서 제안하는 그래프스트림 처리를 위한 점진적 빈발패턴 기반 압축 기법에 따르면, 그래프 패턴 마이닝으로 빈발패턴을 추출하고, 빈발도와 간선 크기에 따라 패턴 점수를 계산하여, 패턴 점수가 높은 순으로 선별한 빈발패턴을 기준 빈발패턴으로서 패턴 사전에 남김으로써, 실시간으로 변화하는 그래프스트림에서 보다 중요도 높은 빈발패턴을 기존의 압축 기법보다 빠르게 검출할 수 있고, 그래프스트림의 압축 효율 및 처리 속도를 향상시킬 수 있다.According to the progressive frequent pattern-based compression technique for graph stream processing proposed in the present invention, frequent patterns are extracted by graph pattern mining, pattern scores are calculated according to frequency and edge size, and frequent patterns are selected in order of high pattern scores. By leaving the pattern as a reference frequent pattern in the pattern dictionary, it is possible to detect a frequent pattern having a higher importance in a graph stream that changes in real time more quickly than conventional compression techniques, and it is possible to improve the compression efficiency and processing speed of the graph stream.
본 발명에 따르면, 그래프스트림을 인메모리 환경에서 처리할 수 있도록 시간 경과에 따른 정점과 간선의 변화를 프로버넌스 정보를 사용하여 기록하고, 패턴 사전에 유지된 기준 빈발패턴에 상기 프로버넌스 정보를 적용하여 실시간으로 입력되는 그래프스트림에 대한 변화 이력을 관리자가 용이하게 파악할 수 있게 한다.According to the present invention, changes in vertices and edges over time are recorded using provenance information so that a graph stream can be processed in an in-memory environment, and the provenance information is stored in a reference frequent pattern maintained in a pattern dictionary. is applied so that the manager can easily grasp the history of changes to the graph stream input in real time.
본 발명에 따르면, 기준 빈발패턴 및 프로버넌스 정보를 활용하여, 최신 패턴의 이력 관리 및 변화 사항 파악이 용이해지고, 그 결과, 그래프 데이터의 크기를 감소하여 인메모리 환경에 많은 그래프 데이터를 유지하여 빠른 처리를 수행할 수 있게 한다.According to the present invention, by using the reference frequent pattern and provenance information, it is easy to manage the history of the latest pattern and grasp changes, and as a result, the size of graph data is reduced to maintain a lot of graph data in an in-memory environment. Allows for quick processing.
도 1은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템의 구성을 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템의 전체 구조도를 도시한 도면이다.
도 3은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 도 2에 도시한 기준 패턴 생성기(210)의 수행 과정을 도시한 도면이다.
도 4는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 서브그래프의 정점에 인덱스를 부여해 패턴 사전에 저장하는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 도 2에 도시한 그래프 관리기(220)의 수행 과정을 도시한 도면이다.
도 6은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 서브그래프 간 유사도 판별 결과에 따라 동형 그래프를 결정하는 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 시간 경과에 따라 변화하는 시간 윈도우를 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 빈발패턴의 점진적인 업데이트 과정을 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, FP-Growth 알고리즘을 적용한 Pruning 과정을 설명하기 위한 도면이다.
도 10은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 패턴 트리(a)에 따라 구축되는 패턴 사전(b)을 예시한 도면이다.
도 11은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 패턴 사전에 저장되는 프로버넌스 정보를 도시한 도면이다.
도 12는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 압축 처리 과정을 도시한 도면이다.
도 13은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 방법의 순서를 도시한 흐름도이다.1 is a block diagram showing the configuration of a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
2 is a diagram showing the overall structure of a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a process of performing the
4 is a diagram for explaining a process of assigning an index to a vertex of a subgraph and storing it in a pattern dictionary in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a process of performing the
6 is a diagram for explaining a process of determining an isomorphic graph according to a similarity determination result between subgraphs in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
7 is a diagram for explaining a time window that changes over time in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
8 is a diagram for explaining a process of gradually updating frequent patterns in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
9 is a diagram for explaining a pruning process to which the FP-Growth algorithm is applied in the graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
10 is a diagram illustrating a pattern dictionary (b) constructed according to a pattern tree (a) in a graph stream compression system based on progressively frequent patterns according to an embodiment of the present invention.
11 is a diagram illustrating provenance information stored in a pattern dictionary in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
12 is a diagram illustrating a compression process in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
13 is a flowchart illustrating a sequence of a method for compressing a graph stream based on a gradual frequent pattern according to an embodiment of the present invention.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes can be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents or substitutes to the embodiments are included within the scope of rights.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are used only for descriptive purposes and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the present application, they should not be interpreted in an ideal or excessively formal meaning. don't
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted. In describing the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description will be omitted.
본 발명에서는 그래프스트림에 대한 압축 명령 발생에 따라, 실시간으로 입력되는 그래프스트림을 점진적으로 처리하여, 그래프스트림에서 빈발하는 패턴 및 그에 대한 프로버넌스 정보를 최소한으로 유지한 패턴 사전을 구축해 압축에 적용함으로써, 압축 효율을 높이고 처리 속도를 향상시키기 위한 기법을 제안한다.In the present invention, according to the compression command for the graph stream, the input graph stream is gradually processed in real time, and a pattern dictionary that minimizes frequent patterns in the graph stream and provenance information thereof is constructed and applied to compression. By doing so, we propose a technique for increasing compression efficiency and improving processing speed.
이를 위해 본 발명에서는 실시간으로 변화하는 그래프스트림에서 기준이 되는 빈발패턴을 점진적으로 찾아 패턴 사전을 최소한으로 구축하고, 이를 통해 압축할 데이터를 최대한으로 줄일 수 있다.To this end, in the present invention, a frequent pattern as a reference is gradually found in a graph stream that changes in real time, and a pattern dictionary is constructed to a minimum, and through this, data to be compressed can be reduced to a maximum.
압축율을 최대로 하는 기준 빈발패턴을 점진적으로 검출하는 일례로, 본 발명에서는 그래프스트림의 최초시점에 발견하여 패턴 사전에 기저장한 빈발패턴(초기 빈발패턴)을, 그래프스트림의 다음시점에 발견한 빈발패턴과 비교해 동형성을 확인하고, 동형성이 확인된 빈발패턴을 이용해 점진적으로 확장하여 업데이트하고, 패턴 사전에 저장 이후, 그래프스트림의 종료시점까지 업데이트 되지 않은 빈발패턴에 대해서는 삭제 처리하여, 최종적으로 패턴 사전에 남은 빈발패턴을, 기준 빈발패턴으로 검출하고 있다.As an example of gradually detecting a reference frequent pattern maximizing the compression ratio, in the present invention, a frequent pattern (initial frequent pattern) found at the beginning of the graph stream and pre-stored in the pattern dictionary is found at the next time of the graph stream. Isomorphism is checked by comparing with frequent patterns, and the frequent patterns with confirmed isomorphism are gradually expanded and updated, and after storing in the pattern dictionary, frequent patterns that have not been updated until the end of the graph stream are deleted, and the final As a result, the frequent patterns remaining in the pattern dictionary are detected as reference frequent patterns.
여기서 동형성의 확인은, 그래프스트림이 항상 일정한 패턴이 나오는 것이 아니라 시간에 따라 패턴이 달라져, 현재시점의 패턴과 시간 경과 후의 패턴이 다를 수 있기 때문에, 업데이트를 진행하기 전에 수행될 필요가 있다.Here, the confirmation of isomorphism needs to be performed before proceeding with the update because the pattern at the present time and the pattern after the lapse of time may be different because the pattern of the graph stream does not always come out with a constant pattern but changes over time.
따라서 본 발명에서는 패턴 사전에 기저장한 빈발패턴의 서브그래프를 G1, 다음시점에 발견한 빈발패턴의 서브그래프를 G2라고 할 때, G1⊆G2이면, G1와 G2를 동형 그래프로 판단하고, G1를 G2를 이용해 확장시키는 업데이트를 수행하여, 확장 서브그래프가 패턴 사전에 유지되도록 할 수 있다.Therefore, in the present invention, when G 1 is a subgraph of a frequent pattern previously stored in a pattern dictionary and G 2 is a subgraph of a frequent pattern found at the next point in time, if G 1 ⊆G 2 , then G 1 and G 2 are isomorphic. It is possible to determine the graph and perform an update that expands G 1 using G 2 , so that the extended subgraph is maintained in the pattern dictionary.
이처럼 본 발명에서는 시간 경과에 따라 변화하는 그래프스트림에서 자주 사용되는 빈발패턴만 패턴 사전에 남기고, 자주 사용되지 않는 빈발패턴을 패턴 사전에서 삭제 처리하는 방식으로, 점진적으로 기준 빈발패턴을 찾아 압축하는 기법을 통해 패턴 사전의 크기를 줄임으로써, 그래프스트림의 압축 효율을 높일 수 있고, 상대적으로 인메모리에 더 많은 양의 데이터를 유지하여 그래프 처리 속도를 향상시킬 수 있다.As such, in the present invention, only frequent patterns that are frequently used in a graph stream that changes over time are left in the pattern dictionary, and infrequently used frequent patterns are deleted from the pattern dictionary, thereby gradually finding and compressing reference frequent patterns. By reducing the size of the pattern dictionary through , the compression efficiency of the graph stream can be increased, and the graph processing speed can be improved by maintaining a relatively large amount of data in in-memory.
도 1은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템의 구성을 도시한 블록도이다.1 is a block diagram showing the configuration of a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템(100)은, 추출부(110), 저장부(120), 업데이트부(130), 처리부(140), 및 패턴 사전(170)을 포함하여 구성할 수 있다. 또한, 실시예에 따라 점진적 빈발패턴 기반의 그래프스트림 압축 시스템(100)은, 판별부(150) 및 산출부(160)를 각각 추가하여 구성할 수 있다.Referring to FIG. 1, a graph
추출부(110)는 그래프스트림에 대한 압축 명령에 따라, 상기 그래프스트림 중 제1 시간(T) 동안 입력된 서브스트림으로부터, 제1 서브그래프를 추출한다.The
이를 위해 추출부(110)는 도 7에 도시한 시간이 지남에 따라 변화하는 Time Window Wn를 실시간으로 입력되는 그래프스트림에 적용하여, 그래프스트림을, 복수의 서브스트림으로 구분하고, Wn 중 최초의 W0을 그래프스트림에 적용해 얻어진 첫번째 서브스트림에서, 제1 서브그래프를 추출할 수 있다.To this end, the
도 7에 도시된 것처럼 하나의 Wn은 여러 개의 배치(Bn)로 구성될 수 있고, W0={B1, B2, B3}으로 정해질 경우, 추출부(110)는 첫번째 서브스트림에서 복수의 제1 서브그래프를 추출할 수 있다.As shown in FIG. 7, one W n may be composed of several batches (B n ), and when W 0 ={B 1 , B 2 , B 3 }, the
저장부(120)는 상기 제1 서브그래프를, 초기 빈발패턴으로서, 패턴 사전(170)에 저장한다.The
일례로 저장부(120)는 상기 제1 서브그래프를 구성하는 복수의 정점 및 상기 복수의 정점을 연결하는 간선을 패턴 사전(170)에 저장할 수 있다.For example, the
예를 들어 도 8의 (a)를 참조하면, 저장부(120)는 W0을 이용해 첫번째 스트림에서 추출된 제1 서브그래프를 구성하는 복수의 정점과 그 사이를 잇는 간선을 패턴 사전(170)에 저장할 수 있다.For example, referring to (a) of FIG. 8, the
상기 제1 시간(T)이 경과하면, 추출부(110)는 상기 그래프스트림 중, 제1 시간(T)의 경과시점부터 제2 시간(T) 동안 입력된 서브스트림으로부터, 제1 서브그래프와 상이한 제2 서브그래프를 추출할 수 있다.When the first time T elapses, the
도 8의 (b)를 참조하면, 추출부(110)는 W0 다음의 W1={B4, B5}을 그래프스트림에 적용해, 두번째 서브스트림에서 제2 서브그래프를 추출할 수 있다.Referring to (b) of FIG. 8 , the
업데이트부(130)는, 추출부(110)에 의해 추출된 제2 서브그래프를 이용하여, 패턴 사전(170) 내에서 상기 제1 서브그래프를 확장 서브그래프로 업데이트하여 유지한다.The
즉 업데이트부(130)는 상기 제1 서브그래프에 이어서 추출된 제2 서브그래프를 패턴 사전(170)에 단순 저장하는 대신에, 제2 서브그래프의 추출시점에 패턴 사전(170)에 기 저장된 상태의 제1 서브그래프를, 제2 서브그래프에 의해 확장시키는 업데이트를 통해, 제2 서브그래프를 구성하는 정점과 간선의 변화를 패턴 사전(170)에 반영할 수 있다.That is, instead of simply storing the second subgraph extracted following the first subgraph in the
일례로 업데이트부(130)는 상기 제2 서브그래프를 구성하는 복수의 정점을, 패턴 사전(170)에 기 저장된 기존정점과, 패턴 사전(170)에 기 저장되지 않은 신규정점으로 구분한 상태에서, 상기 기존정점과 상기 신규정점 사이를 연결하는 제1 간선을 상기 제2 서브그래프로부터 탐색할 수 있다.For example, the
상기 제1 간선은 패턴 사전(170) 내 제1 서브그래프에는 존재하지 않는 간선이므로, 업데이트부(130)는 상기 제1 간선을 제1 서브그래프에 추가 연결('변경')하여, 제1 서브그래프를 확장 서브그래프로 업데이트할 수 있다.Since the first trunk line does not exist in the first subgraph in the
또한 업데이트부(130)는 상기 제2 서브스트림으로부터, 상기 제1 간선에 연결되면서, 상기 신규정점 사이를 연결하는 제2 간선을 탐색할 수 있다.In addition, the
상기 제2 간선 역시, 패턴 사전(170) 내 제1 서브그래프에는 존재하지 않는 간선이므로, 업데이트부(130)는 상기 제2 간선을 상기 제1 서브그래프에 추가 연결('삽입')하여, 상기 확장 서브그래프로의 업데이트를 수행할 수 있다. 이때, 업데이트부(130)는 상기 신규정점 사이를 연결하는 제2 간선이 상기 제1 간선에 연결되지 않았더라도, 상기 제1 서브그래프에 추가 연결할 수 있다.Since the second trunk line is also an trunk line that does not exist in the first subgraph in the
또한 업데이트부(130)는 제2 서브그래프로부터 상기 기존정점 사이를 연결하는 제3 간선을 탐색할 수 있다.In addition, the
상기 제3 간선은, 패턴 사전(170) 내 제1 서브그래프에 이미 존재하는 간선이므로, 업데이트부(130)는 상기 제3 간선을 상기 제1 서브그래프에 추가하지 않고, 제1 서브그래프 내 해당 간선에 설정된 빈발도(Frequent)를 증가시킬 수 있다.Since the third trunk line already exists in the first subgraph in the
상기 업데이트를 수행하기에 앞서, 제1 서브그래프와 제2 서브그래프의 동형성을 확인하기 위해, 점진적 빈발패턴 기반의 그래프스트림 압축 시스템(100)은, 판별부(150)를 추가하여 구성할 수 있다.Prior to performing the update, in order to check the isomorphism of the first subgraph and the second subgraph, the graph
판별부(150)는 상기 제2 서브그래프의 추출에 따라, 'VF2 알고리즘'을 이용하여, 상기 제1 서브그래프와 상기 제2 서브그래프 간 유사도를 계산하고, 계산된 유사도에 따라, 상기 제1 서브그래프가, 상기 제2 서브그래프의 적어도 일부와 일치하는 동형 그래프인지 결정한다.The
예를 들어 도 6의 (a)와 (b)를 참조하면, 판별부(150)는 기존 서브그래프 패턴 G1및 새로 들어온 서브그래프 패턴 G2가 존재할 때, G1=G2일 때만 그래프 G1와 G2를 동형 그래프로 결정하는 것이 아니라, G1⊆G2의 관계가 되는 그래프 G1와 G2를 동형 그래프로 결정하고, G1와 G2를 유사도가 높은 패턴으로 판단할 수 있다.For example, referring to (a) and (b) of FIG. 6 , the
업데이트부(130)는 제1 서브그래프가 제2 서브그래프의 동형 그래프로 결정되면, 제2 서브그래프에 의해 제1 서브그래프의 업데이트를 수행할 수 있다.When the first subgraph is determined to be an isomorphic graph of the second subgraph, the
이처럼 업데이트부(130)는 기 저장된 제1 서브그래프가 금번에 추출된 제2 서브그래프의 동형 그래프로 결정될 때만 업데이트를 수행하여, 실시간 입력되는 그래프스트림에서 빈발패턴을 점진적으로 검출해 나갈 수 있다.As such, the
실시예에 따라, 업데이트부(130)는 상기 업데이트 이전의 상기 제1 서브그래프에 설정된 빈발도를, 상기 업데이트에 이용된 제2 서브그래프의 개수 만큼 증가한 값에 따라, 상기 확장 서브그래프의 빈발도를 설정할 수 있다.Depending on the embodiment, the
처리부(140)는 제1 시간 및 제2 시간을 합산한 시간(2T)이, 정해진 시간(τ)에 도달하면(2T=τ), 패턴 사전(170) 내에 유지되는 상기 확장 서브그래프를, 기준 빈발패턴으로서, 압축 처리한다.When the sum of the first time and the second time (2T) reaches a predetermined time (2T=τ), the
이때, 처리부(140)는 상기 초기 빈발패턴으로서 복수의 제1 서브그래프가 패턴 사전(170)에 저장된 경우, 복수의 제1 서브그래프 중, 상기 확장 서브그래프로의 업데이트에 관여하지 않은 제1 서브그래프를, 상기 압축 처리 전에 패턴 사전(170)으로부터 삭제 처리할 수 있다.At this time, when a plurality of first subgraphs are stored in the
이처럼 처리부(140)는 자주 나오는 패턴을 기준 빈발패턴으로서 패턴 사전(170)에 유지해 압축에 사용하고, 자주 나오지 않는 패턴을 패턴 사전(170)에서 삭제해 패턴 사전(170)의 크기를 감소함으로써, 그래프스트림의 압축 효율을 높이고 압축 처리에 소요되는 시간을 단축할 수 있다.In this way, the
다른 일례로, 처리부(140)는 제1 시간 및 제2 시간을 합산한 시간(2T)이, 정해진 시간(τ)에 아직 도달하지 않은 경우(2T<τ), 합산한 시간(2T)이 정해진 시간(τ)에 도달할 때까지 상기 압축 처리를 보류하고, 상기 그래프스트림 중 새로운 서브스트림의 입력 시마다 추출부(110)에 의한 서브그래프 추출 및 업데이트부(130)에 의한 업데이트를 반복할 수 있다.In another example, the
즉 추출부(110)는 상기 그래프스트림 중, 상기 제2 시간의 경과시점부터 제3 시간 동안 입력된 서브스트림으로부터, 상기 제1 서브그래프 및 제2 서브그래프와 상이한 제3 서브그래프를 추출하고, 업데이트부(130)는 상기 제3 서브그래프를 이용하여, 상기 확장 서브그래프를 추가확장 서브그래프로 업데이트할 수 있다.That is, the
이러한 과정을 통해 업데이트부(130)는 초기 빈발패턴의 제1 서브그래프를 점진적으로 확장하여 업데이트할 수 있다.Through this process, the
이 경우에도, 처리부(140)는 초기 빈발패턴으로서 복수의 제1 서브그래프가 패턴 사전(170)에 저장된 경우, 복수의 제1 서브그래프 중, 상기 확장 서브그래프 또는 상기 추가확장 서브그래프로의 업데이트에 관여하지 않은 제1 서브그래프를, 상기 압축 처리 전에 패턴 사전(170)으로부터 삭제 처리할 수 있다.Even in this case, the
이처럼 처리부(140)는 패턴 사전(170)에 자주 사용되는 패턴을 유지하고, 자주 사용되지 않는 패턴을 삭제 처리해 패턴 사전(170)을 축소하여, 그래프스트림의 압축율을 최대화할 수 있다.As such, the
다시 말해 본 발명에서는 시간 변화에 따라 변화하는 그래프스트림의 전체에서 자주 사용되는 최소한의 기준 빈발패턴을 패턴 사전(170)에 남김으로써, 그래프스트림의 압축 효율을 높이고 압축 처리를 빠르게 진행할 수 있다.In other words, in the present invention, the compression efficiency of the graph stream can be increased and the compression process can be performed quickly by leaving the minimum reference frequent pattern frequently used in the entire graph stream that changes with time in the
실시예에 따라, 점진적 빈발패턴 기반의 그래프스트림 압축 시스템(100)은, 패턴의 빈발도와 그래프 연결성을 고려해 보다 중요도 높은 패턴이 기준 빈발패턴으로서 패턴 사전(170) 내에 유지되도록, 패턴 점수(RPS)를 산출하는 산출부(160)를 추가하여 구성할 수 있다.According to an embodiment, the graph
산출부(160)는 상기 확장 서브그래프가 복수이면, 복수의 확장 서브그래프 각각에 대해, 빈발도 및 간선 크기를 고려하여, 패턴 점수를 산출한다.If there are a plurality of extension subgraphs, the
산출부(160)는 그래프스트림 전체에서 자주 발생하며 그래프 연결이 많은 서브그래프 패턴을 기준패턴으로 채택하기 위해, 서브그래프 패턴의 빈발도(Frequent)와 간선 크기(Edge Size)를 고려하여 후술하는 수식(1)에 따라 패턴 점수(RPS)를 산출할 수 있다.In order to adopt a subgraph pattern that occurs frequently throughout the graph stream and has many graph connections as a reference pattern, the
처리부(140)는 상기 패턴 점수 순에 따른 상위 k(상기 k는 자연수)개의 확장 서브그래프를 선별하고, 선별한 k개의 확장 서브그래프를, 기준 빈발패턴으로서 지정(선별)할 수 있다.The
이때, 처리부(140)는 상기 패턴 점수 순에 따라 복수의 확장 서브그래프 중에서 선별되지 않는 나머지 확장 서브그래프를 패턴 사전(170)으로부터 삭제 처리함으로써, 패턴 사전(170)의 크기를 줄일 수 있다.At this time, the
예를 들어 도 10을 참조하면, 도 10의 (a)와 같은 패턴 트리가 입력되었을 때 패턴 사전(230)에는, 도 10의 (b)에 도시한 테이블(1010)과 같이, 각 패턴이 입력된 순서대로 배정된 인덱스 1~8이 패턴 식별자 P_id로서 기록되고, 패턴 P_id 1~4에 대한 타임스탬프는 T, 패턴 P_id 5~8에 대한 타임스탬프는 T+1로 기록되며, 이와 함께, 각 패턴의 빈발도(Frequent)가 기록된다.For example, referring to FIG. 10, when a pattern tree as shown in (a) of FIG. 10 is input, each pattern is input to the
이후 처리부(140)는 Top-k(k=6)를 적용하여, 테이블(1010)에 기록된 각 패턴을 빈발도가 높은 순으로 정렬했을 때, 상위 6개에 해당하는 패턴 P_id 1, 4, 2, 3, 8, 5를 기준패턴으로서 선별하고, 선별되지 않은 나머지 패턴을 삭제할 수 있다.Thereafter, the
기준패턴 선별 시 패턴의 빈발도가 동등한 경우, 처리부(140)는 edge의 개수가 더 많거나, 먼저 입력되어 P_id가 낮은 패턴을 우선적으로 기준패턴으로 선별할 수 있다.When selecting the reference pattern, if the frequency of the patterns is the same, the
이에 따라 최종적으로 패턴 사전(230)에는, 도 10의 (b)에 도시한 테이블(1020)과 같이, 자주 발생하면서, 간선 크기가 커서 그래프 연결성이 높은 기준 빈발패턴이 유지될 수 있다.Accordingly, in the
이처럼 본 발명에서는 Top-K Pattern의 적용에 의해, 중요도 높은 기준패턴을 선별해 패턴 사전(170)에 유지할 수 있고, 또한 패턴 사전(170)의 Max-size를 제한하여, 계산량 증가로 인한 Overload 발생을 방지할 수 있다.In this way, in the present invention, by applying the Top-K Pattern, it is possible to select a reference pattern of high importance and keep it in the
저장부(120)는 상기 기준 빈발패턴으로 지정된 확장 서브그래프를 기준으로, 시간 경과에 따라 변경되어 입력되는 상기 그래프스트림에 대한 변경사항을 기록한 프로버넌스 정보를, 패턴 사전(170)에 저장할 수 있다.The
여기서 상기 프로버넌스 정보는, 기준 빈발패턴으로 지정된 확장 서브그래프에 대해, 설정된 빈발도 및 간선 크기에 따라 산출되는 패턴 점수와, 상기 제1 서브그래프 및 제2 서브그래프가 추출된 각 서브스트림이 입력되는 시간인 제1 시간 및 제2 시간을 기록한 타임스탬프와, 각 서브스트림을 구성하는 배치(Batch)의 개수, 및 상기 확장 서브그래프의 식별을 위한 패턴ID 중 적어도 하나를 포함할 수 있다.Here, the provenance information includes a pattern score calculated according to the set frequency and edge size for the extended subgraph designated as the reference frequent pattern, and each substream from which the first subgraph and the second subgraph are extracted. It may include at least one of timestamps recording the first and second input times, the number of batches constituting each substream, and a pattern ID for identifying the extended subgraph.
예를 들어 도 11을 참조하면, 저장부(120)는 5개의 패턴(패턴 ID 1~5)에 대한 빈발도, 간선크기, 패턴 점수(RPS), 타임스탬프, Prov(State), 배치(Batch)를 포함하여 생성한 프로버넌스 정보를 패턴 사전(170)에 함께 저장할 수 있다.For example, referring to FIG. 11 , the
처리부(140)는 기준 빈발패턴 및 그에 대한 프로버넌스 정보를 저장한 패턴 사전(170)에, 사전 인코딩(dictionary encoding) 기법을 적용하여, 압축 처리할 수 있다.The
즉, 처리부(140)는 데이터 스트림에서 반복 패턴을 찾고 더 짧은 이진 코드로 반복 패턴을 나타내는 패턴 사전(170)이 구축되면, 이진 코드와 패턴 사전(170)을 사용하여 압축된 데이터를 저장할 수 있다.That is, when the
처리부(140)는 데이터 구조가 담고 있는 문자열의 집합과 압축된 텍스트 사이에서 일치하는 항목을 찾아 동작하는 사전기반 압축 기법에 따라, 그래프를 이진 데이터로 사전 인코딩하면, 그래프 패턴을 그대로 저장하는 것보다 훨씬 작은 크기로 압축해 저장할 수 있어, 차지하는 메모리 공간을 크게 줄일 수 있다.According to the dictionary-based compression technique in which the
본 발명에 따르면, 이전시점에 발견하여 패턴 사전에 저장한 빈발패턴을, 현시점에 발견한 빈발패턴을 이용해 확장시켜 업데이트하는 과정을, 시간 경과에 따른 스트림 입력 시마다 반복하여, 패턴 사전 내의 빈발패턴을 점진적으로 업데이트함으로써, 정해진 종료시점에 도달했을 때 패턴 사전에 시간 변화에 따라 변화하는 그래프스트림의 전체에서 기준이 되는 빈발패턴이 남도록 할 수 있고, 이를 통해 그래프스트림의 압축 효율 및 처리 속도를 향상시킬 수 있다.According to the present invention, a process of expanding and updating a frequent pattern found at a previous time and stored in a pattern dictionary using a frequent pattern found at the present time is repeated every time a stream is input over time, so that a frequent pattern in the pattern dictionary is changed. By gradually updating, when a predetermined end point is reached, it is possible to ensure that a frequent pattern, which is the standard, remains in the entire graph stream that changes according to the change in time in advance of the pattern, and through this, the compression efficiency and processing speed of the graph stream can be improved. can
도 2는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템의 전체 구조도를 도시한 도면이다.2 is a diagram showing the overall structure of a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템(200)은, 기준 패턴 생성기(210), 그래프 관리기(220), 인메모리(201) 상의 패턴 사전(230), 및 압축 처리부(240)를 포함하여 구성할 수 있다.Referring to FIG. 2, the graph
기준 패턴 생성기(Reference Pattern)(210)는 그래프스트림 G[t]이 입력될 때 빈발하는 서브그래프 패턴을 추출하고, 추출된 서브그래프 패턴의 빈발도 및 간선 크기에 따라 패턴 점수를 산출하고, 추출된 서브그래프 패턴 중에서 패턴 점수가 높게 산출된 순으로 일정 수의 기준패턴을 결정하는 역할을 한다.The reference pattern generator (Reference Pattern) 210 extracts frequent subgraph patterns when the graph stream G[t] is input, calculates pattern scores according to the frequency and edge size of the extracted subgraph patterns, and extracts It plays a role in determining a certain number of reference patterns in the order in which pattern scores are calculated among the subgraph patterns.
또한 기준 패턴 생성기(210)는 추출된 서브그래프 패턴 중에서 압축률이 가장 높은 패턴을 기준패턴으로 결정할 수 있다.Also, the
기준 패턴 생성기(210)는 이러한 과정을 반복하여 기준패턴을 그래프 관리기(220)로 전달함과 동시에, 패턴 사전(230)에 저장하여, 다음 윈도우에서 활용할 수 있다.The
그래프 관리기(Graph Manager)(220)는 스트림 환경에서 시간의 변화가 있을 때, 패턴 관리 정책을 사용하여 패턴을 관리하고 패턴 간의 유사도를 판별하는 역할을 수행한다.The
패턴 사전(Pattern Dictionary)(230)에는, 기준 패턴 생성기(210)에서 생성된 서브그래프 패턴과 함께, 관련된 프로버넌스 정보가 함께 저장된다.In the
상기 프로버넌스 정보는, 도 11에 도시된 것처럼, 각 패턴의 패턴 ID, 빈발도, 간선의 크기, 패턴 점수, 타임스탬프, 배치 수 등이 포함될 수 있다.As shown in FIG. 11 , the provenance information may include a pattern ID, frequency, size of an edge, pattern score, timestamp, number of batches, and the like of each pattern.
패턴 사전(230)에 저장되는 모든 데이터는, 저장 공간을 효율적으로 사용하기 위해 사전 인코딩에 의해 변환되어 저장된다.All data stored in the
기준 패턴 생성기(210)와 그래프 관리기(220)에서는 패턴 사전(230)에 저장되는 데이터를 활용하여, 기준패턴을 결정한다.The
압축 처리부(240)는 기준 패턴 생성기(210)에서 만들어진 기준패턴을 적용하여 최종적으로 그래프 데이터를 압축한다.The
도 3은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 도 2에 도시한 기준 패턴 생성기(210)의 수행 과정을 도시한 도면이다.FIG. 3 is a diagram illustrating a process of performing the
도 3을 참조하면, 기준 패턴 생성기(210)는 초기 빈발패턴 탐색(step1), 점진적 빈발패턴 탐색(step2), 기준 빈발패턴 탐색(step3)의 과정을 거쳐, 산출된 패턴 점수가 가장 높은 패턴을 기준패턴으로 결정할 수 있다.Referring to FIG. 3 , the
(step 1)초기 빈발패턴 탐색 과정은 그래프가 기존에 존재하지 않거나, 또는, 패턴 사전(230)에 패턴이 없을 때 수행된다. 이러한 경우 패턴 사전(230)에 저장된 기준패턴이 존재하지 않는다. 따라서, 기준 패턴 생성기(210)는 그래프를 배치 크기로 탐색하여 초기에 단일 간선 패턴을 찾는다.(Step 1) The initial frequent pattern search process is performed when a graph does not exist or there is no pattern in the
[표 1]은 초기 빈발패턴을 탐색하는 알고리즘을 나타낸다. 배치 그래프 GB의 간선 e는 (vsource, vtarget, l)이다. 기준 패턴 생성기(210)는 단일 간선 그래프를 생성한 뒤, 리스트의 순서대로 앞에 들어오는 정점은 vsource로 수정하고, 뒤에 들어오는 정점은 vtarget로 수정하고, 간선은 (vsource, vtarget, l)로 추가한 뒤, 패턴사전(230)에 저장하게 된다.[Table 1] shows an algorithm for searching for an initial frequent pattern. The edge e of the batch graph G B is (v source , v target , l). The
(step2)점진적 빈발패턴 탐색 과정은, 그래프에서 찾은 패턴에 속한 서브그래프에 대해 반복적으로 수행하게 되며 step1 수행 시에는 패턴이 존재하지 않기 때문에 수행되지 않는다.(step2) The gradual frequent pattern search process is repeatedly performed for the subgraph belonging to the pattern found in the graph, and is not performed during
[표 2]는 점진적 빈발패턴 알고리즘을 나타낸다. 이 과정에선 초기 빈발패턴 탐색에서 나타난 단일 간선 패턴을 점진적으로 업데이트하는 과정이 수행된다. [Table 2] shows the gradual recurrence pattern algorithm. In this process, a process of gradually updating the single edge pattern that appeared in the initial frequent pattern search is performed.
그래프에서 찾은 서브그래프 셋에 속한 각 서브그래프에 대해 확인하고 G(v)→P(v)를 반복 수행하면서 정점을 인덱스로 매칭한 뒤, 각 서브그래프를 정점이 들어오는 순서대로 인덱스로 매칭시켜 그래프의 크기를 감소시킨다.After checking each subgraph belonging to the set of subgraphs found in the graph and repeating G(v) → P(v), vertices are matched by index, and each subgraph is matched by index in the order in which vertices come in, resulting in a graph reduce the size of
도 4는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 서브그래프의 정점에 인덱스를 부여해 패턴 사전(230)에 저장하는 과정을 설명하기 위한 도면이다.4 is a diagram for explaining a process of assigning indexes to vertices of subgraphs and storing them in the
도 4를 참조하면, 그래프스트림에서 G(v)와 같이 정점이 순서대로 들어올 때, P(v)는 들어오는 순서대로 인덱스(0, 1, ...)로 매칭(배정)되어 패턴 사전(230)에 저장된다. 즉, G(v)=[132, 12, 51, 43, 21, 19, 12, 3, …이 들어올 때, 그래프의 정점이 들어온 순서대로 P(v)=[0, 1, 2, 3, 4, 5, 1, 6, …로 매칭된다.Referring to FIG. 4, when vertices are entered in order as in G(v) in the graph stream, P(v) is matched (assigned) to indexes (0, 1, ...) in the order of entry, and the pattern dictionary 230 ) is stored in That is, G(v)=[132, 12, 51, 43, 21, 19, 12, 3, ... comes in, P(v)=[0, 1, 2, 3, 4, 5, 1, 6, … in the order the vertices of the graph came in. matched with
이때, 도면부호(410)로 나타낸 것처럼, 앞서 인덱스 '1'로 배정된 정점 G(12) 및 인덱스 '6'으로 배정된 G(3)은, 기존 인덱스(1, 6)로 매칭된다.At this time, as indicated by
G(v)와 P(v)에 저장된 정점이, 패턴에 저장된 간선과 연결되어 있는지 연결성을 확인하여, G(v)값이 더 높으면 패턴을 확장하는 과정이 수행된다.Connectivity is checked to see if the vertices stored in G(v) and P(v) are connected to the edges stored in the pattern, and if the value of G(v) is higher, the process of extending the pattern is performed.
예를 들어 g(e)의 간선 e가 패턴에 존재하지 않으면, 패턴을 확장하고, 존재하면 패턴 사전(230)에 더해진다.For example, if the edge e of g(e) does not exist in the pattern, the pattern is expanded, and if present, it is added to the
(step 3)기준 빈발패턴 탐색 과정에서는, 추출된 서브그래프 패턴 중에서 패턴 점수에 따라 기준패턴을 채택하는 과정이 수행된다. (step 3) In the reference frequent pattern search process, a process of adopting a reference pattern according to pattern scores among the extracted subgraph patterns is performed.
이 과정에서는 그래프스트림 전체에서 자주 발생하며 그래프 연결이 많은 서브그래프 패턴을 기준패턴으로 채택하기 위해, 서브그래프 패턴의 빈발도와 간선 크기를 고려하여 수식(1)에 따라 패턴 점수(RPS)를 산출하고, 패턴 점수(RPS)가 높은 순으로 기준패턴이 채택될 수 있다.In this process, in order to adopt a subgraph pattern that occurs frequently throughout the graph stream and has many graph connections as a reference pattern, the pattern score (RPS) is calculated according to Equation (1) in consideration of the frequency and edge size of the subgraph pattern, , the reference patterns may be adopted in the order of high pattern scores (RPS).
예를 들어, 패턴 사전(230)에 기 저장된 패턴이, 새로 들어온 그래프 GB에서 추출된 서브그래프 g와 동형 그래프로 판단되면, 수식(1)에 따라 계산된 패턴 점수(RPS)가 패턴 사전(230)에 업데이트된다. 수식(1)에서 α와 β는 상수값이다.For example, if a pattern previously stored in the
도 5는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 도 2에 도시한 그래프 관리기(220)의 수행 과정을 도시한 도면이다.FIG. 5 is a diagram illustrating a process of performing the
그래프 관리기(220)는 새로 들어온 그래프스트림 G[t]에서 시간 경과에 따라 변화가 있을 때, 패턴 관리 정책을 사용하여 패턴을 관리하고, 또한 그래프의 유사도를 판단해 기존과 다른 패턴이 나오면 기준 패턴 생성기(210)를 재수행시키는 역할을 한다.The
도 5를 참조하면, 그래프 관리기(220)는 새로 들어온 패턴의 기존 패턴과의 유사도 및 중요도에 따라 패턴 관리 정책을 결정하여 패턴을 관리하기 위해, 유사도 검증기(221) 및 패턴 관리기(222)를 포함하여 구성된다.Referring to FIG. 5 , the
유사도 검증기(Similarity Verification)(221)는 패턴 사전(230)에 저장된 기존 패턴들과 시간 t에서 새로 들어온 패턴을 비교하여 유사도를 검증한다.The
유사도 검증기(221)는 VF2 알고리즘에 따라 유사도를 계산할 수 있고, 또한, 서브그래프 동형성 검사를 수행하여 기준패턴과 새로 들어온 패턴 Gt의 유사도를 계산할 수 있다.The
도 6은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 서브그래프 간 유사도 판별 결과에 따라 동형 그래프를 결정하는 과정을 설명하기 위한 도면이다.6 is a diagram for explaining a process of determining an isomorphic graph according to a similarity determination result between subgraphs in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
도 6의 (a)와 (b)를 참조하면, 유사도 검증기(221)는 기존 서브그래프 패턴 G1및 새로 들어온 서브그래프 패턴 G2가 존재할 때, G1=G2일 때만 그래프 G1와 G2를 동형 그래프로 결정하는 것이 아니라, G1⊆G2의 관계가 되는 그래프 G1와 G2를 동형 그래프로 결정하고, G1와 G2를 유사도가 높은 패턴으로 판단할 수 있다.Referring to (a) and (b) of FIG. 6, the
이는 종래 대부분의 압축 알고리즘에서 기준패턴이 정점과 간선에 공통으로 나타난 그래프를 기준패턴으로 결정하고, 기준패턴에서 변경된 사항을 기술하는 방법을 사용하고 있지만, 그래프 패턴이 완전히 일치하는 패턴만 탐색한다면 압축에 적용할 패턴의 개수가 적어져 압축에 적용하기 어렵다는 점을 고려한 것으로, 유사도 검증기(221)는 완전 일치하지 않은 패턴도 동형으로 판단하여 다른 알고리즘보다 유연하게 패턴 유사도를 검증할 수 있다.In most conventional compression algorithms, a method of determining a graph in which the reference pattern is common to vertices and edges is determined as a reference pattern and describing changes in the reference pattern, but if only patterns that match the graph pattern completely match are searched for, compression is performed. Considering the fact that it is difficult to apply compression because the number of patterns to be applied is small, the
유사도 검증기(221)는 전체 그래프가 아닌 기준 패턴 생성기(210)에서 패턴 점수(RPS)를 통해 정해진 기준패턴과 새로 들어온 패턴의 유사성을 판별해 비교 연산량을 줄일 수 있다.The
패턴 관리기(Pattern Manager)(222)는 타임스탬프(Time-Stamp)와 FP-Tree를 활용한 Pruning, 패턴 사전(230)에 저장되는 패턴의 크기 제한을 통해 패턴의 중요도를 결정하고 관리한다.The
그래프스트림에서는 항상 일정한 패턴이 나오는 것이 아니라 시간에 따라 패턴이 달라지기 때문에, 현재시점에서 패턴과 시간이 지난 후 패턴이 다를 수 있다.Since a pattern does not always come out in a graph stream and the pattern changes over time, the pattern at the present time and the pattern after time may differ.
이 점을 고려해 패턴 관리기(222)에서는 빈발패턴 검출 시, 타임스탬프 Trimming와, FP-Tree를 활용한 Pruning, 및 Top-K Pattern의 정책을 적용한다.Considering this point, the
타임스탬프 Trimming은, 정해진 임계값 τ의 Window가 지나면 패턴을 삭제 처리함으로써, 다음에 입력될 그래프스트림 처리를 위한 메모리 공간을 확보하기 위한 처리이다(도 7 참조).Timestamp trimming is a process for securing a memory space for processing a graph stream to be input next by deleting a pattern after a window of a predetermined threshold value τ passes (see FIG. 7).
FP-Tree를 활용한 Pruning은, 패턴 사전(230)에 저장된 패턴을 FP-Growth 알고리즘에 적용하여 빈발하지 않는 패턴을 pruning(가지치기)함으로써, 한정적인 저장 공간을 효율적으로 사용하기 위한 처리이다(도 8 참조).Pruning using FP-Tree is a process for efficiently using limited storage space by applying patterns stored in the
Top-K Pattern은 기준패턴 중 자주 나오는 K개의 패턴만 저장하여, 패턴 사전(230)에 저장되는 패턴의 Max-size를 제한하기 위한 처리이다(도 9 참조).The Top-K Pattern is a process for limiting the Max-size of patterns stored in the
이에 따라 최종적으로 패턴 사전(230)에는 앞서 설명한 패턴의 빈발도와 유사도 및 중요도를 조합하여 정규화한 패턴 점수(Pattern Score)가 높은 순서대로 패턴이 저장될 수 있다.Accordingly, patterns may be finally stored in the
도 7은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 시간 경과에 따라 변화하는 시간 윈도우를 설명하기 위한 도면이다.7 is a diagram for explaining a time window that changes over time in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
도 7에는 시간이 지남에 따라 변화하는 Time Window W0~ W3이 도시되고, Time Window 경과시마다 타임스탬프는 업데이트된다.7 shows a time window W 0 to W 3 that changes over time, and a timestamp is updated whenever the time window elapses.
하나의 윈도우(Wn)에는 여러 개의 배치(Bn)가 포함되고, 배치 개수는 사용자가 지정할 수 있다. 예를 들어 배치(Batch)의 수가 '3'으로 지정된 윈도우 W0이 존재하면, W0={B1, B2, B3}으로 표현된다.One window (W n ) includes several batches (B n ), and the number of batches can be designated by the user. For example, if a window W 0 in which the number of batches is designated as '3' exists, W 0 = {B 1 , B 2 , B 3 }.
임계값 τ=4로 정해진 경우, 패턴 관리기(222)는 W0~ W3까지의 패턴을 유지하다가, W4의 패턴이 들어오기 전에 W0~ W3의 패턴을 인메모리(201)에서 삭제하여, 다음 그래프스트림 처리를 위한 메모리 공간을 확보할 수 있다.When the threshold τ=4 is set, the
도 8은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 빈발패턴의 점진적인 업데이트 과정을 설명하기 위한 도면이다.8 is a diagram for explaining a process of gradually updating frequent patterns in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
도 8의 (a)에는 첫 번째 스트림에서 시간을 고려한 패턴 업데이트가 도시되고, 도 8의 (b)에는 두 번째 스트림에서 시간을 고려한 패턴 업데이트가 도시되어 있다.In (a) of FIG. 8, a pattern update in consideration of time is shown in the first stream, and in (b) of FIG. 8, a pattern update in consideration of time is shown in the second stream.
패턴 관리기(222)는 도 8의 (a)와 (b)에 도시된 것처럼, 그래프스트림에서 윈도우(W0, W1)와 배치(Batch 1~5)를 이용해, 시간 경과에 따른 패턴 변화(정점과 간선의 변화)을 감지하여, 패턴 사전(230)을 관리한다.As shown in (a) and (b) of FIG. 8, the
패턴 사전(230)에 저장된 기준패턴은 업데이트/삭제하며 관리하게 된다. 예를 들어 도 8의 (a)와 같이 배치의 크기가 3인 윈도우가 존재할 때, 모든 정점이 처음 나온 패턴이라면 타임스탬프를 현재시점인 T로 유지한다.The reference patterns stored in the
Window의 크기가 3일 때, Batch 1에서 P1, P2, P3의 패턴이 등장하고 Batch 2는 Batch1에서 등장한 패턴인 P1과 P2의 확장패턴인 P1+2가 추가되어 P1, P2, P3, P1+2의 총 4개의 패턴이 등장한다. Batch3은 Batch1, Batch2에서 나온 P1 패턴이 제외된 P2, P3, P1+2, P4의 패턴이 등장한다. 따라서 W0에 패턴은 P1, P2, P3, P1+2, P4가 존재한다.When the size of the window is 3, the patterns P 1 , P 2 , and P 3 appear in
이후, 도 8의 (b)와 같이 W0→ W1 로 시간이 변화할 때 패턴은 업데이트 된다. W1에 W0과 같은 패턴이 계속 나온다면 타임스탬프를 현재시점(T)로 계속 유지하지만, W1에 나오지 않은 패턴인 P1과 P1+2는 이전시점(T-1)에만 존재하므로, 타임스탬프를 T-1로 수정한다. 이전시점에서 나오지 않았지만 현재에 추가된 패턴인 P5와 P2+3은 추가된다. 이러한 과정을 반복 수행하여 타임스탬프를 수정하고 임계값인 T = τ인 시점 동안 윈도우에서 등장하지 않은 패턴은 삭제된다. After that, the pattern is updated when the time changes from W 0 → W 1 as shown in (b) of FIG. 8 . If the same pattern as W 0 continues to appear in W 1 , the timestamp is maintained at the current point in time (T). , correct the timestamp to T-1. The patterns P 5 and P 2+3 , which did not appear at the previous point but are added to the present, are added. By repeating this process, the timestamp is corrected, and patterns that do not appear in the window during the threshold value of T = τ are deleted.
본 발명에서는 이처럼 패턴을 업데이트/삭제하는 과정을 통해 자주 나오는 패턴은 유지해 압축에 사용하고, 자주 나오지 않는 패턴은 삭제하여 관리함으로써, 메모리 공간을 확보하고 그래프스트림의 처리 속도를 높일 수 있다.In the present invention, through the process of updating/deleting patterns, frequently occurring patterns are maintained and used for compression, and infrequently occurring patterns are deleted and managed, thereby securing memory space and increasing the processing speed of graph streams.
도 9는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, FP-Growth 알고리즘을 적용한 Pruning 과정을 설명하기 위한 도면이다.9 is a diagram for explaining a pruning process to which the FP-Growth algorithm is applied in the graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
도 9에는 FP-Growth알고리즘을 적용한 Pruning 과정이 예시된다. 패턴 P에는 (pid, B, T, Frequent)의 정보가 저장된다. 여기서 Pid는 패턴ID이고, B는, 윈도우당 배치 수이고, T는 타임스탬프이고, Frequent는 빈발도를 나타낸다.9 illustrates a pruning process to which the FP-Growth algorithm is applied. Information of (pid, B, T, Frequent) is stored in pattern P. Here, Pid is the pattern ID, B is the number of batches per window, T is the timestamp, and Frequent indicates the frequency.
빈발도임계값(Frequent Threshold)=3, 시간임계값(Time Threshold)=2로 적용한 경우, 리프 노드에서 일정 임계값 이하의 값이 나오는 패턴을 자주 나오지 않는 패턴으로 판단하여 Pruning한다.When Frequent Threshold = 3 and Time Threshold = 2 are applied, patterns that occur below a certain threshold in leaf nodes are judged as infrequent patterns and pruned.
윈도우 W0에서 임계값을 만족하지 못하는 패턴 P1, P1+2는 Pruning된다.Patterns P 1 and P 1+2 that do not satisfy the threshold in window W 0 are pruned.
윈도우 W1에서 임계값을 만족하지 못하는 패턴 P5도 Pruning된다.Patterns P 5 that do not satisfy the threshold in window W 1 are also pruned.
이러한 과정을 통해 본 발명에서는 패턴을 유지하는 비용을 줄이고 다음 스트림에 들어오는 데이터를 유지할 수 있는 메모리 상 공간을 만들 수 있다.Through this process, in the present invention, it is possible to reduce the cost of maintaining a pattern and create a memory space capable of holding data coming into the next stream.
패턴 사전(230)에 저장된 패턴을 FP-Growth 알고리즘에 적용해 자주 나오지 않는 패턴을 pruning하여, 데이터의 크기를 감소시켜 인메모리 환경에 많은 그래프 데이터를 유지 및 처리 수행할 수 있고, 자주 사용되지 않는 패턴들을 패턴사전에서 업데이트/삭제해 최신 패턴을 유지하여 실시간으로 변화하는 그래프스트림에서 압축 효율 향상시킨다.Patterns stored in the
도 10은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 패턴 트리(a)에 따라 구축되는 패턴 사전(b)을 예시한 도면이다.10 is a diagram illustrating a pattern dictionary (b) constructed according to a pattern tree (a) in a graph stream compression system based on progressively frequent patterns according to an embodiment of the present invention.
도 10을 참조하면, 도 10의 (a)와 같은 패턴 트리가 존재할 때, 도 10의 (b)에 도시한 테이블(1010, 1020) 형태로 패턴 사전(230)에 데이터가 저장될 수 있다.Referring to FIG. 10 , when a pattern tree as shown in (a) of FIG. 10 exists, data may be stored in the
도 10의 (a)에 도시한 패턴 트리에서는, 먼저 시간 T에 패턴 (0, 1), (0, 2), (1, 3), (2, 3)이 입력되고, 시간이 경과한 시간 T+1에, 패턴 (0, 1, 2), (0, 1, 3), (0, 2, 3), (1, 3, 2)이 입력되는 것을 나타내고 있다.In the pattern tree shown in (a) of FIG. 10, first, patterns (0, 1), (0, 2), (1, 3), (2, 3) are input at time T, and the time elapses It shows that patterns (0, 1, 2), (0, 1, 3), (0, 2, 3), and (1, 3, 2) are input to T+1.
상기 패턴 트리에 따라, 테이블(1010)에는, 각 패턴이 입력된 순서대로 배정된 인덱스 1~8이 패턴 식별자 P_id로서 기록되고, 패턴 P_id 1~4에 대한 타임스탬프는 T, 패턴 P_id 5~8에 대한 타임스탬프는 T+1로 기록되며, 이와 함께, 각 패턴의 빈발도(Frequent)가 기록된다.According to the pattern tree, in the table 1010,
시간 임계값(τ)이 '2'로 정해진 경우, 시간 T 및 T+1에 입력되어 테이블(1010)에 기록된 패턴을 대상으로 Top-k를 적용해 기준패턴의 선정이 이루어진다.When the time threshold τ is set to '2', a reference pattern is selected by applying Top-k to patterns input at times T and T+1 and recorded in the table 1010 .
테이블(1010)에 기록된 각 패턴을 빈발도가 높은 순으로 정렬했을 때, k가 '6'으로 정해진 경우, 빈발도 상위 6개에 해당하는 패턴 P_id 1, 4, 2, 3, 8, 5이 기준패턴으로서 선별되고, 선별되지 않은 나머지 패턴은 삭제되어, 최종적으로는 테이블(1020)이 패턴 사전(230)에 저장될 수 있다.When each pattern recorded in the table 1010 is sorted in order of frequency, if k is set to '6',
이때 패턴의 빈발도(빈도수)가 동등하면, edge의 개수가 더 많은 패턴을 우선적으로 선별하고, edge의 개수도 동등하면, 먼저 입력된 순서, 즉, P_id가 낮은 순서대로 선별하도록 정해질 수 있다.At this time, if the frequency (frequency) of the pattern is equal, a pattern with a greater number of edges is selected first, and if the number of edges is also equal, it can be determined to select the first input order, that is, in the order of lower P_id. .
이처럼 본 발명에서는 Top-K Pattern의 적용에 의해, 자주 발생하면서 간선 크기가 큰 k개의 패턴을 중요도 높은 기준패턴으로 선별해 패턴 사전(230)에 저장할 수 있고, 또한 패턴 사전(230)의 Max-size를 제한하여, 계산량 증가로 인한 Overload 발생을 방지할 수 있다.As described above, in the present invention, by applying the Top-K Pattern, it is possible to select k patterns having a large edge size that occur frequently as reference patterns with high importance and store them in the
패턴 사전(230)은 인메모리(201) 내 공간에 저장되고, 패턴 사전(230)에는 기준 패턴 생성기(210)에서 생성된 기준패턴과, 그에 관련된 프로버넌스(Provenance) 정보가 저장된다. 프로버넌스 정보는 빈발도, 패턴 ID, 타임스탬프, 패턴 점수 등을 포함한다.The
일례로 그래프 패턴이 패턴 사전(230)에 저장될 때, 그래프 패턴의 정점과 간선이 그래프에서 얼마나 자주 나온 패턴인지를 고려하여 빈발도(빈도수)가 패턴 사전(230)에 저장되고, 패턴을 식별할 수 있는 패턴 ID, 타임스탬프, 패턴 점수 등도 패턴 사전(230)에 함께 저장된다.For example, when a graph pattern is stored in the
이러한 프로버넌스 정보를 활용하면, 그래프 패턴 마이닝으로 추출된 기준패턴으로부터 실시간으로 변화하는 그래프스트림의 변화 이력을 용이하게 파악할 수 있게 된다.Using this provenance information, it is possible to easily grasp the change history of a graph stream that changes in real time from the reference pattern extracted by graph pattern mining.
또한 패턴 사전(230)에 저장되는 모든 데이터는, 사전 인코딩(dictionary encoding)을 수행하여 변환되어 저장된다. 이후 변환된 데이터를 다시 인코딩하면, 사전 인코딩하지 않은 경우에 비해 작은 용량을 가지게 되어, 메모리 공간의 효율적인 사용이 가능해진다.In addition, all data stored in the
[표 3]은 프로버넌스 정보의 요소를 정의한다. 프로버넌스 정보는, 그래프 변화가 일어난 시간(Time, Tn)과 그래프의 정점/간선의 상태(State)를 포함하여 Prov(Time, State)와 같이 표시된다. State는 그래프의 정점/간선의 삽입(In)과 삭제(Dn) 및 변경(Un)으로 구분된다. [표 3]에 따라, 패턴 사전(230)에 저장되는 각 패턴의 프로버넌스 정보를 도 11에 예시된다.[Table 3] defines the elements of provenance information. Provenance information is displayed as Prov(Time, State), including the graph change time (Time, T n ) and the graph vertex/trunk state (State). State is divided into insertion (I n ), deletion (D n ), and change (U n ) of the vertex/trunk of the graph. According to [Table 3], provenance information of each pattern stored in the
도 11은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 패턴 사전에 저장되는 프로버넌스 정보를 도시한 도면이다.11 is a diagram illustrating provenance information stored in a pattern dictionary in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
도 11을 참조하면, 5개의 패턴(패턴 ID 1~5)이 패턴 사전(230)에 저장된 경우, 각 패턴에 대한 빈발도, 간선크기, 패턴 점수(RPS), 타임스탬프, Prov(State), 배치(Batch)를 포함하여 생성된 프로버넌스 정보가 함께 패턴 사전(230)에 저장될 수 있다.Referring to FIG. 11, when five patterns (
기준 패턴 생성기(210)와 그래프 관리기(220)에서는 패턴 사전(230)에 저장되는 프로버넌스 정보를 활용하여, 저장된 패턴 중에서, 빈발하면서 간선 크기가 커서 그래프 연결성이 높고, 유사도와 중요도가 높은 패턴을 기준패턴으로 선별하고, 선별되지 않은 패턴을 패턴 사전(230)에서 삭제해, 최종적으로 기준패턴만 패턴 사전(230)에 남길 수 있다.In the
본 발명에 따르면, 기준 빈발패턴 및 프로버넌스 정보를 활용하여, 최신 패턴의 이력 관리 및 변화 사항 파악이 용이해지고, 그 결과, 그래프 데이터의 크기를 감소하여 인메모리 환경에 많은 그래프 데이터를 유지하여 빠른 처리를 수행할 수 있게 한다.According to the present invention, by using the reference frequent pattern and provenance information, it is easy to manage the history of the latest pattern and grasp changes, and as a result, the size of graph data is reduced to maintain a lot of graph data in an in-memory environment. Allows for quick processing.
도 12는 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 시스템에서, 압축 처리 과정을 도시한 도면이다.12 is a diagram illustrating a compression process in a graph stream compression system based on progressive frequent patterns according to an embodiment of the present invention.
도 12를 참조하면, 기준 패턴 생성기(210)는 그래프스트림에서 발생하는 초기 빈발패턴을, 스트림 입력시마다 점진적으로 업데이트할 수 있다.Referring to FIG. 12 , the
이후 임계값으로 지정된 시간에 도달하면, 기준 패턴 생성기(210)는, 그래프 매니저(220)에 의해 얻어진 프로버넌스 정보(빈발도, 간선크기, 패턴 점수, 타임스탬프)를 활용하여, 빈발하면서 중요도 높은 패턴을 기준 빈발패턴으로서 선별하고, 선별되지 않은 패턴을 패턴 사전(230)에서 삭제할 수 있다.Then, when the time specified as the threshold value is reached, the
압축 처리부(240)는 사전 기반 압축 기법을 사용하여, 패턴 사전(230)에 남은 기준 빈발패턴을 압축 처리할 수 있다.The
사전기반 압축 기법은, 데이터 구조가 담고 있는 문자열의 집합과 압축된 텍스트 사이에서 일치하는 항목을 찾아 동작하는 것을 말한다.The dictionary-based compression technique works by finding matching items between a set of strings contained in a data structure and compressed text.
즉, 압축 처리부(240)는 데이터 스트림에서 반복 패턴을 찾고 더 짧은 이진 코드로 반복 패턴을 나타내는 사전을 구축한 후, 이진 코드와 사전만을 사용하여 압축된 데이터를 저장할 수 있다.That is, the
이처럼 압축 처리부(240)는 그래프를 이진 데이터로 인코딩하면 그래프 패턴을 저장하는 것보다 훨씬 작은 크기로 저장 공간을 크게 줄일 수 있다.As such, the
도 13은 본 발명의 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 방법의 순서를 도시한 흐름도이다.13 is a flowchart illustrating a sequence of a method for compressing a graph stream based on a gradual frequent pattern according to an embodiment of the present invention.
본 실시예에 따른 점진적 빈발패턴 기반의 그래프스트림 압축 방법은, 상술한 점진적 빈발패턴 기반의 그래프스트림 압축 시스템(100)에 의해 수행될 수 있다.The graph stream compression method based on the gradual frequent pattern according to the present embodiment may be performed by the above-described graph
도 13을 참조하면, 단계(1310)에서 그래프스트림 압축 시스템(100)은, 실시간으로 변화하는 그래프스트림이 입력되면, 단계(1320)에서 그래프스트림 압축 시스템(100)은, 상기 그래프스트림 중 제1 시간(T) 동안 입력된 서브스트림으로부터, 제1 서브그래프를 추출하여 초기 빈발패턴으로서 패턴 사전에 저장한다.Referring to FIG. 13, in
일례로 그래프스트림 압축 시스템(100)은 상기 제1 서브그래프를 구성하는 복수의 정점 및 상기 복수의 정점을 연결하는 간선을 상기 패턴 사전에 저장할 수 있다.For example, the graph
단계(1330)에서 그래프스트림 압축 시스템(100)은, 제1 시간(T)에 이어지는 제2 시간(T) 동안 입력된 서브스트림으로부터, 제1 서브그래프와 상이한 제2 서브그래프를 추출한다.In
단계(1340)에서 그래프스트림 압축 시스템(100)은, 패턴 사전 내 제1 서브그래프를, 제2 서브그래프를 이용해 확장시켜 업데이트한다.In
일례로 그래프스트림 압축 시스템(100)은 제2 서브그래프를 구성하는 복수의 정점을, 패턴 사전에 기 저장된 기존정점과, 패턴 사전에 저장되지 않는 신규정점으로 구분했을 때, 기존정점과 신규정점 사이를 연결하는 제1 간선과, 신규정점 사이를 연결하는 제2 간선을 제2 서브그래프에서 탐색하여, 상기 제1 서브그래프에 추가 연결함으로써, 상기 확장 서브그래프로의 업데이트를 수행할 수 있다.For example, when the graph
단계(1350)에서 그래프스트림 압축 시스템(100)은, 제1 시간 및 제2 시간을 합산한 시간(2T)이 정해진 시간(τ)에 도달하는지 확인한다.In
정해진 시간(τ)에 도달하지 않은 경우, 그래프스트림 압축 시스템(100)은, 상기 제2 시간(T)의 경과시점부터 제3 시간(T) 동안 입력된 서브스트림으로부터, 제1 및 제2 서브그래프와 상이한 제3 서브그래프를 추출하고, 상기 제3 서브그래프를 이용하여, 상기 확장 서브그래프를 추가확장 서브그래프로 업데이트하는 과정을, 제1 시간, 제2 시간 및 제3 시간을 합산한 시간(3T)이 정해진 시간(τ)에 도달할 때까지 반복 수행한다.If the predetermined time period (τ) is not reached, the
정해진 시간(τ)에 도달한 경우, 단계(1360)에서 그래프스트림 압축 시스템(100)은, 패턴 사전 내 확장 서브그래프를 기준 빈발패턴으로 지정하고, 단계(1370)에서 그래프스트림 압축 시스템(100)은, 패턴 사전을 압축 처리한다.When the predetermined time τ is reached, in
이와 같이, 본 발명에서는, 실시간으로 입력되는 그래프스트림으로부터 빈발하는 패턴을 찾아 기준 빈발패턴으로서 패턴 사전에 유지하고, 빈발하지 않는 패턴을 패턴 사전에서 제외하여, 그래프스트림의 압축에 적용할 데이터를 줄임으로써, 그래프스트림의 압축 처리 속도 및 압축 효율을 향상시키는 효과를 얻을 수 있다.As such, in the present invention, a frequent pattern is found from a graph stream input in real time, maintained in a pattern dictionary as a reference frequent pattern, and infrequent patterns are excluded from the pattern dictionary to reduce data to be applied to graph stream compression. As a result, the effect of improving the compression processing speed and compression efficiency of the graph stream can be obtained.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. The hardware devices 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)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on the above. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.
100: 점진적 빈발패턴 기반의 그래프스트림 압축 시스템
110: 추출부
120: 저장부
130: 업데이트부
140: 처리부
150: 판별부
160: 산출부
170: 패턴 사전100: Graph stream compression system based on progressive frequent patterns
110: extraction unit
120: storage unit
130: update unit
140: processing unit
150: determination unit
160: calculation unit
170: pattern dictionary
Claims (15)
상기 그래프스트림 중 제1 시간 동안 입력된 서브스트림으로부터, 제1 서브그래프를 추출하는 단계;
상기 제1 서브그래프를, 초기 빈발패턴으로서, 패턴 사전에 저장하는 단계;
상기 그래프스트림 중, 상기 제1 시간의 경과시점부터 제2 시간 동안 입력된 서브스트림으로부터, 상기 제1 서브그래프와 상이한 제2 서브그래프가 추출되면,
상기 제2 서브그래프를 이용하여, 상기 패턴 사전 내에서 상기 제1 서브그래프를 확장 서브그래프로 업데이트하여 유지하는 단계; 및
상기 제1 및 제2 시간을 합산한 시간이, 정해진 시간에 도달하면,
상기 패턴 사전 내에 유지되는 상기 확장 서브그래프를, 기준 빈발패턴으로서, 압축 처리하는 단계
를 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to the compression command for the graph stream input in real time,
extracting a first sub-graph from a sub-stream input during a first time among the graph streams;
storing the first subgraph as an initial frequent pattern in a pattern dictionary;
Among the graph streams, if a second subgraph different from the first subgraph is extracted from a substream input during a second time from the lapse of the first time,
updating and maintaining the first subgraph as an extended subgraph within the pattern dictionary using the second subgraph; and
When the sum of the first and second times reaches a predetermined time,
Compressing the extended subgraph maintained in the pattern dictionary as a reference frequent pattern
Graph stream compression method based on gradual recurrence pattern including
상기 제1 및 제2 시간을 합산한 시간이, 정해진 시간에 도달하지 않은 경우,
상기 그래프스트림 중, 상기 제2 시간의 경과시점부터 제3 시간 동안 입력된 서브스트림으로부터, 상기 제1 및 제2 서브그래프와 상이한 제3 서브그래프를 추출하는 단계; 및
상기 제3 서브그래프를 이용하여, 상기 확장 서브그래프를 추가확장 서브그래프로 업데이트하는 단계
를 더 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to claim 1,
If the sum of the first and second times does not reach the predetermined time,
extracting a third subgraph different from the first and second subgraphs from a substream input during a third time from the lapse of the second time, among the graph streams; and
Updating the extended subgraph into an additional extended subgraph using the third subgraph
A graph stream compression method based on progressive frequent patterns further comprising.
상기 초기 빈발패턴으로서 복수의 제1 서브그래프가 상기 패턴 사전에 저장된 경우,
상기 복수의 제1 서브그래프 중, 상기 확장 서브그래프 또는 상기 추가확장 서브그래프로의 업데이트에 관여하지 않은 제1 서브그래프를, 상기 패턴 사전으로부터 삭제 처리하는 단계
를 더 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to claim 2,
When a plurality of first subgraphs are stored in the pattern dictionary as the initial frequent pattern,
Deleting, from among the plurality of first subgraphs, a first subgraph not involved in updating to the extended subgraph or the additional extended subgraph from the pattern dictionary.
A graph stream compression method based on progressive frequent patterns further comprising.
상기 제2 서브그래프의 추출에 따라, VF2 알고리즘을 이용하여, 상기 제1 서브그래프와 상기 제2 서브그래프 간 유사도를 판별하는 단계;
상기 유사도에 따라, 상기 제1 서브그래프가, 상기 제2 서브그래프의 적어도 일부와 일치하는 동형 그래프인지 결정하는 단계; 및
상기 제1 서브그래프가 상기 제2 서브그래프의 동형 그래프로 결정되면,
상기 제2 서브그래프에 의해 상기 제1 서브그래프의 업데이트를 수행하는 단계
를 더 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to claim 1,
determining a degree of similarity between the first subgraph and the second subgraph using a VF2 algorithm according to the extraction of the second subgraph;
determining whether the first subgraph is an isomorphic graph that matches at least a part of the second subgraph according to the degree of similarity; and
When the first subgraph is determined to be an isomorphic graph of the second subgraph,
performing an update of the first subgraph by the second subgraph;
A graph stream compression method based on progressive frequent patterns further comprising.
상기 패턴 사전에 저장하는 단계는,
상기 제1 서브그래프를 구성하는 복수의 정점 및 상기 복수의 정점을 연결하는 간선을 상기 패턴 사전에 저장하는 단계
를 포함하고,
상기 업데이트하여 유지하는 단계는,
상기 제2 서브그래프를 구성하는 복수의 정점을, 상기 패턴 사전에 저장된 기존정점과, 상기 패턴 사전에 저장되지 않는 신규정점으로 구분하는 단계;
상기 제2 서브그래프로부터, 상기 기존정점과 상기 신규정점 사이를 연결하는 제1 간선을 탐색하는 단계;
상기 제2 서브스트림으로부터, 상기 제1 간선에 연결되면서, 상기 신규정점 사이를 연결하는 제2 간선을 탐색하는 단계; 및
상기 제1 서브그래프에 상기 제1 간선 및 상기 제2 간선을 추가 연결하여, 상기 확장 서브그래프로의 업데이트를 수행하는 단계
를 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to claim 1,
The step of storing the pattern dictionary,
Storing a plurality of vertices constituting the first subgraph and an edge connecting the plurality of vertices in the pattern dictionary
including,
The step of updating and maintaining,
dividing a plurality of vertices constituting the second subgraph into existing vertices stored in the pattern dictionary and new vertices not stored in the pattern dictionary;
searching for a first trunk line connecting the existing vertex and the new vertex from the second subgraph;
searching for a second trunk from the second sub-stream, which is connected to the first trunk and connects the new vertices; and
performing an update to the extended subgraph by additionally connecting the first trunk line and the second trunk line to the first subgraph;
Graph stream compression method based on gradual recurrence pattern including
상기 확장 서브그래프가 복수이면,
상기 복수의 확장 서브그래프 각각에 대해, 빈발도 및 간선 크기를 고려하여, 패턴 점수를 산출하는 단계;
상기 패턴 점수 순에 따른 상위 k(상기 k는 자연수)개의 확장 서브그래프를 선별하는 단계; 및
상기 k개의 확장 서브그래프를, 상기 기준 빈발패턴으로서 지정하는 단계
를 더 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to claim 1,
If the extended subgraph is plural,
Calculating a pattern score for each of the plurality of extended subgraphs by considering frequency and trunk line size;
selecting the top k (where k is a natural number) number of extended subgraphs according to the order of pattern scores; and
Designating the k extended subgraphs as the reference frequent pattern
A graph stream compression method based on progressive frequent patterns further comprising.
상기 복수의 확장 서브그래프 중, 선별되지 않는 확장 서브그래프를 상기 패턴 사전으로부터 삭제 처리하는 단계
를 더 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to claim 6,
Deleting an extension subgraph that is not selected among the plurality of extension subgraphs from the pattern dictionary
A graph stream compression method based on progressive frequent patterns further comprising.
상기 기준 빈발패턴으로 지정된 확장 서브그래프를 기준으로, 시간 경과에 따라 변경되어 입력되는 상기 그래프스트림에 대한 변경사항을 기록한 프로버넌스 정보를, 상기 패턴 사전에 저장하는 단계
를 더 포함하고,
상기 압축 처리하는 단계는,
상기 기준 빈발패턴 및 상기 프로버넌스 정보를 저장한 상기 패턴 사전에, 사전 인코딩(dictionary encoding) 기법을 적용하여, 압축 처리하는 단계
를 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to claim 1,
Storing, in the pattern dictionary, provenance information that records changes to the graph stream that is changed over time and input based on the extended subgraph designated as the reference frequent pattern.
Including more,
In the compression process,
compressing by applying a dictionary encoding technique to the pattern dictionary in which the reference frequent pattern and the provenance information are stored;
Graph stream compression method based on gradual recurrence pattern including
상기 프로버넌스 정보는,
상기 기준 빈발패턴으로 지정된 확장 서브그래프에 대해, 설정된 빈발도 및 간선 크기에 따라 산출되는 패턴 점수와, 상기 그래프스트림 중 상기 제1 및 제2 서브그래프가 추출된 각 서브스트림이 입력되는 시간인 상기 제1 및 제2 시간을 기록한 타임스탬프와, 상기 각 서브스트림을 구성하는 배치(Batch)의 개수, 및 상기 확장 서브그래프의 식별을 위한 패턴ID 중 적어도 하나를 포함하는
점진적 빈발패턴 기반의 그래프스트림 압축 방법.According to claim 8,
The provenance information,
For the extended subgraph designated as the reference frequent pattern, the pattern score calculated according to the set frequency and trunk line size, and the time at which each substream from which the first and second subgraphs are extracted from the graph stream is input. At least one of a timestamp recording the first and second times, the number of batches constituting each substream, and a pattern ID for identifying the extended subgraph
A graph stream compression method based on progressive frequency patterns.
상기 그래프스트림 중 제1 시간 동안 입력된 서브스트림으로부터, 제1 서브그래프를 추출하는 추출부;
상기 제1 서브그래프를, 초기 빈발패턴으로서, 패턴 사전에 저장하는 저장부;
상기 추출부에 의해, 상기 그래프스트림 중, 상기 제1 시간의 경과시점부터 제2 시간 동안 입력된 서브스트림으로부터, 상기 제1 서브그래프와 상이한 제2 서브그래프가 추출되면,
상기 제2 서브그래프를 이용하여, 상기 패턴 사전 내에서 상기 제1 서브그래프를 확장 서브그래프로 업데이트하여 유지하는 업데이트부; 및
상기 제1 및 제2 시간을 합산한 시간이, 정해진 시간에 도달하면,
상기 패턴 사전 내에 유지되는 상기 확장 서브그래프를, 기준 빈발패턴으로서, 압축 처리하는 처리부
를 포함하는 점진적 빈발패턴 기반의 그래프스트림 압축 시스템.According to the compression command for the graph stream input in real time,
an extraction unit extracting a first sub-graph from a sub-stream input during a first time among the graph streams;
a storage unit that stores the first subgraph as an initial frequent pattern in a pattern dictionary;
When a second subgraph different from the first subgraph is extracted from a substream input during a second time from the lapse of the first time, among the graph streams, by the extraction unit,
an update unit that updates and maintains the first subgraph as an extended subgraph in the pattern dictionary using the second subgraph; and
When the sum of the first and second times reaches a predetermined time,
A processing unit which compresses the extended subgraph held in the pattern dictionary as a reference frequent pattern.
A graph stream compression system based on progressive frequent patterns that includes.
상기 제1 및 제2 시간을 합산한 시간이, 정해진 시간에 도달하지 않은 경우,
상기 추출부는,
상기 그래프스트림 중, 상기 제2 시간의 경과시점부터 제3 시간 동안 입력된 서브스트림으로부터, 상기 제1 및 제2 서브그래프와 상이한 제3 서브그래프를 추출하고,
상기 업데이트부는,
상기 제3 서브그래프를 이용하여, 상기 확장 서브그래프를 추가확장 서브그래프로 업데이트하는
점진적 빈발패턴 기반의 그래프스트림 압축 시스템.According to claim 10,
If the sum of the first and second times does not reach the predetermined time,
The extraction part,
Among the graph streams, a third subgraph different from the first and second subgraphs is extracted from a substream input during a third time period from the lapse of the second time period;
The update unit,
Updating the extended subgraph to an additional extended subgraph using the third subgraph
A graphstream compression system based on incremental recurrence patterns.
상기 제2 서브그래프의 추출에 따라, VF2 알고리즘을 이용하여, 상기 제1 서브그래프와 상기 제2 서브그래프 간 유사도를 판별하고, 상기 유사도에 따라, 상기 제1 서브그래프가, 상기 제2 서브그래프의 적어도 일부와 일치하는 동형 그래프인지 결정하는 판별부
를 더 포함하고,
상기 업데이트부는,
상기 제1 서브그래프가 상기 제2 서브그래프의 동형 그래프로 결정되면,
상기 제2 서브그래프에 의해 상기 제1 서브그래프의 업데이트를 수행하는
점진적 빈발패턴 기반의 그래프스트림 압축 시스템.According to claim 10,
According to the extraction of the second subgraph, a similarity between the first subgraph and the second subgraph is determined using a VF2 algorithm, and according to the similarity, the first subgraph is determined as the second subgraph. A discriminator for determining whether an isomorphic graph that matches at least a part of
Including more,
The update unit,
When the first subgraph is determined to be an isomorphic graph of the second subgraph,
Updating the first subgraph by the second subgraph
A graphstream compression system based on incremental recurrence patterns.
상기 확장 서브그래프가 복수이면,
상기 복수의 확장 서브그래프 각각에 대해, 빈발도 및 간선 크기를 고려하여, 패턴 점수를 산출하는 산출부
를 더 포함하고,
상기 처리부는,
상기 패턴 점수 순에 따른 상위 k(상기 k는 자연수)개의 확장 서브그래프를 선별하고, 상기 k개의 확장 서브그래프를, 상기 기준 빈발패턴으로서 지정하는
점진적 빈발패턴 기반의 그래프스트림 압축 시스템.According to claim 10,
If the extended subgraph is plural,
For each of the plurality of extended subgraphs, a calculation unit that calculates a pattern score by considering frequency and edge size.
Including more,
The processing unit,
Selecting the top k (k is a natural number) extension subgraphs according to the pattern score order, and designating the k extension subgraphs as the reference frequent pattern
A graphstream compression system based on incremental recurrence patterns.
상기 저장부는,
상기 기준 빈발패턴으로 지정된 확장 서브그래프를 기준으로, 시간 경과에 따라 변경되어 입력되는 상기 그래프스트림에 대한 변경사항을 기록한 프로버넌스 정보를, 상기 패턴 사전에 저장하고,
상기 처리부는,
상기 기준 빈발패턴 및 상기 프로버넌스 정보를 저장한 상기 패턴 사전에, 사전 인코딩(dictionary encoding) 기법을 적용하여, 압축 처리하는
점진적 빈발패턴 기반의 그래프스트림 압축 시스템.According to claim 10,
the storage unit,
Based on the extended subgraph designated as the reference frequent pattern, provenance information that records changes to the graph stream that is changed over time and input is stored in the pattern dictionary,
The processing unit,
Compressing by applying a dictionary encoding technique to the pattern dictionary storing the reference frequent pattern and the provenance information
A graphstream compression system based on incremental recurrence patterns.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210120873A KR102662267B1 (en) | 2021-09-10 | 2021-09-10 | Method and system for compressing graph stream based on incremental frequent patterns |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210120873A KR102662267B1 (en) | 2021-09-10 | 2021-09-10 | Method and system for compressing graph stream based on incremental frequent patterns |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230037830A true KR20230037830A (en) | 2023-03-17 |
KR102662267B1 KR102662267B1 (en) | 2024-05-03 |
Family
ID=85872319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210120873A KR102662267B1 (en) | 2021-09-10 | 2021-09-10 | Method and system for compressing graph stream based on incremental frequent patterns |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102662267B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041359A (en) * | 2023-10-10 | 2023-11-10 | 北京安视华业科技有限责任公司 | Efficient compression transmission method for information data |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140064081A (en) * | 2012-11-19 | 2014-05-28 | 충북대학교 산학협력단 | Method for mining frequent sub-graphs with support affinities |
KR101648011B1 (en) * | 2015-06-30 | 2016-08-12 | 경희대학교 산학협력단 | Method and apparatus for frequent subgraph mining using embedding overlapped relationships |
-
2021
- 2021-09-10 KR KR1020210120873A patent/KR102662267B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140064081A (en) * | 2012-11-19 | 2014-05-28 | 충북대학교 산학협력단 | Method for mining frequent sub-graphs with support affinities |
KR101648011B1 (en) * | 2015-06-30 | 2016-08-12 | 경희대학교 산학협력단 | Method and apparatus for frequent subgraph mining using embedding overlapped relationships |
Non-Patent Citations (3)
Title |
---|
[비특허문헌 1] B. Dolgorsuren, Khan K, Rasel MK, Lee Y "StarZIP: Streaming Graph Compression Technique for Data Archiving", IEEE Access, pp.38020-38034, 2019 |
[비특허문헌 2] R. A. Rossi and R. Zhou, "GraphZIP: A clique-based sparse graph compression method" J. Big Data, vol. 5, no. 1, pp. 1-14, 2018. |
[비특허문헌 3] P. Charles, and H. B. Lawrence, "GraphZip: Mining graph streams using dictionary-based compression,'' in Proc. SIGKDD Workshop Mining Learn. Graphs, 2017. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041359A (en) * | 2023-10-10 | 2023-11-10 | 北京安视华业科技有限责任公司 | Efficient compression transmission method for information data |
CN117041359B (en) * | 2023-10-10 | 2023-12-22 | 北京安视华业科技有限责任公司 | Efficient compression transmission method for information data |
Also Published As
Publication number | Publication date |
---|---|
KR102662267B1 (en) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715618B2 (en) | Compressibility estimation for lossless data compression | |
CN105389349B (en) | Dictionary update method and device | |
US20100085481A1 (en) | Frame based video matching | |
CN109634924B (en) | File system parameter automatic tuning method and system based on machine learning | |
US20130151562A1 (en) | Method of calculating feature-amount of digital sequence, and apparatus for calculating feature-amount of digital sequence | |
US20140324865A1 (en) | Method, program, and system for classification of system log | |
US20190173897A1 (en) | Malicious communication log detection device, malicious communication log detection method, and malicious communication log detection program | |
WO2012033498A1 (en) | Systems and methods for data compression | |
CN109241223B (en) | Behavior track identification method and system | |
US20120143834A1 (en) | Data summary system, method for summarizing data, and recording medium | |
US20190149419A1 (en) | Information processing device and information processing method | |
US20190258619A1 (en) | Data compression method, data compression device, computer program, and database system | |
JP2014194762A (en) | Method and device for processing time sequence based on dimensionality reduction | |
US20140229496A1 (en) | Information processing device, information processing method, and computer program product | |
KR102662267B1 (en) | Method and system for compressing graph stream based on incremental frequent patterns | |
CN112463784A (en) | Data deduplication method, device, equipment and computer readable storage medium | |
CN112115313A (en) | Regular expression generation method, regular expression data extraction method, regular expression generation device, regular expression data extraction device, regular expression equipment and regular expression data extraction medium | |
KR101403356B1 (en) | Device and method of data compression and computer-readable recording medium thereof | |
KR101842420B1 (en) | Information processing apparatus, and data management method | |
CN113868434A (en) | Data processing method, device and storage medium for graph database | |
CN111736774A (en) | Redundant data processing method and device, server and storage medium | |
CN108304467B (en) | Method for matching between texts | |
CN113868254B (en) | Method, device and storage medium for removing duplication of entity node in graph database | |
CN115934724A (en) | Method for constructing database index, retrieval method, device, equipment and medium | |
US20170344308A1 (en) | Computer-readable recording medium, data deletion determination method, and data deletion determination apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |