KR20210121773A - Apparatus and method for detecting community in large scale network - Google Patents

Apparatus and method for detecting community in large scale network Download PDF

Info

Publication number
KR20210121773A
KR20210121773A KR1020200039032A KR20200039032A KR20210121773A KR 20210121773 A KR20210121773 A KR 20210121773A KR 1020200039032 A KR1020200039032 A KR 1020200039032A KR 20200039032 A KR20200039032 A KR 20200039032A KR 20210121773 A KR20210121773 A KR 20210121773A
Authority
KR
South Korea
Prior art keywords
nodes
node
important
calculating
type
Prior art date
Application number
KR1020200039032A
Other languages
Korean (ko)
Other versions
KR102394210B1 (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 영남대학교 산학협력단
Priority to KR1020200039032A priority Critical patent/KR102394210B1/en
Publication of KR20210121773A publication Critical patent/KR20210121773A/en
Application granted granted Critical
Publication of KR102394210B1 publication Critical patent/KR102394210B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed are device and method for detecting a community. The method for detecting the community according to one disclosed embodiment comprises: a step of selecting one or more critical nodes in a network comprising a plurality of nodes; a step of calculating node similarity between the critical node and the remaining node; a step of generating a classification result of classifying a plurality of nodes into one or more communities based on the critical node and based on the node similarity; a step of calculating modularity for the classification result; a step of repeated-performing the above steps until a preset condition is satisfied; and a step of determining, when the preset condition is satisfied, the classification result with the greatest modularity among the plurality of classification results generated through repeated performance as a final classification result. Therefore, the present invention is capable of improving a performance of detecting the community.

Description

커뮤니티 검출 장치 및 방법{APPARATUS AND METHOD FOR DETECTING COMMUNITY IN LARGE SCALE NETWORK}COMMUNITY DETECTION DEVICES AND METHOD {APPARATUS AND METHOD FOR DETECTING COMMUNITY IN LARGE SCALE NETWORK}

개시되는 실시예들은 커뮤니티를 검출하는 기술에 관한 것이다.The disclosed embodiments relate to techniques for detecting communities.

사회가 복잡해지면서 사람과 사람 간의 연결 뿐만 아니라 장치와 장치 간의 연결도 매우 복잡해지고 있고, 이러한 복잡한 개체 간 연결 구조를 뜻하는 대규모 네트워크(large scale network)의 개념이 대두되고 있다.As society becomes more complex, not only human-to-human connections but also devices-to-device connections are becoming very complex, and the concept of a large-scale network, which means a connection structure between these complex entities, is emerging.

이러한 대규모 네트워크의 내부 구조를 파악하고 효과적인 정보를 얻기 위해서는 네트워크에 속한 개체들의 연결 관계에 따라 커뮤니티(community)가 어떻게 구성되어 있는지 파악하는 것이 매우 중요하다.In order to understand the internal structure of such a large-scale network and to obtain effective information, it is very important to understand how the community is structured according to the connection relationships of entities in the network.

종래의 커뮤니티 검출 방법은 개체를 노드(node)로, 노드 간의 연결을 엣지(edge)로 표현한 그래프를 이용하였으나, 최초 노드의 위치에 따라 검출 결과가 크게 영향을 받는 한계가 있었다.The conventional community detection method uses a graph in which an entity is expressed as a node and a connection between nodes is expressed as an edge, but there is a limit in that the detection result is greatly affected by the location of the initial node.

이를 극복하기 위하여 최근에는 가장 영향력 있는 노드를 찾는 시도가 이루어지고 있으나, 커뮤니티를 검출한 뒤에 가장 영향력 있는 노드를 찾기 때문에 커뮤니티 검출을 위한 선행 지식이 요구되며 작은 하위 네트워크 수준에서는 거시적인 연결 패턴이 고려되지 못한다는 단점이 존재한다.In order to overcome this problem, recent attempts have been made to find the most influential node, but since the most influential node is found after the community is detected, prior knowledge for community detection is required, and macroscopic connection patterns are considered at the small sub-network level. There is a downside to not being able to.

대한민국 등록특허공보 제10-1977231호 (2019.05.03.)Republic of Korea Patent Publication No. 10-1977231 (2019.05.03.)

개시되는 실시예들은 대규모 네트워크에서 효과적으로 커뮤니티를 검출하는 수단을 제공하기 위한 것이다.The disclosed embodiments are intended to provide a means for effectively detecting a community in a large network.

일 실시예에 따른 커뮤니티 검출 방법은, 복수의 노드(node)를 포함하는 네트워크에서 하나 이상의 중요 노드를 선택하는 단계, 상기 하나 이상의 중요 노드 각각과 나머지 노드 사이의 노드 유사도를 계산하는 단계, 상기 노드 유사도에 기초하여 상기 하나 이상의 중요 노드 각각을 기준으로 상기 복수의 노드를 하나 이상의 커뮤니티로 분류한 분류 결과를 생성하는 단계, 상기 분류 결과에 대한 모듈성(modularity)을 계산하는 단계, 기 설정된 조건을 만족할 때까지 상기 선택하는 단계, 상기 노드 유사도를 계산하는 단계, 상기 분류 결과를 생성하는 단계 및 상기 모듈성을 계산하는 단계를 반복 수행하는 단계 및 상기 기 설정된 조건이 만족된 경우, 상기 반복 수행을 통해 생성된 복수의 분류 결과 중 상기 모듈성이 최대인 분류 결과를 최종 분류 결과로 결정하는 단계를 포함한다.A community detection method according to an embodiment includes selecting one or more important nodes in a network including a plurality of nodes, calculating a node similarity between each of the one or more important nodes and the remaining nodes, the node Generating a classification result obtained by classifying the plurality of nodes into one or more communities based on each of the one or more important nodes based on the similarity, calculating modularity for the classification result, and satisfying a preset condition Repeatedly performing the selecting step, calculating the node similarity, generating the classification result, and calculating the modularity until the preset condition is satisfied. and determining a classification result having the greatest modularity among the plurality of classification results as a final classification result.

상기 선택하는 단계는, 상기 복수의 노드 각각의 고유벡터 중심성(eigenvector centrality) 값을 계산하는 단계 및 상기 고유벡터 중심성 값에 기초하여 상기 복수의 노드 중 상기 하나 이상의 중요 노드를 결정하는 단계를 포함할 수 있고, 상기 하나 이상의 중요 노드는, 상기 선택하는 단계가 반복 수행될 때마다 기 설정된 수만큼 더 선택될 수 있다. The selecting may include calculating an eigenvector centrality value of each of the plurality of nodes and determining the one or more important nodes among the plurality of nodes based on the eigenvector centrality value. In addition, the one or more important nodes may be further selected by a preset number each time the selecting step is repeatedly performed.

상기 고유벡터 중심성 값은, 상기 복수의 노드 각각의 연결 여부를 나타내는 인접 행렬 및 상기 인접 행렬의 고유값(eigenvalue)에 기초하여 계산될 수 있다. The eigenvector centrality value may be calculated based on an adjacency matrix indicating whether each of the plurality of nodes is connected and an eigenvalue of the adjacency matrix.

상기 노드 유사도를 계산하는 단계는, 상기 하나 이상의 중요 노드와 나머지 노드 사이의 연결 여부 및 상기 하나 이상의 중요 노드와 상기 나머지 노드 사이의 자카드(Jaccard) 유사도에 기초하여 상기 노드 유사도를 계산할 수 있다. The calculating of the node similarity may include calculating the node similarity based on whether there is a connection between the one or more important nodes and the remaining nodes and a Jaccard similarity between the one or more important nodes and the remaining nodes.

상기 생성하는 단계는, 엣지(edge)를 통해 직접 연결된 중요 노드의 개수에 기초하여 상기 복수의 노드를 상기 하나 이상의 커뮤니티로 분류할 수 있다. The generating may include classifying the plurality of nodes into the one or more communities based on the number of important nodes directly connected through an edge.

상기 생성하는 단계는, 상기 복수의 노드 중 상기 중요 노드와 직접 연결되지 않은 제1 유형의 노드의 경우, 상기 제1 유형의 노드와 직접 연결된 노드 중 상기 제1 유형의 노드와의 상기 노드 유사도가 최대인 노드와 상기 제1 유형의 노드를 동일한 커뮤니티로 분류할 수 있고, 상기 복수의 노드 중 하나의 중요 노드에만 직접 연결된 제2 유형의 노드의 경우, 상기 직접 연결된 하나의 중요 노드와 상기 제2 유형의 노드를 동일한 커뮤니티로 분류할 수 있고, 상기 복수의 노드 중 두 개 이상의 중요 노드에 직접 연결된 제3 유형의 노드의 경우, 상기 두 개 이상의 중요 노드 중 상기 제3 유형의 노드와의 상기 노드 유사도가 최대인 중요 노드와 상기 제3 유형의 노드를 동일한 커뮤니티로 분류할 수 있다. The generating may include, in the case of a first type of node that is not directly connected to the important node among the plurality of nodes, the node similarity with the first type of node among the nodes directly connected to the first type of node is The largest node and the first type node may be classified into the same community, and in the case of a second type node directly connected to only one important node among the plurality of nodes, the directly connected one important node and the second type node nodes of a type may be classified into the same community, and in the case of a node of a third type directly connected to two or more important nodes among the plurality of nodes, the node with the third type of nodes among the two or more important nodes An important node having the greatest similarity and the third type node may be classified into the same community.

상기 모듈성을 계산하는 단계는, 아래의 수학식 1 내지 3을 이용하여 상기 분류 결과에 대한 모듈성을 계산할 수 있다. In the calculating of the modularity, the modularity of the classification result may be calculated using Equations 1 to 3 below.

[수학식 1] [Equation 1]

Figure pat00001
Figure pat00001

[수학식 2] [Equation 2]

Figure pat00002
Figure pat00002

[수학식 3] [Equation 3]

Figure pat00003
Figure pat00003

이때, Q는 모듈성, m은 상기 네트워크 내의 엣지의 총 개수, Ni 및 Nj는 각각 상기 네트워크 내 임의의 노드를 나타낸다. In this case, Q is modularity, m is the total number of edges in the network, and Ni and Nj are arbitrary nodes in the network, respectively.

상기 기 설정된 조건은, 상기 복수의 노드 전부가 상기 중요 노드로 선택되는 것일 수 있다.The preset condition may be that all of the plurality of nodes are selected as the important node.

일 실시예에 따른 커뮤니티 검출 장치는, 하나 이상의 프로세서들, 메모리 및 하나 이상의 프로그램들을 포함하고, 상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며, 상기 하나 이상의 프로그램들은, 복수의 노드(node)를 포함하는 네트워크에서 하나 이상의 중요 노드를 선택하기 위한 명령, 상기 하나 이상의 중요 노드 각각과 나머지 노드 사이의 노드 유사도를 계산하기 위한 명령, 상기 노드 유사도에 기초하여 상기 하나 이상의 중요 노드 각각을 기준으로 상기 복수의 노드를 하나 이상의 커뮤니티로 분류한 분류 결과를 생성하기 위한 명령, 상기 분류 결과에 대한 모듈성(modularity)을 계산하기 위한 명령 및 기 설정된 조건을 만족할 때까지 상기 선택하는 단계, 상기 노드 유사도를 계산하는 단계, 상기 분류 결과를 생성하는 단계 및 상기 모듈성을 계산하는 단계를 반복 수행하기 위한 명령 및 상기 기 설정된 조건이 만족된 경우, 상기 반복 수행을 통해 생성된 복수의 분류 결과 중 상기 모듈성이 최대인 분류 결과를 최종 분류 결과로 결정하기 위한 명령을 포함한다.A community detection apparatus according to an embodiment includes one or more processors, a memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs The programs include instructions for selecting one or more important nodes in a network including a plurality of nodes, instructions for calculating a node similarity between each of the one or more important nodes and the remaining nodes, and based on the node similarity, the A command for generating a classification result of classifying the plurality of nodes into one or more communities based on each of one or more important nodes, a command for calculating modularity for the classification result, and a predetermined condition When a command for repeatedly performing the steps of selecting, calculating the node similarity, generating the classification result, and calculating the modularity, and the preset condition are satisfied, the plurality of generated through repetition and a command for determining a classification result having the greatest modularity among the classification results of , as a final classification result.

상기 선택하기 위한 명령은, 상기 복수의 노드 각각의 고유벡터 중심성(eigenvector centrality) 값을 계산하기 위한 명령 및 상기 고유벡터 중심성 값에 기초하여 상기 복수의 노드 중 상기 하나 이상의 중요 노드를 결정하기 위한 명령을 포함할 수 있고, 상기 하나 이상의 중요 노드는, 상기 선택하는 단계가 반복 수행될 때마다 기 설정된 수만큼 더 선택될 수 있다.The instruction for selecting includes an instruction for calculating an eigenvector centrality value of each of the plurality of nodes and an instruction for determining the at least one important node among the plurality of nodes based on the eigenvector centrality value may include, and the one or more important nodes may be further selected by a preset number each time the selecting step is repeatedly performed.

상기 고유벡터 중심성 값은, 상기 복수의 노드 각각의 연결 여부를 나타내는 인접 행렬 및 상기 인접 행렬의 고유값(eigenvalue)에 기초하여 계산될 수 있다. The eigenvector centrality value may be calculated based on an adjacency matrix indicating whether each of the plurality of nodes is connected and an eigenvalue of the adjacency matrix.

상기 노드 유사도를 계산하기 위한 명령은, 상기 하나 이상의 중요 노드와 나머지 노드 사이의 연결 여부 및 상기 하나 이상의 중요 노드와 상기 나머지 노드 사이의 자카드(Jaccard) 유사도에 기초하여 상기 노드 유사도를 계산할 수 있다. The command for calculating the node similarity may calculate the node similarity based on whether there is a connection between the one or more important nodes and the remaining nodes and a Jaccard similarity between the one or more important nodes and the remaining nodes.

상기 생성하기 위한 명령은, 엣지(edge)를 통해 직접 연결된 중요 노드의 개수에 기초하여 상기 복수의 노드를 상기 하나 이상의 커뮤니티로 분류할 수 있다.The command for generating may classify the plurality of nodes into the one or more communities based on the number of important nodes directly connected through an edge.

상기 생성하기 위한 명령은, 상기 복수의 노드 중 상기 중요 노드와 직접 연결되지 않은 제1 유형의 노드의 경우, 상기 제1 유형의 노드와 직접 연결된 노드 중 상기 제1 유형의 노드와의 상기 노드 유사도가 최대인 노드와 상기 제1 유형의 노드를 동일한 커뮤니티로 분류할 수 있고, 상기 복수의 노드 중 하나의 중요 노드에만 직접 연결된 제2 유형의 노드의 경우, 상기 직접 연결된 하나의 중요 노드와 상기 제2 유형의 노드를 동일한 커뮤니티로 분류할 수 있고, 상기 복수의 노드 중 두 개 이상의 중요 노드에 직접 연결된 제3 유형의 노드의 경우, 상기 두 개 이상의 중요 노드 중 상기 제3 유형의 노드와의 상기 노드 유사도가 최대인 중요 노드와 상기 제3 유형의 노드를 동일한 커뮤니티로 분류할 수 있다.The generating command may include, in the case of a first type of node not directly connected to the important node among the plurality of nodes, the degree of node similarity with the first type of node among nodes directly connected to the first type of node. In the case of a node of the second type directly connected to only one important node among the plurality of nodes, the node having the maximum , and the first type node may be classified into the same community, and the directly connected one important node and the second type node Two types of nodes may be classified into the same community, and in the case of a third type node directly connected to two or more important nodes among the plurality of nodes, An important node having the maximum node similarity and the third type node may be classified into the same community.

상기 모듈성을 계산하기 위한 명령은, 아래의 수학식 1 내지 3을 이용하여 상기 분류 결과에 대한 모듈성을 계산할 수 있다. The command for calculating the modularity may calculate the modularity of the classification result using Equations 1 to 3 below.

[수학식 1] [Equation 1]

Figure pat00004
Figure pat00004

[수학식 2] [Equation 2]

Figure pat00005
Figure pat00005

[수학식 3] [Equation 3]

Figure pat00006
Figure pat00006

이때, Q는 모듈성, m은 상기 네트워크 내의 엣지의 총 개수, Ni 및 Nj는 각각 상기 네트워크 내 임의의 노드를 나타낸다. In this case, Q is modularity, m is the total number of edges in the network, and Ni and Nj are arbitrary nodes in the network, respectively.

상기 기 설정된 조건은, 상기 복수의 노드 전부가 상기 중요 노드로 선택되는 것일 수 있다. The preset condition may be that all of the plurality of nodes are selected as the important node.

개시되는 실시예들에 따르면, 네트워크에서 중요 노드를 선택한 후 커뮤니티를 검출하므로 노드 간 중심성 및 유사도만으로 기타 정보 없이 커뮤니티 검출을 진행할 수 있어, 커뮤니티 검출 성능을 향상시킬 수 있다.According to the disclosed embodiments, since a community is detected after selecting an important node in the network, community detection can be performed without other information only with centrality and similarity between nodes, thereby improving community detection performance.

또한 개시되는 실시예들에 따르면, 중요 노드를 중심으로 일부(local)의 커뮤니티 구조를 명확하게 파악함으로써, 전체 커뮤니티 구조의 파악이 어려운 대규모 네트워크에 효과적으로 적용될 수 있다.Also, according to the disclosed embodiments, by clearly identifying the community structure of a part (local) around an important node, it can be effectively applied to a large-scale network in which it is difficult to grasp the entire community structure.

도 1은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 일 실시예에 따른 커뮤니티 검출 방법을 설명하기 위한 흐름도
도 3은 일 실시예에 따른 단계 202를 보다 상세하게 설명하기 위한 흐름도
도 4는 일 실시예에 따른 커뮤니티의 분류 결과를 생성하는 과정을 설명하기 위한 도면
도 5는 커뮤니티의 최종 분류 결과의 예시도
1 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in example embodiments;
2 is a flowchart illustrating a community detection method according to an embodiment;
3 is a flowchart for explaining step 202 in more detail according to an embodiment;
4 is a diagram for explaining a process of generating a classification result of a community according to an embodiment;
5 is an exemplary view of the final classification result of the community

이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 개시되는 실시예들은 이에 제한되지 않는다.Hereinafter, specific embodiments will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and/or systems described herein. However, this is merely an example and the disclosed embodiments are not limited thereto.

실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 개시되는 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 개시되는 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the disclosed embodiments, the detailed description thereof will be omitted. And, the terms to be described later are terms defined in consideration of functions in the disclosed embodiments, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification. The terminology used in the detailed description is for the purpose of describing the embodiments only, and should in no way be limiting. Unless explicitly used otherwise, expressions in the singular include the meaning of the plural. In this description, expressions such as “comprising” or “comprising” are intended to indicate certain features, numbers, steps, acts, elements, some or a combination thereof, one or more other than those described. It should not be construed to exclude the presence or possibility of other features, numbers, steps, acts, elements, or any part or combination thereof.

도 1은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.1 is a block diagram illustrating and describing a computing environment 10 including a computing device suitable for use in example embodiments. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components in addition to those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 개시되는 실시예들에 따른 커뮤니티 검출 장치일 수 있다.The illustrated computing environment 10 includes a computing device 12 . In one embodiment, computing device 12 may be a community detection device in accordance with disclosed embodiments.

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 12 includes at least one processor 14 , computer readable storage medium 16 , and communication bus 18 . The processor 14 may cause the computing device 12 to operate in accordance with the exemplary embodiments discussed above. For example, the processor 14 may execute one or more programs stored in the computer-readable storage medium 16 . The one or more programs may include one or more computer-executable instructions that, when executed by the processor 14, configure the computing device 12 to perform operations in accordance with the exemplary embodiment. can be

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. The program 20 stored in the computer readable storage medium 16 includes a set of instructions executable by the processor 14 . In one embodiment, computer-readable storage medium 16 includes memory (volatile memory, such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash It may be memory devices, other forms of storage medium accessed by computing device 12 and capable of storing desired information, or a suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communication bus 18 interconnects various other components of computing device 12 , including processor 14 and computer readable storage medium 16 .

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide interfaces for one or more input/output devices 24 . The input/output interface 22 and the network communication interface 26 are coupled to the communication bus 18 . Input/output device 24 may be coupled to other components of computing device 12 via input/output interface 22 . Exemplary input/output device 24 may include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touchscreen), a voice or sound input device, various types of sensor devices, and/or imaging devices. input devices and/or output devices such as display devices, printers, speakers and/or network cards. The exemplary input/output device 24 may be included in the computing device 12 as a component constituting the computing device 12 , and may be connected to the computing device 12 as a separate device distinct from the computing device 12 . may be

도 2는 일 실시예에 따른 커뮤니티 검출 방법을 설명하기 위한 흐름도(200)이다. 도 2에 도시된 방법은 예를 들어, 상술한 컴퓨팅 장치(12)에 의해 수행될 수 있다.2 is a flowchart 200 for explaining a method for detecting a community according to an embodiment. The method illustrated in FIG. 2 may be performed, for example, by the computing device 12 described above.

이하에서, '커뮤니티'라 함은 서로 유사한 객체끼리 분류된 그룹을 의미하며, 이때 '객체'는 사람, 생물, 사물 또는 단어나 관념처럼 추상적인 대상을 의미할 수 있다. 또한, 개시되는 실시예에서 '네트워크'는 이러한 '객체' 전체가 임의의 기준에 의해 서로 연결되어 있는 집합을 의미할 수 있으며, 네트워크 내에서 객체는 '노드(node)'로, 객체 간의 연결은 노드 사이를 잇는 '엣지(edge)'로 표현될 수 있다.Hereinafter, the term 'community' refers to a group in which objects similar to each other are classified, and in this case, the term 'object' may refer to a person, a creature, a thing, or an abstract object such as a word or an idea. In addition, in the disclosed embodiment, the 'network' may mean a set in which all of these 'objects' are connected to each other by an arbitrary standard, and in the network, an object is a 'node', and the connection between objects is It can be expressed as an 'edge' connecting nodes.

이에 따라, 이하의 '커뮤니티 검출 방법'은 네트워크 내의 복수의 노드들이 제각기 하나 이상의 커뮤니티로 분류된 결과를 효율적으로 도출할 수 있는 방법을 제공한다. 이때, 네트워크 내의 각 노드는 동시에 두 개 이상의 커뮤니티에 속할 수 없다고 전제한다.Accordingly, the following 'community detection method' provides a method for efficiently deriving a result of a plurality of nodes in a network classified into one or more communities, respectively. At this time, it is assumed that each node in the network cannot belong to two or more communities at the same time.

도 2를 참조하면, 단계 202에서 컴퓨팅 장치(12)는 복수의 노드를 포함하는 네트워크에서 하나 이상의 중요 노드를 선택한다.Referring to FIG. 2 , in step 202 , the computing device 12 selects one or more important nodes from a network including a plurality of nodes.

개시되는 실시예들에서, '중요 노드'는 연결된 노드의 수 및 네트워크 내 엣지 각각의 중요성을 고려했을 때 다른 노드들에 비해 중요하다고 판단된 노드로서, 네트워크를 하나 이상의 커뮤니티로 분류할 때 각 노드들이 어느 커뮤니티로 분류될 것인지 결정하는 기준이 된다.In the disclosed embodiments, an 'important node' is a node determined to be important compared to other nodes in consideration of the number of connected nodes and the importance of each edge in the network, and each node when classifying the network into one or more communities It is a criterion for determining which community they will be classified into.

이후, 단계 204에서 컴퓨팅 장치(12)는 하나 이상의 중요 노드 각각과 나머지 노드 사이의 노드 유사도를 계산한다.Then, in step 204, the computing device 12 calculates a node similarity between each of the one or more important nodes and the remaining nodes.

일 실시예에서, 컴퓨팅 장치(12)는 하나 이상의 중요 노드와 나머지 노드 사이의 연결 여부 및 자카드(Jaccard) 유사도에 기초하여 노드 유사도를 계산할 수 있다.In an embodiment, the computing device 12 may calculate the node similarity based on whether or not there is a connection between one or more important nodes and the remaining nodes and the Jaccard similarity.

즉, 컴퓨팅 장치(12)는 아래의 수학식 1을 이용하여 노드 유사도를 계산할 수 있다.That is, the computing device 12 may calculate the node similarity using Equation 1 below.

[수학식 1][Equation 1]

Figure pat00007
Figure pat00007

이때, Similarity(i, j)는 노드 i와 노드 j 사이의 노드 유사도, Aij는 인접 행렬의 i행 j열 성분,

Figure pat00008
는 노드 i와 직접 연결된 노드의 집합,
Figure pat00009
는 노드 j와 직접 연결된 노드의 집합,
Figure pat00010
는 노드 i 또는 노드 j와 직접 연결된 노드의 수,
Figure pat00011
는 노드 i 및 노드 j와 직접 연결된 노드의 수를 나타낸다.In this case, Similarity(i, j) is the node similarity between node i and node j, A ij is the i-row j-column component of the adjacency matrix,
Figure pat00008
is the set of nodes directly connected to node i,
Figure pat00009
is the set of nodes directly connected to node j,
Figure pat00010
is the number of nodes directly connected to node i or node j,
Figure pat00011
denotes the number of nodes directly connected to node i and node j.

이후, 단계 206에서 컴퓨팅 장치(12)는 계산된 노드 유사도에 기초하여 하나 이상의 중요 노드 각각을 기준으로 복수의 노드를 하나 이상의 커뮤니티로 분류함으로써, 분류 결과를 생성한다.Thereafter, in step 206 , the computing device 12 classifies the plurality of nodes into one or more communities based on each of one or more important nodes based on the calculated node similarity, thereby generating a classification result.

일 실시예에서, 컴퓨팅 장치(12)는 복수의 노드 각각과 엣지(edge)를 통해 직접 연결된 중요 노드의 개수에 기초하여 복수의 노드를 하나 이상의 커뮤니티로 분류할 수 있다.In an embodiment, the computing device 12 may classify the plurality of nodes into one or more communities based on the number of important nodes directly connected to each of the plurality of nodes through an edge.

이후, 단계 208에서 컴퓨팅 장치(12)는 생성된 분류 결과에 대한 모듈성(modularity)을 계산한다.Thereafter, in step 208, the computing device 12 calculates modularity for the generated classification result.

개시되는 실시예들에서, '모듈성'은 각 노드가 무작위적으로 연결된 네트워크에서의 엣지와 비교하여, 현재의 분류 결과 하에서 커뮤니티 내부에 포함된 엣지들이 얼마나 더 많은지를 정량화한 값을 의미한다. 이에 따라, 모듈성 값이 클수록 무작위적으로 연결된 네트워크에 비해 현재 분류 결과 하에서 각 커뮤니티 내 노드끼리 잘 연결되어 있다고 추정할 수 있으므로, 결국 모듈성 값이 클수록 커뮤니티 분류가 잘 수행된 것으로 추정할 수 있다.In the disclosed embodiments, 'modularity' refers to a quantified value of how many more edges are included in the community under the current classification result, compared to the edge in the network in which each node is randomly connected. Accordingly, it can be estimated that nodes within each community are well connected under the current classification result as compared to a randomly connected network as the modularity value is large.

일 실시예에서, 컴퓨팅 장치(12)는 아래의 수학식 2 내지 4를 이용하여 상기 분류 결과에 대한 모듈성을 계산할 수 있다.In an embodiment, the computing device 12 may calculate the modularity of the classification result using Equations 2 to 4 below.

[수학식 2][Equation 2]

Figure pat00012
Figure pat00012

[수학식 3][Equation 3]

Figure pat00013
Figure pat00013

[수학식 4][Equation 4]

Figure pat00014
Figure pat00014

이때, Q는 모듈성, m은 상기 네트워크 내의 엣지의 총 개수, Ni 및 Nj는 각각 네트워크 내 임의의 노드를 나타낸다.In this case, Q is modularity, m is the total number of edges in the network, and Ni and Nj are arbitrary nodes in the network, respectively.

이후, 단계 210에서 컴퓨팅 장치(12)는 현재의 커뮤니티 분류 결과에 기초하여 기 설정된 조건이 만족되었는지 판단한다. 만약, 기 설정된 조건이 만족되지 못했다고 판단되는 경우, 컴퓨팅 장치(12)는 단계 202 내지 단계 208을 반복하여 수행한다. 이때, 단계 202가 반복 수행될 때마다, 컴퓨팅 장치(12)는 기 설정된 수만큼 중요 노드를 더 선택할 수 있다. 예시적으로, 컴퓨팅 장치(12)는 단계 202가 반복 수행될 때마다 중요 노드를 1개씩 더 선택할 수 있다.Thereafter, in step 210, the computing device 12 determines whether a preset condition is satisfied based on the current community classification result. If it is determined that the preset condition is not satisfied, the computing device 12 repeats steps 202 to 208. In this case, whenever step 202 is repeatedly performed, the computing device 12 may further select an important node by a preset number. For example, the computing device 12 may select one more important node each time step 202 is repeatedly performed.

일 실시예에서, 기 설정된 조건은 네트워크에 포함된 복수의 노드 전부가 중요 노드로 선택되는 것일 수 있다.In an embodiment, the preset condition may be that all of a plurality of nodes included in the network are selected as important nodes.

이후, 기 설정된 조건이 만족되었다고 판단되는 경우, 단계 212에서 컴퓨팅 장치(12)는 상기 반복 수행을 통해 생성된 복수의 분류 결과 중 모듈성이 최대인 분류 결과를 최종 분류 결과로 결정한다.Thereafter, when it is determined that the preset condition is satisfied, in step 212 , the computing device 12 determines a classification result having the greatest modularity among a plurality of classification results generated through the iterative execution as a final classification result.

구체적으로, 컴퓨팅 장치(12)는 상기 단계 208을 반복 수행함으로써 복수의 커뮤니티 분류 결과 각각에 대해 모듈성을 계산하게 되므로, 계산된 복수의 모듈성 값 중 최대값인 모듈성에 대응되는 커뮤니티 분류 결과를 최종 분류 결과로 결정한다.Specifically, since the computing device 12 calculates modularity for each of the plurality of community classification results by repeating step 208, the final classification of the community classification result corresponding to the maximum modularity value among the plurality of calculated modularity values determined by the result.

도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.In the illustrated flowchart, the method is described by dividing the method into a plurality of steps, but at least some of the steps are performed in a reversed order, are performed together in combination with other steps, are omitted, are performed separately, or are not shown. One or more steps may be added and performed.

도 3은 일 실시예에 따른 중요 노드 설정 방법을 설명하기 위한 흐름도(300)이다.3 is a flowchart 300 for explaining a method for setting an important node according to an embodiment.

도 3에 도시된 방법은 예를 들어, 도 2에 도시된 202 단계에서 수행될 수 있다.The method illustrated in FIG. 3 may be performed, for example, in step 202 illustrated in FIG. 2 .

도 3을 참조하면, 단계 302에서 컴퓨팅 장치(12)는 네트워크에 포함된 복수의 노드 각각마다 고유벡터 중심성(eigenvector centrality) 값을 계산할 수 있다.Referring to FIG. 3 , in step 302 , the computing device 12 may calculate an eigenvector centrality value for each of a plurality of nodes included in the network.

일 실시예에서, 고유벡터 중심성 값은 복수의 노드 각각의 연결 여부를 나타내는 인접 행렬(Adjacency matrix) 및 상기 인접 행렬의 고유값(eigenvalue)에 기초하여 계산될 수 있다.In an embodiment, the eigenvector centrality value may be calculated based on an adjacency matrix indicating whether each of a plurality of nodes is connected and an eigenvalue of the adjacency matrix.

구체적으로, 인접 행렬은 노드 사이를 연결하는 엣지가 존재하는 경우 1을 원소 값으로, 존재하지 않는 경우 0을 원소 값으로 갖는 행렬을 의미한다. 예를 들어, 네트워크에 포함된 노드의 수가 n개인 경우, 인접 행렬은 n x n 정사각행렬로, 주대각선 성분은 모두 1이고 i행 j열의 원소 값은 i번째 노드와 j번째 노드 사이에 엣지가 존재하는지 여부에 따라 0 또는 1의 값을 갖는다.Specifically, the adjacency matrix refers to a matrix having 1 as an element value when there is an edge connecting between nodes, and 0 as an element value when there is no edge. For example, if the number of nodes included in the network is n, the adjacency matrix is an nxn square matrix, the main diagonal components are all 1, and the element value of row i and column j indicates whether an edge exists between the i-th node and the j-th node. Depending on whether or not it has a value of 0 or 1.

이에 따라, 컴퓨팅 장치(12)는 아래의 수학식 5를 이용하여 복수의 노드 각각의 고유벡터 중심성 값을 계산할 수 있다.Accordingly, the computing device 12 may calculate the eigenvector centrality value of each of the plurality of nodes using Equation 5 below.

[수학식 5][Equation 5]

Figure pat00015
Figure pat00015

이때, Aij는 인접 행렬의 i행 j열 성분, xi는 노드 i의 고유벡터 중심성 값, xj는 노드 j의 고유벡터 중심성 값,

Figure pat00016
는 인접 행렬의 고유값 중 최대값을 나타낸다.In this case, A ij is the i-row j-column component of the adjacency matrix, x i is the eigenvector centrality value of the node i, x j is the eigenvector centrality value of the node j,
Figure pat00016
represents the maximum value among the eigenvalues of the adjacency matrix.

이후, 단계 304에서 컴퓨팅 장치(12)는 계산된 각 복수의 노드 별 고유벡터 중심성 값에 기초하여 복수의 노드 중 하나 이상의 중요 노드를 결정할 수 있다.Thereafter, in operation 304 , the computing device 12 may determine one or more important nodes among the plurality of nodes based on the calculated eigenvector centrality values for each of the plurality of nodes.

구체적으로, 컴퓨팅 장치(12)는 고유벡터 중심성 값이 큰 순서대로 중요 노드를 결정하되, 이하에서 설명할 단계 210에서 컴퓨팅 장치(12)가 단계 202를 반복 수행할 시 기존에 결정된 중요 노드 다음으로 고유벡터 중심성 값이 큰 노드를 기 설정된 개수만큼 더 선택하여 중요 노드에 포함시킬 수 있다.Specifically, the computing device 12 determines the important nodes in the order of increasing the eigenvector centrality value, but in step 210 to be described below, when the computing device 12 repeatedly performs step 202, next to the previously determined important node A predetermined number of nodes having a large eigenvector centrality value may be further selected and included in the important node.

도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.In the illustrated flowchart, the method is described by dividing the method into a plurality of steps, but at least some of the steps are performed in a reversed order, are performed together in combination with other steps, are omitted, are performed separately, or are not shown. One or more steps may be added and performed.

도 4는 일 실시예에 따른 커뮤니티의 분류 결과를 생성하는 일 예를 설명하기 위한 예시도(400)이며, 도 5는 커뮤니티의 최종 분류 결과의 일 예를 나타낸 예시도(500)이다.4 is an exemplary diagram 400 for explaining an example of generating a community classification result according to an embodiment, and FIG. 5 is an exemplary diagram 500 illustrating an example of a final community classification result.

도 4를 참조하면, 컴퓨팅 장치(12)는 복수의 노드 각각과 엣지(edge)를 통해 직접 연결된 중요 노드의 개수가 0인 경우, 1인 경우, 2 이상인 경우를 구분하여, 각 경우에 따라 복수의 노드를 하나 이상의 커뮤니티로 분류하는 방식을 달리할 수 있다. 각 경우에 따른 분류 방식은 다음과 같다.Referring to FIG. 4 , the computing device 12 distinguishes cases where the number of important nodes directly connected to each of a plurality of nodes through an edge is 0, 1, and 2 or more, and a plurality of The method of classifying nodes in one or more communities can be different. The classification method for each case is as follows.

(1) 복수의 노드 중 중요 노드와 직접 연결되지 않은 제1 유형의 노드(A)의 경우, 컴퓨팅 장치(12)는 제1 유형의 노드(A)와 직접 연결된 노드 중 제1 유형의 노드(A)와의 노드 유사도가 최대인 노드와 제1 유형의 노드(A)를 동일한 커뮤니티로 분류한다.(1) In the case of a first type of node (A) that is not directly connected to an important node among a plurality of nodes, the computing device 12 is a first type of node ( The node having the maximum node similarity with A) and the first type node (A) are classified into the same community.

(2) 복수의 노드 중 하나의 중요 노드(예시적으로, 도 4에서는 중요 노드 1)에만 직접 연결된 제2 유형의 노드(B)의 경우, 컴퓨팅 장치(12)는 직접 연결된 해당 중요 노드와 제2 유형의 노드(B)를 동일한 커뮤니티로 분류한다.(2) In the case of the second type of node (B) directly connected to only one critical node (eg, critical node 1 in FIG. 4 ) among the plurality of nodes, the computing device 12 is directly connected to the critical node and the second type of node (B). Classify the two types of nodes (B) into the same community.

(3) 복수의 노드 중 두 개 이상의 중요 노드(예시적으로, 도 4에서는 중요 노드 1 및 중요 노드 2)에 직접 연결된 제3 유형의 노드(C)의 경우, 직접 연결된 상기 두 개 이상의 중요 노드 중 제3 유형의 노드(C)와의 노드 유사도가 최대인 중요 노드와 제3 유형의 노드(C)를 동일한 커뮤니티로 분류한다.(3) In the case of a third type of node (C) directly connected to two or more important nodes among a plurality of nodes (eg, important node 1 and important node 2 in FIG. 4 ), the two or more important nodes directly connected Among them, the important node having the highest node similarity with the third type node (C) and the third type node (C) are classified into the same community.

도 5를 참조하면, 상술한 도 4를 참조하여 설명한 과정을 통해 네트워크에 포함된 복수의 노드가 예시적으로 6개의 커뮤니티로 분류된 것을 알 수 있다. 이처럼, 네트워크에 속한 객체(노드)가 매우 많아 각 노드의 분류가 어려운 경우에도, 초기에 중요 노드를 선택하여 노드 유사도 및 모듈성을 계산함으로써 각 노드를 신속하게 서로 유사한 노드끼리 분류할 수 있다.Referring to FIG. 5 , it can be seen that a plurality of nodes included in the network are exemplarily classified into six communities through the process described with reference to FIG. 4 . In this way, even when it is difficult to classify each node because there are so many objects (nodes) in the network, each node can be quickly classified among similar nodes by initially selecting important nodes and calculating node similarity and modularity.

한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Meanwhile, an embodiment of the present invention may include a program for performing the methods described in this specification on a computer, and a computer-readable recording medium including the program. The computer-readable recording medium may include program instructions, local data files, local data structures, etc. alone or in combination. The medium may be specially designed and configured for the present invention, or may be commonly used in the field of computer software. Examples of computer-readable recording media include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and program instructions specially configured to store and execute program instructions such as ROMs, RAMs, flash memories, and the like. Hardware devices are included. Examples of the program may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.Although representative embodiments of the present invention have been described in detail above, those of ordinary skill in the art to which the present invention pertains will understand that various modifications are possible without departing from the scope of the present invention with respect to the above-described embodiments. . Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the following claims as well as the claims and equivalents.

10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
10: Computing Environment
12: computing device
14: Processor
16: computer readable storage medium
18: communication bus
20: Program
22: input/output interface
24: input/output device
26: network communication interface

Claims (16)

복수의 노드(node)를 포함하는 네트워크에서 하나 이상의 중요 노드를 선택하는 단계;
상기 하나 이상의 중요 노드 각각과 나머지 노드 사이의 노드 유사도를 계산하는 단계;
상기 노드 유사도에 기초하여 상기 하나 이상의 중요 노드 각각을 기준으로 상기 복수의 노드를 하나 이상의 커뮤니티로 분류한 분류 결과를 생성하는 단계;
상기 분류 결과에 대한 모듈성(modularity)을 계산하는 단계;
기 설정된 조건을 만족할 때까지 상기 선택하는 단계, 상기 노드 유사도를 계산하는 단계, 상기 분류 결과를 생성하는 단계 및 상기 모듈성을 계산하는 단계를 반복 수행하는 단계; 및
상기 기 설정된 조건이 만족된 경우, 상기 반복 수행을 통해 생성된 복수의 분류 결과 중 상기 모듈성이 최대인 분류 결과를 최종 분류 결과로 결정하는 단계를 포함하는, 커뮤니티 검출 방법.
selecting one or more important nodes in a network including a plurality of nodes;
calculating a node similarity between each of the one or more important nodes and the remaining nodes;
generating a classification result of classifying the plurality of nodes into one or more communities based on each of the one or more important nodes based on the node similarity;
calculating modularity for the classification result;
repeatedly performing the selecting step, calculating the node similarity, generating the classification result, and calculating the modularity until a preset condition is satisfied; and
and determining, as a final classification result, a classification result having the greatest modularity among a plurality of classification results generated through the iterative execution when the preset condition is satisfied.
청구항 1에 있어서,
상기 선택하는 단계는,
상기 복수의 노드 각각의 고유벡터 중심성(eigenvector centrality) 값을 계산하는 단계; 및
상기 고유벡터 중심성 값에 기초하여 상기 복수의 노드 중 상기 하나 이상의 중요 노드를 결정하는 단계를 포함하되,
상기 하나 이상의 중요 노드는, 상기 선택하는 단계가 반복 수행될 때마다 기 설정된 수만큼 더 선택되는, 커뮤니티 검출 방법.
The method according to claim 1,
The selecting step is
calculating an eigenvector centrality value of each of the plurality of nodes; and
determining the at least one important node among the plurality of nodes based on the eigenvector centrality value,
The one or more important nodes are further selected by a preset number each time the selecting step is repeatedly performed.
청구항 2에 있어서,
상기 고유벡터 중심성 값은,
상기 복수의 노드 각각의 연결 여부를 나타내는 인접 행렬 및 상기 인접 행렬의 고유값(eigenvalue)에 기초하여 계산되는, 커뮤니티 검출 방법.
3. The method according to claim 2,
The eigenvector centrality value is
It is calculated based on an adjacency matrix indicating whether each of the plurality of nodes is connected and an eigenvalue of the adjacency matrix.
청구항 1에 있어서,
상기 노드 유사도를 계산하는 단계는,
상기 하나 이상의 중요 노드와 나머지 노드 사이의 연결 여부 및 상기 하나 이상의 중요 노드와 상기 나머지 노드 사이의 자카드(Jaccard) 유사도에 기초하여 상기 노드 유사도를 계산하는, 커뮤니티 검출 방법.
The method according to claim 1,
Calculating the node similarity includes:
and calculating the node similarity based on whether there is a connection between the one or more important nodes and the remaining nodes and a Jaccard similarity between the one or more important nodes and the remaining nodes.
청구항 1에 있어서,
상기 생성하는 단계는,
엣지(edge)를 통해 직접 연결된 중요 노드의 개수에 기초하여 상기 복수의 노드를 상기 하나 이상의 커뮤니티로 분류하는, 커뮤니티 검출 방법.
The method according to claim 1,
The generating step is
Classifying the plurality of nodes into the one or more communities based on the number of important nodes directly connected through an edge.
청구항 5에 있어서,
상기 생성하는 단계는,
상기 복수의 노드 중 상기 하나 이상의 중요 노드와 직접 연결되지 않은 제1 유형의 노드의 경우, 상기 제1 유형의 노드와 직접 연결된 노드 중 상기 제1 유형의 노드와의 상기 노드 유사도가 최대인 노드와 상기 제1 유형의 노드를 동일한 커뮤니티로 분류하고,
상기 복수의 노드 중 하나의 중요 노드에 직접 연결된 제2 유형의 노드의 경우, 상기 직접 연결된 하나의 중요 노드와 상기 제2 유형의 노드를 동일한 커뮤니티로 분류하고,
상기 복수의 노드 중 복수의 중요 노드에 직접 연결된 제3 유형의 노드의 경우, 상기 복수의 중요 노드 중 상기 제3 유형의 노드와의 상기 노드 유사도가 최대인 중요 노드와 상기 제3 유형의 노드를 동일한 커뮤니티로 분류하는, 커뮤니티 검출 방법.
6. The method of claim 5,
The generating step is
In the case of a first-type node not directly connected to the one or more important nodes among the plurality of nodes, a node having the highest node similarity with the first-type node among nodes directly connected to the first-type node; classifying the first type of node into the same community;
In the case of a second type of node directly connected to one important node among the plurality of nodes, classifying the directly connected one important node and the second type of node into the same community;
In the case of a third type of node directly connected to a plurality of important nodes among the plurality of nodes, a critical node having the highest node similarity with the third type of nodes among the plurality of important nodes and the third type of node are selected. A community detection method that classifies into the same community.
청구항 1에 있어서,
상기 모듈성을 계산하는 단계는,
아래의 수학식 1 내지 3을 이용하여 상기 분류 결과에 대한 모듈성을 계산하는, 커뮤니티 검출 방법.
[수학식 1]
Figure pat00017

[수학식 2]
Figure pat00018

[수학식 3]
Figure pat00019

(이때, Q는 모듈성, m은 상기 네트워크 내의 엣지의 총 개수, Ni 및 Nj는 각각 상기 네트워크 내 임의의 노드)
The method according to claim 1,
Calculating the modularity comprises:
A community detection method for calculating the modularity of the classification result using Equations 1 to 3 below.
[Equation 1]
Figure pat00017

[Equation 2]
Figure pat00018

[Equation 3]
Figure pat00019

(Where Q is modularity, m is the total number of edges in the network, and Ni and Nj are arbitrary nodes in the network, respectively)
청구항 1에 있어서,
상기 기 설정된 조건은,
상기 복수의 노드 전부가 상기 중요 노드로 선택되는 것인, 커뮤니티 검출 방법.
The method according to claim 1,
The preset condition is
wherein all of the plurality of nodes are selected as the important nodes.
하나 이상의 프로세서들;
메모리; 및
하나 이상의 프로그램들을 포함하고,
상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되며,
상기 하나 이상의 프로그램들은,
복수의 노드(node)를 포함하는 네트워크에서 하나 이상의 중요 노드를 선택하기 위한 명령;
상기 하나 이상의 중요 노드 각각과 나머지 노드 사이의 노드 유사도를 계산하기 위한 명령;
상기 노드 유사도에 기초하여 상기 하나 이상의 중요 노드 각각을 기준으로 상기 복수의 노드를 하나 이상의 커뮤니티로 분류한 분류 결과를 생성하기 위한 명령;
상기 분류 결과에 대한 모듈성(modularity)을 계산하기 위한 명령; 및
기 설정된 조건을 만족할 때까지 상기 선택하는 단계, 상기 노드 유사도를 계산하는 단계, 상기 분류 결과를 생성하는 단계 및 상기 모듈성을 계산하는 단계를 반복 수행하기 위한 명령; 및
상기 기 설정된 조건이 만족된 경우, 상기 반복 수행을 통해 생성된 복수의 분류 결과 중 상기 모듈성이 최대인 분류 결과를 최종 분류 결과로 결정하기 위한 명령을 포함하는, 커뮤니티 검출 장치.
one or more processors;
Memory; and
one or more programs;
wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors;
the one or more programs,
instructions for selecting one or more important nodes in a network including a plurality of nodes;
instructions for calculating a node similarity between each of the one or more important nodes and the remaining nodes;
instructions for generating a classification result of classifying the plurality of nodes into one or more communities based on each of the one or more important nodes based on the node similarity;
instructions for calculating modularity for the classification result; and
instructions for repeatedly performing the selecting step, calculating the node similarity, generating the classification result, and calculating the modularity until a preset condition is satisfied; and
and a command for determining, as a final classification result, a classification result having the greatest modularity among a plurality of classification results generated through the iterative execution when the preset condition is satisfied.
청구항 9에 있어서,
상기 선택하기 위한 명령은,
상기 복수의 노드 각각의 고유벡터 중심성(eigenvector centrality) 값을 계산하기 위한 명령; 및
상기 고유벡터 중심성 값에 기초하여 상기 복수의 노드 중 상기 하나 이상의 중요 노드를 결정하기 위한 명령을 포함하되,
상기 하나 이상의 중요 노드는, 상기 선택하는 단계가 반복 수행될 때마다 기 설정된 수만큼 더 선택되는, 커뮤니티 검출 장치.
10. The method of claim 9,
The command to select is:
instructions for calculating an eigenvector centrality value of each of the plurality of nodes; and
instructions for determining the at least one significant node among the plurality of nodes based on the eigenvector centrality value;
The one or more important nodes are further selected by a preset number each time the selecting step is repeatedly performed.
청구항 10에 있어서,
상기 고유벡터 중심성 값은,
상기 복수의 노드 각각의 연결 여부를 나타내는 인접 행렬 및 상기 인접 행렬의 고유값(eigenvalue)에 기초하여 계산되는, 커뮤니티 검출 장치.
11. The method of claim 10,
The eigenvector centrality value is
The community detection apparatus is calculated based on an adjacency matrix indicating whether each of the plurality of nodes is connected and an eigenvalue of the adjacency matrix.
청구항 9에 있어서,
상기 노드 유사도를 계산하기 위한 명령은,
상기 하나 이상의 중요 노드와 나머지 노드 사이의 연결 여부 및 상기 하나 이상의 중요 노드와 상기 나머지 노드 사이의 자카드(Jaccard) 유사도에 기초하여 상기 노드 유사도를 계산하는, 커뮤니티 검출 장치.
10. The method of claim 9,
The command for calculating the node similarity is:
and calculating the node similarity based on whether there is a connection between the one or more important nodes and the remaining nodes and a Jaccard similarity between the one or more important nodes and the remaining nodes.
청구항 9에 있어서,
상기 생성하기 위한 명령은,
엣지(edge)를 통해 직접 연결된 중요 노드의 개수에 기초하여 상기 복수의 노드를 상기 하나 이상의 커뮤니티로 분류하는, 커뮤니티 검출 장치.
10. The method of claim 9,
The command to generate the above is
Classifying the plurality of nodes into the one or more communities based on the number of important nodes directly connected through an edge.
청구항 13에 있어서,
상기 생성하기 위한 명령은,
상기 복수의 노드 중 상기 중요 노드와 직접 연결되지 않은 제1 유형의 노드의 경우, 상기 제1 유형의 노드와 직접 연결된 노드 중 상기 제1 유형의 노드와의 상기 노드 유사도가 최대인 노드와 상기 제1 유형의 노드를 동일한 커뮤니티로 분류하고,
상기 복수의 노드 중 하나의 중요 노드에만 직접 연결된 제2 유형의 노드의 경우, 상기 직접 연결된 하나의 중요 노드와 상기 제2 유형의 노드를 동일한 커뮤니티로 분류하고,
상기 복수의 노드 중 두 개 이상의 중요 노드에 직접 연결된 제3 유형의 노드의 경우, 상기 두 개 이상의 중요 노드 중 상기 제3 유형의 노드와의 상기 노드 유사도가 최대인 중요 노드와 상기 제3 유형의 노드를 동일한 커뮤니티로 분류하는, 커뮤니티 검출 장치.
14. The method of claim 13,
The command to generate the above is
In the case of a first-type node not directly connected to the important node among the plurality of nodes, a node having the highest node similarity with the first-type node among nodes directly connected to the first-type node and the second node Classify nodes of type 1 into the same community,
In the case of a second type of node directly connected to only one important node among the plurality of nodes, classifying the directly connected one important node and the second type of node into the same community;
In the case of a third type node directly connected to two or more important nodes among the plurality of nodes, the third type of node and the critical node having the highest node similarity with the third type node among the two or more important nodes A community detection device that classifies nodes into the same community.
청구항 9에 있어서,
상기 모듈성을 계산하기 위한 명령은,
아래의 수학식 1 내지 3을 이용하여 상기 분류 결과에 대한 모듈성을 계산하는, 커뮤니티 검출 장치.
[수학식 1]
Figure pat00020

[수학식 2]
Figure pat00021

[수학식 3]
Figure pat00022

(이때, Q는 모듈성, m은 상기 네트워크 내의 엣지의 총 개수, Ni 및 Nj는 각각 상기 네트워크 내 임의의 노드)
10. The method of claim 9,
The instruction for calculating the modularity is:
A community detection device for calculating the modularity of the classification result using Equations 1 to 3 below.
[Equation 1]
Figure pat00020

[Equation 2]
Figure pat00021

[Equation 3]
Figure pat00022

(Where Q is modularity, m is the total number of edges in the network, and Ni and Nj are arbitrary nodes in the network, respectively)
청구항 9에 있어서,
상기 기 설정된 조건은,
상기 복수의 노드 전부가 상기 중요 노드로 선택되는 것인, 커뮤니티 검출 장치.
10. The method of claim 9,
The preset condition is
wherein all of the plurality of nodes are selected as the important nodes.
KR1020200039032A 2020-03-31 2020-03-31 Apparatus and method for detecting community in large scale network KR102394210B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200039032A KR102394210B1 (en) 2020-03-31 2020-03-31 Apparatus and method for detecting community in large scale network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200039032A KR102394210B1 (en) 2020-03-31 2020-03-31 Apparatus and method for detecting community in large scale network

Publications (2)

Publication Number Publication Date
KR20210121773A true KR20210121773A (en) 2021-10-08
KR102394210B1 KR102394210B1 (en) 2022-05-06

Family

ID=78115860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200039032A KR102394210B1 (en) 2020-03-31 2020-03-31 Apparatus and method for detecting community in large scale network

Country Status (1)

Country Link
KR (1) KR102394210B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115048436A (en) * 2022-06-01 2022-09-13 优米互动(北京)科技有限公司 High-dimensional financial time sequence stage division method based on visual principle

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101977231B1 (en) 2017-06-15 2019-05-13 한양대학교 산학협력단 Community detection method and community detection framework apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101977231B1 (en) 2017-06-15 2019-05-13 한양대학교 산학협력단 Community detection method and community detection framework apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Ahajjam, Sara, Mohamed El Haddad, and Hassan Badir. "A new scalable leader-community detection approach for community detection in social networks." Social Networks 54 (2017.12.16. 공개)* *
Waltman, Ludo, and Nees Jan Van Eck. "A smart local moving algorithm for large-scale modularity-based community detection." The European physical journal B 86.11 (2013.11.13. 공개)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115048436A (en) * 2022-06-01 2022-09-13 优米互动(北京)科技有限公司 High-dimensional financial time sequence stage division method based on visual principle

Also Published As

Publication number Publication date
KR102394210B1 (en) 2022-05-06

Similar Documents

Publication Publication Date Title
RU2454714C1 (en) System and method of increasing efficiency of detecting unknown harmful objects
US20180096247A1 (en) Method and apparatus for machine learning
US20170075524A1 (en) Method And Apparatus Of Switching Interfaces
US20210248323A1 (en) Automated identification of concept labels for a set of documents
KR102074909B1 (en) Apparatus and method for classifying software vulnerability
KR102543698B1 (en) Computing system and method for data labeling thereon
US11443234B2 (en) Machine learning data processing pipeline
US10824694B1 (en) Distributable feature analysis in model training system
CN113449299A (en) Projected vector modification as suppression of machine learning model string fill
KR102394210B1 (en) Apparatus and method for detecting community in large scale network
WO2016093839A1 (en) Structuring of semi-structured log messages
KR20200106108A (en) System and method for patent information word embedding based on deep learning
CN107920067B (en) Intrusion detection method on active object storage system
KR20220029011A (en) Apparatus and method for identifying micro service
US11227231B2 (en) Computational efficiency in symbolic sequence analytics using random sequence embeddings
CN110716866A (en) Code quality scanning method and device, computer equipment and storage medium
US11615290B2 (en) Synthetic data generation apparatus based on generative adversarial networks and learning method thereof
KR102268570B1 (en) Apparatus and method for generating document cluster
US11676050B2 (en) Systems and methods for neighbor frequency aggregation of parametric probability distributions with decision trees using leaf nodes
CN114897290A (en) Evolution identification method and device of business process, terminal equipment and storage medium
JP2019016335A (en) Systems and methods for preventing data loss in computer system
US20210174014A1 (en) Visualization of the Entities and Relations in a Document
KR102358678B1 (en) Analysis method for large scale social network and apparatus for executing the method
US20210334477A1 (en) Method and server for processing text sequence for machine processing task
KR102613844B1 (en) Apparatus and method for automating artificial intelligence model design

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right