KR20230031889A - 네트워크 토폴로지에서의 이상 탐지 - Google Patents

네트워크 토폴로지에서의 이상 탐지 Download PDF

Info

Publication number
KR20230031889A
KR20230031889A KR1020237000309A KR20237000309A KR20230031889A KR 20230031889 A KR20230031889 A KR 20230031889A KR 1020237000309 A KR1020237000309 A KR 1020237000309A KR 20237000309 A KR20237000309 A KR 20237000309A KR 20230031889 A KR20230031889 A KR 20230031889A
Authority
KR
South Korea
Prior art keywords
network
layer
change
topology
computer
Prior art date
Application number
KR1020237000309A
Other languages
English (en)
Inventor
잭 리처드 버긴스
루크 타허
빈 툰 타이
이안 매닝
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20230031889A publication Critical patent/KR20230031889A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

네트워크 토폴로지에서의 이상 탐지(ANOMALY DETECTION IN NETWORK TOPOLOGY)
네트워크의 토폴로지에서 이상 탐지용 모델을 생성하기 위해 순환 신경망(recurrent neural network)을 훈련시키는 방법이 개시된다. 상기 방법은, 상기 네트워크의 각 자원에 대해 임베딩 앨고리즘을 적용하는 것에 기초하여 상기 네트워크 내의 각 자원에 대해 임베딩 벡터(embedding vector)를 생성하는 단계를 포함한다. 그 다음, 특징 벡터(feature vector)가 변경의 하나 또는 그 이상의 속성들(properties)에 기초하여 상기 네트워크에서의 자원에 대한 각 변경을 위해 생성된다. 따라서, 순환 신경망이 상기 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 상기 임베딩 벡터들 및 상기 특징 벡터들로 훈련될 수 있다.

Description

네트워크 토폴로지에서의 이상 탐지
[0001] 본 발명은 일반적으로 네트워크의 토폴로지에서의 이상 탐지(anomaly detection in the topology of a network)에 관한 것으로, 보다 상세하게는 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 순환 신경망(recurrent neural network)을 훈련시키는 방법에 관한 것이다.
[0002] 데이터의 저장, 처리 및 통신을 위해 상호 연결된 네트워크 자원들을 포함하는 현대의 컴퓨팅 네트워크 환경들은 종종 시간이 지남에 따라 동적으로(dynamically) 변화한다. 이는 다수의 분리된 가상화 된 자원들이 단일 물리적 자원 내에서 독립적으로 생성되고 실행될 수 있는, 가상화 된 네트워크 환경들에 특히 해당될 수 있다. 그러한 가상화 된 자원들은, 또한 "사용자-공간의 인스턴스들(user-space instances)"로도 알려져 있으며, 이들의 예들은 가상 머신들 및 컨테이너들을 포함할 수 있다. 가상화 된 자원들은 특정 목적을 위해 네트워크 상에 생성된 다음, 상기 목적이 달성될 때 제거될 수 있다. 예를 들어, 부하 균형(load balancing)의 목적을 위해서, 하나 또는 그 이상의 가상화 된 자원의 복제본들(replicas)이 수요가 많은 시간 동안 동적으로 생성된 뒤에, 수요가 정상으로 돌아올 때 제거될 수 있다. 마찬가지로, 추가의 가상화 된 자원의 복제본들이 수평적 스케일링의 목적을 위해서 생성될 수 있다. 따라서, 가상화 된 네트워크 환경들에서, 예를 들어 컨테이너화 스타일 오케스트레이션 (containerization style orchestration)을 구현하는 단계는, 예를 들어, 도커 컨테이너들(docker containers) 또는 쿠버네티스(Kubernete)를 사용하는 단계는 동적일 수 있는데, 그들이 시간이 지남에 따라 네트워크 토폴로지에서의 변경들(changes)을 겪고 그러한 변경들이 자주 발생할 수 있다는 점에서 동적일 수 있다(dynamic).
[0003] 네트워크에서의 이상 탐지(anomaly detection)를 위해서, 네트워크 자원들과 그들의 관련된 데이터, 예를 들어 네트워크 자원들과 관련이 있는 데이터 레코드들을 상관시키는 것(correlate)이 바람직하다. 그러나, 가상화 된 네트워크 환경들에서의 이상 탐지는 동적으로 변화하는 네트워크 자원들 및 네트워크 토폴로지로 인해 어려움이 많다(challenging). 특히, 특정 역할을 수행하는 단일의 실제 자원은, 각각이 서로 다른 식별자 또는 라벨을 갖는 다수의 가상화 된 자원들에 대응할 수 있다. 따라서, 특정 서비스를 수행하는 실제 자원과 관련하여 탐지되는 이상들(anomalies)은 다수의 서로 다른 및 동적으로 변화하는 자원들(예: 복제본들)로부터 유래할 수 있으므로, 다수의 서로 다른 및 동적으로 변화하는 자원 식별자들 또는 라벨들을 포함할 수 있다.
[0004] 서비스 관리 도구들(Service Management tools)은 일반적으로 네트워크들, IT 환경들, 및 애플리케이션들의 상태(health)를 모니터링하기 위해 배치된다. 이들 도구들은 일반적으로 가용성(availability)을 폴(poll)하거나 핵심 성과 지표들(KPIs)을 모니터하여 상태를 평가한다. 또는, 장비 자체가 주의를 요구한다는 것을 나타내기 위해 이벤트를 방출할 수도 있고, 또는 오퍼레이터가 인식하고 액션을 취할 수 있도록 할 수 있도록 키 워드들(key words)의 존재에 대해 다음에 모니터 될 수 있는 로그에 정보를 푸시 할 수 있다.
[0005] 본 발명의 실시 예들은 네트워크의 토폴로지에서 이상 탐지용 모델을 생성하기 위해 순환 신경망을 훈련시키기 위한 컴퓨터 구현 방법, 장치 및 컴퓨터 프로그램 제품을 개시한다. 상기 컴퓨터 구현 방법은 하나 또는 그 이상의 컴퓨터 프로세서들에 의해 구현될 수 있으며, 상기 네트워크에 대해 KubeNode2Vec 방법을 적용하는 것에 기초하여 상기 네트워크 내의 각 자원에 대해 임베딩 벡터(embedding vector)를 생성하는 단계; 변경의 하나 또는 그 이상의 속성들(properties)에 기초하여 자원에 대한 각 변경을 위해 하나 또는 그 이상의 특징 벡터들(feature vectors)을 생성하는 단계; 및 상기 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 상기 임베딩 벡터들 및 상기 특징 벡터들로 순환 신경망을 훈련시키는 단계를 포함할 수 있다.
[0006] 하나의 실시 예에서, 상기 장치는: 상기 네트워크에 대해 KubeNode2Vec 방법을 적용하는 것에 기초하여 상기 네트워크 내의 각 자원에 대해 임베딩 벡터(embedding vector)를 생성하는 단계; 변경의 하나 또는 그 이상의 속성들(properties)에 기초하여 자원에 대한 각 변경을 위해 특징 벡터(feature vector)를 생성하는 단계를 수행하도록 구성된 프리-프로세서(a pre-processor), 및 상기 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 상기 임베딩 벡터들 및 상기 특징 벡터들로 순환 신경망을 훈련시키는 단계를 수행하도록 구성된 훈련 프로세서(a training processor)를 포함할 수 있다.
[0007] 다른 실시 예에서, 상기 컴퓨터 프로그램 제품은 하나 또는 그 이상의 비-일시적(non-transitory) 컴퓨터 판독 가능한 스토리지 매체 및 상기 하나 또는 그 이상의 비-일시적(non-transitory) 컴퓨터 판독 가능한 스토리지 매체에 저장된 프로그램 명령들을 포함하고, 상기 프로그램 명령은: 상기 네트워크에 대해 KubeNode2Vec 방법을 적용하는 것에 기초하여 상기 네트워크 내의 각 자원에 대해 임베딩 벡터(embedding vector)를 생성하는 단계; 변경의 하나 또는 그 이상의 속성들(properties)에 기초하여 자원에 대한 각 변경을 위해 특징 벡터(feature vector)를 생성하는 단계; 및 상기 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 상기 임베딩 벡터들 및 상기 특징 벡터들로 순환 신경망을 훈련시키는 단계를 수행하는 프로그램 명령들을 포함할 수 있다.
[0008] 본 발명에서 바람직한 실시 예들은, 단지 예로서, 다음의 도면들을 참조하여 이제 기술될 것이다:
[0009] 도 1은 본 발명의 예시적 실시 예들의 특징들이 구현될 수 있는 모범적인 분산 시스템(distributed system)의 객략도를 도시하고 있다;
[0010] 도 2는 본 발명의 예시적 실시 예들의 특징들이 구현될 수 있는 일 예의 시스템의 블록도이다;
[0011] 도 3은 본 발명의 일 실시 예에 따른 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 순환 신경망(recurrent neural network)을 훈련시키는 제시된 컴퓨터 구현 방법을 도시한다;
[0012] 도 4는 본 발명의 일 실시 예에 따른 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 순환 신경망을 훈련시키도록 구성되는 장치를 도시한다;
[0013] 도 5는 본 발명의 일 실시 예에 따른 이상 탐지용 모델을 출력하기 위해 사용되는 신경망에 대한 플로 차트를 도시한다; 그리고
[0014] 도 6은 본 발명의 일 실시 예에 따른 이상 탐지용 모델을 생성하기 위해 사용되는 신경망에 대한 플로 차트를 도시한다.
[0015] 본 발명의 실시 예들은 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 순환 신경망(recurrent neural network)을 훈련시키는 방법을 제공할 수 있다. 상기 훈련 방법은 KubeNode2Vec 방법을 네트워크에 적용하는 것에 기초하여 네트워크에서의 각 자원에 대해 임베딩 벡터(an embedding vector)를 생성하는 단계, 상기 변경의 하나 또는 그 이상의 속성들(properties)에 기초하여 네트워크에서의 각 자원에 대한 각 변경에 대해 특징 벡터(feature vector)를 생성하는 단계, 및 상기 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 상기 임베딩 벡터들 및 상기 특징 벡터들로 순환 신경망을 훈련시키는 단계를 포함할 수 있다.
[0016] 본 발명의 실시 예들은 순환 신경망(RNN)이 네트워크의 토폴로지 변경들을 학습하도록 할 수 있는데, 자원들의 임베딩 및 자원들에 대한 변경들로부터 학습함으로써 할 수 있다. 따라서, 상기 RNN은 시간적(temporal) 토폴로지 변경들을 학습할 수 있는데, 예를 들어, 변경 속성들에 관한 정보를 포함하는 특징 벡터들(feature vectors)로 증강되는, 자원들의 임베딩을 위한 시퀀스 학습을 사용함으로써, 시간적(temporal) 토폴로지 변경들을 학습할 수 있다.
[0017] KubeNode2Vec 임베딩 방법은 토폴로지에 대한 과거 변경들(historical changes)을 활용하여 추상적인 시간적 관계들을 학습할 수 있으며, 따라서 이상을 탐지하는 RNN의 정확도를 증가시킬 수 있다. 또한, 상기 방법은 이전에 볼 수 없었던 자원들 상에 사용될 수 있는데, 시간이 지남에 따라 토폴로지의 동적 특성(dynamic nature)을 제공한다. 이 것은 쿠버네티스(Kubernetes)에서 특히 유용한데, 클러스터의 필요들에 따라 포드들 및/또는 새로운 노드들의 복제본들(replicas)이 생성될 수 있으므로 오토스케일링(autoscaling)(예: 클러스터 오토스케일링 또는 수평 포드 오토스케일링)을 사용할 때 쿠버네티스에서 특히 유용하다. 따라서, 동적 환경의 임베딩은 KubeNode2Vec을 사용하여 더 잘 기술된다.
[0018] 상기 실시 예는 보조 데이터(auxiliary data)로 증강되는 시퀀스 학습 방법일 수 있다. 이 방법의 장점은, 학습된 과거(the learned history)로부터 이전에 발생한 다른 변경들에 기초하여 변경이 합리적인지 여부뿐만 아니라 변경의 다른 중요한 특성을 고려하여, 동적 환경들의 토폴로지 상에서 비정상적인 변경들을 탐지할 수 있다는 것이다.
[0019] 일부 실시 예들에서, 특징 벡터를 생성하는 단게는 대응 변경 속성들의 원-핫(one-hot) 인코딩 또는 원-콜드(one-cold) 인코딩에 기초한다.
[0020] 원-핫 인코딩(또는 원-콜드 인코딩)은 특정 특징(변경 속성)의 모든 데이터를 분류되게 할 수 있는데, 범주들 중 임의의 하나에 더 높은 값을 부여함이 없이 분류되게 할 수 있다. 만일, 대신에, 라벨 인코딩이 사용된다면, 이것은 라벨 n(n 라벨들 중)이 있는 마지막 범주에 더 높은 숫자를 부여할 수 있고 따라서 머신 러닝 알고리즘에 의해 분석될 때 불균형한 중요성(a disproportionate importance)을 부여할 수 있다(예: n> 1, n> n-1 등).
[0021] 본 발명은 또한 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 순환 신경망을 훈련시키도록 구성되는 장치(apparatus)를 제공할 수 있다. 상기 장치는 네트워크의 자원들에 임베딩 알고리즘을 적용하는 것에 기초하여 네트워크 내의 자원들에 대해 임베딩 벡터를 생성하도록 구성되는 프리-프로세서(pre-processor)를 포함할 수 있고 변경의 하나 또는 그 이상의 속성들들에 기초하여 네트워크 내의 자원에 대한 변경들을 위해 특징 벡터를 생성할 수 있다. 상기 장치는 또한 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 임베딩 벡터들 및 특징 벡터들로 순환 신경망을 훈련시키도록 구성되는 훈련 프로세서를 포함할 수 있다.
[0022] 본 발명의 이들 및 다른 특징들은 이후(hereinafter) 기술되는 실시 예(들)를 참조하여 명백하게 설명될 것이다.
[0023] "하나의 실시 예", "일 실시 예", "실시 예의 일 예", 등에 대한 본 명세서의 참조들은, 기술되는 실시 예가 특정 특징, 구조, 또는 특성을 포함할 수 있다는 것을 나타내지만, 모든 실시 예가 반드시 특정 특징, 구조, 또는 특성을 포함할 필요는 없다. 게다가, 그러한 문구들이 반드시 동일 실시 예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조, 또는 특성이 일 실시 예와 관련하여 기술되는 경우, 명시적으로 기술되든 아니든 간에, 다른 실시 예들과 관련하여 이러한 특성, 구조, 또는 특징에 영향을 미치는 것은 이 기술 분야에서 통상의 지식을 가진 자 내에 있음을 이해해야 한다.
[0024] 도면들은 단지 개략적이며 스케일에 맞게 그려지지 않음을 이해해야 한다. 동일 참조번호들이 동일하거나 유사한 부품들을 나타내기 위해 도면들 전체에 사용된다는 것을 또한 이해해야 한다.
[0025] KubeNode2Vec 임베딩 방법은 토폴로지에 대한 과거 변경들(historical changes)을 이용하여 추상적인 시간적 관계들(abstract temporal relationships)을 학습할 수 있으며, 따라서 이상들을 탐지하는 RNN의 정확도를 증가시킬 수 있다. 또한, 상기 방법은, 포드 또는 노드의 복제본들(replicas of a pod or a node)과 같은, 이전에 볼 수 없었던 자원들 상에 사용될 수 있다. 이 것은 쿠버네티스(Kubernetes)에서 특히 유용한데, 포드들 및/또는 새로운 노드들의 복제본들(replicas)이 동적으로 생성될 수 있으므로 오토스케일링(autoscaling)(예: 클러스터 오토스케일링 또는 수평 포드 오토스케일링)을 사용할 때 쿠버네티스에서 특히 유용하다.
[0026] 상기 방법은 보조 데이터로 추가적으로 증강될 수 있다. 이 방법의 장점은, 학습된 과거(the learned history)로부터 이전에 발생한 다른 변경들에 기초하여 변경이 합리적인지 여부뿐만 아니라 변경의 다른 중요한 특성을 고려하여, 동적 환경들의 토폴로지 상에서 비정상적인 변경들(abnormal changes)을 탐지할 수 있다는 것이다.
[0027] 일부 실시 예들에서, 순환 신경망은 임베딩 벡터들을 수신하는 입력 층; 상기 입력 층 다음의 러닝 층(a learning layer); 특징 벡터들을 상기 러닝 층의 시퀀스 출력과 연결하는(concatenating) 연결 층; 하나 또는 그 이상의 밀집 층들(dense layers); 및 이상 탐지용 모델을 출력하기 위한 출력 층을 포함한다.
[0028] 예를 들어, RNN의 입력 층은 임베딩 벡터들에 대한 변경들의 시퀀스에서의 5개의 포드들에 대응하는 5개의 임베딩 벡터들일 수 있다. 따라서, RNN은 5개의 임베딩 벡터들의 시퀀스들 및 대응 특징 벡터들을 동시에 학습할 수 있다. 시퀀스 러닝 층은 임베딩 벡터들의 이전 시퀀스들(변경 시퀀스들)의 일부 메모리를 유지하는 데 사용될 수 있다. 따라서, 시퀀스 러닝 층의 출력은, 처리 중인, 변경뿐만 아니라, 시퀀스에서의 이전 변경들(5개의) 관한 정보를 포함할 수 있다.
[0029] 상기 시퀀스 러닝 층의 출력은 변경 속성들에 대응하는 특징 벡터들과 연결될 수 있다. 따라서, 상기 하나 또는 그 이상의 밀집 층들은 변경들의 시퀀스와 처리 중인 변경의 변경 속성들로부터 학습할 수 있다. 이 것은 RNN이 토폴로지 변경들 및 변경 속성들에 기초하여 네트워크(동적 환경)의 토폴로지에서의 비정상적인 변경들을 탐지하기 위해 학습할 수 있다는 것을 의미한다.
[0030] 그러므로, RNN은 벡터들의 임베딩으로부터 학습할 수 있으며(과거 임베딩에 기초하여) 그 후에 변경 시퀀스들에 대응하는 특징들(예: 변경의 시간, 변경의 날짜, 등)을 학습할 수 있다. 따라서, RNN은 가능한 미래 변경들(및 각각의 확률들)에 대응하는 확률들의 모델을 출력하도록 훈련될 수 있다. 그런 다음, 이상들(Anomalies)이 탐지될 수 있는데, 예를 들어, 변경과 그 변경 발생의 대응 확률을 관찰함으로써 탐지될 수 있다. 임계 확률(threshold probability)이 이상들을 탐지하도록 세트 될 수 있다(예: 이상은 확률 < 1%에 기초함).
[0031] 일부 실시 예들에서, 상기 변경 속성들(the change properties)은 변경이 일어난 자원에 대응하는 주체의 유형; 변경 유형; 및 변경 시간 중 하나 또는 그 이상일 수 있다.
[0032] 선택된 서로 다른 변경 속성들에 기초하여, RNN은 이들 변경들 사이의 서로 다른 추상적인 관계들을 학습할 수 있다. 서로 다른 변경 속성들이 사용자 선호도 또는 탐지되어야 하는 이상들에 따라 선택될 수 있다. 또 다른 예에서, CPU 백분율 사용량(CPU percentage usage)이 CPU 사용량에서 이상들을 탐지하기 위한 변경 속성일 수 있다(예: 이상은 CPU 사용량> 80%에 기초함). 또 다른 예에서, RNN은 특정 변경 유형이 매주 수요일에 일어난다는 것을 학습할 수 있다. 따라서, 예상된 변경이 수요일에 보이면 이상으로 탐지될 수 있다.
[0033] 일부 실시 예들에서, 특징 벡터를 생성하는 단계는 대응하는 변경 속성들의 원-핫 인코딩 또는 원-콜드 인코딩에 기초할 수 있다. 원-핫 인코딩(또는 원-콜드 인코딩)은 특정 특징(변경 속성)의 모든 데이터가 범주들 중 임의의 어느 하나에 더 높은 값을 부여함이 없이 분류되게 할 수 있다.
[0034] RNN은 또한 특정 기간(time periods) 동안 더 많은 변경들이 있을 수 있음을 학습할 수 있다. 따라서, 명시된 비지 타임 기간(the specified busy time periods) 동안 많은 변경들이 발생하지 않는다면, 이는 네트워크의 토폴로지에서의 이상을 나타낸다고 볼 수 있다. 예를 들어, 많은 노드들이 평일(weekdays)에 클러스터에 참여하지만, 주말(weekends)에는 참여하지 않을 수 있다. 만일 비정상적인 수의 노드들이 토요일 동안 참여한다면, 이는 이상(an anomaly)으로 플래그될 수 있다.
[0035] 일부 실시 예들에서, 상기 시퀀스 러닝 층은 장단기 메모리(LSTM), LSTM 층 또는 게이트 순환 유닛(gated recurrent unit: GRU) 층일 수 있다. LSTM들은 피드백 연결들을 사용하여 데이터의 시퀀스들을 처리하고 이벤트들이 발생할 확률들을 예측하고 결정하는 데 아주 적합하다. 또한, LSTM들은 긴 시퀀스들이 학습될 필요가 있을 때 훌륭한 "메모리"를 제공한다.
[0036] 일부 실시 예들에서, 시퀀스 러닝 층은 게이트 순환 유닛(gated recurrent unit), GRU, 층일 수 있다. GRU들은 일반적으로 훈련시키는 데 LSTM들보다 속도가 빠르고, 일부 상황들에서, LSTM들을 훨씬 능가할 수 있다. 또한, GRU들은 LSTM들보다 더 단순하고 훨씬 단순하게 수정될 수 있다.
[0037] 일부 실시 예들에서, 순환 신경망을 훈련시키는 단계는 시퀀스 러닝에 기초할 수 있다. 시퀀스-투-시퀀스(Seq2Seq)와 같은, 시퀀스 러닝은 하나의 도메인에서 다른 도메인으로 입력을 전환시키기 위해 머신 러닝 알고리즘을 훈련시키는 데 사용될 수 있다. 따라서, 머신 러닝 알고리즘은 네트워크 토폴로지의 변경들을 수신하고 그 변경들을 다음 변경들의 예측들로 전환시키도록 훈련될 수 있다.
[0038] 본 발명은 또한 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 순환 신경망을 훈련시키도록 구성되는 장치를 제공할 수 있다. 상기 장치는 네트워크의 자원들에 임베딩 알고리즘을 적용하는 것에 기초하여 네트워크에서의 자원들에 대한 임베딩 벡터를 생성하도록 구성되는 프리-프로세서를 포함할 수 있고 하나 또는 그 이상의 변경들의 속성들에 기초하여 네트워크에서의 자원들에 대한 변경들을 위해서 특징 벡터를 생성할 수 있다. 상기 장치는 또한 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 임베딩 벡터들 및 특징 벡터들로 순환 신경망을 훈련시키도록 구성되는 훈련 프로세서를 포함할 수 있다.
[0039] 도 1은 예시적 분산 시스템들의 개념도로 도시된 것이며, 여기서 예시적 실시 예들이 구현될 수 있다. 분산 시스템(100)은 컴퓨터들의 네트워크를 포함할 수 있고, 여기서 예시적 실시 예들의 특징들이 구현될 수 있다. 분산 시스템(100)은 적어도 하나의 네트워크(102)를 포함하며, 이는 분산 데이터 처리 시스템(100) 내에서 함께 연결된 컴퓨터들, 다양한 디바이스들 및 컴퓨터들 사이의 통신 링크들을 제공하는 데 사용되는 매체이다. 네트워크(102)는, 예를 들어, 유선, 무선 통신 링크들, 또는 광섬유 케이블들과 같은, 연결들을 포함할 수 있다.
[0040] 도시된 예에서, 제1 서버(104)와 제2 서버(106)는 스토리지 시스템(108)을 따라 네트워크(102)에 연결된다. 이에 더하여, 클라이언트들(110, 112, 및 114)도 또한 네트워크(102)에 연결된다. 클라이언트들(110, 112, 및 114)은 엣지 디바이스들, 예를 들어, 개인용 컴퓨터들, 네트워크 컴퓨터들, IoT디바이스들, 또는 이와 유사한 것일 수 있다. 도시된 예에서, 제1 서버(104)는 클라이언트들(110, 112, 및 114)에, 부트 파일들, 운영 체제 이미지들, 및 애플리케이션들과 같은, 데이터를 제공한다. 클라이언트들(110, 112, 및 114)은 도시된 예에서 제1 서버(104)의 클라이언트들이다. 분산 처리 시스템(100)은 추가 서버들, 클라이언트들, 및 도시되지 않은 다른 디바이스들을 포함할 수 있다.
[0041] 도시된 예에서, 분산 시스템(100)은 서로 통신하기 위해 TCP/IP(the Transmission Control Protocol/Internet Protocol)의 프로토콜들을 사용하는 네트워크들 및 게이트웨이들의 월드와이드 집합을 나타내는 네트워크(102)를 갖는 인터넷이다. 인터넷의 중심에는 데이터와 메시지들을 라우팅하는 수천 개의 상업, 정부, 교육 및 기타 컴퓨터 시스템들으로 구성되는, 주요 노드들 또는 호스트 컴퓨터들 간의 고속 데이터 통신 회선의 백본이 있다. 물론, 분산 시스템(100)은 또한, 예를 들어 인트라넷, LAN(Local Area Network), WAN(Wide Area Network), 등과 같은, 다수의 다른 유형의 네트워크들을 포함하도록 구현될 수 있다. 위에서 언급한 바와 같이, 도 1은 본 발명의 다른 실시 예들에 대한 아키텍처적 제한이 아니라 예시로서 의도된 것이며, 따라서 도 1에 도시된 특정 엘리멘트들이 예시적인 본 발명의 실시 예들이 구현될 수 있는 환경들과 관련한 제한으로 간주되어서는 안 된다.
[0042] 네트워크(102)는, 예를 들어, 스토리지 시스템(108) 내의 쓰기 데이터의 저장을 제어하기 위해 본 발명의 실시예에 따른 하나 또는 그 이상의 방법들을 수행하도록 구성될 수 있다.
[0043] 도 2는 예시적 실시 예들의 특징들이 구현될 수 있는 예시적 시스템(200)의 블록 다이어그램이다. 시스템(200)은 도 1의 클라이언트(110)와 같은, 컴퓨터의 예이고, 여기에는 본 발명의 예시적 실시 예들을 위해 프로세스들을 구현하는 컴퓨터 사용 가능 프로그램 코드 또는 명령들이 위치될 수 있다. 예를 들어, 시스템(200)은 실시예에 따라 프리-프로세서 및 훈련 프로세서를 구현하도록 구성될 수 있다.
[0044] 도시된 예에서, 시스템(200)은 노스 브리지(North Bridge) 및 메모리 컨트롤러 허브(NB/MCH)(202)와 사우스 브리지(South Bridge) 및 I/O(입출력) 컨트롤러 허브(SB/ICH)(204)를 포함하는 허브 아키텍처를 채용한다. 따라서, 다른 제안된 실시 예는 시스템(200)의 메모리 컨트롤러 허브(NB/MCH)(202)에 구현될 수 있다. 처리 시스템(206), 메인 메모리(208), 그래픽 프로세서(210)은 노스 브리지 및 메모리 컨트롤러 허브(NB/MCH)(202)에 연결된다. 그래픽 프로세서(210)은 가속 그래픽 포트(AGP)를 통해 NB/MCH(202)에 연결될 수 있다.
[0045] 도시된 예에서, 근거리 네트워크(LAN) 어댑터(212)는 SB/ICH(204)에 연결된다. 오디오 어댑터(216), 키보드 및 마우스 어댑터(220), 모뎀(222), 판독 전용 메모리(ROM)(224), 하드 디스크드라이브(HHD)(226), CD-ROM(230), 범용 직렬 버스(USB) 및 기타 통신 포트들(232), 및 PCI/PCIe 디바이스들(234)은 제1 버스(238) 및 제2 버스(240)를 통해 SB/ICH(204)에 연결된다. PCI/PCIe 디바이스들(234)은, 예를 들어, 이더넷 어댑터들, 애드-인 카드들(add-in cards), 및 노트북 컴퓨터들을 위한 PC 카드들을 포함할 수 있다. PCI는 카드 버스 컨트롤러를 사용하지만, PCIe는 사용하지 않는다. ROM(224)는, 예를 들어, 플래시 기본 입출력 시스템(BIOS)일 수 있다.
[0046] HDD(226) 및 CD-ROM(230)은, 제2 버스(240)를 통해 SB/ICH(204)에 연결된다. HDD(226) 및 CD-ROM(230)은, 예를 들어, 통합 드라이브 전자 디바이스들(IDE) 또는 직렬 고급 기술 부착 디바이스들(SATA) 인터페이스를 사용할 수 있다. 수퍼(Super) I/O(SIO) 디바이스(236)은 SB/ICH(204)에 연결될 수 있다.
[0047] 운영 체제는 처리 시스템(206)에서 실행된다. 운영 체제는 도 2의 시스템(200) 내에서 다양한 컴포넌트들을 조정하고 컨트롤한다. 클라이언트로서, 운영 체제는 서버 시스템들 상업적으로 이용 가능한 운영 체제일 수 있다. 자바 프로그래밍 시스템(JavaTM programming system)과 같은, 객체 지향 프로그래밍 시스템이 상기 운영 체제와 함께 운영될 수 있으며 시스템(200)에서 실행되는 자바 프로그램들 또는 애플리케이션들로부터 상기 운영 체제에 호출들을 제공할 수 있다.
[0048] 서버로서, 시스템(200)은, 예를 들어, AIX®(Advanced Interactive Executive) 운영 체제 또는 LINUX® 운영 체제를 실행하는 IBM® eServer™ System p® 컴퓨터 시스템일 수 있다. 시스템(200)은 처리 시스템(206)에 복수의 프로세서들을 포함하는 대칭형 멀티프로세서(SMP) 시스템일 수 있다. 대안으로, 단일 프로세서 시스템이 채용될 수 있다.
[0049] 운영 체제, 프로그래밍 시스템, 및 애플리케이션들 또는 프로그램들을 위한 명령들은 HDD(226)와 같은 스토리지 디바이스들에 위치되며, 처리 시스템(206)에 의한 실행을 위해 주 메모리(208)에 로드 될 수 있다. 유사하게, 일 실시 예에 다른 하나 또는 그 이상의 프로그램들은 스토리지 디바이스들 및/또는 주 메모리(208)에 의해 저장되도록 구성될 수 있다.
[0050] 본 발명의 예시적인 실시 예들을 위한 프로세스들은 컴퓨터 사용 가능 프로그램 코드를 사용하여 처리 시스템(206)에 의해 수행될 수 있으며, 상기 프로그램 코드는, 예를 들어, 메인 메모리(208), ROM(224), 또는 하나 혹은 그 이상의 주변 디바이스들에서 HDD(226) 및 CD-ROM(230)과 같은, 메모리에 위치될 수 있다.
[0051] 도 2에 도시된 바와 같은 제1 버스(238) 또는 제2 버스(240)와 같은, 버스 시스템은 하나 또는 그 이상의 버스들을 포함할 수 있다. 물론, 상기 버스 시스템은 패브릭 또는 아키텍처에 부착된 서로 다른 컴포넌트들 또는 디바이스들 간의 데이터 전송을 제공하는 모든 유형의 통신 패브릭 또는 아키텍처를 사용하여 구현될 수 있다. 도 2의 모뎀(222) 또는 네트워크 어댑터(212)와 같은, 통신 유닛은 데이터를 송수신하는데 사용되는 하나 또는 그 이상의 디바이스들을 포함할 수 있다. 메모리는, 예를 들어, 메인 메모리(208), ROM(224), 또는 도 2의 NB/MCH(202)에서 볼 수 있는 것과 같은, 캐시일 수 있다.
[0052] 당업자는 도 1 및 도 2의 하드웨어가 구현에 따라 달라질 수 있음을 이해할 것이다. 플래시 메모리, 동등한 비휘발성 메모리 또는 광 디스크 드라이브 등과 같은, 다른 내부 하드웨어 또는 주변 디바이스들이 도 1 및 2에 도시된 하드웨어에 추가로 또는 대신에 사용될 수 있다. 또한, 예시적인 실시 예들의 프로세스들은, 본 발명의 범위를 벗어남이 없이, 앞서 언급된 시스템 이외의, 멀티 프로세서 데이터 처리 시스템에 적용될 수 있다.
[0053] 또한, 시스템(200)은, 클라이언트 컴퓨팅 디바이스들, 서버 컴퓨팅 디바이스들, 태블릿 컴퓨터, 랩톱 컴퓨터, 전화 또는 기타 통신 디바이스, 개인 휴대 정보 단말기(PDA) 등을 포함하는 임의의 수의 다른 데이터 처리 시스템들의 형태를 취할 수 있다. 일부 예시적인 예들에서, 시스템(200)은, 예를 들어, 운영 체제 파일들 및/또는 사용자 생성 데이터를 저장하기 위한 비휘발성 메모리를 제공하도록 플래시 메모리로 구성된 휴대용 컴퓨팅 디바이스일 수 있다. 따라서, 시스템(200)은 본질적으로 아키텍처적 제한이 없는 모든 공지되거나 추후 개발되는 데이터 처리 시스템일 수 있다.
[0054] 도 3은 네트워크(302)의 토폴로지에서의 이상 탐지용 모델(309)을 생성하기 위해 순환 신경망(308)을 훈련시키는 컴퓨터 구현 방법의 제안을 도시한다. 순환 신경망(308)은 입력 층(310), 시퀀스 러닝 층(311)(예: LSTM 셀들, GRU 셀들 또는 모든 기타 시퀀스 러닝 방법 등), 특징 벡터들을 시퀀스 러닝 층(311)의 출력과 연결하는 연결 층(312), 하나 또는 그 이상의 밀집 층들(313)과 이상 탐지용 모델(309)을 출력하기 위한 출력 층(314)을 포함할 수 있다. 순환 신경망(308)을 훈련시키는 단계는 시퀀스 러닝을 통해서 수행될 수 있다.
[0055] 상기 방법은 네트워크(302)에서의 자원들에 대한 임베딩 벡터(304)를 생성하는 것에 기초한다. 임베딩 벡터들(304)은 네트워크(302)의 자원들에 KubeNode2Vec 방법(303)을 적용함으로써 생성될 수 있다. 네트워크(302)의 자원들은 컴퓨팅 파워/스토리지 및/또는 네트워크들의 사용과 관련되는 기타 모든 컴퓨팅 서비스를 제공하는 독립적인 서비스들일 수 있다. 예를 들어, 자원은 네트워크(302)의 노드일 수 있다.
[0056] 특징 벡터들(306)은 또한 네트워크(302)로부터 생성된다. 특징 벡터들(306)은 네트워크(302)의 토폴로지에서 발생하는 변경들의 속성들에 기초한다. 상기 변경 속성들은, 예를 들어, 주체 유형(an entity type)(변경이 일어난 자원에 대응하는), 변경 유형 또는 변경 시간(요일, 변경의 시간 등)일 수 있다. 특징 벡터들(306)을 생성하는 단계는 원-핫 인코딩(305)(또는 원-콜드 인코딩)에 의해서 수행될 수 있다.
[0057] 따라서, 순환 신경망(308)은 네트워크(302)의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 임베딩 벡터들(304) 및 특징 벡터들(306)로 훈련될 수 있다.
[0058] 도 4는 네트워크(302)의 토폴로지에서의 이상 탐지용 모델(309)을 생성하기 위해 순환 신경망(308)을 훈련시키도록 구성되는 장치를 도시한다. 상기 장치는 프리-프로세서(402) 및 훈련 프로세서(404)를 포함한다. 도 4는 네트워크(302)에 추가되는 새로운 자원(406)에 의한 네트워크(302)의 토폴로지에 대한 변경을 도시한다. 이는, 예를 들어, 현재 자원의 복제(replication)때문일 수 있다.
[0059] 네트워크(302)의 토폴로지에 대한 변경들(예: 복제 포드를 생성하는 것)은 프리-프로세서(402)에 대한 입력들일 수 있다. 프리-프로세서(402)는 네트워크(302)에서의 자원들에 대한 KubeNode2Vec 방법을 적용하는 것에 기초하여 네트워크(302)에서의 자원들(예: 포드/노드/컨테이너)을 위해 임베딩 벡터(304)를 생성할 수 있다.
[0060] 프리-프로세서(402)는 또한 하나 또는 그 이상의 변경들의 속성들에 기초하여 네트워크(302)에서의 자원에 대한 변경들을 위해 특징 벡터(306)을 생성할 수 있다. 상기 변경 속성들은, 예를 들어, 주체 유형(변경이 일어난 자원에 대응하는), 변경 유형 또는 변경 시간(요일, 변경의 시간 등)일 수 있다. 특징 벡터들(306)을 생성하는 단계는 원-핫 인코딩(305) 또는 원-콜드 인코딩에 의해서 수행될 수 있다.
[0061] 훈련 프로세서(404)는 임베딩 벡터들(304) 및 특징 벡터들(306)로 순환 신경망을 훈련하여 네트워크(302)의 토폴로지에서의 이상 탐지용 모델(309)을 생성하도록 구성될 수 있다. 순환 신경망은 임베딩 벡터들(304)의 시퀀스들을 수신하기 위한 입력 층, 입력 층(예: LSTM 셀들, GRU 셀들 또는 기타 모든 시퀀스 러닝 방법들 등) 다음의 시퀀스 러닝 층, 특징 벡터들(306)을 시퀀스 러닝 층의 출력과 연결하는 연결 층, 하나 또는 그 이상의 밀집 층들(313)과 이상 탐지용 모델(309)을 출력하기 위한 출력 층(314)을 포함할 수 있다.
[0062] 임베딩 벡터들:
[0063] 본 발명의 실시 예들은 쿠버네티스 시스템에 기초하여 이후에 상세하게 설명될 것이다. 그러나, 실시 예들이 쿠버네티스 시스템에 한정되지 않고 기타 네트워크 아키텍처들에서 사용될 수 있다는 것에 주목해야 한다.
[0064] 시간에 대한 네트워크의 토폴로지의 과거(history)가 주어지면, 자원들의 임베딩이 토폴로지 내에서 학습될 수 있다. 이 것은 KubeNode2Vec 방법, 즉 추상적인 시간적 관계들을 학습하기 위해 토폴로지에 대한 과거 변경들을 이용하는 방법을 통해 수행될 수 있다. 이 방법을 선택하는 이유는 이것이 시간에 대한 토폴로지의 동적 특성을 제공하기 때문이다.
[0065] KubeNode2Vec 방법은 네트워크의 토폴로지의 과거 스냅샷들을 포함하는 네트워크 토폴로지 정보를 수신할 수 있다. 상기 과거 스냅샷들은 네트워크 토폴로지의 최신 스냅샷과 하나 또는 그 이상의 네트워크 토폴로지의 이전 과거 스냅샷들을 포함할 수 있다. 특히, 스냅샷들은 특정 시점(point in time)에 네트워크의 자원들 및 연결들의 정렬(arrangement)에 대한 네트워크 토폴로지 정보를 포함할 수 있다. 상기 네트워크 토폴로지 정보는 네트워크 토폴로지 발견 메커니즘 등(a network topology discovery mechanism or the like)으로부터 수신되는 스냅샷 데이터를 갖는 데이터 스토리지로부터 획득될 수 있다. 모든 적합한 네트워크 토폴로지 발견 메커니즘은, 과거 스냅샷들을 포함하는, 네트워크 토폴로지 정보를 캡처하고 유지하는 데 사용될 수 있다. 이 기술 분야에서 통상의 지식을 가진 자들이 이해하는 바와 같이, 자원들이 네트워크에 동적으로 추가되고 네트워크로부터 제거됨에 따라 동적 네트워크의 토폴로지는 시간이 지남에 따라 변화한다. 따라서, 단일 스냅샷, 예를 들어, 최신 스냅샷에 대해 획득된 원시 네트워크 토폴로지 정보(raw network topology information)는 네트워크와 관련하여 딥 러닝을 대해서 충분한 정보를 포함할 수 없다. 본 발명에 따르면, 다수의 스냅샷들을 포함하는 과거 네트워크 토폴로지 정보가 딥 러닝에 사용된다. 특히, 과거 스냅샷들에서의 네트워크 토폴로지 정보는, 예를 들어, 시간이 지남에 따라 최소로 변화할 수 있는 네트워크의 안정적인 파트들을 식별하기 위해, 반대로, 시간이 지남에 따라 자주 변화할 수 있는 네트워크의 파트들을 식별하기 위해 사용될 수 있다. 따라서, 과거 스냅샷들의 사용은 동적 네트워크의 특징들 및 동작(the features and behavior)에 관한 개선된 학습을 용이하게 하기 위해서 보다 풍부한 토폴로지 정보를 제공한다.
[0066] KubeNode2Vec 방법은, 네트워크 토폴로지의 각 스냅샷에서, 동일 역할을 수행하고, 동일 비-스케일(non-scale) 노드들의 세트에 연결되는 둘 또는 그 이상의 스케일 노드들을 식별할 수 있다. 특히, KubeNode2Vec 방법은 네트워크 토폴로지의 각 과거 스냅샷에서의 노드들을 네트워크 토폴로지의 동일한 스냅샷에서의 다른 노드들과 비교할 수 있다. KubeNode2Vec 방법은, 위에서 기술한 바와 같이, 각 자원 또는 노드와 연관된 토폴로지 메타데이터의 데이터 패러미터들로부터 네트워크 토폴로지에서의 스케일 노드들을 식별할 수 있다. 또한, KubeNode2Vec 방법은 식별된 각 스케일 노드의 역할(role), 예를 들어, 기능 또는 목적과 토폴로지 메타데이터로부터의 비-스케일(non-scale) 노드들에 대한 그 것의 연결들을 식별할 수 있다. 네트워크 토폴로지에서의 비-스케일 노드들에 대한 동일 역할과 동일 연결(들)을 모두를 갖는 스케일 노드들이 네트워크에서의 정확히 동일한 역할 또는, "기능"을, 예를 들어 부하 균형 등의 목적을 위한 복제본들로서, 수행하고 있음이 이해될 수 있다. 따라서, KubeNode2ec는 동일 역할을 수행하고 토폴로지 정보로부터 동일 비-스케일 노드들에 연결되는 둘 또는 그 이상의 스케일 노드들의 그룹들을 식별할 수 있다. 네트워크 토폴로지의 모든 단일 스냅샷에서, 다양한 역할들 또는 서비스들과 연관되는 다수의 스케일 노드들의 그룹들이 식별될 수 있음은 이해될 수 있다.
[0067] KubeNode2Vec 방법은, 동일 역할을 가지고 동일 비-스케일 노드들의 세트에 연결되는 스케일 노드들의 그룹 내의 스케일 노드들을 새롭게 생성된, 단일 집합 노드(aggregated node)로 대체함으로써, 각 네트워크 토폴로지 스냅샷을 수정할 수 있다. 단일 집합 노드는 새로운 노드 식별자를 가질 수 있다. 따라서, KubeNode2Vec은 각 스냅샷을 수정하여 수정된 네트워크 토폴로지를 나타내는 수정된 토폴로지 정보를 도출할 수 있다. 스케일 노드들을 단일 집합 노드로 대체하는 프로세스는 여기서 "스케일 노드들을 축소하는 프로세스(collapsing scale nodes)"라 하고, 단일 "집합 노드"는 여기서 "합성 노드(synthetic node)"라 한다. 예시적 구현들에서, KubeNode2Vec은 식별된 스케일 노드들의 그룹에 속하는 노드들을 단일 집합 노드로 대체할 수 있다. 따라서, 스케일 노드들의 그룹은 동일 노드 식별자, 즉 집합/합성 노드(the aggregated/synthetic node)에 대한 새로운 식별자와 연관된다. 또한, KubeNode2Vec은 스케일 노드들의 그룹에서의 스케일 노드들로부터 시작하는 엣지들의 세트를, 조합된 엣지들의 세트의 가중치의 평균에 기초하여, 또는 엣지 가중치들을 조합하는데 적합한 다른 기법을 사용하여, 가중치가 부여될 수 있는, 단일 "집합 엣지"로 대체할 수 있다. 따라서, KubeNode2Vec은 네트워크 내에서 동일 역할 또는 서비스를 수행하는 "스케일 노드들"을 식별하고, 그것들에 관한 특징 표현들(feature representations)을 결정하기 위한 목적을 위해 그 것들이 단일 자원으로 취급되도록, 조합 또는 집합 노드(a combined or aggregated node)로 그것들을 축소시킴(collapsing)으로써, 과거 스냅샷들의 네트워크 토폴로지 정보를 수정한다. 예시적 구현들에서, KubeNode2Vec은 집합 노드에 의해 표현된 스케일 노드들의 원래 노드 식별자를 대응 집합 노드 식별자와 연관시킬 수 있다. 예를 들어, KubeNode2Vec은 원래 노드 식별자들을 집합 노드 식별자들에 매핑하기 위해서 대응 매핑 정보를 저장할 수 있다.
[0068] KubeNode2Vec 방법은, 네트워크의 토폴로지가 시간에 따라 자주 변화하는, 가상화 된 네트워크 환경들에서와 같은, 동적 네트워크들에서, 노드들, 즉 네트워크 자원들로부터 개선된 특징 표현들을 도출할 수 있음을 이해할 수 있다. 특히, 동일 역할을 수행하고 동일 비-스케일 노드들의 세트에 연결된 스케일 노드들에 대한 공통 특징 표현을 도출함으로써, 상기 특징 표현들이, 네트워크 토폴로지에서, 자원들, 및 연관된 데이터를 연관시키고 상관시키는 데 더 쉽게 사용될 수 있다.
[0069] 아래는 KubeNode2Vec 방법을, 예시적으로, 수행하기 위해 Node2Vec 알고리즘을 구성하는 의사 코드(pseudocode)이다:
전제 조건: 토폴로지에 대한 변경들을 캡처하기 위해, 가장 이른 시간(the earliest time)부터 가장 최근 시간(the latest time)까지, 이용 가능한 네트워크 토폴로지 정보를, 반복하고, 시간에 대한 모든 과거 스냅샷들 H를 수집한다(collect). 주기적으로, 또는 특정 변경이 발생할 때마다, 토폴로지의 스냅샷 H가 캡처되고, 그 네트워크 토폴로지 스냅샷의 그래프가 상기 수집에 추가되는데, 예를 들어 연관된 타임 스탬프와 함께 추가된다.
Figure pct00001
Figure pct00002
/*특징 학습 동안과 동일한 샘플링 전략을 사용하여 워크에서 노드들의 이웃들을 표현하는 특징 벡터를 획득한다*/
Figure pct00003
[0070] 변경 시퀀스 데이터세트:
[0071] 변경 시퀀스 데이터세트를 구성하여, 네트워크의 토폴로지에 대한 모든 과거 변경들에 대해 반복하고 그들을 순차로, 예를 들어, 다음과 같이 기록한다:
Figure pct00004
[0072] 각 변경에 대해 미리 결정된(predetermined) 크기, 예를 들어 5의 슬라이딩 윈도우가 변경 시퀀스들을 수집하는 데 사용된다. 예를 들어, 상기 테이블(table)로부터 수집된 일부 시퀀스들은 다음과 같다:
Figure pct00005
[0073] 상기 변경 시퀀스들은 포드들의 벡터 표현들(각 포드의 임베딩 벡터들)이 그들의 ID들 대신에 사용될 수 있도록 변형될 수 있다. 이러한 변형 후, 변경 시퀀스들의 목록이 획득될 수 있으며, 변경 시퀀스들은 임베딩 벡터들의 시퀀스이다.
[0074] 특징 데이터세트:
[0075] 변경 레코드들에 대해, 주체 유형들, 변경 유형들 및 시간적 세부 사항들과 같은 추가적인 속성들을 포함하는 특징 벡터가 구성될 수 있다. 주체 유형들은 범주 특성(categorical nature)을 갖기 때문에, 원-핫 인코딩(또는 원-콜드 인코딩)을 사용하여 특징 벡터들을 생성할 수 있다. 변경 유형들도 또한 범주 특성을 갖기 때문에, 따라서 원-핫 인코딩을 사용하도록 할 수 있다. 시간적 세부 사항들의 경우, 날 중의 시간(time of day)과 주 중의 요일(day of the week)은 두 개의 별개의 필드들로 취급될 수 있다. 따라서, 원-핫 인코딩이 사용되어 특징 벡터들을 유사하게 생성할 수 있다. 주중의 요일에 대해 원-핫 인코딩을 사용하는 일 예를 다음 테이블에서 살펴볼 수 있다:
Figure pct00006
[0076] 세 가지의 측면들(날 중의 시간, 주 중의 요일, 변경 유형)에 대한 원-핫 벡터들을 구성한 후, 그것들은 단일 특징 벡터에 함께 추가될 수 있다. 특징들(변경 속성들)은 언급된 세 가지의 특징들에 한정되지 않고 다음과 같은 다른 메타데이터/속성들을 포함할 수 있으며, 그러나 이에 한정되지는 않음에 주목해야 한다: 지리적 위치, CPU 백분율 사용량, RAM 백분율 사용량, CPU 온도 등. 예를 들어, CPU 사용량은 "높음(High)", "중간(Medium)" 또는 "낮음(Low)"으로 분류될(categorized) 수 있고, 그 다음에, "높음" = 001, "중간" = 010 또는 "낮음" = 100으로 원-핫 인코딩 될 수 있다. CPU에 대한 "높음" 사용량은,> 75%,> 80%,> 85%, 또는 이 기술 분야에서 통상의 지식을 가진 자가 도출할 수 있는 다른 임의의 백분율일 수 있다. 유사하게, <50%, <45%, <40%의 CPU 사용량은 "낮음" CPU 사용량일 수 있다. 또한, CPU 사용량은 1%, 5%, 10%, 20% 등의 단계들(steps)로 0%에서 100%까지의 스케일로 분류될 수 있다.
[0077] 신경망(NEURAL NETWORK)을 훈련시킴:
[0078] 도 5는 이상 탐지용 모델(309)을 출력하기 위해 사용되는 신경망의 일 예를 도시한다. 변경 시퀀스 내의 자원들(502)(예: 포드, 노드, 컨테이너 등)와 추가적인 특성들을 나타내는 그것들의 대응 특징 벡터들(306)이 순환 신경망을 훈련시키기 위해 사용될 수 있다.
[0079] 상기 예에서, 신경망은 장단기 메모리(LSTM) 셀들(504)이 있는 순환 신경망이다. 고정된 크기의 변경 시퀀스들 내의 자원들(502)이 신경망에 공급(fed)될 수 있다. 자원(502)의 임베딩 벡터(304)는 KubeNode2Vec 알고리즘을 통해 획득될 수 있다. 이 임베딩 벡터(304)는 LSTM 셀(504)에 공급될 수 있다. 순환 신경망에서 일반적으로 수행되는 바와 같이, 이전 단계의 LSTM 셀(504)의 출력은 그 시간 단계에서 통상적인 입력에 추가하여 다음 입력으로 공급된다.
[0080] 시간 단계들에서, LSTM 셀(504)의 출력은 대응 특징 벡터들(306)과 연결된다. 특징 벡터들(306)로 LSTM 출력을 증강함으로써, 네트워크는 훈련 데이터에 존재하는 주체 유형들, 변경 유형들, 및 시간적/계절적 패턴들과 관련되는 모든 패턴들을 학습할 수 있다. 또는, GRU 셀들이 LSTM들 대신 사용될 수 있다.
[0081] 연결된 입력 벡터(506)는 하나 또는 그 이상의 밀집 층들(508)로 공급될 수 있다. 최종 출력 층은 로짓들(logits)(510)을 포함할 수 있으며, 이들은 다음 변경을 예측하기 위해서 모델(309)을 생성하는 데 사용할 수 있는 다항 분포들(multinomial distributions)이다.
[0082] 도 6은 이상 탐지용 모델(309)을 생성하기 위해 사용되는 신경망에 대한 플로 차트이다. 데이터세트(602)로부터의 변경 시퀀스에서의 자원들(502)은 이전에 기술한 바와 같이 임베딩 벡터(304)에 내장되고(embeded) LSTM 셀(504)에 공급될 수 있다. 특징 벡터(306)와 LSTM 셀(504)의 출력은 연결될 수 있으며(concatenated), 여기서 특징 벡터(306)는 원-핫 인코딩 되어 있다. 그 다음, 연결된 입력 벡터(506)는 밀도 층들(508)로 공급될 수 있으며, 밀도 층들(508)은 이상 탐지용 모델(309)을 출력한다(다항 분포들-로짓들(510)에 기초하여).
[0083] 이상 탐지용 모델을 사용함:
[0084] 일단 순환 신경망이 훈련되면, 신경망에 의해서 출력되는 모델(309)은 비정상적인 네트워크 토폴로지에 대한 변경들을 탐지하기 위해 채용될 수 있다.
[0085] 모델(309)은 다음 변경의 예측을 나타내는 다항 분포를 생성할 수 있다. 이 분포는 관측된 변경의 가능성을 계산하는 데 사용할 수 있으며, 만일 변경이 임계값 아래이면, 상기 변경은 이상으로 플래그될 수 있다.
[0086] 일 예로, 수평적 포드 오토스케일링을 배치하여 사용하는 쿠버네티스 클러스터가 있다. CPU 이용량(예를 들어, 노드의 CPU 이용량이 75%에 도달할 때 제 2의 노드 상에 포드의 복제본을 생성함)과 같은(그러나 이에 한정되지는 않음), 네트워크 요건들과 규칙들에 따라, 언제든지 많은 포드들의 복제본들이 있을 수 있다.
[0087] 일반적으로, Node2Vec과 같은 임베딩 방법은 복제본들 사이에서 구별할 수 있다. 그러나, 본 발명의 방법 실시 예를 사용하면, KubeNode2Vec은 제 2의 노드가 이전에 보여 진 적이 없는 경우에도(예를 들어, 쿠버네티스 상에서 클러스터 오토스케일러(autoscaler)를 사용하여), 다양한 노드들 상의 포드들이 (제 1의 포드의) 복제본들임을 결정할 수 있다.
[0088] 그러므로, 포드에 대해 임베딩 벡터를 생성할 때, KubeNode2Vec 방법은 그것들이 동일함을 결정할 수 있으며, 따라서 상기 포드(다수의 복제본들이 있는)에 대해서 임베딩 관찰들이 획득될 수 있다. 이를 통해 포드의 동작에 관한 더 많은 정보가 임베딩 벡터(304)에 저장될 수 있다.
[0089] 따라서, 상기 신경망은 변경들(예: 생성되는 복제본, 스핀 업되는 포드 등)에 대해 임베딩 벡터들(304) 및 특징 벡터들(306)로 훈련될 수 있다. 상기 신경망에 의한 모델(309) 출력은 또한, 모델(309)이 사용하는 노드에 관계없이, 예를 들어, 포드 복제본들의 생성을 예측할 수 있다.
[0090] 다른 예에서, 순환 신경망은 포드에서 컨테이너들의 변경 시퀀스들을 학습하기 위해 훈련될 수 있다. 포드들의 일반적인 크기 때문에, 컨테이너들에 대한 훈련 재료(material)는 훨씬 적고 순환 신경망을 훈련시키는 데 시간이 덜 걸린다.
[0091] 단일 포드의 컨테이너들에서의 변경들은 순환 신경망을 훈련시키고 다음 변경에 대한 예측을 제공하기 위해 입력될 수 있다. 예를 들어, 특정 컨테이너들은 특정 날 중의 시간들 동안(during certain times of the day) 더 많이 사용될 수 있다. 따라서, 순환 신경망은 정상적인 상황들 아래에서 포드가 어떻게 기능하는 지를 학습할 수 있고 비정상적인 동작을 탐지하는 데 도움을 줄 수 있다.
[0092] 또한, 클러스터의 노드들(하드웨어 컴퓨팅 머신들 및/또는 가상 머신들)에서 이상들을 탐지하는 것은 바람직할 수 있다. 이 경우에, 순환 신경망은 상기 노드들에 대한 변경 시퀀스들을 학습하도록 훈련될 수 있다. 따라서, 모델(309) 출력은 상기 노드들에 대한 변경들의 예측을 나타내는 분포일 수 있으므로, 노드에 대한 이상들(또는 이상들의 체인들)이 탐지될 수 있고, 가능하게는 하드웨어 문제들을 알려줄 수 있다.
[0093] 그러나, 본 발명의 실시 예들의 사용은 쿠버네티스 시스템에서 포드들, 컨테이너들 또는 노드들에 한정되는 것은 아니다. 본 발명의 실시 예들은 또한 노드들의 네트워크, 가상 머신들의 네트워크, 컨테이너 기반 아키텍처 등에도 사용될 수 있으며, 그러나 이에 한정되는 것은 아니다.
[0094] 일 예에서, 본 발명은 핵심 성과 지표(a Key Performance Indicator: KPI)를 생성하는 맥락에서 사용될 수 있다. 비정상적인 토폴로지 변경들은 일정 기간 동안 살펴보고 변경들의 수가 임계값(예: 0)를 넘는지를 결정함으로써 KPI로서 사용될 수 있다. 상당히 정적인 환경들에서의 토폴로지 변경들은 문제를 나타낼 수 있다. 시스템에 관한 다수의 메트릭들(metrics)이 비정상적인 토폴로지 변경이 오류들을 일으키는지 및/또는 지연 시간을 증가시키는지, 또는 비정상적인 토폴로지 변경이 토폴로지 멤버들에 관한 메트릭 또는 기초 네트워크 메트릭들에 원하지 않는 동작을 일반적으로 일으키는지를 결정하기 위해 사용될 수 있다.
[0095] 본 발명의 실시 예들이 방법을 구성하는 본 출원의 맥락에서, 그러한 방법은 컴퓨터에 의한 실행을 위한 프로세스, 즉 컴퓨터가 구현할 수 있는 방법이라는 것을 이해해야 한다. 따라서 상기 방법의 다양한 단계들은 컴퓨터 프로그램의 다양한 부분들, 예를 들어 하나 또는 그 이상의 알고리즘들의 다양한 부분들을 반영한다.
[0096] 본 발명은 시스템, 방법, 및/또는 통합의 모든 가능한 기술적 세부 레벨에서 컴퓨터 프로그램 제품이 될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체(또는 미디어)를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
[0097] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 디바이스들에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 기계적으로 인코드 된 디바이스들, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0098] 여기서 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 네트워크, 광역 네트워크 및/또는 무선 네트워크 등의 네트워크를 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 네트워크는 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 디바이스들 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 네트워크로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 포워드한다.
[0099] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 네트워크(LAN) 또는 광역 네트워크(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0100] 본 발명의 특징들이 본 발명의 실시 예들에 따른 방법들, 디바이스들들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0101] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 디바이스들의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 디바이스들의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 디바이스들 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0102] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 디바이스들, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 디바이스들 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 디바이스들, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0103] 도면들 내 플로 차트 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 연산(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 실시 예들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 플로 차트 예시도의 각 블록, 및 블록도들 및/또는 플로 차트 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[0104] 본 발명의 다양한 실시 예들에 대한 설명들은 예시의 목적으로 제공되는 것이며, 개시된 실시 예들이 전부라거나 이들에 한정하려는 의도가 있는 것은 아니다. 많은 수정들 및 변형들이 기술된 실시 예들의 범위와 정신을 벗어남이 없이 이 기술 분야에서 통상의 지식을 가진 자들에게 명백할 것이다. 여기서 사용된 용어들은 본 발명의 실시 예들의 원리들, 시장에서 발견된 기술들에 대한 실제 응용 또는 기술적 개선을 잘 설명하기 위해서, 또는 이 기술 분야에서 통상의 지식을 가진 자들이 여기서 기술된 실시 예들을 이해할 수 있도록 하기 위해, 선택되고 기술되었다.

Claims (20)

  1. 네트워크의 토폴로지에서의 이상 탐지용 모델(a model for anomaly detection)을 생성하기 위해 순환 신경망(recurrent neural network)을 훈련시키는 컴퓨터-구현 방법(computer-implemented method)에 있어서, 상기 컴퓨터-구현 방법은: 상기 네트워크에 대해 KubeNode2Vec 방법을 적용하는 것에 기초하여 상기 네트워크 내의 자원들에 대해 임베딩 벡터(embedding vector)를 생성하는 단계;
    변경들의 하나 또는 그 이상의 속성들(properties)에 기초하여 자원들에 대한 상기 변경들을 위해 하나 또는 그 이상의 특징 벡터들(feature vectors)을 생성하는 단계; 및
    상기 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 상기 임베딩 벡터들 및 상기 특징 벡터들로 순환 신경망을 훈련시키는 단계를 포함하는
    컴퓨터-구현 방법.
  2. 제 1항에 있어서, 상기 순환 신경망은:
    상기 임베딩 벡터들을 수신하기 위한 입력 층;
    상기 입력 층 다음의 시퀀스 러닝 층(a sequence learning layer);
    상기 특징 벡터들을 상기 시퀀스 러닝 층의 출력과 연결하는(concatenating) 연결 층;
    하나 또는 그 이상의 밀집 층들(dense layers); 및
    상기 이상 탐지용 모델로 출력하기 위한 출력 층을 포함하는
    컴퓨터-구현 방법.
  3. 제 1항 또는 제 2항에 있어서, 상기 변경 속성들은:
    상기 변경이 발생된 자원에 대응하는 주체 유형(an entity type);
    변경 유형; 및
    변경 시간 중 하나 또는 그 이상을 포함하는
    컴퓨터-구현 방법.
  4. 제1항 내지 제3항의 항들 중 어느 한 항에 있어서, 특징 벡터를 생성하는 단계는 상기 대응 변경 속성들(the corresponding change properties)을 원-핫(one-hot) 인코딩 또는 원-콜드(one-cold) 인코딩 하는 것에 기초하는
    컴퓨터-구현 방법.
  5. 제 2항에 있어서, 상기 시퀀스 러닝 층은 장단기 메모리(long short-term memory), LSTM, 층인
    컴퓨터-구현 방법.
  6. 제 2항에 있어서, 상기 시퀀스 러닝 층은 게이트 순환 유닛(gated recurrent unit), GRU, 층인
    컴퓨터-구현 방법.
  7. 제1항 내지 제6항의 항들 중 어느 한 항에 있어서, 상기 순환 신경망을 훈련시키는 단계는 시퀀스 러닝에 기초하는
    컴퓨터-구현 방법.
  8. 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 순환 신경망을 훈련시키도록 구성되는 장치(apparatus)에 있어서, 상기 장치는:
    상기 네트워크에 대해 KubeNode2Vec 방법을 적용하는 것에 기초하여 상기 네트워크 내의 각 자원에 대해 임베딩 벡터(embedding vector)를 생성하는 단계;
    변경의 하나 또는 그 이상의 속성들(properties)에 기초하여 자원에 대한 각 변경을 위해 특징 벡터(feature vector)를 생성하는 단계를 수행하도록 구성된 프리-프로세서(a pre-processor), 및
    상기 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 상기 임베딩 벡터들 및 상기 특징 벡터들로 순환 신경망을 훈련시키는 단계를 수행하도록 구성된 훈련 프로세서(a training processor)를 포함하는
    장치.
  9. 제 8항에 있어서, 상기 순환 신경망은:
    상기 임베딩 벡터들을 수신하기 위해 구성되는 입력 층;
    상기 입력 층 다음의 시퀀스 러닝 층;
    상기 특징 벡터들을 시퀀스 러닝 층의 출력과 연결하기 위해 구성되는 연결 층;
    하나 또는 그 이상의 밀집 층들; 및
    상기 이상 탐지용 모델로 출력하기 위한 출력 층을 포함하는
    장치.
  10. 제 8항 또는 제 9항에 있어서, 상기 변경 속성들은:
    상기 변경이 발생된 자원에 대응하는 주체 유형(an entity type);
    변경 유형; 및
    변경 시간 중 하나 또는 그 이상을 포함하는
    장치.
  11. 제8항 내지 제10항의 항들 중 어느 한 항에 있어서, 특징 벡터를 생성하는 단계는 상기 대응 변경 속성들(the corresponding change properties)을 원-핫(one-hot) 인코딩 또는 원-콜드(one-cold) 인코딩 하는 것에 기초하는
    장치.
  12. 제 9항에 있어서, 상기 시퀀스 러닝 층은 장단기 메모리(long short-term memory), LSTM, 층인
    장치.
  13. 제 9항에 있어서, 상기 시퀀스 러닝 층은 게이트 순환 유닛(gated recurrent unit), GRU, 층인
    장치.
  14. 제 8항 내지 제 13항의 항들 중 어느 한 항에 있어서, 상기 순환 신경망을 훈련시키는 단계는 시퀀스 러닝에 기초하는
    장치.
  15. 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은 컴퓨팅 디바이스 상에서 실행 가능한, 소프트웨어 코드 부분들(portions)을 포함하는 컴퓨터 판독 가능한 매체를 포함하고, 상기 소프트웨어 코드 부분들은 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 순환 신경망을 훈련시키는 방법을 수행하며, 상기 컴퓨터 프로그램 제품은:
    하나 또는 그 이상의 비-일시적(non-transitory) 컴퓨터 판독 가능한 스토리지 매체 및 상기 하나 또는 그 이상의 비-일시적(non-transitory) 컴퓨터 판독 가능한 스토리지 매체에 저장된 프로그램 명령들을 포함하고, 상기 프로그램 명령은:
    상기 네트워크에 대해 KubeNode2Vec 방법을 적용하는 것에 기초하여 상기 네트워크 내의 각 자원에 대해 임베딩 벡터(embedding vector)를 생성하는 단계;
    변경의 하나 또는 그 이상의 속성들(properties)에 기초하여 자원에 대한 각 변경을 위해 특징 벡터(feature vector)를 생성하는 단계; 및
    상기 네트워크의 토폴로지에서의 이상 탐지용 모델을 생성하기 위해 상기 임베딩 벡터들 및 상기 특징 벡터들로 순환 신경망을 훈련시키는 단계를 수행하는 프로그램 명령들을 포함하는
    컴퓨터 프로그램 제품.
  16. 제 15항에 있어서, 상기 순환 신경망은:
    상기 임베딩 벡터들을 수신하기 위한 입력 층;
    상기 입력 층 다음의 시퀀스 러닝 층(a sequence learning layer);
    상기 특징 벡터들을 상기 시퀀스 러닝 층의 출력과 연결하는(concatenating) 연결 층;
    하나 또는 그 이상의 밀집 층들(dense layers); 및
    상기 이상 탐지용 모델로 출력하기 위한 출력 층을 포함하는
    컴퓨터 프로그램 제품.
  17. 제 15항에 있어서, 상기 변경 속성들은:
    상기 변경이 발생된 자원에 대응하는 주체 유형(an entity type);
    변경 유형; 및
    변경 시간 중 하나 또는 그 이상을 포함하는
    컴퓨터 프로그램 제품.
  18. 제 15항에 있어서, 특징 벡터를 생성하는 단계를 수행하는 프로그램 명령들은 상기 대응 변경 속성들(the corresponding change properties)을 원-핫(one-hot) 인코딩 또는 원-콜드(one-cold) 인코딩 하는 것에 기초하는
    컴퓨터 프로그램 제품.
  19. 제 16항에 있어서, 상기 시퀀스 러닝 층은 장단기 메모리(long short-term memory), LSTM, 층인
    컴퓨터 프로그램 제품.
  20. 제 16항에 있어서, 상기 시퀀스 러닝 층은 게이트 순환 유닛(gated recurrent unit), GRU, 층인
    컴퓨터 프로그램 제품.
KR1020237000309A 2020-07-14 2021-06-29 네트워크 토폴로지에서의 이상 탐지 KR20230031889A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/928,474 2020-07-14
US16/928,474 US20220019887A1 (en) 2020-07-14 2020-07-14 Anomaly detection in network topology
PCT/IB2021/055808 WO2022013662A1 (en) 2020-07-14 2021-06-29 Anomaly detection in network topology

Publications (1)

Publication Number Publication Date
KR20230031889A true KR20230031889A (ko) 2023-03-07

Family

ID=79292643

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237000309A KR20230031889A (ko) 2020-07-14 2021-06-29 네트워크 토폴로지에서의 이상 탐지

Country Status (8)

Country Link
US (1) US20220019887A1 (ko)
JP (1) JP2023534696A (ko)
KR (1) KR20230031889A (ko)
CN (1) CN116210211A (ko)
AU (1) AU2021309929B2 (ko)
DE (1) DE112021003747T5 (ko)
GB (1) GB2611988A (ko)
WO (1) WO2022013662A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102606713B1 (ko) * 2023-07-13 2023-11-30 주식회사 이글루코퍼레이션 쿠버네티스 클러스터의 모니터링을 위한 통합 보안관제 시스템, 장치, 방법 및 프로그램

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11483330B1 (en) * 2021-09-18 2022-10-25 University Of Tabuk Systems and methods for detecting cyberattacks targeting internet of things environments
CN115114488B (zh) * 2022-07-15 2024-03-26 中国西安卫星测控中心 基于角色发现的动态信息网络异常演化节点检测方法
CN116561688B (zh) * 2023-05-09 2024-03-22 浙江大学 基于动态图异常检测的新兴技术识别方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603293A (zh) * 2016-12-20 2017-04-26 南京邮电大学 虚拟网络环境下一种基于深度学习的网络故障诊断方法
US11218498B2 (en) * 2018-09-05 2022-01-04 Oracle International Corporation Context-aware feature embedding and anomaly detection of sequential log data using deep recurrent neural networks
US10873782B2 (en) * 2018-10-02 2020-12-22 Adobe Inc. Generating user embedding representations that capture a history of changes to user trait data
EP3663951B1 (en) * 2018-12-03 2021-09-15 British Telecommunications public limited company Multi factor network anomaly detection
CN109636049B (zh) * 2018-12-19 2021-10-29 浙江工业大学 一种结合道路网络拓扑结构与语义关联的拥堵指数预测方法
US11461616B2 (en) * 2019-08-05 2022-10-04 Siemens Aktiengesellschaft Method and system for analyzing documents

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102606713B1 (ko) * 2023-07-13 2023-11-30 주식회사 이글루코퍼레이션 쿠버네티스 클러스터의 모니터링을 위한 통합 보안관제 시스템, 장치, 방법 및 프로그램

Also Published As

Publication number Publication date
AU2021309929A1 (en) 2023-02-16
AU2021309929B2 (en) 2023-07-06
JP2023534696A (ja) 2023-08-10
DE112021003747T5 (de) 2023-06-01
GB2611988A (en) 2023-04-19
CN116210211A (zh) 2023-06-02
WO2022013662A1 (en) 2022-01-20
US20220019887A1 (en) 2022-01-20

Similar Documents

Publication Publication Date Title
US20230289661A1 (en) Root cause discovery engine
US11374953B2 (en) Hybrid machine learning to detect anomalies
US11694094B2 (en) Inferring digital twins from captured data
KR20230031889A (ko) 네트워크 토폴로지에서의 이상 탐지
US20210012239A1 (en) Automated generation of machine learning models for network evaluation
US10592666B2 (en) Detecting anomalous entities
JP2021527288A (ja) データセットのための機械学習モデルの好適性の検出
US20210279644A1 (en) Modification of Machine Learning Model Ensembles Based on User Feedback
US10565517B2 (en) Horizontal decision tree learning from very high rate data streams with horizontal parallel conflict resolution
Huong et al. Federated learning-based explainable anomaly detection for industrial control systems
CN111431819A (zh) 一种基于序列化的协议流特征的网络流量分类方法和装置
CN110555172A (zh) 用户关系挖掘方法及装置、电子设备和存储介质
US11736363B2 (en) Techniques for analyzing a network and increasing network availability
US11392821B2 (en) Detecting behavior patterns utilizing machine learning model trained with multi-modal time series analysis of diagnostic data
US20230133541A1 (en) Alert correlating using sequence model with topology reinforcement systems and methods
CN112241240A (zh) 用于并行传输数据的方法、设备和计算机程序产品
Hu et al. Evaluation of Big Data Analytics and cognitive computing in smart health systems
Rashmi et al. A review on overlapping community detection methodologies
Ohlsson Anomaly detection in microservice infrastructures
US20240112053A1 (en) Determination of an outlier score using extreme value theory (evt)
Ma et al. Enhancing Prediction Entropy Estimation of RNG for On-the-Fly Test
US20180165587A1 (en) Epistemic uncertainty reduction using simulations, models and data exchange
WO2001008016A1 (fr) Systeme de gestion de reseau
CN116319386A (zh) 可用性及故障预测方法、装置、电子设备和介质
CN116866218A (zh) 一种网络性能检测方法及系统

Legal Events

Date Code Title Description
A201 Request for examination