KR101988028B1 - Server and operating method of the same - Google Patents

Server and operating method of the same Download PDF

Info

Publication number
KR101988028B1
KR101988028B1 KR1020180105075A KR20180105075A KR101988028B1 KR 101988028 B1 KR101988028 B1 KR 101988028B1 KR 1020180105075 A KR1020180105075 A KR 1020180105075A KR 20180105075 A KR20180105075 A KR 20180105075A KR 101988028 B1 KR101988028 B1 KR 101988028B1
Authority
KR
South Korea
Prior art keywords
input vector
data
delete delete
server
clustering
Prior art date
Application number
KR1020180105075A
Other languages
Korean (ko)
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 KR1020180105075A priority Critical patent/KR101988028B1/en
Application granted granted Critical
Publication of KR101988028B1 publication Critical patent/KR101988028B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

A processing method is disclosed. According to an embodiment of the present invention, the processing method comprises the steps of: receiving an input vector representing time series data as a vector; compressing at least one feature of the received input vector by encoding based on the received input vector; and drawing result information by decoding based on the compressed feature.

Description

서버 및 이의 동작 방법{SERVER AND OPERATING METHOD OF THE SAME}[0001] DESCRIPTION [0002] SERVER AND OPERATING METHOD OF THE SAME [0003]

아래 실시예들은 데이터 처리에 관한 것이다.The following embodiments relate to data processing.

컨볼루션 신경망(Convolutional Neural Network; CNN)은 컨볼루션 연산을 이용하는 신경망에 해당한다. Convolutional Neural Network (CNN) is a neural network that uses convolution operations.

관련 선행기술로, 미국 공개특허공보 US 2018/0075343(발명의 명칭: PROCESSING SEQUENCES USING CONVOLUTIONAL NEURAL NETWORKS, 출원인: 구글)가 있다. 해당 공개특허공보에 개시된 신경망 시스템은 오디오 데이터의 출력 시퀀스를 생성한다. 여기서, 해당 신경망 시스템은 컨볼루션 서브 네트워크를 포함하는데, 해당 컨볼루션 서브 네트워크는 하나 이상의 오디오 데이터 처리를 위한 CNN 레이어와 출력 레이어를 포함한다.Related Prior Art US Patent Publication No. US 2018/0075343 (entitled PROCESSING SEQUENCES USING CONVOLUTIONAL NEURAL NETWORKS, filed by Google) is available. The neural network system disclosed in the patent publication generates an output sequence of audio data. Here, the neural network system includes a convolutional subnetwork, which includes a CNN layer and an output layer for processing one or more audio data.

일 측에 따른 처리 방법은 시계열 데이터를 벡터로 표현한 입력 벡터를 수신하는 단계; 상기 수신된 입력 벡터를 기초로 인코딩을 수행하여 상기 수신된 입력 벡터의 적어도 하나의 특징(feature)을 압축하는 단계; 및 상기 압축된 특징을 기초로 디코딩을 수행하여 결과 정보를 도출하는 단계를 포함한다.A method according to one aspect of the present invention includes receiving an input vector representing a time series data as a vector; Performing an encoding based on the received input vector to compress at least one feature of the received input vector; And performing decoding based on the compressed characteristic to derive result information.

상기 처리 방법은 상기 도출된 결과 정보가 상기 수신된 입력 벡터를 얼마나 재현했는지를 나타내는 재현율을 계산하는 단계를 더 포함할 수 있다.The processing method may further include calculating a recall rate indicating how much the derived result information reproduces the received input vector.

상기 처리 방법은 상기 압축된 특징에 기반한 클러스터링의 형태와 이전 클러스터링의 형태를 통해 클러스터링 형태 변화를 감지하는 단계를 더 포함할 수 있다.The processing method may further include detecting clustering type change through a type of clustering based on the compressed characteristic and a type of previous clustering.

상기 시계열 데이터는 게임 로그 데이터를 포함할 수 있다.The time series data may include game log data.

상기 인코딩은 CNN(convolutional neural networks) 기반 오토인코더 내의 인코더에 의해 수행되고, 상기 디코딩은 상기 오토인코더 내의 디코더에 의해 수행될 수 있다.The encoding may be performed by an encoder in a convolutional neural networks (CNN) based auto-encoder, and the decoding may be performed by a decoder in the auto-encoder.

다른 일 측에 따른 처리 방법은 벡터 생성기를 이용하여 시계열 데이터로부터 입력 벡터를 생성하는 단계; 및 처리기를 이용하여 상기 생성된 입력 벡터에 대응되는 결과 정보를 도출하는 단계를 포함한다.The processing method according to another aspect includes: generating an input vector from time series data using a vector generator; And deriving result information corresponding to the generated input vector using a processor.

상기 처리기는 상기 생성된 입력 벡터를 기초로 인코딩을 수행하여 상기 생성된 입력 벡터의 적어도 하나의 특징(feature)을 압축하고 상기 압축된 특징을 기초로 디코딩을 수행하여 상기 결과 정보를 도출한다.The processor performs encoding based on the generated input vector, compresses at least one feature of the generated input vector, and performs decoding based on the compressed feature to derive the result information.

상기 처리 방법은 상기 도출된 결과 정보가 상기 수신된 입력 벡터를 얼마나 재현했는지를 나타내는 재현율을 계산하는 단계를 더 포함할 수 잇다.The processing method may further include calculating a recall rate indicating how much the derived result information reproduces the received input vector.

상기 처리 방법은 상기 압축된 특징에 기반한 클러스터링의 형태와 이전 클러스터링의 형태를 통해 클러스터링 형태 변화를 감지하는 단계를 더 포함할 수 있다.The processing method may further include detecting clustering type change through a type of clustering based on the compressed characteristic and a type of previous clustering.

상기 시계열 데이터는 게임 로그 데이터를 포함할 수 있다.The time series data may include game log data.

상기 처리기는 CNN 기반 오토인코더에 해당할 수 있다.The processor may correspond to a CNN based auto encoder.

일 측에 따른 처리 장치는 시계열 데이터를 프로세싱(processing)하여 생성된 입력 벡터를 수신하고, 상기 수신된 입력 벡터로부터 적어도 하나의 특징을 획득하며, 상기 획득된 특징을 압축하고, 상기 압축된 특징을 복호화하여 결과 정보를 도출하는 컨트롤러를 포함한다.A processing device according to one of the claims, wherein the processing device is configured to process the time series data to receive the generated input vector, obtain at least one feature from the received input vector, compress the obtained feature, And derives result information by decoding.

상기 컨트롤러는 상기 도출된 결과 정보가 상기 수신된 입력 벡터를 얼마나 재현했는지를 나타내는 재현율을 계산할 수 있다.The controller can calculate a recall rate indicating how much the derived result information reproduces the received input vector.

상기 컨트롤러는 상기 압축된 특징에 기반한 클러스터링의 형태와 이전 클러스터링의 형태를 통해 클러스터링 형태 변화를 감지할 수 있다.The controller may detect a clustering form change through a type of clustering based on the compressed characteristics and a type of previous clustering.

상기 시계열 데이터는 게임 로그 데이터를 포함할 수 있다.The time series data may include game log data.

일 측에 따른 처리 장치는 CNN(convolutional neural networks) 기반 처리 모델을 저장하는 메모리; 및 시계열 데이터로부터 생성된 입력 벡터 및 상기 CNN 기반 처리 모델을 이용하여 결과 정보를 도출하는 컨트롤러를 포함한다.The processing unit according to one side includes a memory for storing a CNN (Convolutional Neural Networks) based processing model; And an input vector generated from the time series data and a controller for deriving the result information using the CNN based processing model.

상기 컨트롤러는 상기 생성된 입력 벡터를 기초로 인코딩을 수행하여 상기 생성된 입력 벡터의 적어도 하나의 특징(feature)을 압축하고 상기 압축된 특징을 기초로 디코딩을 수행하여 상기 결과 정보를 도출한다.The controller performs encoding based on the generated input vector, compresses at least one feature of the generated input vector, and performs decoding based on the compressed feature to derive the result information.

상기 컨트롤러는 상기 도출된 결과 정보가 상기 수신된 입력 벡터를 얼마나 재현했는지를 나타내는 재현율을 계산할 수 있다.The controller can calculate a recall rate indicating how much the derived result information reproduces the received input vector.

상기 컨트롤러는 상기 압축된 특징에 기반한 클러스터링의 형태와 이전 클러스터링의 형태를 통해 클러스터링 형태 변화를 감지할 수 있다.The controller may detect a clustering form change through a type of clustering based on the compressed characteristics and a type of previous clustering.

상기 시계열 데이터는 게임 로그 데이터를 포함할 수 있다.The time series data may include game log data.

상기 CNN 기반 처리 모델은 CNN 기반 오토인코더에 해당할 수 있다.The CNN-based processing model may correspond to a CNN-based auto encoder.

실시예들은 희소 데이터를 탐지할 수 있고 학습 과정에서 입력 데이터의 다양성을 추정할 수 있으며, 다차원 데이터를 처리할 수 있다. 다시 말해, 실시예들은 희소 데이터의 추세를 관측할 수 있고, 데이터 다양성의 추세를 관측할 수 있으며, 다차원 데이터의 특성을 압축하여 클러스터링 형태 변화를 추적할 수 있다. 이에 따라, 실시예들은 범용성 있고 확장 가능한 관제 시스템을 구축할 수 있고(예를 들어, 게임로그, 서버로그, 보안로그 등의 관제를 위한 시스템), 관제를 위한 다차원 데이터를 효율적으로 처리할 수 있다.Embodiments can detect sparse data, estimate the diversity of input data during learning, and process multidimensional data. In other words, embodiments can observe trends in sparse data, observe trends in data diversity, and compress characteristics of multidimensional data to track clustering form changes. Accordingly, embodiments can build a versatile and scalable control system (e.g., a system for control of game logs, server logs, security logs, etc.) and efficiently process multi-dimensional data for control .

도 1은 일 실시예에 따른 게임 시스템을 설명하기 위한 도면이다.
도 2 내지 도 5는 일 실시예에 따른 벡터 생성기의 동작의 일례를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 학습 과정을 설명하기 위한 도면이다.
도 7 내지 도 8은 일 실시예에 따른 처리기를 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 처리 장치를 설명하기 위한 블록도이다.
도 10은 일 실시예에 따른 처리 방법의 일례를 설명하기 위한 순서도이다.
도 11은 일 실시예에 따른 처리 방법의 다른 일례를 설명하기 위한 순서도이다.
1 is a view for explaining a game system according to an embodiment.
FIGS. 2 to 5 are diagrams for explaining an example of the operation of the vector generator according to one embodiment.
6 is a diagram for explaining a learning process according to an embodiment.
7 to 8 are views for explaining a processor according to an embodiment.
9 is a block diagram for explaining a processing apparatus according to an embodiment.
10 is a flowchart for explaining an example of a processing method according to an embodiment.
11 is a flowchart for explaining another example of a processing method according to an embodiment.

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

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for descriptive purposes only and are not to be construed as limiting. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

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

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

도 1은 일 실시예에 따른 게임 시스템을 설명하기 위한 도면이다.1 is a view for explaining a game system according to an embodiment.

도 1을 참조하면, 일 실시예에 따른 게임 시스템(100)은 서버(110), 단말(120), 및 데이터베이스(130)를 포함한다.Referring to FIG. 1, a game system 100 according to an embodiment includes a server 110, a terminal 120, and a database 130.

단말(120)는 스마트폰, 태블릿 등의 이동 단말 및/또는 PC 등의 고정 단말에 해당할 수 있다. The terminal 120 may correspond to a mobile terminal such as a smart phone, a tablet, and / or a fixed terminal such as a PC.

단말(120)에는 게임 클라이언트가 설치될 수 있다. 단말(120)은 해당 게임 클라이언트를 통해 서버(110)에 접속할 수 있다. 게임 클라이언트는 게임 어플리케이션 또는 게임 소프트웨어로 달리 표현될 수 있다.The terminal 120 may be provided with a game client. The terminal 120 can access the server 110 through the corresponding game client. The game client may be represented differently as a game application or game software.

도 1에는 하나의 단말(120)이 표현되어 있으나, 이는 예시적인 사항일 뿐, 서버(110)에는 복수의 단말들이 접속할 수 있다.One terminal 120 is illustrated in FIG. 1, but this is only an example, and a plurality of terminals can connect to the server 110.

일 실시예에 따른 서버(110)는 벡터 생성기(111) 및 처리기(112)를 포함한다.The server 110 according to one embodiment includes a vector generator 111 and a processor 112.

벡터 생성기(111)는 시간 정보를 포함하는 복수의 데이터들(또는 게임 데이터들)을 획득한다. 해당 데이터들(또는 게임 데이터들)은, 예를 들어, 데이터베이스(130)에 저장될 수 있는데, 벡터 생성기(111)는 데이터베이스(130)로부터 해당 데이터들(또는 게임 데이터들)을 획득할 수 있다.The vector generator 111 acquires a plurality of data (or game data) including time information. The data (or game data) may be stored, for example, in the database 130, and the vector generator 111 may obtain the corresponding data (or game data) from the database 130 .

벡터 생성기(111)는 획득된 데이터들을 기초로 입력 벡터를 생성한다. 여기서, 입력 벡터의 일 축(axis)은 시간 축을 나타내고 입력 벡터의 다른 축은 적어도 하나의 사용자 정의 필드에 기반한 축을 나타낸다. 입력 벡터는 다차원 벡터에 해당한다. 다시 말해, 입력 벡터는 2차원 이상의 벡터에 해당한다. 벡터 생성기(111)가 입력 벡터를 생성하는 방법에 대해선 도 2 내지 도 5를 통해 후술한다.The vector generator 111 generates an input vector based on the obtained data. Where the axis of the input vector represents the time axis and the other axis of the input vector represents the axis based on at least one user defined field. The input vector corresponds to a multidimensional vector. In other words, the input vector corresponds to a vector of two or more dimensions. A method by which the vector generator 111 generates an input vector will be described later with reference to FIG. 2 to FIG.

벡터 생성기(111)는 생성된 입력 벡터를 처리기(112)에 입력 또는 전송한다.The vector generator 111 inputs or transmits the generated input vector to the processor 112.

처리기(112)는 해당 입력 벡터를 기초로 컨벌루션 연산 등을 수행한다. 다시 말해, 처리기(112)는 CNN(convolutional neural networks)을 포함하고 있는데, 벡터 생성기(111)로부터 수신한 입력 벡터를 기초로 컨벌루션 연산 등을 수행할 수 있다.The processor 112 performs a convolution operation based on the input vector. In other words, the processor 112 includes convolutional neural networks (CNN), and can perform a convolution operation on the basis of the input vector received from the vector generator 111.

처리기(112)의 출력 결과는 게임 관제에 이용될 수 있다.The output result of the processor 112 may be used for game control.

일 실시예는 시계열 데이터를 CNN에 적합한 다차원 벡터로 변형할 수 있다. 다시 말해, 일 실시예는 시계열 데이터 처리의 새로운 방식을 가져올 수 있다. 또한, 일 실시예는 RNN(Recurrent Neural Network)으로 처리하기 어려운 데이터를 처리할 수 있다. One embodiment may transform the time series data into a multidimensional vector suitable for CNN. In other words, one embodiment can lead to a new way of processing time series data. Also, one embodiment can process data that is difficult to process with an RNN (Recurrent Neural Network).

도 2 내지 도 5는 일 실시예에 따른 벡터 생성기의 동작의 일례를 설명하기 위한 도면이다. FIGS. 2 to 5 are diagrams for explaining an example of the operation of the vector generator according to one embodiment.

도 2를 참조하면, 벡터 생성기(111)는 데이터들(210-1~210-n)을 획득한다. 여기서, 데이터들(210-1~210-n) 각각은 시간 정보(또는 시간 필드)를 포함한다. 일례로, 벡터 생성기(111)는 데이터들(210-1~210-n)을 데이터베이스(130)로부터 획득할 수 있다. Referring to Fig. 2, the vector generator 111 acquires the data 210-1 to 210-n. Here, each of the data 210-1 to 210-n includes time information (or time field). In one example, the vector generator 111 may obtain the data 210-1 through 210-n from the database 130. [

벡터 생성기(111)는 데이터들(210-1~210-n)을 기초로 입력 벡터(220)를 생성한다. 도 2에 도시된 예와 같이, 입력 벡터(220)의 일 축은 시간 축을 나타내고 다른 일 축은 필드 축을 나타낸다. 여기서, 필드 축은 적어도 하나의 사용자 정의 필드에 기반한 축에 해당한다.The vector generator 111 generates an input vector 220 based on the data 210-1 to 210-n. As in the example shown in FIG. 2, one axis of the input vector 220 represents the time axis and the other axis represents the field axis. Here, the field axis corresponds to an axis based on at least one user defined field.

벡터 생성기(111)는 입력 벡터(220)를 처리기(112)로 전송한다. The vector generator 111 sends the input vector 220 to the processor 112.

처리기(112)는 입력 벡터(220)를 기초로 여러 연산을 수행하여 결과 정보를 도출한다. 도출된 결과 정보는, 예를 들어, 게임 관제에 이용될 수 있다. 처리기(112)에 대해선 후술한다.The processor 112 performs various operations based on the input vector 220 to derive the result information. The derived result information can be used, for example, for game control. The processor 112 will be described later.

도 3을 참조하면서, 벡터 생성기(111)의 상세 동작을 설명한다.Detailed operation of the vector generator 111 will be described with reference to FIG.

도 3을 참조하면, 벡터 생성기(111)는 데이터들(310-1 내지 310-n)을 획득할 수 있다. 데이터들(310-1 내지 310-n)은 데이터들(210-1 내지 210-n)의 일례로, 시간 필드 뿐 아니라 여러 필드들을 포함한다. 보다 구체적으로, 데이터(310-1)는, 예를 들어, 시간 필드=t-1, 필드 A=a-1, 필드 B=b-1, 필드 C=c-1 등을 포함할 수 있다. 필드 A는, 예를 들어, 게임 접속에 관한 필드를 나타낼 수 있고, 필드 B는, 예를 들어, 로그인 실패에 관한 필드를 나타낼 수 있으며, 필드 C는, 예를 들어, 게임 보상에 관한 필드를 나타낼 수 있다. 데이터(310-n)는, 예를 들어, 시간 필드=t-n, 필드 A=a-n, 필드 B=b-n, 필드 D=d-n 등을 포함한다. 필드 D는, 예를 들어, 게임 아이템에 관한 필드를 나타낼 수 있다.Referring to Fig. 3, the vector generator 111 may obtain the data 310-1 to 310-n. The data 310-1 to 310-n are examples of the data 210-1 to 210-n, and include various fields as well as a time field. More specifically, the data 310-1 may include, for example, a time field = t-1, a field A = a-1, a field B = b-1, a field C = c-1, Field A may indicate, for example, a field relating to game connection, field B may indicate, for example, a field relating to login failure, field C may indicate, for example, . Data 310-n includes, for example, time field = t-n, field A = a-n, field B = b-n, field D = d-n, The field D may represent, for example, a field relating to a game item.

벡터 생성기(111)는 시간 구간들 및 사용자 정의 필드에 부합되는 정보를 포함하는 데이터의 개수를 기초로 입력 벡터(320)를 생성할 수 있다. 일례로, 도 3에 도시된 예를 참조하면, 벡터 생성기(111)는 시간 구간(0~τ1, τ1~ τ2, τ2~ τ3, τ3~ τ4 등) 별로, 사용자 정의 필드에 부합되는 정보를 포함하는 데이터의 개수를 카운팅할 수 있다. 다시 말해, 도 3에 도시된 예에서, 필드 축을 구성하는 사용자 정의 필드들 각각이 필드 A, 필드 B, 및 필드 D에 해당한다고 할 때, 벡터 생성기(111)는 시간 구간 0~τ1를 기준으로, 필드 A를 갖는 데이터가 몇 개인지, 필드 B를 갖는 데이터가 몇 개인지, 및 필드 D를 갖는 데이터가 몇 개인지 파악할 수 있다. 이러한 방식으로, 벡터 생성기(111)는 각 시간 구간을 기준으로, 필드 A를 갖는 데이터가 몇 개인지, 필드 B를 갖는 데이터가 몇 개인지, 및 필드 D를 갖는 데이터가 몇 개인지 파악할 수 있다. 도 3에 도시된 예에서, 데이터(310-1)의 시간 필드 t-1이 시간 구간 0~τ1에 속한다고 하자. 이 경우, 벡터 생성기(111)는 입력 벡터(320)에서 시간 구간 0~τ1 및 필드 A에 해당하는 요소(320-1)와 시간 구간 0~τ1 및 필드 B에 해당하는 요소(320-2)에 데이터(310-1)가 속한다고 카운팅 또는 기록할 수 있다. 또한, 데이터(310-n)의 시간 필드 t-n이 시간 구간 τ3~τ4에 속한다고 하자. 이 경우, 벡터 생성기(111)는 입력 벡터(320)에서 시간 구간 τ3~τ4 및 필드 A에 해당하는 요소(320-3)와 시간 구간 τ3~τ4 및 필드 D에 해당하는 요소(320-4)에 데이터(310-n)가 속한다고 카운팅 또는 기록할 수 있다. 이러한 방식으로, 벡터 생성기(111)는 데이터들(310-1 내지 310-n)을 CNN의 입력 레이어에 적합한 입력 벡터(320)로 변환할 수 있다.The vector generator 111 may generate an input vector 320 based on the number of data including information corresponding to time intervals and user defined fields. For example, referring to the example shown in FIG. 3, the vector generator 111 includes information corresponding to a user defined field for each time interval (0 to? 1,? 1 to? 2,? 2 to? 3,? 3 to? It is possible to count the number of pieces of data. In other words, in the example shown in FIG. 3, if it is assumed that each of the user-defined fields constituting the field axis correspond to field A, field B, and field D, the vector generator 111 calculates , How many data having field A, how many data having field B, and how many data having field D can be obtained. In this manner, the vector generator 111 can determine, based on each time period, how many data having the field A, how many data having the field B, and how many data having the field D . In the example shown in FIG. 3, it is assumed that the time field t-1 of the data 310-1 belongs to the time interval 0 to? 1. In this case, the vector generator 111 generates an element 320-1 corresponding to the time interval 0 to? 1 and the field A, a time interval 0 to? 1 and an element 320-2 corresponding to the field B in the input vector 320, The data 310-1 may be counted or recorded. It is also assumed that the time field t-n of the data 310-n belongs to the time period? 3 to? 4. In this case, the vector generator 111 generates a time interval τ3 to τ4, an element 320-3 corresponding to the field A, a time interval τ3 to τ4 and an element 320-4 corresponding to the field D in the input vector 320, May count or record that data 310-n belongs to. In this manner, the vector generator 111 may convert the data 310-1 through 310-n into an input vector 320 suitable for the input layer of the CNN.

도 4는 데이터들(210-1 내지 210-n)의 다른 일례이다. 도 4에 도시된 예에서, 각 row는 데이터들(210-1 내지 210-n)의 개별 데이터를 나타낸다. 4 is another example of the data 210-1 to 210-n. In the example shown in Fig. 4, each row represents individual data of the data 210-1 through 210-n.

도 4에 도시된 예에서, "regdatetime"은 시간 필드를 나타내고, "logid"는 로그 식별자에 관한 필드를 나타내며, "adid"는 기기 식별자에 관한 필드를 나타내고, "pid"는 계정 식별자에 관한 필드를 나타낸다. 또한, "battlepower"는 게임 캐릭터의 전투력에 관한 필드를 나타내고, "playtime"은 게임 플레이 시간에 관한 필드를 나타내며, "herolevel"은 게임 내 영웅 레벨에 관한 필드를 나타내고, "market"은 게임 클라이언트를 다운 받은 마켓에 관한 필드를 나타내고, "city"는 게임 접속이 발생한 도시에 관한 필드를 나타낸다.In the example shown in Fig. 4, "regdatetime" represents a time field, "logid" represents a field relating to a log identifier, "adid" . "Battlepower" indicates a field related to the combat power of the game character, "playtime" indicates a field related to the game play time, "herolevel" indicates a field related to the hero level in the game, "market" indicates a game client Quot; city "indicates a field related to the city where the game connection occurred.

벡터 생성기(111)는 도 4에 도시된 데이터들을 CNN 처리에 적합한 입력 벡터(220)로 변환할 수 있다. 이 때, 벡터 생성기(111)는 특정 pid에 대해서만 입력 벡터(220)를 생성할 수 있다. 다시 말해, 벡터 생성기(111)는 처리기(112)가 특정 pid에 대해서만 분석을 수행할 수 있도록 특정 pid에 대응되는 입력 벡터를 생성할 수 있다. 해당 입력 벡터에 대한 일례가 도 5에 도시된다.The vector generator 111 may convert the data shown in FIG. 4 into an input vector 220 suitable for CNN processing. At this time, the vector generator 111 can generate the input vector 220 only for a specific pid. In other words, the vector generator 111 may generate an input vector corresponding to a particular pid so that the processor 112 can perform analysis only on a specific pid. An example of a corresponding input vector is shown in Fig.

도 5에는 pid #1에 대응되는 입력 벡터(500)가 도시된다.FIG. 5 shows an input vector 500 corresponding to pid # 1.

벡터 생성기(111)는 도 4에 도시된 데이터들 중에서 pid #1의 데이터들 각각의 시간 필드를 특정 포맷으로 변환할 수 있다. 일례로, 벡터 생성기(111)는 pid #1의 데이터들 각각의 시간 필드를 "hh/mm"의 특정 스케일링(scaling)으로 변환할 수 있다. 다시 말해, 벡터 생성기(111)는 pid #1의 데이터들 각각의 "regdatetime"를 "hh/mm"으로 변환할 수 있다. 여기서, "hh"는 시간(hour)에 해당하고, "mm"은 분(minute)에 해당한다.The vector generator 111 may convert the time field of each of the data of pid # 1 into the specific format among the data shown in FIG. As an example, the vector generator 111 may convert the time field of each of the data of pid # 1 into a specific scaling of "hh / mm ". In other words, the vector generator 111 can convert the "regdatetime" of each of the data of pid # 1 to "hh / mm ". Here, "hh" corresponds to hour (hour), and "mm" corresponds to minute.

벡터 생성기(111)는 변환된 시간 필드에 대응되는 여러 필드들 중 사용자 정의 필드에 해당하는 필드에 feature 엔지니어링을 수행할 수 있다. 도 5에 도시된 예의 경우, 사용자 정의 필드가 "herelevel", "battlepower", 및 "playtime"이라고 하자. 벡터 생성기(111)는 변환된 시간 필드와 대응되는 여러 필드들 중 "herelevel", "battlepower", 및 "playtime" 각각에 feature 엔지니어링을 수행할 수 있고, 수행 결과를 변환된 시간 필드와 어그리게이션(aggregation)할 수 있다. 일례로, 변환된 시간 필드 0/0(510)에 "herelevel", "battlepower", 및 "playtime"이 대응된다고 할 때, 벡터 생성기(111)는 "herelevel", "battlepower", 및 "playtime" 각각의 통계 정보(예를 들어, 표준편차)를 생성할 수 있다. 변환된 시간 필드 0/0(510)에 대응되는 "herelevel", "battlepower", 및 "playtime" 각각의 통계 정보가 "herelevel_std -0.373", "battlepower_std -0.479", 및 "playtime_std -0.703" 각각에 해당한다고 할 때, 벡터 생성기(111)는 변환된 시간 필드 0/0(510)에 "herelevel_std -0.373", "battlepower_std -0.479", 및 "playtime_std -0.703"를 어그리게이션할 수 있다. 이러한 방식으로, 벡터 생성기(111)는 변환된 시간 필드 각각에 사용자 정의 필드에 대응되는 필드의 통계 정보를 어그리게이션하여 입력 벡터(500)을 생성할 수 있다.The vector generator 111 may perform feature engineering on a field corresponding to a user defined field among a plurality of fields corresponding to the converted time field. For the example shown in Fig. 5, let us say that the user defined fields are "herelevel "," battlepower ", and "playtime ". The vector generator 111 can perform feature engineering on each of the fields "herelevel", "battlepower", and "playtime" among a plurality of fields corresponding to the converted time field, or aggregation. In one example, when the transformed time field 0/0 510 corresponds to "herelevel", "battlepower", and "playtime", the vector generator 111 generates "herelevel", "battlepower", and "playtime" And generate respective statistical information (e.g., standard deviation). "Herelevel", "battlepower", and "playtime" statistical information corresponding to the converted time field 0/0 (510) corresponds to "herelevel_std -0.373", "battlepower_std -0.479", and "playtime_std -0.703" The vector generator 111 may aggregate "herelevel_std -0.373 "," battlepower_std -0.479 ", and "playtime_std -0.703 " in the converted time field 0/0 (510). In this manner, the vector generator 111 may generate the input vector 500 by aggregating the statistical information of the field corresponding to the user-defined field in each of the converted time fields.

처리기(112)는 입력 벡터(220, 320, 또는 500)를 기초로 여러 연산을 수행하여 결과 정보를 도출한다. 이러한 처리기(112)는 미리 학습될 수 있는데, 학습 과정에 대해 설명한 후 처리기(112)의 동작에 대해 설명한다.The processor 112 performs various operations based on the input vectors 220, 320, or 500 to derive the resulting information. This processor 112 can be learned in advance, and the operation of the post-processor 112 that describes the learning process will be described.

도 6은 일 실시예에 따른 학습 과정을 설명하기 위한 도면이다.6 is a diagram for explaining a learning process according to an embodiment.

도 6을 참조하면, CNN 기반 오토인코더(600)가 도시된다. CNN 기반 오토인코더(600)는 인코더 및 디코더를 포함한다.Referring to FIG. 6, a CNN based auto encoder 600 is shown. The CNN based auto encoder 600 includes an encoder and a decoder.

인코더는 컨볼루션(convolution) 네트워크로 달리 표현될 수 있고, 디코더는 디컨볼루션(deconvolution) 네트워크로 달리 표현될 수 있다.An encoder may be represented differently by a convolution network, and a decoder may be represented by a deconvolution network.

인코더는 입력 데이터(또는 학습 데이터) y에서 적어도 하나의 특징(feature)을 추출할 수 있고, 추출된 특징을 압축할 수 있다. 입력 데이터 y는, 예를 들어, 서버(110)가 수집한 전체 데이터에 해당할 수 있다.The encoder can extract at least one feature from the input data (or learning data) y and can compress the extracted feature. The input data y may correspond to the entire data collected by the server 110, for example.

디코더는 인코더에 의해 압축된 적어도 하나의 특징을 디코딩하여 출력 데이터

Figure 112018087618463-pat00001
를 생성할 수 있다. The decoder decodes at least one feature compressed by the encoder to produce output data
Figure 112018087618463-pat00001
Lt; / RTI >

CNN 기반 오토인코더(600)는

Figure 112018087618463-pat00002
와 y 사이의 차이를 기초로 CNN 기반 오토인코더(600) 내의 가중치들을 업데이트한다. 해당 가중치들이 업데이트됨으로써 CNN 기반 오토인코더(600)는 학습된다. 달리 표현하면, CNN 기반 오토인코더(600)는 최적화 또는 피팅(fitting)된다.The CNN-based auto encoder 600
Figure 112018087618463-pat00002
Lt; RTI ID = 0.0 > CN < / RTI > based auto encoder 600 based on the difference between y and y. The CNN-based auto-encoder 600 is learned by updating the weights. In other words, the CNN-based auto encoder 600 is optimized or fitted.

실시예에 있어서,

Figure 112018087618463-pat00003
y와 y 사이의 차이는 코스트(cost) 또는 학습 코스트에 해당할 수 있다. 이러한 코스트는 입력 데이터의 다양성을 파악하는데 도움을 줄 수 있다. 다시 말해, 학습 시 최종 수렴되는 cost를 기준으로 입력 데이터의 다양성이 파악될 수 있다. 일례로, CNN 기반 오토인코더(600)는 입력 데이터 y_1을 입력 받아 출력 데이터
Figure 112018087618463-pat00004
_1를 생성할 수 있다. 여기서,
Figure 112018087618463-pat00005
_1과 y_1 사이의 차이가 6이라 하자. 학습 과정에서 CNN 기반 오토인코더(600)는 y_1과 동일한 사이즈의 y_2를 입력 받아 출력 데이터
Figure 112018087618463-pat00006
_2를 생성할 수 있다. 여기서,
Figure 112018087618463-pat00007
_2와 y_2 사이의 차이가 450이면,
Figure 112018087618463-pat00008
_2와 y_2 사이의 차이는
Figure 112018087618463-pat00009
_1과 y_1 사이의 차이보다 크다. 이는, 입력 데이터 y_2에는 다양한 데이터가 존재한다고 파악될 수 있다. 달리 표현하면, 과거에 수집된 데이터 y_1에 비해 최근에 수집된 y_2는 다양한 데이터를 포함할 수 있다. In an embodiment,
Figure 112018087618463-pat00003
The difference between y and y may correspond to a cost or a learning cost. These costs can help to identify the variety of input data. In other words, the diversity of the input data can be grasped based on the final convergence cost during learning. For example, the CNN-based auto encoder 600 receives input data y_1,
Figure 112018087618463-pat00004
_1. ≪ / RTI > here,
Figure 112018087618463-pat00005
Let the difference between _1 and y_1 be 6. In the learning process, the CNN-based auto encoder 600 receives y_2 of the same size as y_1,
Figure 112018087618463-pat00006
_2. ≪ / RTI > here,
Figure 112018087618463-pat00007
If the difference between _2 and y_2 is 450,
Figure 112018087618463-pat00008
The difference between _2 and y_2 is
Figure 112018087618463-pat00009
Is greater than the difference between _1 and y_1. It can be understood that various data exist in the input data y_2. In other words, y_2 collected recently compared to data y_1 collected in the past may contain various data.

학습된 CNN 기반 오토인코더(600)는 처리기(112)에 탑재 또는 구현될 수 있다. 처리기(112) 내의 학습된 CNN 기반 오토인코더(600)는 미리 정해진 주기마다 학습될 수 있다. 일례로, 학습은 매일, 일주일, 또는 한달마다 수행될 수 있다.The learned CNN-based auto-encoder 600 may be implemented or implemented in the processor 112. The learned CNN-based auto-encoder 600 in the processor 112 can be learned every predetermined period. For example, learning can be performed daily, weekly, or monthly.

도 7 내지 도 8은 일 실시예에 따른 처리기를 설명하기 위한 도면이다.7 to 8 are views for explaining a processor according to an embodiment.

도 7을 참조하면, 일 실시예에 따른 처리기(112)는 인코더(710) 및 디코더(720)를 포함한다.Referring to FIG. 7, a processor 112 according to one embodiment includes an encoder 710 and a decoder 720.

인코더(710)는 시계열 데이터를 벡터로 표현한 입력 벡터(220, 320, 또는 500)를 수신한다. 시계열 데이터는 시간 필드를 포함하는 데이터로, 예를 들어, 게임 로그 데이터를 포함할 수 있다. 시계열 데이터가 벡터로 표현되는 방법에 대해선 상술하였으므로, 자세한 설명을 생략한다. The encoder 710 receives the input vector 220, 320, or 500 representing the time series data as a vector. The time series data is data including time fields, for example, game log data. Since the method of expressing the time series data as a vector has been described above, a detailed description will be omitted.

인코더(710)는 입력 벡터(220, 320, 또는 500)를 기초로 인코딩을 수행하여 입력 벡터(220, 320, 또는 500)의 적어도 하나의 특징(feature)을 압축한다. The encoder 710 performs encoding based on the input vector 220, 320, or 500 to compress at least one feature of the input vector 220, 320, or 500.

디코더(720)는 압축된 적어도 하나의 특징을 기초로 디코딩을 수행하여 결과 정보를 도출한다. 디코더(720)는 입력 벡터(220, 320, 또는 500)와 결과 정보를 기초로 재현율을 계산할 수 있다. 재현율은 결과 정보가 입력 벡터(220, 320, 또는 500)를 얼마나 재현했는지를 나타내는 것으로, 예를 들어, 입력 벡터(220, 320, 또는 500)와 결과 정보 사이의 차이에 기반할 수 있다. 처리기(112)는 자신이 본(seen) 데이터를 처리하게 된다면 재현율이 높게 계산될 것이고, unseen 데이터를 처리하게 된다면 재현율은 낮게 계산될 것이다.The decoder 720 performs decoding based on the at least one compressed feature to derive the resulting information. The decoder 720 may compute the recall rate based on the input vector 220, 320, or 500 and the result information. The recall rate indicates how much the result information reproduces the input vector 220, 320, or 500, e.g., based on the difference between the input vector 220, 320, or 500 and the resulting information. If the processor 112 is to process the seen data, the recall rate will be calculated to be high, and if the unseen data is to be processed, the recall rate will be calculated to be low.

처리기(112)는 재현율을 통해 희소 데이터를 감지할 수 있다. 달리 표현하면, 처리기(112)는 재현율을 통해 희소 데이터의 추세를 관측할 수 있다. 또한, 처리기(112)는 희소 데이터 감지 또는 희소 데이터 추세 관측을 통해 이상 상황이 있다고 의심할 수 있다. 일례로, 재현율이 임계값보다 낮으면, 처리기(112)는 평소와 다른 이상 상황이 발생하였다고 의심할 수 있다. 시계열 데이터 또는 입력 벡터(220, 320, 또는 500)에는 희소 데이터가 존재할 수 있는데, 희소 데이터는 압축 과정에서 해당 특징이 학습되지 않아, 처리기(112)가 보지 못한(unseen) 데이터에 해당한다. 이에 따라, 입력과 출력 사이(즉, 입력 벡터(220, 320, 또는 500)와 결과 정보) 사이에 차이가 발생할 수 있고, 결국 재현율이 낮게 계산될 수 있다. 만약, 재현율이 임계값보다 높으면, 처리기(112)는 시계열 데이터 또는 입력 벡터(220, 320, 또는 500)에는 이상이 없다고 판단할 수 있다.The processor 112 may detect sparse data through the recall ratio. In other words, the processor 112 can observe the trend of sparse data through the recall rate. In addition, the processor 112 may suspect abnormal situations through sparse data detection or sparse data trend observations. For example, if the recall rate is below the threshold, the processor 112 may suspect that an abnormal situation other than usual has occurred. Sparse data may be present in the time series data or in the input vector 220, 320, or 500, where the sparse data corresponds to unseen data that the processor 112 has not seen since the feature was not learned during the compression process. Accordingly, a difference may occur between the input and output (i. E., The input vector 220, 320, or 500) and the resulting information, and eventually the recall rate may be calculated to be low. If the recall rate is higher than the threshold value, the processor 112 may determine that there is no abnormality in the time series data or the input vector 220, 320, or 500.

실시예에 있어서, 처리기(112)는 클러스터 구성 양상을 관제할 수 있다. 달리 표현하면, 처리기(112)는 클러스터링 형태 변화를 추적할 수 있다. 이에 대해선 도 8을 참조하면서 설명한다. In an embodiment, the processor 112 may control the cluster configuration aspect. In other words, the processor 112 can track changes in clustering form. This will be described with reference to FIG.

도 8에 처리기(112)에 구현된 CNN 기반 오토인코더가 도시된다.A CNN-based auto-encoder implemented in processor 112 is shown in FIG.

도 8에 도시된 예에서, 인코더(710)가 입력 벡터로부터 특징 A 내지 특징 C을 추출하여 압축할 수 있다. 처리기(112)는 압축된 특징 A 내지 특징 C를 기초로 클러스터링을 수행하여 클러스터들(810 내지 812)을 생성할 수 있다. 처리기(112)는 이전 클러스터들(820 내지 823)과 클러스터들(810 내지 812)을 통해 이상 상황이 발생한 것을 의심할 수 있다. 달리 표현하면, 처리기(112)는 현재 압축된 특징들이 이전에 압축된 특징들과 양상이 다르기 때문에, 현재 이상 상황이 발생하였다고 의심할 수 있다. 만약, 처리기(112)는 입력 벡터를 처리하는 동안 이전 클러스터들(820 내지 823)과 동일한 클러스터들을 생성한 경우, 현재 이상 상황이 발생하지 않았다고 판단할 수 있다.In the example shown in Fig. 8, the encoder 710 can extract and compress features A to C from the input vector. The processor 112 may perform clustering based on the compressed features A through C to generate clusters 810 through 812. The processor 112 may suspect that an abnormal situation has occurred through the previous clusters 820 to 823 and clusters 810 to 812. [ In other words, the processor 112 may suspect that the current anomaly has occurred since the currently compressed features are different in appearance from the previously compressed features. If the processor 112 generates the same clusters as the previous clusters 820 through 823 while processing the input vector, it can determine that the current abnormal situation has not occurred.

도 9는 일 실시예에 따른 처리 장치를 설명하기 위한 블록도이다.9 is a block diagram for explaining a processing apparatus according to an embodiment.

도 9를 참조하면, 일 실시예에 따른 처리 장치(900)는 메모리(910) 및 컨트롤러(920)를 포함한다.9, a processing apparatus 900 according to an embodiment includes a memory 910 and a controller 920. [

처리 장치(900)는 처리기(112)에 대응된다.The processing device 900 corresponds to the processor 112.

메모리(910)는 CNN 기반 처리 모델을 저장할 수 있다. 달리 표현하면, 메모리(910)는 CNN 기반 처리 모델 내의 최적화된 가중치들을 저장할 수 있다. CNN 기반 처리 모델은 상술한 CNN 기반 오토인코더에 해당할 수 있다. 메모리(910)에 저장된 가중치들은 도 6을 통해 설명한 학습 과정을 통해 미리 정해진 주기마다 최적화 또는 학습될 수 있다. The memory 910 may store a CNN-based processing model. In other words, the memory 910 may store optimized weights in the CNN-based processing model. The CNN-based processing model may correspond to the CNN-based auto encoder described above. The weights stored in the memory 910 can be optimized or learned every predetermined period through the learning process described with reference to FIG.

컨트롤러(920)는 시계열 데이터로부터 생성된 입력 벡터 및 CNN 기반 처리 모델을 이용하여 결과 정보를 도출한다. 이 때, 컨트롤러(920)는 입력 벡터를 기초로 인코딩을 수행하여 해당 입력 벡터의 적어도 하나의 특징을 압축하고, 압축된 특징을 기초로 디코딩을 수행하여 결과 정보를 도출한다. The controller 920 derives the result information using the input vector generated from the time-series data and the CNN-based processing model. At this time, the controller 920 performs encoding based on the input vector, compresses at least one feature of the input vector, and performs decoding based on the compressed feature to derive the result information.

컨트롤러(920)는 결과 정보가 입력 벡터를 얼마나 재현했는지를 나타내는 재현율을 계산할 수 있다. 컨트롤러(920)는 계산된 재현율을 통해 희소 데이터를 감지(또는 탐지)하여 이상 상황이 발생하였는지를 의심할 수 있다. The controller 920 can calculate the recall rate indicating how much the result information reproduces the input vector. The controller 920 may detect (or detect) the sparse data through the calculated recall rate to suspect that an abnormal situation has occurred.

또한, 컨트롤러(920)는 압축된 특징에 기반한 클러스터링의 형태와 이전 클러스터링의 형태를 통해 클러스터링 형태 변화를 감지할 수 있다. 이에 대해선 도 8을 통해 설명하였으므로, 자세한 설명을 생략한다.In addition, the controller 920 can detect clustering form changes through the type of clustering based on the compressed characteristics and the type of previous clustering. Since this has been described with reference to FIG. 8, a detailed description will be omitted.

도 1 내지 도 8을 통해 기술된 사항들은 도 9를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 through 8 can be applied to the matters described with reference to FIG. 9, so that a detailed description will be omitted.

도 10은 일 실시예에 따른 처리 방법의 일례를 설명하기 위한 순서도이다.10 is a flowchart for explaining an example of a processing method according to an embodiment.

도 10을 통해 설명할 처리 방법은 처리 장치(900) 또는 처리기(112)에 의해 수행된다.The processing method to be described with reference to FIG. 10 is performed by the processing apparatus 900 or the processor 112.

도 10을 참조하면, 처리 장치(900)(또는 처리기(112))는 시계열 데이터를 벡터로 표현한 입력 벡터를 수신한다(1010).Referring to FIG. 10, the processing apparatus 900 (or the processor 112) receives an input vector representing a time series data as a vector (1010).

처리 장치(900)(또는 처리기(112))는 수신된 입력 벡터를 기초로 인코딩을 수행하여 수신된 입력 벡터의 적어도 하나의 특징을 압축한다(1020).The processing unit 900 (or processor 112) performs an encoding based on the received input vector to compress 1020 the at least one feature of the received input vector.

처리 장치(900)(또는 처리기(112))는 압축된 특징을 기초로 디코딩을 수행하여 결과 정보를 도출한다(1030).The processing unit 900 (or the processor 112) performs decoding based on the compressed characteristic to derive the result information (1030).

처리 장치(900)(또는 처리기(112))는 도출된 결과 정보 및 입력 벡터를 기초로 재현율을 계산할 수 있고, 계산된 재현율을 기초로 게임 관제(예를 들어, 게임 로그, 서버 로그, 보안 로그 등의 모니터링)를 수행할 수 있다.The processing unit 900 (or the processor 112) can calculate the recall rate based on the derived result information and the input vector and calculate the recall rate based on the recall rate and the game control (e.g., game log, server log, Etc.) can be performed.

도 1 내지 도 9를 통해 기술된 사항들은 도 10을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 through 9 can be applied to the matters described with reference to FIG. 10, so that a detailed description thereof will be omitted.

도 11은 일 실시예에 따른 처리 방법의 다른 일례를 설명하기 위한 순서도이다.11 is a flowchart for explaining another example of a processing method according to an embodiment.

도 11을 통해 설명할 처리 방법은 서버(110)에 의해 수행된다. The processing method to be described with reference to FIG. 11 is performed by the server 110. FIG.

도 11을 참조하면, 서버(110)는 벡터 생성기(111)를 이용하여 시계열 데이터로부터 입력 벡터를 생성한다(1110).Referring to FIG. 11, the server 110 generates an input vector from time series data using a vector generator 111 (1110).

서버(110)는 처리기(112)를 이용하여 해당 입력 벡터에 대응되는 결과 정보를 도출한다(1120). 이 때, 처리기(112)는 해당 입력 벡터를 기초로 인코딩을 수행하여 해당 입력 벡터의 적어도 하나의 특징을 압축하고, 압축된 특징을 기초로 디코딩을 수행하여 결과 정보를 도출한다.The server 110 derives result information corresponding to the input vector using the processor 112 (1120). At this time, the processor 112 performs encoding based on the input vector, compresses at least one feature of the input vector, and performs decoding based on the compressed feature to derive the result information.

서버(110)는 도출된 결과 정보 및 입력 벡터를 기초로 재현율을 계산할 수 있다. 또한, 서버(110)는 계산된 재현율을 기초로 게임 관제(예를 들어, 게임 로그, 서버 로그, 보안 로그 등의 모니터링)를 수행할 수 있다. The server 110 may calculate the recall rate based on the derived result information and the input vector. In addition, the server 110 may perform game control (for example, monitoring a game log, a server log, a security log, and the like) based on the calculated recall rate.

도 1 내지 도 9를 통해 기술된 사항들은 도 10을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 through 9 can be applied to the matters described with reference to FIG. 10, so that a detailed description thereof will be omitted.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

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

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

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

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

Claims (19)

시계열 데이터들 각각에 포함된 시간 정보를 변환하는 단계;
상기 시계열 데이터들 각각에 포함된 게임 관련 로그 정보들 중 사용자 정의 필드들에 해당되는 로그 정보들 각각의 통계값을 계산하는 단계; 및
상기 변환된 시간 정보 및 상기 계산된 통계값을 기초로 입력 벡터를 생성하는 단계;
상기 입력 벡터를 기초로 인코딩을 수행하여 상기 입력 벡터의 적어도 하나의 특징(feature)을 압축하는 단계; 및
상기 압축된 특징을 기초로 디코딩을 수행하여 결과 정보를 도출하는 단계
를 포함하는,
서버의 동작 방법.
Converting time information contained in each of the time series data;
Calculating statistical values of log information corresponding to user defined fields among game related log information included in each of the time series data; And
Generating an input vector based on the transformed time information and the calculated statistical value;
Performing an encoding based on the input vector to compress at least one feature of the input vector; And
Performing decoding based on the compressed characteristic to derive result information
/ RTI >
How the server works.
제1항에 있어서,
상기 도출된 결과 정보가 상기 입력 벡터를 얼마나 재현했는지를 나타내는 재현율을 계산하는 단계
를 더 포함하는,
서버의 동작 방법.
The method according to claim 1,
Calculating a recall rate indicating how much the input vector is reproduced by the derived result information
≪ / RTI >
How the server works.
제1항에 있어서,
상기 압축된 특징에 기반한 클러스터링의 형태와 이전 클러스터링의 형태를 통해 클러스터링 형태 변화를 감지하는 단계
를 더 포함하는,
서버의 동작 방법.
The method according to claim 1,
Detecting clustering form changes through the type of clustering based on the compressed characteristics and the type of previous clustering
≪ / RTI >
How the server works.
삭제delete 제1항에 있어서,
상기 인코딩은 CNN(convolutional neural networks) 기반 오토인코더 내의 인코더에 의해 수행되고, 상기 디코딩은 상기 오토인코더 내의 디코더에 의해 수행되는,
서버의 동작 방법.
The method according to claim 1,
Wherein the encoding is performed by an encoder in a convolutional neural networks (CNN) based auto-encoder, the decoding being performed by a decoder in the auto-
How the server works.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 시계열 데이터들 각각에 포함된 시간 정보를 변환하고, 상기 시계열 데이터들 각각에 포함된 게임 관련 로그 정보들 중 사용자 정의 필드들에 해당되는 로그 정보들 각각의 통계값을 계산하며, 상기 변환된 시간 정보 및 상기 계산된 통계값을 기초로 입력 벡터를 생성하고, 상기 입력 벡터로부터 적어도 하나의 특징을 획득하며, 상기 획득된 특징을 압축하고, 상기 압축된 특징을 복호화하여 결과 정보를 도출하는 컨트롤러
를 포함하는,
서버.
The time information included in each of the time series data, calculates statistical values of log information corresponding to user defined fields among the game related log information included in each of the time series data, And a controller for generating an input vector based on the calculated statistic value, obtaining at least one feature from the input vector, compressing the obtained feature, and decoding the compressed feature to derive result information.
/ RTI >
server.
제11항에 있어서,
상기 컨트롤러는 상기 도출된 결과 정보가 상기 입력 벡터를 얼마나 재현했는지를 나타내는 재현율을 계산하는,
서버.
12. The method of claim 11,
Wherein the controller calculates a recall rate indicating how much the input vector is reproduced by the derived result information,
server.
제11항에 있어서,
상기 컨트롤러는 상기 압축된 특징에 기반한 클러스터링의 형태와 이전 클러스터링의 형태를 통해 클러스터링 형태 변화를 감지하는,
서버.
12. The method of claim 11,
Wherein the controller is configured to detect clustering form changes through a type of clustering based on the compressed characteristics and a type of previous clustering,
server.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020180105075A 2018-09-04 2018-09-04 Server and operating method of the same KR101988028B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180105075A KR101988028B1 (en) 2018-09-04 2018-09-04 Server and operating method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180105075A KR101988028B1 (en) 2018-09-04 2018-09-04 Server and operating method of the same

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190065182A Division KR20200027404A (en) 2019-06-03 2019-06-03 Processing method and processing apparatus

Publications (1)

Publication Number Publication Date
KR101988028B1 true KR101988028B1 (en) 2019-06-11

Family

ID=66846955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180105075A KR101988028B1 (en) 2018-09-04 2018-09-04 Server and operating method of the same

Country Status (1)

Country Link
KR (1) KR101988028B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210039231A (en) * 2019-10-01 2021-04-09 주식회사 씨티아이랩 Auto Encoder Ensemble Based Anomaly Detection Method and System
KR102271740B1 (en) * 2020-09-11 2021-07-02 주식회사 뉴로클 Method and apparatus for anomaly detection
KR20220134954A (en) * 2021-03-29 2022-10-06 주식회사 씨티아이랩 Auto Encoder Ensemble Based Anomaly Detection Method and System

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018049355A (en) * 2016-09-20 2018-03-29 株式会社東芝 Abnormality detector, learning device, abnormality detection method learning method, abnormality detection program and learning program
KR101888683B1 (en) * 2017-07-28 2018-08-14 펜타시큐리티시스템 주식회사 Method and apparatus for detecting anomaly traffic
JP6381768B1 (en) * 2017-11-20 2018-08-29 ヤフー株式会社 Learning device, learning method, learning program and operation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018049355A (en) * 2016-09-20 2018-03-29 株式会社東芝 Abnormality detector, learning device, abnormality detection method learning method, abnormality detection program and learning program
KR101888683B1 (en) * 2017-07-28 2018-08-14 펜타시큐리티시스템 주식회사 Method and apparatus for detecting anomaly traffic
JP6381768B1 (en) * 2017-11-20 2018-08-29 ヤフー株式会社 Learning device, learning method, learning program and operation program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
N. Liao, et al. Deep Convolutional Player Modeling on Log and Level Data. Proc. of the 12th International Conf. on the Foundations of Digital Games. Aug. 2017, pp.1-4* *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210039231A (en) * 2019-10-01 2021-04-09 주식회사 씨티아이랩 Auto Encoder Ensemble Based Anomaly Detection Method and System
KR102281819B1 (en) 2019-10-01 2021-07-26 주식회사 씨티아이랩 Auto Encoder Ensemble Based Anomaly Detection Method and System
KR102271740B1 (en) * 2020-09-11 2021-07-02 주식회사 뉴로클 Method and apparatus for anomaly detection
WO2022055100A1 (en) * 2020-09-11 2022-03-17 주식회사 뉴로클 Anomaly detection method and device therefor
KR20220134954A (en) * 2021-03-29 2022-10-06 주식회사 씨티아이랩 Auto Encoder Ensemble Based Anomaly Detection Method and System
KR102572192B1 (en) 2021-03-29 2023-08-29 주식회사 씨티아이랩 Auto Encoder Ensemble Based Anomaly Detection Method and System

Similar Documents

Publication Publication Date Title
KR101988028B1 (en) Server and operating method of the same
Xie et al. On-line anomaly detection with high accuracy
CN106778033B (en) A kind of Spark Streaming abnormal temperature data alarm method based on Spark platform
US11102162B2 (en) Systems and methods of facilitating live streaming of content on multiple social media platforms
US10397594B2 (en) Real-time processing of IoT data
JP2012194967A5 (en)
Kung et al. {CloudSense}: Continuous {Fine-Grain} Cloud Monitoring with Compressive Sensing
US10163257B2 (en) Constructing a 3D structure
US20140067360A1 (en) System And Method For On-Demand Simulation Based Learning For Automation Framework
US10182238B2 (en) Systems and methods for controlling video display
KR20220066993A (en) Recognition of behavioural changes of online services
CN110210386B (en) Video generation method for action migration and neural network training method and device
CN111104241A (en) Server memory anomaly detection method, system and equipment based on self-encoder
US10102642B2 (en) Image driver that samples high-resolution image data
EP3042288B1 (en) Analysis of parallel processing systems
Zabrovskiy et al. FAUST: fast per-scene encoding using entropy-based scene detection and machine learning
US10043100B2 (en) Logical sensor generation in a behavioral recognition system
KR101951026B1 (en) Processing method, processing apparatus, and server
CN115842636A (en) Network abnormal behavior monitoring method and device based on time sequence characteristics
KR20200027404A (en) Processing method and processing apparatus
CN114626426A (en) Industrial equipment behavior detection method based on K-means optimization algorithm
US20170280193A1 (en) Method and device for processing a streaming media file
CN110889445A (en) Video CDN hotlinking detection method and device, electronic equipment and storage medium
Almaraz-Rivera An Anomaly-based Detection System for Monitoring Kubernetes Infrastructures
da Costa et al. Improved blind automatic malicious activity detection in honeypot data

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant