KR102957504B1 - 메타데이터를 활용한 커뮤니티 탐지 장치 및 방법 - Google Patents

메타데이터를 활용한 커뮤니티 탐지 장치 및 방법

Info

Publication number
KR102957504B1
KR102957504B1 KR1020230016640A KR20230016640A KR102957504B1 KR 102957504 B1 KR102957504 B1 KR 102957504B1 KR 1020230016640 A KR1020230016640 A KR 1020230016640A KR 20230016640 A KR20230016640 A KR 20230016640A KR 102957504 B1 KR102957504 B1 KR 102957504B1
Authority
KR
South Korea
Prior art keywords
community
metadata
communities
node
nodes
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020230016640A
Other languages
English (en)
Other versions
KR20240123980A (ko
Inventor
신원용
호우유
Original Assignee
연세대학교 산학협력단
Filing date
Publication date
Application filed by 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Priority to KR1020230016640A priority Critical patent/KR102957504B1/ko
Publication of KR20240123980A publication Critical patent/KR20240123980A/ko
Application granted granted Critical
Publication of KR102957504B1 publication Critical patent/KR102957504B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Abstract

개시된 실시예는 네트워크에 포함된 다수의 노드 각각에 대한 속성 정보를 포함하는 다수의 메타데이터를 기반으로 다수의 노드를 잇는 엣지를 가상으로 설정하여 초기 네트워크 그래프를 획득하고, 초기 네트워크 그래프 또는 이전 네트워크 그래프 중 하나와 다수의 노드에 대한 메타데이터를 인가받아 인공 신경망으로 신경망 연산하여 각 노드가 다수의 커뮤니티 각각에 소속될 확률을 나타내는 커뮤니티 소속 행렬을 획득하며, 커뮤니티 소속 행렬에 따라 다수의 노드 각각이 다수의 커뮤니티에 소속되는지 여부를 판별하고 다수의 커뮤니티를 재구성하여 커뮤니티를 탐지하고, 재구성된 커뮤니티를 분석하여 선택되는 쿼리 노드에 대한 엣지 정보를 획득하여 인가된 초기 네트워크 그래프 또는 이전 네트워크 그래프를 업데이트하여 토폴로지가 알려지지 않은 네트워크에서, 노드의 메타데이터를 이용하여 노드의 엣지 연결 구조에 대한 최소한의 쿼리만으로 각 노드가 소속된 커뮤니티 구성을 저비용으로 정확하게 탐색할 수 있는 커뮤니티 탐지 장치 및 방법을 제공한다.

Description

메타데이터를 활용한 커뮤니티 탐지 장치 및 방법{Community Detection Apparatus and Method using Metadata}
개시되는 실시예들은 메타데이터를 활용한 커뮤니티 탐지 장치 및 방법에 관한 것으로, 토폴로지 구조가 확인되지 않은 네트워크에서 메타데이터를 활용한 커뮤니티 탐지 장치 및 방법에 관한 것이다.
개인간의 관계 및 상호 작용 등에 중요한 역할을 하는 소셜 네트워크에서 커뮤니티는 다수의 사용자 중 공통되거나 유사한 아이디어나 생각 또는 관심 분야 등에 의해 형성된다. 따라서 소셜 네트워크와 같은 다양한 네트워크에서 커뮤니티 탐색은 네트워크 분석을 위한 중요한 문제로 주목받고 있다.
다만 기존 커뮤니티 탐지 기술은 소셜 네트워크/정보 네트워크와 같은 네트워크의 토폴로지 구조, 즉, 노드 간의 연결 관계를 나타내는 엣지 정보가 사전에 완전하게 알려져 있다는 가정하에 알고리즘 개발이 수행되어 왔다. 그러나 네트워크의 노드(사용자)들 간 관계를 획득하는 것은 매우 많은 시간과 노력 및 비용을 요구한다. 특히 대부분의 네트워크 관리자는 엣지 정보를 제공하지 않거나 매우 한정적으로 제공하고 있으며, 확장된 엣지 정보를 획득하기 위해서는 제공되는 엣지 정보의 수에 따른 별도의 비용을 요구하고 있다.
따라서 네트워크의 완전한 토폴로지 구조를 확인하여 커뮤니티를 탐지하는 것은 현실적이지 않으며, 활용 가능한 비용 범위 내에서 한정적인 엣지 정보만을 획득할 수 있는 경우가 대부분이다.
반면, 노드의 속성을 나타내는 노드 메타데이터는 상대적으로 수집하기가 용이하다. 이에 수집된 메타데이터를 이용하여 효율적으로 네트워크의 커뮤니티를 탐색할 수 있는 기법이 요구되고 있다.
한국 등록 특허 제10-1727831호 (2017.04.11 등록)
개시되는 실시예들은 노드가 여러 커뮤니티에 중첩 소속될 수 있는 네트워크에서 효율적으로 커뮤니티 구성을 탐색할 수 있는 커뮤니티 탐지 장치 및 방법을 제공하는데 목적이 있다.
개시되는 실시예들은 노드의 메타데이터를 이용하여 토폴로지가 알려지지 않은 네트워크에서 저비용으로 커뮤니티 구성을 정확하게 추정할 수 있는 커뮤니티 탐지 장치 및 방법을 제공하는데 목적이 있다.
실시예에 따른 커뮤니티 탐지 장치는 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 장치로서, 상기 프로세서는 네트워크에 포함된 다수의 노드 각각에 대한 속성 정보를 포함하는 다수의 메타데이터를 기반으로 상기 다수의 노드를 잇는 엣지를 가상으로 설정하여 초기 네트워크 그래프를 획득하고, 상기 초기 네트워크 그래프 또는 이전 네트워크 그래프 중 하나와 상기 다수의 노드에 대한 메타데이터를 인가받아 인공 신경망으로 신경망 연산하여 각 노드가 다수의 커뮤니티 각각에 소속될 확률을 나타내는 커뮤니티 소속 행렬을 획득하며, 상기 커뮤니티 소속 행렬에 따라 상기 다수의 노드 각각이 상기 다수의 커뮤니티에 소속되는지 여부를 판별하고 상기 다수의 커뮤니티를 재구성하여 커뮤니티를 탐지하고, 재구성된 커뮤니티를 분석하여 선택되는 쿼리 노드에 대한 엣지 정보를 획득하여 인가된 상기 초기 네트워크 그래프 또는 이전 네트워크 그래프를 업데이트한다.
상기 프로세서는 최대한 많은 수의 커뮤니티에 중복 소속되면서, 가능한 이전 선택된 쿼리 노드가 소속된 커뮤니티에 중복 소속되지 않는 노드를 쿼리 노드로 선택할 수 있다.
상기 프로세서는 상기 커뮤니티 소속 행렬을 각 노드에 따라 구분하여 획득되는 다수의 커뮤니티 소속 벡터를 가상의 커뮤니티 공간에 임베딩하여, 상기 다수의 노드의 위치를 수정할 수 있다.
상기 프로세서는 상기 커뮤니티 소속 행렬에서 배열된 원소값으로부터 다수의 노드 각각이 다수의 커뮤니티 각각에 소속될 확률을 확인하고, 확인된 확률이 문턱값 이상인 모든 커뮤니티에 해당 노드가 중복하여 소속되는 것으로 판별하여 커뮤니티를 재구성할 수 있다.
상기 프로세서는 쿼리 횟수가 지정된 최대 쿼리 횟수에 도달할 때까지 반복적으로 상기 커뮤니티 소속 행렬을 획득하여 네트워크 그래프를 업데이트할 수 있다.
상기 프로세서는 상기 다수의 메타데이터를 기반으로 상기 다수의 노드를 클러스터링하여 다수의 초기 커뮤니티를 구성하고, 상기 다수의 초기 커뮤니티 중 공통 커뮤니티에 중복으로 소속된 노드들을 분석하고 가상의 엣지로 연결하여 상기 초기 네트워크 그래프를 획득할 수 있다.
상기 프로세서는 상기 인공 신경망을 학습시키기 위해, 상기 커뮤니티 소속 행렬로부터 추정되는 다수의 노드 사이에 엣지가 존재할 확률과 업데이트된 네트워크 그래프에 존재하는 엣지 사이의 차에 따른 커뮤니티 재구성 손실을 계산할 수 있다.
상기 프로세서는 상기 인공 신경망을 학습시키기 위해, 상기 커뮤니티 소속 행렬로부터 상기 다수의 메타데이터를 모의한 다수의 모의 메타데이터를 획득하고, 획득된 상기 다수의 모의 메타데이터와 상기 다수의 메타데이터 사이의 차이에 따라 메타데이터 재구성 손실을 계산할 수 있다.
상기 프로세서는 상기 커뮤니티 재구성 손실과 상기 메타데이터 재구성 손실의 합으로 계산되는 총 손실을 역전파하여 상기 인공 신경망을 학습시킬 수 있다.
실시예에 따른 커뮤니티 탐지 방법은 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에 의해 수행되는 방법으로서, 네트워크에 포함된 다수의 노드 각각에 대한 속성 정보를 포함하는 다수의 메타데이터를 기반으로 상기 다수의 노드를 잇는 엣지를 가상으로 설정하여 초기 네트워크 그래프를 획득하는 단계; 상기 초기 네트워크 그래프 또는 이전 네트워크 그래프 중 하나와 상기 다수의 노드에 대한 메타데이터를 인가받아 인공 신경망으로 신경망 연산하여 각 노드가 다수의 커뮤니티 각각에 소속될 확률을 나타내는 커뮤니티 소속 행렬을 획득하는 단계; 상기 커뮤니티 소속 행렬에 따라 상기 다수의 노드 각각이 상기 다수의 커뮤니티에 소속되는지 여부를 판별하여 상기 다수의 커뮤니티를 재구성하는 단계; 및 재구성된 커뮤니티를 분석하여 선택되는 쿼리 노드에 대한 엣지 정보를 획득하여 인가된 상기 초기 네트워크 그래프 또는 이전 네트워크 그래프를 업데이트하는 단계를 포함한다.
따라서, 실시예에 따른 커뮤니티 탐지 장치 및 방법은 각 노드가 여러 커뮤니티에 중첩 소속될 수 있고 토폴로지가 알려지지 않은 네트워크에서, 노드의 메타데이터를 이용하여 노드의 엣지 연결 구조에 대한 최소한의 쿼리만으로 각 노드가 소속된 커뮤니티 구성을 저비용으로 정확하게 탐색할 수 있다.
도 1은 네트워크 커뮤니티 탐지의 개념을 설명하기 위한 도면이다.
도 2는 쿼리 횟수에 따른 네트워크 정보 검색 결과의 예를 나타낸다.
도 3은 일 실시예 따른 커뮤니티 탐지 장치를 동작에 따라 개략적으로 구분한 구성을 나타낸다.
도 4는 도 1의 커뮤니티 탐지 장치의 동작을 개략적으로 나타낸 도면이다.
도 5는 도 3의 초기 네트워크 획득 모듈의 상세 동작을 설명하기 위한 도면이다.
도 6은 도 3의 커뮤니티 임베딩 모듈의 상세 동작을 설명하기 위한 도면이다.
도 7은 도 3의 네트워크 쿼리 모듈의 상세 동작을 설명하기 위한 도면이다.
도 8은 반복 횟수에 따른 네트워크 및 커뮤니티의 변화를 설명하기 위한 도면이다.
도 9는 도 3의 학습 모듈의 상세 동작을 설명하기 위한 도면이다.
도 10은 일 실시예 따른 커뮤니티 탐지 방법을 나타낸다.
도 11은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 설명하기 위한 도면이다.
이하, 도면을 참조하여 일 실시예의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
일 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 일 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 일 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 네트워크 커뮤니티 탐지의 개념을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 네트워크(G)는 다수의 노드(v ∈ C)가 포함된 노드 집합(V)과 다수의 노드(v) 사이의 관계에 따라 두 노드를 잇는 다수의 엣지(e ∈ E)가 포함된 엣지 집합(E)으로 구성된 네트워크 그래프(G = (V, E)) 형태로 표현될 수 있다. 그리고 네트워크(G) 해석은 다수의 노드(v)와 노드(v)들을 잇는 엣지(e)를 확인하여 네트워크의 토폴로지 구조를 판별하는 것으로 볼 수 있다.
여기서 다수의 노드(v) 각각에는 각 노드의 속성 정보를 나타내는 메타데이터(x ∈ X)가 매칭될 수 있으며, 메타데이터(x)는 네트워크에서 공개적으로 제공되는 데이터뿐만 아니라 별도로 수집된 데이터를 기반으로 획득될 수 있다. 일 예로, 네트워크에서 각 노드가 사용자를 의미하는 경우, 사용자가 공개로 설정한 각종 개인 정보나 사용자가 제작 또는 이용한 콘텐츠에 대한 정보를 수집하여 메타데이터를 생성할 수도 있다.
메타데이터(x)가 각 노드(v)에 대한 속성 정보를 나타내고, 엣지(e)는 네트워크(G)의 다수의 노드(v) 중 서로 연관성이 있는 노드들 연결하므로, 각 노드(v)에 대한 메타데이터(x)와 해당 노드(v)에 연결된 엣지(e)는 서로 상관관계가 있다고 볼 수 있다. 예로서 각 노드(v)에 대한 메타데이터(x)의 유사도를 기반으로 엣지 정보가 제공되지 않은 두 노드 사이에 엣지(e)의 존재 여부를 미리 추정할 수도 있다.
한편 네트워크(G)에서 다수의 노드(v) 각각은 커뮤니티 집합(C)의 다수의 커뮤니티(c ∈ C)에 소속될 수 있다. 네트워크(G)에서 엣지(e)는 두 노드(v) 사이의 연관성을 나타내는데 반해, 각 커뮤니티(c)는 포함된 노드 그룹에 대한 연관성을 나타낼 수 있다. 이때 각 커뮤니티(c)에는 노드(v)가 포함되지 않거나, 하나 이상의 노드(v)가 소속될 수도 있으며, 각 노드(v)는 (b)와 같이 둘 이상의 커뮤니티에 중복되어 소속될 수도 있다.
(a)와 같이 노드 집합(V)과 메타데이터 집합(X) 및 엣지 집합(E)에 대한 정보를 모두 획득할 수 있다면, 획득된 정보(V, E, X)를 기반으로 네트워크(G)에 포함된 다수의 커뮤니티(c)에 대한 커뮤니티 집합(C)을 추정할 수 있다. 특히 토폴로지 구조를 나타내는 에지 집합(E)에 대한 정보는 커뮤니티(c)를 추정하는데 매우 유용하게 활용될 수 있다.
그러나 일반적으로 네트워크(G)에서 노드 집합(V)과 메타데이터 집합(X)에 대한 정보는 상대적으로 용이하게 획득할 수 있는 반면, 엣지 집합(E)에 대한 정보는 용이하게 획득할 수 없다.
도 2는 쿼리 횟수에 따른 네트워크 정보 검색 결과의 예를 나타낸다.
상기한 바와 같이, 네트워크(G)에서 엣지 집합(E)에 대한 정보를 획득하고자 하는 경우, 대부분 비용 지불을 요구한다. 이때 엣지 집합(E)에 포함된 모든 엣지(e)에 대한 정보를 일괄 획득하는 것이 아니라, 네트워크(G)에서 일부 노드를 선택하고, 선택된 노드에 대한 쿼리를 네트워크 관리 장치로 전송하여, 네트워크 관리 장치로부터 해당 노드(v)에 연결된 엣지(e)에 대한 정보를 획득할 수 있다. 그리고 많은 경우 쿼리 횟수에 따라 개수에 상응하는 비용을 지불해야 하는 경우가 많다.
따라서 네트워크 분석 시에는 도 2에 도시된 바와 같이, 가능한 최소한의 쿼리 횟수 또는 비용을 고려하여 제한된 쿼리 횟수 내에서 가능한 많은 엣지 정보를 획득할 수 있어야 한다. 도 2에서는 3번의 쿼리로 네트워크에서 가능한 많은 노드(v)들을 잇는 엣지(e) 정보를 획득하는 과정의 일 예를 나타내고 있다.
이는 다시 말해 네트워크(G)에서 커뮤니티를 탐지하기 위해서는 엣지(e)에 대한 정보를 효율적으로 수집할 수 있어야 하며, 엣지(e)에 대한 정보를 효율적으로 수집하기 위해서는 노드 집합(V)의 다수의 노드(v) 중 쿼리를 전송할 쿼리 노드를 효과적으로 선택하는 것이 매우 중요하다는 것을 의미한다.
이에 실시예에서는 노드 집합(V)의 각 노드(v)에 대한 메타데이터(x)를 이용하여, 다수의 노드(v) 사이를 연결하는 가상 엣지를 추론하고, 추론된 가상 엣지로 연결된 네트워크 그래프를 생성하며, 생성된 네트워크 그래프와 메타데이터(x)를 이용하여 다수의 노드(v) 각각이 소속된 커뮤니티(c)를 추정한다. 그리고 각 노드(v)가 추정된 커뮤니티에 소속된 상태를 기반으로 쿼리 노드를 선택하고, 선택된 쿼리 노드에 대해 쿼리를 전달하여 대응하는 엣지(e)에 대한 정보를 확인함으로써 네트워크 그래프를 업데이트하는 과정을 반복한다. 네트워크 그래프가 반복하여 업데이트됨에 따라 노드(v)가 포함되는 커뮤니티(c)가 더욱 정확하게 추정된다. 즉 네트워크(G)에서 효과적으로 정확하게 커뮤니티(c)를 탐색할 수 있다.
이하에서는 도면을 참조하여 커뮤니티 탐지 장치의 구성과 각 구성에 따른 동작을 설명한다.
도 3은 일 실시예 따른 커뮤니티 탐지 장치를 동작에 따라 개략적으로 구분한 구성을 나타내고, 도 4는 도 1의 커뮤니티 탐지 장치의 동작을 개략적으로 나타낸 도면이며, 도 5는 도 3의 초기 네트워크 획득 모듈의 상세 동작을 설명하기 위한 도면이다. 그리고 도 6은 도 3의 커뮤니티 임베딩 모듈의 상세 동작을 설명하기 위한 도면이고, 도 7은 도 3의 네트워크 쿼리 모듈의 상세 동작을 설명하기 위한 도면이며, 도 8은 반복 횟수에 따른 네트워크 및 커뮤니티의 변화를 설명하기 위한 도면이다. 한편 도 9는 도 3의 학습 모듈의 상세 동작을 설명하기 위한 도면이다.
도 3 내지 도 9를 참조하면, 실시예에 따른 커뮤니티 탐지 장치는 데이터 수집 모듈(10), 초기 네트워크 획득 모듈(20), 커뮤니티 임베딩 모듈(30), 네트워크 쿼리 모듈(40), 학습 모듈(50)을 포함할 수 있다.
데이터 수집 모듈(10)은 커뮤니티를 탐색하고자 하는 네트워크(G)에서 획득 가능한 데이터들을 수집하여 획득한다. 여기서 데이터 수집 모듈(10)은 다수의 노드(v)가 포함된 노드 집합(V = {v1, v2, …, vn})과 다수의 노드(v) 각각 대한 속성 정보인 메타데이터(x)가 포함된 메타데이터 집합(X = {x1, x2, …, xn})을 획득하는 것으로 가정한다. 상기한 바와 같이, 각 노드(v)에 대한 메타데이터(x)는 네트워크(G)에서 제공하는 정보뿐만 아니라 별도로 수집한 정보도 포함될 수 있다.
초기 네트워크 획득 모듈(20)은 도 4에 도시된 바와 같이, 데이터 수집 모듈(10)에서 획득된 메타데이터 집합(X)을 기반으로 노드 집합(V)의 노드 사이의 연관성을 추정하여 초기 네트워크 그래프(G0)를 생성할 수 있다.
초기 네트워크 획득 모듈(20)은 클러스터링 모듈(21) 및 초기 그래프 생성 모듈(22)을 포함할 수 있다. 도 5를 참조하면, 클러스터링 모듈(21)은 노드 집합(V)에 포함된 다수의 노드(v) 각각 속성 정보를 나타내는 다수의 메타데이터(x)들을 기반으로 다수의 노드(v)를 클러스터링하여 다수의 클러스터를 구성할 수 있다. 이때 다수의 노드(v)가 클러스터링되는 클러스터 각각은 임의의 가상 커뮤니티(c)에 대응하는 할 수 있다. 즉 각 클러스터가 초기 커뮤니티(c)를 구성하는 것으로 볼 수 있다.
그리고 실시예에서 클러스터의 개수, 즉 탐색해야할 커뮤니티(c)의 개수는 미리 지정되는 것으로 가정하며, 클러스터링 모듈(21)은 다수의 노드(v)가 하나 이상의 클러스터에 중복되어 포함되도록 클러스터링할 수 있다.
클러스터링 모듈(21)은 공지된 다양한 클러스터링 기법에 따라 다수의 노드(v)를 클러스터링 할 수 있으나, 여기서는 일 예로 다중 정렬 클러스터링(Multi-assignment clustering: MAC) 기법에 따라 클러스터링을 수행하는 것으로 가정한다.
한편, 초기 그래프 생성 모듈(22)은 클러스터링 모듈(21)에서 다수의 클러스터가 구성되어 다수의 초기 커뮤니티가 포함된 초기 커뮤니티 집합이 획득되면, 획득된 초기 커뮤니티 집합으로부터 초기 네트워크 그래프(G0)를 생성한다. 다수의 노드(v)가 서로 다른 다수의 커뮤니티에 공통으로 소속되는 노드의 경우, 다수의 커뮤니티에 공통으로 소속되는 노드들은 서로 연관성이 높다고 볼 수 있다. 이에 초기 그래프 생성 모듈(22)은 도 5와 같이, 다수의 초기 커뮤니티에 공통으로 소속되는 노드(v)들을 확인하여, 엣지(e)의 존재 여부를 추론하고, 추론된 결과에 따라 노드(v)들 사이를 가상 엣지로 연결함으로써 초기 네트워크 그래프(G0)를 생성할 수 있다. 실시예의 도면에서 추론에 의해 설정된 가상 엣지를 점선으로 표시하고, 쿼리를 전송하여 확인된 엣지는 실선으로 구분하여 표시하였다.
여기서는 일 예로 공지된 커뮤니티 소속 그래프 모델(Community-affiliation graph model: AGM)을 이용하여 초기 네트워크 그래프(G0)를 추정하는 것으로 가정하지만, 초기 그래프 생성 모듈(22)은 다른 기법이나 이미 학습된 다양한 인공 신경망을 이용하여 초기 네트워크 그래프(G0)를 획득할 수도 있다.
커뮤니티 임베딩 모듈(30)은 도 4와 같이, 초기 네트워크 획득 모듈(20)에서 획득된 초기 네트워크 그래프(G0)와 데이터 수집 모듈(10)이 수집한 메타데이터 집합(X)을 기반으로 다수의 노드(v) 각각이 각 커뮤니티에 소속(affiliation)되는지 여부를 추정하여, 초기 네트워크 획득 모듈(20)에서 추정된 초기 커뮤니티를 재구성한다.
커뮤니티 임베딩 모듈(30)은 커뮤니티 추정 모델(31) 및 커뮤니티 소속 모듈(32)을 포함할 수 있다.
커뮤니티 추정 모델(31)은 초기 네트워크 그래프(G0) 또는 이전 획득된 네트워크 그래프(G1, G2, …)에서 쿼리에 의해 확인된 엣지(e) 및 임의로 설정된 가상 엣지에 따른 다수의 노드(v) 사이의 연관성과 메타데이터 집합(X)에서 획득되는 각 노드의 속성을 기반으로 다수의 노드(v) 각각이 다수의 커뮤니티(c) 각각에 소속될 확률을 추정한다.
커뮤니티 추정 모델(31)은 쿼리 횟수(t ∈ {1, …, T})에 따라 초기 네트워크 그래프(G0) 또는 이전 획득된 네트워크 그래프(G1, G2, …, GT-1)와 메타데이터 집합(X)을 함께 인가받고, 인가된 네트워크 그래프(Gt-1 ∈ {G0, G1, …, GT-1})와 메타데이터 집합(X)에 대해 신경망 연산을 수행하여, 커뮤니티 소속 행렬(F)을 획득한다. 여기서 커뮤니티 추정 모델(31)은 인공 신경망으로 구현될 수 있으며, 일 예로 학습에 의해 업데이트되는 모델 파라미터(θ)를 갖는 그래프 신경망(Graph Neural Network)(GNNθ)으로 구현될 수 있다.
네트워크에서 노드(v)의 개수가 5개이고, 커뮤니티(c)의 개수가 3개인 경우를 가정하면, 커뮤니티 추정 모델(31)은 도 6에 도시된 바와 같이, 5개의 노드(v1 ~ v5) 각각이 3개의 커뮤니티(C1, C2, C3) 각각에 소속될 확률이 행렬 형태로 배열된 커뮤니티 소속 행렬(F, F = GNNθ(Gt-1, X))을 획득할 수 있다.
커뮤니티 소속 행렬(F)에서 각 행은 각 노드(v1 ~ v5)가 다수의 커뮤니티(C1, C2, C3) 각각에 소속될 확률을 나타낸다. 이에 커뮤니티 소속 행렬(F)에서 각 노드(v)에 대한 각 행은 벡터 형식으로 표현될 수 있다. 예로서 u번째 노드(vu)에 대응하는 커뮤니티 소속 행렬(F)의 행은 커뮤니티 소속 벡터(Fu)로 표현될 수 있다. 즉 커뮤니티 소속 벡터(Fu)는 커뮤니티 소속 행렬(F)을 각 노드에 따라 구분하여 획득될 수 있다.
커뮤니티 추정 모델(31)에서 추정된 커뮤니티 소속 행렬(F)로부터 다수의 노드(v1 ~ v5) 각각에 대한 다수의 커뮤니티 소속 벡터(F1 ~ F5)가 획득되면, 커뮤니티 소속 모듈(32)은 다수의 커뮤니티 소속 벡터(Fu)를 가상의 커뮤니티 공간에 임베딩하여, 이전 네트워크 그래프(Gt-1)에서 각 노드(v1 ~ v5)의 위치를 수정할 수 있다. 여기서 다수의 커뮤니티 소속 벡터(F1 ~ F5)는 다수의 노드(v1 ~ v5) 위치 좌표 정보로 볼 수 있다.
그리고 각 노드(v1 ~ v5)가 다수의 커뮤니티(C1, C2, C3) 각각에 소속될 확률에 기초하여 클러스터링하여 커뮤니티(C1, C2, C3)를 재구성함으로써, 커뮤니티 집합(C)을 업데이트한다.
이때 각 노드(v1 ~ v5)는 커뮤니티 소속 벡터(F1 ~ F5)에 따라 추정된 커뮤니티 소속 확률이 지정된 문턱값(예를 들면 0.7) 이상이면, 노드를 해당 커뮤니티에 소속시킬 수 있다. 또한 각 노드(v1 ~ v5)는 커뮤니티 소속 확률이 문턱값 이상인 모든 커뮤니티에 소속될 수 있다. 즉 각 노드(v1 ~ v5)는 다수의 커뮤니티에 중복되어 소속될 수 있다.
네트워크 쿼리 모듈(40)은 커뮤니티 집합(C)의 재구성된 다수의 커뮤니티에 소속된 노드들을 분석하여 쿼리 노드를 선택하고, 선택된 쿼리 노드에 대해 쿼리하여 획득되는 엣지(e)에 대한 정보에 따라 이전 네트워크 그래프(Gt-1)를 업데이트하여 업데이트된 네트워크 그래프(Gt)를 획득한다.
네트워크 쿼리 모듈(40)은 쿼리 노드 선택 모듈(41) 및 그래프 재구성 모듈(42)을 포함할 수 있다.
쿼리 노드 선택 모듈(41)은 커뮤니티 집합(C)의 재구성된 다수의 커뮤니티에 소속된 노드들을 분석하여 엣지 정보를 가장 효율적으로 획득할 수 있는 노드를 쿼리 노드로 선택한다. 쿼리 노드는 가능한 많은 커뮤니티에 소속되는 노드들에 대한 정보를 획득할 수 있는 경우에 효율적이라고 볼 수 있다. 이에 쿼리 노드 선택 모듈(41)은 다수의 노드(v)에서 가장 많은 수의 커뮤니티에 중복 소속된 노드를 쿼리 노드로 선택할 수 있다.
다만, 이미 확인된 커뮤니티에 대한 정보를 다시 쿼리를 통해 확인하는 것은 비효율적이라고 볼 수 있다. 따라서 실시예에서 쿼리 노드 선택 모듈(41)은 가장 많은 수의 커뮤니티에 중복 소속되면서, 가능한 이전 선택된 쿼리 노드가 소속된 커뮤니티에 중복 소속되지 않는 노드를 쿼리 노드로 선택할 수 있다.
쿼리 노드 선택 모듈(41)은 수학식 1에 따라 쿼리 노드()를 선택할 수 있다.
여기서 ∥·∥는 L1-norm 함수, Pt는 이전 쿼리 노드 집합, sim(·,·)은 코사인 유사도 함수, λ는 가중치를 나타낸다.
커뮤니티 소속 벡터(Fu)는 u번째 노드(vu)가 각 커뮤니티(c)에 소속될 확률을 나타내므로, u번째 노드(vu)가 소속되는 커뮤니티의 수가 증가할수록 수학식 1에서 첫번째 항목인 ∥Fu1 또한 증가한다. 한편 u번째 노드(vu)가 이전 쿼리 노드 집합의 v번째 노드(vv)가 유사할수록 서로 동일한 커뮤니티에 소속될 확률이 높은 것으로 볼 수 있다. 따라서 이전 쿼리 노드 집합의 노드(vv)와 유사하지 않은 노드(vu)가 쿼리 노드()로 선택되도록 두번째 항목이 구성되었음을 알 수 있다.
도 7에서는 5개의 노드(v1 ~ v5) 중 제2 노드(v2)에 대한 커뮤니티 소속 벡터(F2)가 2개 커뮤니티(C1, C2)에 소속되고, 나머지 노드들(v1, v3 ~ v5)은 각각 하나의 커뮤니티에만 소속된다. 그리고 이전 다른 노드에 대한 쿼리가 전송되지 않았으므로, 여기서는 쿼리 노드 선택 모듈(41)이 제2 노드(v2)를 쿼리 노드로 선택하여 쿼리를 전송하고, 전송된 쿼리에 따른 응신으로서 쿼리 노드에 연결된 엣지(e)에 대한 정보를 획득한다. 이때 쿼리는 네트워크의 모든 노드에 대한 엣지 정보를 포함하고 있는 네트워크 관리 장치로 전송될 수 있다.
그래프 재구성 모듈(42)은 이전 획득된 네트워크 그래프(Gt-1)에서 다수의 커뮤니티 소속 벡터(F1 ~ F5)에 따라 위치가 수정된 다수의 노드를 잇는 가상 엣지 중 선택된 쿼리 노드에 연결된 가상 엣지를 쿼리 응신에 따라 수정하여 네트워크 그래프(Gt)를 업데이트할 수 있다.
네트워크 그래프(Gt)가 업데이트되면, 네트워크 쿼리 모듈(40)은 업데이트된 네트워크 그래프(Gt)를 커뮤니티 임베딩 모듈(30)의 커뮤니티 추정 모델(31)로 전달하여, 네트워크 그래프(Gt)가 도 8에 도시된 바와 같이, 반복적으로 업데이트될 수 있도록 한다. 그래프 재구성 모듈(42)은 쿼리 횟수(t)가 지정된 최대 쿼리 횟수(T)에 도달하면 네트워크 그래프(GT)를 커뮤니티 추정 모델(31)로 전달하지 않는다. 그리고 이때 마지막으로 획득된 커뮤니티 집합(C)의 재구성된 다수의 커뮤니티를 탐지된 커뮤니티로 획득한다.
즉 네트워크 그래프(Gt)가 반복하여 업데이트됨에 따라 더욱 정확하게 획획득되는 엣지(e)에 대한 정보를 기반으로 커뮤니티 집합(C)을 정확하게 추정할 수 있다.
결과적으로 실시예에 따른 커뮤니티 탐지 장치는 에지 정보, 즉 토폴로지 구조가 알려지지 않은 네트워크에서 적은 횟수의 쿼리만을 전송함에도 매우 효율적으로 많은 커뮤니티를 탐색할 수 있다.
다만 상기한 커뮤니티 탐지 장치에서 커뮤니티 추정 모델(31)이 그래프 신경망과 같은 인공 신경망으로 구현되므로, 커뮤니티 추정 모델(31)은 학습되어야만 한다. 이에 실시예에 따른 커뮤니티 탐지 장치는 커뮤니티 추정 모델(31)을 학습시키기 위한 학습 모듈(50)을 더 포함할 수 있다.
학습 모듈(50)은 손실 계산 모듈(52)만을 포함하고, 손실 계산 모듈(52)은 커뮤니티 추정 모델(31)이 획득한 커뮤니티 소속 행렬(F)로부터 추정되는 두 노드(vu, vv) 사이에 엣지가 존재할 확률과 현재 획득된 네트워크 그래프(Gt)에 존재하는 엣지(가상 엣지 포함) 사이의 차에 따라 커뮤니티 소속 행렬(F)의 오차를 커뮤니티 재구성 손실(L1)로서 계산하여 역전파함으로써, 커뮤니티 추정 모델(31)을 학습시킬 수 있다.
커뮤니티 소속 행렬(F)로부터 두 노드(vu, vv) 사이에 엣지가 존재할 확률은 로 모델링될 수 있으며, 이에 커뮤니티 재구성 손실(L1)은 수학식 2에 따라 계산될 수 있다.
(여기서 u, v는 노드 식별자, Et는 쿼리 횟수(t)에 따른 현재 네트워크 그래프(Gt)의 엣지 집합, P(·|·)는 조건부 확률 함수, Fu, Fv 는 커뮤니티 소속 행렬(F)에서 획득되는 노드(vu, vv)에 대한 커뮤니티 소속 벡터)
다만, 커뮤니티 추정 모델(31)에는 이전 획득된 네트워크 그래프(Gt-1)와 함께 메타데이터 집합(X)을 인가받아 커뮤니티 소속 행렬(F)을 추정한다. 따라서 커뮤니티 소속 행렬(F)의 추정 시에 메타데이터 집합(X)이 올바르게 영향을 미치는지 확인할 수 있어야 하지만, 커뮤니티 재구성 손실(L1)에는 메타데이터 집합(X)이 커뮤니티 소속 행렬(F)에 미치는 영향에 대한 손실이 반영되지 않는다.
이에 실시예에서 학습 모듈(50)은 메타데이터 집합(X)이 커뮤니티 소속 행렬(F)에 미치는 영향에 따른 메타데이터 재구성 손실(L2)을 계산하기 위한 커뮤니티 속성 추정 모델(51)을 더 포함할 수 있다.
커뮤니티 추정 모델(31)이 네트워크 그래프(Gt-1)와 메타데이터 집합(X)으로부터 커뮤니티 소속 행렬(F)을 추정하므로, 역으로 커뮤니티 소속 행렬(F)로부터 메타데이터 집합(X)에 대응하는 모의 메타데이터 집합(Q) 또한 추정될 수 있어야 한다. 이에 커뮤니티 속성 추정 모델(51)은 커뮤니티 추정 모델(31)과는 반대로 커뮤니티 소속 행렬(F)을 인가받아 메타데이터 집합(X)을 모의한 모의 메타데이터 집합(Q)을 추정한다. 여기서 커뮤니티 속성 추정 모델(51)은 커뮤니티 추정 모델(31)과 함께 학습되어, 업데이트되는 가중치를 갖는 인공 신경망 또는 로지스틱 모델(logistic model)로 구현될 수 있다.
만일 커뮤니티 추정 모델(31)에 대한 학습이 정상적으로 이루어졌다면, 메타데이터 집합(X)과 커뮤니티 속성 추정 모델(51)에서 획득된 모의 메타데이터 집합(Q)의 원소값은 서로 유사해야 한다.
커뮤니티 속성 추정 모델(51)은 메타데이터 집합(X)의 u번째 행, 즉 u번째 노드(vu)에 대한 d번째 속성을 수학식 3과 같이 모델링하여 모의 메타데이터 집합(Q)의 원소(Qud)를 획득할 수 있다.
여기서 Wdc는 메타데이터(x)의 d번째 속성과 커뮤니티(c) 사이의 연관성을 나타내는 관계 가중치이다.
손실 계산 모듈(52)은 메타데이터 집합(X)과 함께 커뮤니티 속성 추정 모델(51)로부터 모의 메타데이터 집합(Q)이 인가되면, 메타데이터 재구성 손실(L2)을 수학식 4에 따라 계산할 수 있다.
결과적으로 손실 계산 모듈(52)은 도 9에 도시된 바와 같이, 커뮤니티 재구성 손실(L1)과 메타데이터 재구성 손실(L2)의 합으로 총 손실(L(F))을 수학식 5에 따라 계산하고 역전파함으로써, 커뮤니티 추정 모델(31)을 학습시킬 수 있다.
여기서 η는 손실 가중치이다.
도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 구성을 포함할 수 있다. 또한, 일 실시예에서, 각 구성은 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
그리고 도 1에 도시된 커뮤니티 탐지 장치는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.
뿐만 아니라 커뮤니티 탐지 장치는 하드웨어적 요소가 마련된 컴퓨팅 장치 또는 서버에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 장치 또는 서버는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.
도 10은 일 실시예 따른 커뮤니티 탐지 방법을 나타낸다.
도 10을 참조하면, 실시예에 따른 커뮤니티 탐지 방법은 우선 커뮤니티를 탐색하고자 하는 네트워크(G)에 대한 데이터를 수집하여 획득한다(61). 이때, 수집되는 데이터는 다수의 노드(v)와 각 노드(v)에 대한 메타데이터(x)에 대한 데이터를 획득할 수 있다.
다수의 노드(v)와 대응하는 다수의 메타데이터(x)가 획득되면, 획득된 다수의 메타데이터(x)를 기반으로 다수의 노드(v)를 클러스터링하여 다수의 초기 커뮤니티(c)를 구성한다(62). 그리고 구성된 다수의 초기 커뮤니티를 기반으로 다수의 노드(v) 사이를 잇는 엣지의 존재 여부를 추정하여 가상으로 연결함으로써 초기 네트워크 그래프(G0)를 생성한다(63).
초기 네트워크 그래프(G0)가 생성되면, 생성된 초기 네트워크 그래프(G0)와 함께 다수의 메타데이터(x)에 대해 신경망 연산을 수행하여, 다수의 노드(v) 각각이 다수의 커뮤니티(c) 각각에 소속될 확률을 나타내는 커뮤니티 소속 행렬(F)을 추정한다(64). 이때 커뮤니티 소속 행렬(F)은 도 6에서와 같이, 특정 노드가 특정 커뮤니티에 소속될 확률을 나타내는 원소가 배열된 형태로 획득될 수 있다.
커뮤니티 소속 행렬(F)이 획득되면, 커뮤니티 소속 행렬(F)을 각 노드에 따라 구분하여 획득되는 커뮤니티 소속 벡터(Fu)를 가상의 커뮤니티 공간에 임베딩하여 네트워크 그래프(Gt-1)에서 각 노드(v)의 위치를 수정하고, 커뮤니티 소속 행렬(F)의 각 원소값에 따라 노드들을 클러스터링하여 커뮤니티(c)를 재구성한다(65).
이후, 이전까지의 쿼리 횟수(t-1)가 지정된 최대 쿼리 횟수(T) 이상인지 판별한다(66). 만일 이전까지의 쿼리 횟수(t-1)가 지정된 최대 쿼리 횟수(T) 미만이면, 재구성된 다수의 커뮤니티에 소속된 노드들을 분석하여 다수의 노드(v) 중에서 쿼리 노드()를 선택한다(67). 이때 쿼리 노드()는 수학식 1에 따라 가장 많은 수의 커뮤니티에 중복 소속되면서, 가능한 이전 선택된 쿼리 노드가 소속된 커뮤니티에 중복 소속되지 않는 노드가 선택될 수 있다.
쿼리 노드가 선택되면, 선택된 쿼리 노드에 대한 쿼리를 전송하고, 응신으로 쿼리 노드에 연결된 엣지 정보를 획득하여 가상으로 설정된 엣지를 대체함으로써 네트워크 그래프(Gt-1)를 업데이트한다(68).
추가적으로 커뮤니티 소속 행렬(F)을 추정하는 인공 신경망을 학습시키기 위해, 커뮤니티 소속 행렬(F)로부터 역으로 다수의 메타데이터(x)의 각 속성을 모델링한 모의 메타데이터 속성(Qud)을 수학식 3과 같이 획득한다(69). 모의 메타데이터 속성(Qud)이 획득되면, 커뮤니티 소속 행렬(F)과 업데이트된 네트워크 그래프(Gt) 사이의 관계에 따른 커뮤니티 재구성 손실(L1)과 메타데이터 집합(X)과 모의 메타데이터 집합(Q) 사이의 관계에 따른 메타데이터 재구성 손실(L2)의 합으로 총 손실(L(F))을 수학식 5와 같이 계산하고 역전파하여 커뮤니티 추정 모델(31)을 학습시킨다(70).
한편, 이전까지의 쿼리 횟수(t-1)가 지정된 최대 쿼리 횟수(T) 이상이면, 마지막으로 재구성되어 획득된 다수의 커뮤니티(c)에 대한 정보를 출력한다(71).
도 10에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 10에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능하다.
도 11은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 설명하기 위한 도면이다.
도시된 실시예에서, 각 구성 요소들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 않은 것 이외에도 추가적인 구성 요소를 포함할 수 있다. 도시된 컴퓨팅 환경(80)은 컴퓨팅 장치(81)를 포함하여, 도 10에 도시된 커뮤니티 탐지 방법을 수행할 수 있다. 일 실시예에서, 컴퓨팅 장치(81)는 도 3에 도시된 커뮤니티 탐지 장치에 포함된 하나 이상의 구성 요소일 수 있다.
컴퓨팅 장치(81)는 적어도 하나의 프로세서(82), 컴퓨터 판독 가능 저장매체(83) 및 통신 버스(85)를 포함한다. 프로세서(82)는 컴퓨팅 장치(81)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(82)는 컴퓨터 판독 가능 저장매체(83)에 저장된 하나 이상의 프로그램들(84)을 실행할 수 있다. 상기 하나 이상의 프로그램들(84)은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(82)에 의해 실행되는 경우 컴퓨팅 장치(81)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
통신 버스(85)는 프로세서(82), 컴퓨터 판독 가능 저장매체(83)를 포함하여 컴퓨팅 장치(81)의 다른 다양한 구성 요소들을 상호 연결한다.
컴퓨팅 장치(81)는 또한 하나 이상의 입출력 장치(88)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(86) 및 하나 이상의 통신 인터페이스(87)를 포함할 수 있다. 입출력 인터페이스(86) 및 통신 인터페이스(87)는 통신 버스(85)에 연결된다. 입출력 장치(88)는 입출력 인터페이스(86)를 통해 컴퓨팅 장치(81)의 다른 구성 요소들에 연결될 수 있다. 예시적인 입출력 장치(88)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(88)는 컴퓨팅 장치(81)를 구성하는 일 구성 요소로서 컴퓨팅 장치(81)의 내부에 포함될 수도 있고, 컴퓨팅 장치(81)와는 구별되는 별개의 장치로 컴퓨팅 장치(81)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 데이터 수집 모듈 20: 초기 네트워크 획득 모듈
21: 클러스터링 모듈 22: 초기 그래프 생성 모듈
30: 커뮤니티 임베딩 모듈 31: 커뮤니티 추정 모델
32: 커뮤니티 소속 모듈 40: 네트워크 쿼리 모듈
41: 쿼리 노드 선택 모듈 42: 그래프 재구성 모듈
50: 학습 모듈 51: 커뮤니티 속성 추정 모델
52: 손실 계산 모듈

Claims (20)

  1. 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 장치로서,
    상기 프로세서는
    네트워크에 포함된 다수의 노드 각각에 대한 속성 정보를 포함하는 다수의 메타데이터를 기반으로 상기 다수의 노드를 잇는 엣지를 가상으로 설정하여 초기 네트워크 그래프를 획득하고,
    상기 초기 네트워크 그래프 또는 이전 네트워크 그래프 중 하나와 상기 다수의 노드에 대한 메타데이터를 인가받아 인공 신경망으로 신경망 연산하여 각 노드가 다수의 커뮤니티 각각에 소속될 확률을 나타내는 커뮤니티 소속 행렬을 획득하며,
    상기 커뮤니티 소속 행렬에 따라 상기 다수의 노드 각각이 상기 다수의 커뮤니티에 소속되는지 여부를 판별하고 상기 다수의 커뮤니티를 재구성하여 커뮤니티를 탐지하고,
    재구성된 커뮤니티를 분석하여 선택되는 쿼리 노드에 대한 엣지 정보를 획득하여 인가된 상기 초기 네트워크 그래프 또는 이전 네트워크 그래프를 업데이트하고,
    최대한 많은 수의 커뮤니티에 중복 소속되면서, 가능한 이전 선택된 쿼리 노드가 소속된 커뮤니티에 중복 소속되지 않는 노드를 쿼리 노드로 선택하는 커뮤니티 탐지 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 프로세서는
    상기 커뮤니티 소속 행렬을 각 노드에 따라 구분하여 획득되는 다수의 커뮤니티 소속 벡터를 가상의 커뮤니티 공간에 임베딩하여, 상기 다수의 노드의 위치를 수정하는 커뮤니티 탐지 장치.
  4. 제1항에 있어서, 상기 프로세서는
    상기 커뮤니티 소속 행렬에서 배열된 원소값으로부터 다수의 노드 각각이 다수의 커뮤니티 각각에 소속될 확률을 확인하고, 확인된 확률이 문턱값 이상인 모든 커뮤니티에 해당 노드가 중복하여 소속되는 것으로 판별하여 커뮤니티를 재구성하는 커뮤니티 탐지 장치.
  5. 제1항에 있어서, 상기 프로세서는
    쿼리 횟수가 지정된 최대 쿼리 횟수에 도달할 때까지 반복적으로 상기 커뮤니티 소속 행렬을 획득하여 네트워크 그래프를 업데이트하는 커뮤니티 탐지 장치.
  6. 제1항에 있어서, 상기 프로세서는
    상기 다수의 메타데이터를 기반으로 상기 다수의 노드를 클러스터링하여 다수의 초기 커뮤니티를 구성하고,
    상기 다수의 초기 커뮤니티 중 공통 커뮤니티에 중복으로 소속된 노드들을 분석하고 가상의 엣지로 연결하여 상기 초기 네트워크 그래프를 획득하는 커뮤니티 탐지 장치.
  7. 제1항에 있어서, 상기 프로세서는
    상기 인공 신경망을 학습시키기 위해, 상기 커뮤니티 소속 행렬로부터 추정되는 다수의 노드 사이에 엣지가 존재할 확률과 업데이트된 네트워크 그래프에 존재하는 엣지 사이의 차에 따른 커뮤니티 재구성 손실을 계산하는 커뮤니티 탐지 장치.
  8. 제7항에 있어서, 상기 프로세서는
    상기 인공 신경망을 학습시키기 위해, 상기 커뮤니티 소속 행렬로부터 상기 다수의 메타데이터를 모의한 다수의 모의 메타데이터를 획득하고,
    획득된 상기 다수의 모의 메타데이터와 상기 다수의 메타데이터 사이의 차이에 따라 메타데이터 재구성 손실을 계산하는 커뮤니티 탐지 장치.
  9. 제7항에 있어서, 상기 프로세서는
    상기 커뮤니티 소속 행렬(F)로부터 상기 다수의 노드 중 u번째 노드에 대한 메타데이터(xu)의 d번째 속성(Xud)을 수학식

    (여기서 Wdc는 메타데이터(x)의 d번째 속성과 커뮤니티(c) 사이의 연관성을 나타내며 학습에 의해 업데이트되는 관계 가중치, Fuc 는 커뮤니티 소속 행렬(F)의 원소로서 u번째 노드가 c번째 커뮤니티에 소속될 확률값)
    에 따라 모의하여 상기 다수의 모의 메타데이터 각각의 원소(Qud)를 획득하는 커뮤니티 탐지 장치.
  10. 제9항에 있어서, 상기 프로세서는
    상기 커뮤니티 재구성 손실(L1(F))과 상기 메타데이터 재구성 손실(L2(F))의 합으로 수학식

    (여기서 u, v는 노드 식별자, Et는 쿼리 횟수(t)에 따른 현재 네트워크 그래프(Gt)의 엣지 집합, P(·|·)는 조건부 확률 함수, Fu, Fv 는 커뮤니티 소속 행렬(F)에서 획득되는 노드(vu, vv)에 대한 커뮤니티 소속 벡터, η는 손실 가중치)
    에 따라 계산되는 총 손실(L(F))을 역전파하여 상기 인공 신경망을 학습시키는 커뮤니티 탐지 장치.
  11. 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에 의해 수행되는 방법으로서,
    네트워크에 포함된 다수의 노드 각각에 대한 속성 정보를 포함하는 다수의 메타데이터를 기반으로 상기 다수의 노드를 잇는 엣지를 가상으로 설정하여 초기 네트워크 그래프를 획득하는 단계;
    상기 초기 네트워크 그래프 또는 이전 네트워크 그래프 중 하나와 상기 다수의 노드에 대한 메타데이터를 인가받아 인공 신경망으로 신경망 연산하여 각 노드가 다수의 커뮤니티 각각에 소속될 확률을 나타내는 커뮤니티 소속 행렬을 획득하는 단계;
    상기 커뮤니티 소속 행렬에 따라 상기 다수의 노드 각각이 상기 다수의 커뮤니티에 소속되는지 여부를 판별하여 상기 다수의 커뮤니티를 재구성하는 단계; 및
    재구성된 커뮤니티를 분석하여 선택되는 쿼리 노드에 대한 엣지 정보를 획득하여 인가된 상기 초기 네트워크 그래프 또는 이전 네트워크 그래프를 업데이트하는 단계를 포함하되,
    상기 네트워크 그래프를 업데이트하는 단계는
    최대한 많은 수의 커뮤니티에 중복 소속되면서, 가능한 이전 선택된 쿼리 노드가 소속된 커뮤니티에 중복 소속되지 않는 노드를 쿼리 노드로 선택하는 커뮤니티 탐지 방법.
  12. 삭제
  13. 제11항에 있어서, 상기 네트워크 그래프를 업데이트하는 단계는
    상기 커뮤니티 소속 행렬을 각 노드에 따라 구분하여 획득되는 다수의 커뮤니티 소속 벡터를 가상의 커뮤니티 공간에 임베딩하여, 상기 다수의 노드의 위치를 수정하는 커뮤니티 탐지 방법.
  14. 제11항에 있어서, 상기 다수의 커뮤니티를 재구성하는 단계는
    상기 커뮤니티 소속 행렬에서 배열된 원소값으로부터 다수의 노드 각각이 다수의 커뮤니티 각각에 소속될 확률을 확인하고, 확인된 확률이 문턱값 이상인 모든 커뮤니티에 해당 노드가 중복하여 소속되는 것으로 판별하여 커뮤니티를 재구성하는 커뮤니티 탐지 방법.
  15. 제11항에 있어서, 상기 커뮤니티 탐지 방법은
    쿼리 횟수가 지정된 최대 쿼리 횟수에 도달할 때까지 반복적으로 상기 커뮤니티 소속 행렬을 획득하여 네트워크 그래프를 업데이트하는 커뮤니티 탐지 방법.
  16. 제11항에 있어서, 상기 초기 네트워크 그래프를 획득하는 단계는
    상기 다수의 메타데이터를 기반으로 상기 다수의 노드를 클러스터링하여 다수의 초기 커뮤니티를 구성하고,
    상기 다수의 초기 커뮤니티 중 공통 커뮤니티에 중복으로 소속된 노드들을 분석하고 가상의 엣지로 연결하여 상기 초기 네트워크 그래프를 획득하는 커뮤니티 탐지 방법.
  17. 제11항에 있어서, 상기 커뮤니티 탐지 방법은
    상기 인공 신경망을 학습시키기 위한 학습 단계를 더 포함하고,
    상기 학습 단계는
    상기 커뮤니티 소속 행렬로부터 추정되는 다수의 노드 사이에 엣지가 존재할 확률과 업데이트된 네트워크 그래프에 존재하는 엣지 사이의 차에 따른 커뮤니티 재구성 손실을 계산하는 커뮤니티 탐지 방법.
  18. 제17항에 있어서, 상기 학습 단계는
    상기 인공 신경망을 학습시키기 위해, 상기 커뮤니티 소속 행렬로부터 상기 다수의 메타데이터를 모의한 다수의 모의 메타데이터를 획득하고,
    획득된 상기 다수의 모의 메타데이터와 상기 다수의 메타데이터 사이의 차이에 따라 메타데이터 재구성 손실을 계산하는 커뮤니티 탐지 방법.
  19. 제17항에 있어서, 상기 학습 단계는
    상기 커뮤니티 소속 행렬(F)로부터 상기 다수의 노드 중 u번째 노드에 대한 메타데이터(xu)의 d번째 속성(Xud)을 수학식

    (여기서 Wdc는 메타데이터(x)의 d번째 속성과 커뮤니티(c) 사이의 연관성을 나타내며 학습에 의해 업데이트되는 관계 가중치, Fuc 는 커뮤니티 소속 행렬(F)의 원소로서 u번째 노드가 c번째 커뮤니티에 소속될 확률값)
    에 따라 모의하여 상기 다수의 모의 메타데이터 각각의 원소(Qud)를 획득하는 커뮤니티 탐지 방법.
  20. 제19항에 있어서, 상기 학습 단계는
    상기 커뮤니티 재구성 손실(L1(F))과 상기 메타데이터 재구성 손실(L2(F))의 합으로 수학식

    (여기서 u, v는 노드 식별자, Et는 쿼리 횟수(t)에 따른 현재 네트워크 그래프(Gt)의 엣지 집합, P(·|·)는 조건부 확률 함수, Fu, Fv 는 커뮤니티 소속 행렬(F)에서 획득되는 노드(vu, vv)에 대한 커뮤니티 소속 벡터, η는 손실 가중치)
    에 따라 계산되는 총 손실(L(F))을 역전파하여 상기 인공 신경망을 학습시키는 커뮤니티 탐지 방법.
KR1020230016640A 2023-02-08 메타데이터를 활용한 커뮤니티 탐지 장치 및 방법 Active KR102957504B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230016640A KR102957504B1 (ko) 2023-02-08 메타데이터를 활용한 커뮤니티 탐지 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230016640A KR102957504B1 (ko) 2023-02-08 메타데이터를 활용한 커뮤니티 탐지 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20240123980A KR20240123980A (ko) 2024-08-16
KR102957504B1 true KR102957504B1 (ko) 2026-04-24

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150169758A1 (en) 2013-12-17 2015-06-18 Luigi ASSOM Multi-partite graph database
KR102085412B1 (ko) 2015-03-24 2020-03-05 킨디 인코포레이티드 인지 메모리 그래프 인덱싱, 저장 및 검색 기법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150169758A1 (en) 2013-12-17 2015-06-18 Luigi ASSOM Multi-partite graph database
KR102085412B1 (ko) 2015-03-24 2020-03-05 킨디 인코포레이티드 인지 메모리 그래프 인덱싱, 저장 및 검색 기법

Similar Documents

Publication Publication Date Title
Xie et al. Overlapping community detection in networks: The state-of-the-art and comparative study
CN112116090B (zh) 神经网络结构搜索方法、装置、计算机设备及存储介质
CN111382190B (zh) 一种基于智能的对象推荐方法、装置和存储介质
CN112312541B (zh) 一种无线定位方法及系统
Wang et al. NEIWalk: Community discovery in dynamic content-based networks
CN110234085B (zh) 基于对抗迁移网络的室内位置指纹地图生成方法及系统
TW202203212A (zh) 關鍵點檢測方法、電子設備及電腦可讀儲存介質
KR20220004009A (ko) 키 포인트 검출 방법, 장치, 전자 기기 및 저장 매체
WO2025065881A1 (zh) 一种时空轨迹生成方法、装置、计算机设备及存储介质
CN114359635A (zh) 一种模型训练方法及相关装置
CN111695046A (zh) 基于时空移动数据表征学习的用户画像推断方法及装置
CN114492601A (zh) 资源分类模型的训练方法、装置、电子设备及存储介质
CN112765362A (zh) 基于改进自编码器的知识图谱实体对齐方法及相关设备
CN112463974B (zh) 知识图谱建立的方法和装置
CN116208399A (zh) 一种基于元图的网络恶意行为检测方法及设备
CN116707859B (zh) 特征规则提取方法和装置、网络入侵检测方法和装置
KR102957504B1 (ko) 메타데이터를 활용한 커뮤니티 탐지 장치 및 방법
CN110263106A (zh) 协同舆论欺诈检测方法和装置
WO2025212423A1 (en) Data analysis through cluster kinematics
CN120374289A (zh) 基于关系网络的行为预测方法、装置及电子设备
CN113821711A (zh) 一种垂直搜索方法、装置、电子设备和存储介质
KR20240123980A (ko) 메타데이터를 활용한 커뮤니티 탐지 장치 및 방법
Ma et al. Fuzzy nodes recognition based on spectral clustering in complex networks
KR20240161496A (ko) 그래프의 링크 예측 장치 및 방법
Huang A novel important node discovery algorithm based on local community aggregation and recognition in complex networks

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601