KR20190060600A - Apparatus for supporting multi-dimensional data analysis through parallel processing and method for the same - Google Patents

Apparatus for supporting multi-dimensional data analysis through parallel processing and method for the same Download PDF

Info

Publication number
KR20190060600A
KR20190060600A KR1020170158951A KR20170158951A KR20190060600A KR 20190060600 A KR20190060600 A KR 20190060600A KR 1020170158951 A KR1020170158951 A KR 1020170158951A KR 20170158951 A KR20170158951 A KR 20170158951A KR 20190060600 A KR20190060600 A KR 20190060600A
Authority
KR
South Korea
Prior art keywords
tensor
characteristic
matrices
core tensor
threads
Prior art date
Application number
KR1020170158951A
Other languages
Korean (ko)
Other versions
KR102027034B1 (en
Inventor
강유
오세준
박남용
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020170158951A priority Critical patent/KR102027034B1/en
Publication of KR20190060600A publication Critical patent/KR20190060600A/en
Application granted granted Critical
Publication of KR102027034B1 publication Critical patent/KR102027034B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

According to an embodiment of the present invention, provided is a device for supporting multi-dimensional data analysis through parallel processing, comprising: a communication unit which collects multi-dimensional data having a plurality of properties; a characteristic matrix determining unit which updates and determines characteristic matrices corresponding to each of the properties and including information on hidden characteristics corresponding to each of the properties; a core tensor determining unit which determines one core tensor including relationship information among the hidden characteristics; and a calculation distributing unit which divides updating calculations for updating the characteristic matrices in order to minimize a loss function by division unit when updating the characteristic matrices, collects resource information on a plurality of threads to conduct parallel processing, and distributes and allocates the divided update calculations to the threads by considering the resource information. The present invention can increase calculation speed by removing noise of a core tensor.

Description

병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치 및 그 방법 {APPARATUS FOR SUPPORTING MULTI-DIMENSIONAL DATA ANALYSIS THROUGH PARALLEL PROCESSING AND METHOD FOR THE SAME}[0001] APPARATUS FOR SUPPORTING MULTI-DIMENSIONAL DATA ANALYSIS THROUGH PARALLEL PROCESSING AND METHOD FOR THE SAME [0002]

본 발명은 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치 및 그 방법에 관한 것으로, 병렬 처리를 통하여 고확장성, 고속 및 고정확도로 다차원 데이터에 상응하는 텐서를 분해함으로써 다차원 데이터의 분석을 지원하는 장치 및 그 방법에 관한 것이다.The present invention relates to an apparatus and method for supporting multidimensional data analysis through parallel processing, and more particularly, to an apparatus and method for supporting multidimensional data analysis by parallel processing, which supports decomposition of multidimensional data by decomposing tensors corresponding to multidimensional data with high scalability, Device and method thereof.

최근 빅데이터 분석을 통하여 사용자에게 맞춤형 추천을 제공하거나 트랜드를 분석하는 서비스 등에 대한 분야가 주목을 받고 있다. 이러한 빅 데이터의 구조를 살펴보면, 데이터의 축이 여러 개가 존재하는 다차원 배열의 형태가 많다. 예를 들어, 영화 평점 데이터는 (사용자, 영화, 시간; 평점)의 3차원적 구조를 가질 수 있다. 이러한 다차원적 구조는 수학 물리학에서 텐서(tensor)라고 불리는 모델로 표현되고 분석된다. 즉, 텐서란 1차원 이상의 다차원 배열(multi-dimensional array)을 의미하며, 특히 1차원의 경우 벡터(vector), 2차원의 경우 행렬(matrix)로도 불린다.Recently, attention has been paid to services for providing customized recommendation to users through the analysis of big data or analyzing trends. If we look at the structure of big data, there are many types of multidimensional arrays in which there are several axes of data. For example, the movie rating data may have a three-dimensional structure of (user, movie, time; rating). This multidimensional structure is expressed and analyzed in a model called a tensor in mathematical physics. That is, the tensor means a multi-dimensional array of one or more dimensions, and is called a vector in a one-dimensional case and a matrix in a two-dimensional case.

다차원의 배열로 구성된 텐서는 각 차원의 데이터가 늘어남에 따라 그 크기가 기하급수적으로 커지게 되며, 텐서의 희소도(sparsity)가 급격히 증가하게 된다. 희소 텐서(sparse tensor)는 텐서의 전체 규모에 비해 실제 포함된 데이터가 적은 텐서를 의미하며, 희소 텐서의 전체 규모가 아닌 희소도에 비례하는 복잡도를 가진 분석 방법을 설계하는 것이 필수적이다. 또한, 규모가 큰 텐서로부터 각 항목 간의 관계, 비어있는 원소의 예측 등을 수행하기 위한 효과적인 분석 방법이 필요하다. 이에 따라, 텐서를 분해하는 여러 기법들이 연구되었다.The tensor composed of multidimensional arrays grows exponentially as the data of each dimension increases, and the sparsity of the tensor increases sharply. A sparse tensor refers to a tensor with less data actually contained compared to the total size of the tensor, and it is essential to design an analysis method that has a complexity proportional to the degree of rareness rather than the full scale of the rare tensor. In addition, there is a need for an effective method of analyzing the relationship between each item and the prediction of empty elements from a large tensor. Accordingly, several techniques for decomposing tensors have been studied.

기존의 텐서 분해 기법들은 스케일, 속도, 메모리 및 정확도 측면에서 모두 만족스러운 효과를 갖지 못하였다. 예컨대, 스케일, 속도, 메모리에서 우위를 점하는 기법들은 정확도가 높지 않은 문제가 있었으며, 정확도를 높인 기법들은 스케일, 속도, 메모리의 한계가 발생하였다. 예컨대 특정 기법은 비어있는 원소에 대하여는 0으로 예측하여 수집되지 않은 데이터에 대한 예측이 불가능한 문제가 있었다. 특히, 큰 스케일의 텐서에 대하여는 텐서 분해 과정에서의 중간 데이터가 방대하게 발생하여 이른바 중간 데이터 폭발(Intermediate Data Explosion)의 문제가 발생한다. 따라서, 중간 데이터 폭발을 회피하면서 고속, 고확장성 및 고정확도의 텐서 분해 기법이 필요하다.Conventional tensor decomposition techniques have not been satisfactory in terms of scale, speed, memory, and accuracy. For example, techniques that outperform scale, speed, and memory have not been accurate enough, and techniques with increased accuracy have suffered scale, speed, and memory limitations. For example, there is a problem that a certain technique can not predict the data that is not collected by predicting the empty element as zero. Particularly, for a large-scale tensor, intermediate data in the tensor decomposition process is generated in a large scale, causing a problem of intermediate data exploitation (Intermediate Data Explosion). Therefore, there is a need for a high speed, high expandability, and high accuracy tensor decomposition technique while avoiding intermediate data explosion.

전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라할 수는 없다.The above-described background technology is technical information that the inventor holds for the derivation of the present invention or acquired in the process of deriving the present invention, and can not necessarily be a known technology disclosed to the general public prior to the filing of the present invention.

국내 등록특허공보 제10-1629395호Korean Patent Registration No. 10-1629395

본 발명의 목적은 병렬 처리를 통하여 다차원 데이터 분석을 지원하는 장치 및 그 방법을 제공하는 것이다.An object of the present invention is to provide an apparatus and method for supporting multidimensional data analysis through parallel processing.

또한, 본 발명의 목적은 반복되는 연산에 대하여 캐시를 이용하는 다차원 데이터 분석을 지원하는 장치 및 그 방법을 제공하는 것이다.It is also an object of the present invention to provide an apparatus and method for supporting multidimensional data analysis using a cache for repeated operations.

또한, 본 발명의 목적은 텐서 분해 알고리즘을 적용함에 있어서 코어 텐서의 노이즈를 제거하여 다차원 데이터 분석을 지원하는 장치 및 그 방법을 제공하는 것이다.It is another object of the present invention to provide an apparatus and method for supporting multidimensional data analysis by removing noise of a core tensor in applying a tensor decomposition algorithm.

본 발명의 일 실시예는, 복수 개의 속성들을 갖는 다차원 데이터를 수집하는 통신부; 상기 각각에 속성들에 대하여 한 개씩 대응되며, 상기 각각의 속성들에 상응하는 숨은 특징들에 대한 정보를 포함하는 특성 행렬들을 갱신하고 결정하는 특성 행렬 결정부; 상기 숨은 특징들 간의 관계 정보를 포함하는 한 개의 코어 텐서를 결정하는 코어 텐서 결정부; 및 상기 특성 행렬들을 갱신함에 있어서, 상기 특성 행렬들을 손실 함수를 최소화하도록 갱신하는 갱신 연산들을 분할 단위로 나누고, 병렬 처리를 수행할 복수의 쓰레드들에 대한 리소스 정보를 수집하고, 상기 리소스 정보를 고려하여 상기 쓰레드들에 분할된 갱신 연산들을 분배하여 할당하는 연산 분배부를 포함하는 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치를 제공한다.According to an embodiment of the present invention, there is provided a communication apparatus including: a communication unit for collecting multidimensional data having a plurality of attributes; A characteristic matrix determination unit for updating and determining characteristic matrices each corresponding to one of the attributes and including information about hidden features corresponding to the respective attributes; A core tensor determining unit determining a core tensor including relationship information between the hidden features; And updating the characteristic matrices by dividing the update operations for updating the characteristic matrices to minimize the loss function, dividing the update operations into divisional units, collecting resource information for a plurality of threads to be subjected to parallel processing, And allocating and allocating partitioned update operations to the threads. The present invention provides an apparatus for supporting multidimensional data analysis through parallel processing.

이때, 상기 분할 단위는 상기 특성 행렬들에 대한 행 단위이고, 상기 분할된 갱신 연산들은 갱신 대상 행에 상응하는 특성 행렬을 제외한 나머지 특성 행렬들과 상기 코어 텐서를 이용하여, 상기 갱신 대상 행을 상기 손실 함수를 최소화하도록 갱신하는 연산들일 수 있다.In this case, the division unit is a row unit for the characteristic matrices, and the divided update operations are performed by using the remaining characteristic matrices excluding the characteristic matrix corresponding to the row to be updated and the core tensor, To minimize the loss function.

이때, 상기 리소스 정보는 상기 쓰레드들 각각에 상응하는 연산 처리 능력, 현재 할당된 연산량 및 연산 처리 지연도 중 적어도 하나 이상을 포함할 수 있다.At this time, the resource information may include at least one of a computation processing capability corresponding to each of the threads, a currently allocated computation amount, and an operation processing delay.

이때, 반복되는 연산을 줄이기 위하여 상기 갱신 연산들에 포함된 연산들 중에서 기설정된 고반복 연산에 대한 연산 결과를 캐시(cache)하고, 상기 특성 행렬들이 갱신될 때 상기 갱신된 특성 행렬들을 이용하여 상기 캐시된 연산 결과를 갱신하는 캐싱 처리부를 더 포함하고, 상기 연산 분배부는 상기 쓰레드들에 상기 고반복 연산들을 분배하고, 상기 쓰레드들에 상기 캐시된 연산 결과를 이용하는 갱신 연산들을 분배할 수 있다.In this case, in order to reduce repetitive operations, an operation result for a predetermined high-order operation among the operations included in the update operations is cached, and when the feature matrices are updated, Wherein the operation distribution unit distributes the high-order operations to the threads and distributes the update operations using the cached operation result to the threads.

이때, 상기 코어 텐서의 각 원소들에 상응하는 에러 값들을 계산하고, 상기 에러 값들을 기반으로 상기 코어 텐서의 각 원소들 중에서 제거 대상 원소들을 선정하여 상기 코어 텐서에서 상기 제거 대상 원소들을 제거하는 잡음 제거부를 더 포함할 수 있다.At this time, error values corresponding to the respective elements of the core tensor are calculated, and the noise elimination target elements are removed from the core tensor by selecting elements to be removed from among the elements of the core tensor based on the error values And may further include a removal section.

본 발명에 따르면 다차원 데이터 분석을 지원하는 장치 및 그 방법에 의해, 병렬 처리를 통하여 큰 스케일의 다차원 데이터에 대하여도 고속 및 고정확도로, 각 속성 간의 연관 관계를 나타내는 코어 텐서와 각 속성의 숨은 특징들에 대한 정보를 포함하는 특성 행렬들을 획득할 수 있다.According to the present invention, there is provided an apparatus and method for supporting multi-dimensional data analysis. The multi-dimensional data analyzing apparatus includes a core tensor for indicating a relation between the respective attributes at high speed and high accuracy with respect to multi- ≪ / RTI > can be obtained.

또한, 본 발명은 병렬 처리를 통하여 다차원 데이터 분석을 지원하는 장치 및 그 방법에 의해, 반복되는 연산은 캐시를 이용함으로써 연산 속도를 더욱 높일 수 있다.In addition, according to the apparatus and method for supporting multidimensional data analysis through parallel processing, the present invention can further increase the operation speed by using a cache repeatedly.

또한, 본 발명은 병렬 처리를 통하여 다차원 데이터 분석을 지원하는 장치 및 그 방법에 의해, 텐서 분해 알고리즘을 적용함에 있어서 코어 텐서의 노이즈를 제거함으로써 연산 속도를 더욱 높일 수 있다.In addition, according to the apparatus and method for supporting multidimensional data analysis through parallel processing, the present invention can further increase the operation speed by removing the noise of the core tensor when applying the tensor decomposition algorithm.

도 1은 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 시스템의 구성을 나타낸 도면이다.
도 2는 도 1에 도시된 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치의 일 예를 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 텐서 분해 기법을 도식화한 도면이다.
도 4는 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 방법을 나타낸 동작 흐름도이다.
도 5는 도 4에 도시된 특성 행렬들을 갱신하는 단계의 일 예를 나타낸 동작 흐름도이다.
도 6은 종래의 텐서 분해 알고리즘의 일 예를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 텐서 분해 방법의 일 예를 나타낸 도면이다.
도 8은 도 7에 도시된 특성 행렬들을 갱신하는 과정의 일 예를 나타낸 도면이다.
도 9는 도 7에 도시된 코어 텐서의 노이즈를 제거하는 과정의 일 예를 나타낸 도면이다.
도 10은 본 발명의 일 실시예에서 특성 행렬들을 갱신하는 과정을 도식화한 도면이다.
도 11은 본 발명의 일 실시예에 따른 행 갱신 연산 과정을 나타낸 도면이다.
도 12 및 13은 코어 텐서의 원소들 각각에 상응하는 에러 값들의 분포를 나타낸 그래프와 에러 값들을 누적한 그래프이다.
도 14 내지 17은 본 발명의 일 실시예에 따른 텐서 분해 방법과 기존의 텐서 분해 방법들의 성능을 비교하는 도면이다.
도 18 및 19는 현실의 큰 스케일의 다차원 데이터에 대하여 본 발명의 일 실시예에 따른 텐서 분해 방법과 기존의 텐서 분해 방법들의 성능을 비교하는 도면이다.
도 20 및 21은 본 발명의 일 실시예에 따른 텐서 분해 방법에서 캐시 기능을 이용함에 따른 성능을 비교하는 도면이다.
도 22 및 23은 본 발명의 일 실시예에 따른 텐서 분해 방법에서 코어 텐서의 노이즈를 제거하는 기능을 이용함에 따른 성능을 비교하는 도면이다.
도 24 및 25는 본 발명의 일 실시예에 따른 텐서 분해 방법에서 쓰레드의 개수와 성능의 상관 관계를 나타낸 도면이다.
도 26 및 27은 현실의 큰 스케일의 다차원 데이터에 대하여 본 발명의 일 실시예에 따른 텐서 분해 방법과 기존의 텐서 분해 방법들의 정확도를 비교하는 도면이다.
1 is a block diagram of a system for supporting multi-dimensional data analysis through parallel processing according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating an apparatus for supporting multi-dimensional data analysis through the parallel processing shown in FIG. 1. Referring to FIG.
FIG. 3 is a diagram illustrating a tensor decomposition technique according to an embodiment of the present invention.
4 is a flowchart illustrating a method of supporting multidimensional data analysis through parallel processing according to an exemplary embodiment of the present invention.
5 is an operation flowchart showing an example of a step of updating characteristic matrices shown in FIG.
6 is a diagram showing an example of a conventional tensor decomposition algorithm.
7 is a view illustrating an example of a tensor decomposition method according to an embodiment of the present invention.
FIG. 8 is a diagram illustrating an example of a process of updating the characteristic matrices shown in FIG.
9 is a view illustrating an example of a process of removing noise from the core tensor shown in FIG.
10 is a diagram illustrating a process of updating characteristic matrices in an embodiment of the present invention.
11 is a diagram illustrating a row update calculation process according to an embodiment of the present invention.
12 and 13 are graphs showing the distribution of error values corresponding to each of the elements of the core tensor and accumulated error values.
FIGS. 14 through 17 are views for comparing the performance of the tensor decomposition method and the conventional tensor decomposition methods according to an embodiment of the present invention.
FIGS. 18 and 19 are diagrams for comparing the performance of the conventional tensor decomposition methods with the tensor decomposition method according to an embodiment of the present invention with respect to real-scale large-scale multi-dimensional data.
20 and 21 are diagrams comparing performance according to the use of the cache function in the tensor decomposition method according to an embodiment of the present invention.
FIGS. 22 and 23 are diagrams for comparing performance according to the use of the noise removing function of the core tensor in the tensor decomposition method according to an embodiment of the present invention.
24 and 25 are views showing the correlation between the number of threads and performance in the tensor decomposition method according to an embodiment of the present invention.
Figs. 26 and 27 are diagrams for comparing the accuracy of the conventional tensor decomposition methods with the tensor decomposition method according to an embodiment of the present invention with respect to actual large-scale multi-dimensional data.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다. The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated and described in the drawings. The effects and features of the present invention and methods of achieving them will be apparent with reference to the embodiments described in detail below with reference to the drawings. Hereinafter, a repeated description, a known function that may obscure the gist of the present invention, and a detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, the shapes and sizes of the elements in the drawings and the like can be exaggerated for clarity.

그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성되어 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.However, the present invention is not limited to the embodiments described below, but all or some of the embodiments may be selectively combined and implemented in various forms. In the following embodiments, the terms first, second, and the like are used for the purpose of distinguishing one element from another element, not the limitative meaning. Also, the singular expressions include plural expressions unless the context clearly dictates otherwise. Also, the terms include, including, etc. mean that there is a feature, or element, recited in the specification and does not preclude the possibility that one or more other features or components may be added.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like reference numerals refer to like or corresponding components throughout the drawings, and a duplicate description thereof will be omitted .

도 1은 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 시스템(1)의 구성을 나타낸 도면이다.1 is a diagram illustrating a configuration of a system 1 supporting multidimensional data analysis through parallel processing according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 시스템(1)에서 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 다차원 데이터 제공 장치(200) 및 데이터 분석 장치(300)와 상호 연결된다. 또한, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 하나 이상의 연산 장치들(400)과 상호 연결될 수 있다.Referring to FIG. 1, an apparatus 100 for supporting multi-dimensional data analysis through parallel processing in a system 1 supporting multi-dimensional data analysis through parallel processing according to an embodiment of the present invention includes a multi-dimensional data providing apparatus 200 And the data analysis apparatus 300 are interconnected. In addition, an apparatus 100 supporting multidimensional data analysis through parallel processing may be interconnected with one or more computing devices 400.

본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 분해 대상 텐서에 상응하는 다차원 데이터를 입력 받고, 대상 텐서를 분해하여 생성할 하나의 코어 텐서와 특성 행렬들을 초기화한다. 병렬 처리를 수행할 쓰레드들(Threads)의 리소스 정보를 획득하고, 리소스 정보를 이용하여 손실 함수를 최소화하는 각 특성 행렬에 대한 갱신 연산들을 쓰레드들에 분할하여 할당한다. 각 쓰레드들에서 갱신 연산들이 수행되면 갱신 연산들의 결과들을 수집하여 특성 행렬들을 갱신한다. 특성 행렬들에 대한 갱신이 종료되면 특성 행렬들을 직교화(Orthogonalize)하고, 직교화에 상응하여 코어 텐서를 갱신한다. 이에 따라, 대상 텐서는 코어 텐서와 특성 행렬들로 분해된다. 특히, 분해의 대상이 되는 대상 텐서는 희소(sparse)형의 텐서일 수 있다. The apparatus 100 for supporting multidimensional data analysis through parallel processing according to an embodiment of the present invention receives multidimensional data corresponding to the decomposition target tensor and decomposes the target tensor to generate one core tensor and characteristic matrices Initialize. Acquires resource information of threads to perform parallel processing, and allocates update operations for each characteristic matrix that minimizes a loss function using resource information to threads. When update operations are performed on each of the threads, the results of the update operations are collected to update the characteristic matrices. When the update of the characteristic matrices is completed, the characteristic matrices are orthogonalized and the core tensor is updated corresponding to the orthogonalization. Accordingly, the target tensor is decomposed into the core tensor and the characteristic matrices. In particular, the target tensor to be decomposed can be a sparse type tensor.

여기서, 다차원 데이터는 하나의 차원이 하나의 속성(attribute)에 대응되며, 속성에는 예컨대 영화 종류, 시간, 사용자 등이 포함될 수 있다. 다차원 데이터에 상응하는 대상 텐서는 코어 텐서와 특성 행렬들로 분해되며, 각 특성 행렬은 대응되는 속성에 대한 숨은 특징들에 대한 정보를 포함하며, 코어 텐서는 각 속성의 각 숨은 특징들에 대한 상관 관계에 대한 정보를 포함할 수 있다. 코어 텐서와 특성 행렬들을 이용하여 다차원 데이터의 각 속성들에 대한 분석함으로써, 추천, 군집화, 트렌드 분석 등이 가능하다. 즉, 다차원 데이터 분석을 지원하기 위하여 다차원 데이터에 상응하는 텐서를 분해할 수 있고, 이하에서 텐서 분해 방법은 다차원 데이터 분석을 지원하기 위하여 코어 텐서와 특징 행렬들을 결정하는 방법을 의미할 수 있다.Here, one dimension corresponds to one attribute of the multidimensional data, and the attribute may include, for example, a movie type, a time, a user, and the like. The target tensor corresponding to the multidimensional data is decomposed into core tensor and characteristic matrices, and each characteristic matrix includes information on hidden features of the corresponding attribute, and the core tensor is a correlation And may include information about the relationship. By analyzing the properties of multidimensional data using the core tensor and property matrix, recommendation, clustering, and trend analysis are possible. That is, in order to support multidimensional data analysis, the tensor corresponding to the multidimensional data can be decomposed. Hereinafter, the tensor decomposition method may mean a method of determining the core tensor and the feature matrices to support multidimensional data analysis.

하기 표 1은 본 명세서에서 이용되는 기호들을 나타낸다.Table 1 below shows the symbols used in this specification.

기호sign 정의Justice X,

Figure pat00001
X,
Figure pat00001
대상 텐서 (
Figure pat00002
)
Target tensor
Figure pat00002
)
G,
Figure pat00003
G,
Figure pat00003
코어 텐서 (
Figure pat00004
)
Core tensor
Figure pat00004
)
NN X의 차수(order)The order of X In I n X의 n모드에서의 차원수(dimensionality)The dimensionality of X in n modes (dimensionality) Jn J n G의 n모드에서의 차원수(dimensionality)The dimensionality of G in n modes, A(n) A (n) n번째 특성 행렬 (
Figure pat00005
)
The nth characteristic matrix (
Figure pat00005
)
Figure pat00006
Figure pat00006
A(n)의 (in, jn)번째 원소The (i n , j n ) th element of A (n)
ΩΩ X의 관측 가능한 원소들의 집합A set of observable elements of X
Figure pat00007
Figure pat00007
n모드의 인덱스가 in인 관측 가능한 원소들의 집합A set of observable elements whose index in n mode is i n
|Ω|| Ω | X의 관측 가능한 원소들의 개수The number of observable elements of X |G|| G | G의 관측 가능한 원소들의 개수The number of observable elements of G λλ 특성 행렬에 대한 정규화(regularization) 파라미터Regularization parameters for the property matrix ||X||X || X의 프로베니우스 노옴(Frobenius Norm)X's Frobenius Norm TT 쓰레드의 개수Number of threads αalpha X의 (i1, …, iN) 엔트리The (i 1 , ..., i N ) entry of X βbeta G의 (j1, …, jN) 엔트리The (j 1 , ..., j N ) entries of G PresPres 캐시 테이블 (
Figure pat00008
)
Cache table (
Figure pat00008
)
pp 절단률(truncation rate)The truncation rate

이때, 병렬 처리를 수행할 쓰레드들은 다차원 데이터 분석을 지원하는 장치(100)에 포함된 프로세서에 포함된 쓰레드들이나, 다차원 데이터 분석을 지원하는 장치(100)와 별도로 존재하는 연산 장치들(400)에 포함된 쓰레드들 중에서 적어도 하나 이상을 포함할 수 있다. 즉, 다차원 데이터 분석을 지원하는 장치(100)에 포함된 복수 개의 쓰레드들 만을 이용할 수도 있고, 연산 장치들(400)에 포함된 쓰레드들을 적어도 하나 이상 포함하여 이용할 수도 있다.At this time, the threads to be subjected to the parallel processing may be threads included in the processor included in the apparatus 100 supporting multidimensional data analysis, or may be connected to the computing devices 400 existing separately from the apparatus 100 supporting the multidimensional data analysis And at least one of the included threads. That is, only a plurality of threads included in the apparatus 100 supporting multidimensional data analysis may be used, or at least one thread included in the computing devices 400 may be used.

이때, 리소스 정보에는 각 쓰레드들에 대한 연산 처리 능력(예컨대, 클럭 수), 현재 할당된 연산량, 연산 처리 지연도 등이 포함될 수 있다.At this time, the resource information may include an operation processing capability (e.g., a clock number) for each of the threads, a currently allocated operation amount, an operation processing delay time, and the like.

이때, 특성 행렬들은 대상 텐서의 차수(order)만큼 생성 및 초기화할 수 있다. 즉, 3차 텐서에 대하여는 3개의 특성 행렬을 초기화할 수 있다. 여기서, 각 특성 행렬들은 대상 텐서의 각 축(axis)에 상응하는 특성 행렬이다.At this time, the characteristic matrices can be generated and initialized by the order of the target tensor. That is, three characteristic matrices can be initialized for the third order tensor. Here, each characteristic matrix is a characteristic matrix corresponding to each axis of the target tensor.

이때, 코어 텐서는 대상 텐서보다 크기가 작고, 밀도가 높을 수 있다.At this time, the core tensor may be smaller in size and higher in density than the target tensor.

이때, 코어 텐서와 특성 행렬들에 대한 초기화는 각 요소 혹은 원소들을 0부터 1 사이의 임의의 숫자로 초기화될 수 있다.At this time, initialization of the core tensor and characteristic matrices can be initialized to an arbitrary number between 0 and 1 for each element or element.

이때, 특성 행렬들의 직교화는 특성 행렬들 각각에 대하여 QR 분해(QR Decomposition)을 수행하고, Q 행렬들을 각각에 상응하는 특성 행렬로 갱신하고, 코어 텐서에 R 행렬들을 n모드 곱셈을 통하여 코어 텐서를 갱신할 수 있다. 즉, QR 분해를 통하여 획득하는 Q 행렬은 열 방향 직교 정규 행렬(Columnwise Orthonormal Matrix)이므로, 이를 통하여 직교화된 특성 행렬을 획득할 수 있다. 그리고, QR 분해를 통하여 획득하는 R 행렬은 상삼각 행렬(Upper Triangular Matrix)이다. 특히, n번째 특성 행렬을 QR 분해를 통하여 R 행렬은 코어 텐서와 n모드 곱셈을 수행하여 갱신할 수 있다.At this time, the orthogonalization of the characteristic matrices is performed by performing QR decomposition for each of the characteristic matrices, updating the Q matrices to corresponding characteristic matrices, and applying the R matrices to the core tensor through the n-mode multiplication, Can be updated. That is, since the Q matrix obtained through the QR decomposition is a columnwise orthonormal matrix, the orthogonalized property matrix can be obtained through the Q matrix. The R matrix obtained through QR decomposition is an Upper Triangular Matrix. In particular, the R matrix can be updated by performing the n-mode multiplication with the core tensor through the QR decomposition of the n-th characteristic matrix.

이때, 갱신 연산들에 대한 분할 단위는 각 특성 행렬들에 대한 행 단위로 설정할 수 있다. 이는, 각 특성 행렬들에 대한 연산을 이에 따라 특성 행렬들의 각 행들에 대한 갱신 연산을 분할하여 병렬적으로 수행할 수 있다. 이는, 종래에는 손실 함수를 최소화하기 위하여 특성 행렬 전체에 대하여 연산을 수행하여야 하였으나, 본 발명에서 제안하는 방법에 의하는 경우에는 특성 행렬들의 각 행별로 손실 함수를 최소화하는 연산을 수행하여도, 이들이 서로 독립적이기 때문에, 결국 특성 행렬 전체에 대한 손실 함수를 최소화할 수 있기 때문이다.At this time, the division unit for the update operations can be set in units of rows for each characteristic matrix. This can be performed in parallel by dividing the update operation for each row of characteristic matrices by an operation on each characteristic matrix. This is because, in the conventional method, the entire characteristic matrix is required to be minimized in order to minimize the loss function. However, according to the method proposed by the present invention, even if an operation for minimizing the loss function is performed for each row of the characteristic matrix, Since they are independent of each other, the loss function over the entire characteristic matrix can be minimized.

이때, 갱신 연산들은 갱신 대상이 되는 특성 행렬을 제외한 나머지 특성 행렬들과 코어 텐서를 이용하여 손실 함수를 최소화하는 값으로 갱신 대상 특성 행렬을 갱신하는 연산을 의미할 수 있다. 예컨대, 총 N개의 특성 행렬들 중에서 n번째 특성 행렬을 갱신하고자 하는 경우에는 n번째 특성 행렬을 제외한 (N-1)개의 나머지 특성 행렬들과 코어 텐서를 이용하여 손실 함수를 최소화하는 값으로 n번째 특성 행렬을 갱신하는 연산을 수행할 수 있다. 이에 대한 구체적인 설명은 후술한다.At this time, the update operations may be an operation of updating the update target characteristic matrix to a value minimizing the loss function using the remaining characteristic matrices except for the characteristic matrix to be updated and the core tensor. For example, when it is desired to update the n-th characteristic matrix among the N characteristic matrices, a value minimizing the loss function using (N-1) remaining characteristic matrices excluding the n-th characteristic matrix and the core tensor, It is possible to perform an operation of updating the characteristic matrix. A detailed description thereof will be described later.

선택적 실시예에서, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 쓰레드들에 대하여 갱신 연산들을 분배하여 할당할 때, 갱신 연산들에 포함된 연산들 중에서 기설정된 고반복 연산들을 쓰레드들에 대하여 우선적으로 연산하도록 분배하여 할당하고, 고반복 연산에 대한 연산 결과를 캐시(cache)하고, 쓰레드들에 대하여 캐시된 데이터를 이용하여 갱신 연산들을 수행할 것을 명령할 수 있다. 또한, 특성 행렬들을 갱신함에 있어서 갱신된 특성 행렬들을 이용하여 캐시된 데이터를 갱신하도록 명령할 수 있다. 즉, 반복적으로 수행되는 연산들을 고반복 연산으로 설정하고 이를 미리 계산하여 저장해놓음으로써, 반복적인 연산을 수행하는데 소모되는 리소스와 시간을 절약할 수 있다. 여기서, 고반복 연산은 1개의 갱신 연산에 포함된 복수의 연산들 중에서 일부를 의미할 수 있다. 따라서, 각각의 갱신 연산마다 고반복 연산과 그렇지 않은 연산들로 구분될 수 있다.In an alternative embodiment, the apparatus 100 for supporting multidimensional data analysis through parallel processing, when distributing and allocating update operations to threads, may perform a pre-determined high-order operation among the operations included in the update operations to threads And to instruct update operations to be performed using the cached data for the threads. In this case, the update operation is not performed. Also, in updating the characteristic matrices, it is possible to instruct to update the cached data using updated characteristic matrices. That is, it is possible to save the resources and time consumed in performing the iterative operations by setting the operations repeatedly performed as the high-permutation operations and storing them in advance. Here, the high-permutation operation may mean a part of a plurality of operations included in one update operation. Therefore, each update operation can be classified into a high-permutation operation and an operation that is not performed.

선택적 실시예에서, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 쓰레드들에 대하여 갱신 연산들을 분배하여 할당할 때, 코어 텐서의 각 원소들에 상응하는 에러 값들을 계산하고, 에러 값들을 기반으로 코어 텐서의 각 원소들 중에서 제거 대상 원소들을 선정하고, 코어 텐서에서 제거 대상 원소들을 제거할 수 있다. 즉, 갱신 연산들을 반복하는 과정에서 에러 값 계산을 통한 코어 텐서의 노이즈(noise)를 제거함으로써, 코어 텐서의 0이 아닌 원소의 숫자들이 줄어들고 이에 따라 갱신 연산들에 소모되는 자원과 시간을 절약할 수 있다.In an alternative embodiment, the apparatus 100 for supporting multidimensional data analysis through parallel processing may calculate error values corresponding to the respective elements of the core tensor when distributing and assigning update operations to threads, , The removal target elements are selected from the respective elements of the core tensor, and the removal target elements are removed from the core tensor. That is, by removing the noise of the core tensor through error value calculation in the course of repeating the update operations, the number of non-zero elements of the core tensor is reduced, thereby saving resources and time consumed in update operations .

이때, 제거 대상 원소들을 제거한다는 의미는 해당 원소의 값을 0으로 설정하는 것을 의미할 수 있다.In this case, removal of the elements to be removed means to set the value of the corresponding element to zero.

이때, 제거 대상 원소들의 선정은, 에러 값이 높은 순서대로 기설정된 비율만큼 혹은 기설정된 개수만큼을 제거 대상 원소들로 선정할 수 있다. 또한, 제거 대상 원소들의 선정을 에러 값이 기설정된 기준치를 상회하는 원소들을 제거 대상 원소들로 선정할 수 있다.At this time, the selection of the elements to be removed can be performed by a predetermined ratio or a predetermined number of elements to be removed in the order of higher error values. In addition, it is possible to select the elements to be removed as the elements to be removed as the elements whose error value exceeds the preset reference value.

다차원 데이터 제공 장치(200)는 텐서 분해의 대상이 되는 텐서에 상응하는 다차원 데이터를 제공하는 장치로, 다차원 데이터를 저장하고 있는 데이터베이스를 포함할 수 있다. 또한, 다차원 데이터 제공 장치(200)는 다차원 데이터를 수집하여 저장할 수 있다.The multidimensional data providing apparatus 200 is an apparatus for providing multidimensional data corresponding to a tensor to be subjected to tensor decomposition, and may include a database storing multidimensional data. In addition, the multidimensional data providing apparatus 200 can collect and store multidimensional data.

데이터 분석 장치(300)는 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)에서 대상 텐서를 분해한 결과들인 코어 텐서와 특성 행렬들을 이용하여, 상응하는 다차원 데이터에 대한 분석을 수행하는 장치이다. 예컨대, 다차원 데이터에 대한 트렌드 분석, 군집화, 추천, 원소 값 예측 등의 분석을 수행할 수 있다.The data analyzing apparatus 300 analyzes the corresponding multidimensional data using the core tensor and the characteristic matrices, which are the results of decomposing the target tensor in the apparatus 100 supporting multidimensional data analysis through parallel processing . For example, it is possible to perform analysis such as trend analysis, clustering, recommendation, and element value prediction for multidimensional data.

연산 장치(400)는 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)와 구분되어 존재하는 연산이 가능한 장치이다. 이는 다차원 데이터 분석을 지원하는 장치(100)의 연산을 대신 수행해주는 역할을 할 수 있으며, 분산 처리 시스템을 의미할 수 있다.The computing device 400 is a device capable of performing computation existing in the apparatus 100 separated from the apparatus 100 supporting multi-dimensional data analysis through parallel processing. This may be a function for performing operations of the apparatus 100 supporting multidimensional data analysis, and may mean a distributed processing system.

도 2는 도 1에 도시된 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)의 일 예를 나타낸 블록도이다.FIG. 2 is a block diagram illustrating an example of an apparatus 100 for supporting multi-dimensional data analysis through the parallel processing shown in FIG.

도 2를 참조하면, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 제어부(110), 통신부(120), 메모리(130), 연산 분배부(140), 특성 행렬 결정부(150), 코어 텐서 결정부(160), 캐싱 처리부(170) 및 잡음 제거부(180) 등을 포함한다.Referring to FIG. 2, an apparatus 100 for supporting multidimensional data analysis through parallel processing according to an embodiment of the present invention includes a controller 110, a communication unit 120, a memory 130, an operation distribution unit 140, A characteristic matrix determiner 150, a core tensor determiner 160, a caching processor 170, and a noise eliminator 180.

상세히, 제어부(110)는 일종의 중앙처리장치로서 병렬 처리를 통한 텐서 분해의 전체 과정을 제어한다. 즉, 제어부(110)는 연산 분배부(140), 특성 행렬 결정부(150), 코어 텐서 결정부(160), 캐싱 처리부(170) 및 잡음 제거부(180) 등을 제어하여 다양한 기능을 제공할 수 있다.In detail, the control unit 110 is a kind of central processing unit that controls the entire process of tensor decomposition through parallel processing. That is, the control unit 110 controls the operation distribution unit 140, the characteristic matrix determination unit 150, the core tensor determination unit 160, the caching processing unit 170, and the noise removing unit 180 to provide various functions can do.

여기서, 제어부(110)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.Here, the control unit 110 may include any kind of device capable of processing data, such as a processor. Herein, the term " processor " may refer to a data processing apparatus embedded in hardware, for example, having a circuit physically structured to perform a function represented by a code or an instruction contained in the program. As an example of the data processing apparatus built in hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, an application-specific integrated circuit (ASIC) circuit, and a field programmable gate array (FPGA), but the scope of the present invention is not limited thereto.

통신부(120)는 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)와 다차원 데이터 제공 장치(200), 데이터 분석 장치(300) 및 연산 장치(400) 간의 송수신 신호를 전송하는데 필요한 통신 인터페이스를 제공한다.The communication unit 120 includes a communication interface required for transmitting and receiving signals between the apparatus 100 supporting multidimensional data analysis through parallel processing, the multidimensional data providing apparatus 200, the data analysis apparatus 300, and the calculation apparatus 400 to provide.

여기서, 통신부(120)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다. Here, the communication unit 120 may be a device including hardware and software necessary to transmit / receive a signal such as a control signal or a data signal through a wired / wireless connection with another network device.

메모리(130)는 제어부(110)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 여기서, 메모리(130)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The memory 130 performs a function of temporarily or permanently storing data processed by the controller 110. Here, the memory 130 may include magnetic storage media or flash storage media, but the scope of the present invention is not limited thereto.

이때, 메모리(130)는 텐서 분해 과정 중에 발생하는 중간 데이터를 저장할 수 있다. 특히, 메모리(130)는 캐시 기능을 이용하여 고반복 연산을 미리 계산한 경우에, 고반복 연산에 대한 결과를 캐시할 수 있다.At this time, the memory 130 may store intermediate data generated during the tensor decomposition process. In particular, the memory 130 may cache the results for the high-permutation operation when the high-permutation operation is precomputed using the cache function.

연산 분배부(140)는 대상 텐서의 분해 결과물인 코어 텐서와 특성 행렬들에 대한 갱신 연산들을 쓰레드들에 분배한다. 여기서, 특정한 특성 행렬에 대한 갱신 연산은 자신을 제외한 나머지 특성 행렬들과 코어 텐서를 이용하여 이루어지는 연산일 수 있다.The operation distributor 140 distributes update operations for the core tensor and characteristic matrices, which are the decomposition products of the target tensor, to the threads. Here, the updating operation for a particular characteristic matrix may be an operation using the remaining characteristic matrices except for itself and the core tensor.

이때, 갱신 연산들은 손실 함수를 최소화하는 값으로 특성 행렬들을 갱신하는 연산을 의미할 수 있다. 특히, 갱신 연산들은 특성 행렬들의 행 단위로 갱신하는 연산을 의미하며, 손실 함수를 최소화하는 행을 해당 특성 행렬의 행으로 갱신하는 연산을 의미할 수 있다. 예컨대, 행 단위 갱신 연산들은 하기 수학식 1 및 수학식 2로 표현될 수 있다.At this time, the update operations may mean an operation of updating characteristic matrices with a value minimizing the loss function. In particular, the update operation means an operation for updating row-by-row of characteristic matrices, and may mean an operation for updating a row that minimizes the loss function to a row of the characteristic matrix. For example, row-based update operations can be expressed by the following equations (1) and (2).

[수학식 1][Equation 1]

Figure pat00009
Figure pat00009

[수학식 2]&Quot; (2) "

Figure pat00010
Figure pat00010

상기 수학식 1은 특성 행렬의 행을 손실 함수를 최소화하는 값으로 갱신하는 것을 나타내며, 상기 수학식 2는 손실 함수를 나타낸다. 특히, 상기 수학식 2의 손실 함수는 하기 수학식 8의 재구축 에러(Reconstruction Error)에서 기계 학습에 대한 오버피팅(overfitting) 문제를 해결하기 위한 일부 수정이 가해진 식이다. 그리고, 상기 수학식 1 및 2는 하기 수학식 3 내지 7을 이용하여 계산할 수 있다.Equation (1) indicates that the row of the characteristic matrix is updated to a value minimizing the loss function, and Equation (2) represents the loss function. In particular, the loss function of Equation (2) is an equation in which some modifications are made to solve the overfitting problem for machine learning in the reconstruction error of Equation (8). The above equations (1) and (2) can be calculated using the following equations (3) to (7).

[수학식 3]&Quot; (3) "

Figure pat00011
Figure pat00011

[수학식 4]&Quot; (4) "

Figure pat00012
Figure pat00012

[수학식 5]&Quot; (5) "

Figure pat00013
Figure pat00013

[수학식 6]&Quot; (6) "

Figure pat00014
Figure pat00014

[수학식 7]&Quot; (7) "

Figure pat00015
Figure pat00015

상기 수학식 3에 의하여 손실 함수를 최소화하는 행 벡터를 계산할 수 있으며, 이에 따라 상기 수학식 4와 같이 간단한 계산을 통하여 특성 행렬의 행을 갱신할 수 있다. 상기 수학식 3 및 4의

Figure pat00016
는 Jn×Jn 행렬로, (j1, j2)번째 원소가 상기 수학식 5와 같다. 상기 수학식 3 및 4의
Figure pat00017
는 길이 Jn의 벡터로, j번째 원소가 상기 수학식 6과 같다. 상기 수학식 3 및 4의
Figure pat00018
은 길이 Jn의 벡터로, j번째 원소가 상기 수학식 7과 같다.The row vector minimizing the loss function can be calculated by Equation (3), and the row of the characteristic matrix can be updated by simple calculation as shown in Equation (4). In the equations (3) and (4)
Figure pat00016
It is a n × J n J matrix, (j 1, j 2) the second element shown in the equation (5). In the equations (3) and (4)
Figure pat00017
Is a vector of length J n , and the jth element is the same as Equation (6). In the equations (3) and (4)
Figure pat00018
Is a vector of length J n , and the jth element is the same as in Equation (7).

이때, 연산 분배부(140)는 각 특성 행렬들을 1회씩 갱신하는 갱신 연산들을 1-싸이클 갱신 연산으로 하여 쓰레드들에 분배하고, 1-싸이클 갱신 연산을 반복하여 쓰레드들에 분배함으로써 특성 행렬들을 반복하여 갱신시킬 수 있다.At this time, the operation distribution unit 140 distributes the update operations for updating the characteristic matrices once to the threads as a one-cycle update operation, and repeats the one-cycle update operation to distribute the characteristic matrices to the threads .

이때, 연산 분배부(140)는 병렬 처리에 이용될 쓰레드들에 대하여 대한 리소스 정보를 수집하고, 각 쓰레드들에 대한 리소스 정보를 고려하여 갱신 연산들을 분배할 수 있다. 여기서, 리소스 정보에는 쓰레드의 연산 처리 능력, 현재 할당된 연산량, 연산 처리 지연도 등이 포함될 수 있다. 예컨대, 특정 쓰레드가 다른 쓰레드들보다 할당된 연산량이 적은 경우에는, 해당 쓰레드에 갱신 연산을 더 할당할 수 있다. 여기서, 각 쓰레드는 자신에 분배된 갱신 연산들을 순차적으로 처리할 수 있다.At this time, the operation distribution unit 140 may collect resource information about threads to be used for parallel processing, and may distribute update operations considering resource information for each thread. Here, the resource information may include the processing capacity of the thread, the amount of computation currently allocated, the processing delay, and the like. For example, when a particular thread has a smaller amount of computation allocated than other threads, an update operation can be further allocated to the thread. Here, each thread can sequentially process update operations distributed to itself.

이때, 연산 분배부(140)는 갱신 연산들을 행 단위 갱신 연산으로 분리하여 쓰레드들에 분배할 수 있다. 종래에는 1개 특성 행렬에 대한 갱신 연산이 해당 특성 행렬 전체에 대하여 이루어져야 했으며, 이에 따라 1개 특성 행렬을 갱신하는데 요구되는 불가분적인 연산량과 메모리 요구량이큰 문제점이 있었다. 하지만, 본 발명에서는 1개 특성 행렬에 대한 갱신 연산을 해당 특성 행렬의 행 단위의 갱신 연산으로 분할함으로써, 단일 쓰레드에서의 연산량과 메모리 요구량을 감소시킬 수 있다.At this time, the operation distribution unit 140 can separate the update operations into the row-based update operations and distribute them to the threads. There has been a problem in that the updating operation for one characteristic matrix has to be performed for the entire characteristic matrix, and thus the integral computation amount and the memory requirement amount required for updating one characteristic matrix are large. However, in the present invention, the computation amount and the memory requirement amount in a single thread can be reduced by dividing the update operation for one property matrix into update operations for each row of the property matrix.

이때, 연산 분배부(140)는 각 쓰레드들에 대하여 재구축 에러(Reconstruction Error)를 계산하기 위한 연산들을 분배할 수 있다. 즉, 텐서의 분해를 반복된 연산을 통한 학습으로 수행하는바, 학습의 정확도 판단을 위한 에러값의 계산이 필요한데, 이를 각 쓰레드들에 분배하여 병렬 처리함으로써 연산 효율을 높일 수 있다. 여기서, 재구축 에러는 하기 수학식 8과 같이 정의될 수 있다.At this time, the operation distribution unit 140 may distribute operations for calculating reconstruction errors for the respective threads. In other words, it is necessary to calculate the error value for determining the accuracy of learning by performing the decomposition of the tensor by learning through iterative operations. The computation efficiency can be improved by distributing the error value to each thread and performing parallel processing. Here, the reconstruction error can be defined by the following equation (8).

[수학식 8]&Quot; (8) "

Figure pat00019
Figure pat00019

특성 행렬 결정부(150)는 최초에 대상 텐서의 차수(order)만큼의 특성 행렬들을 초기화하여 생성하고, 쓰레드들에서 수행된 특성 행렬들에 대한 갱신 연산들의 결과를 수집하여 특성 행렬들을 갱신한다. 여기서, 특성 행렬들의 초기화는 특성 행렬들의 각 원소들을 0에서 1 사이의 임의의 값으로 할당하는 것을 의미할 수 있다.The characteristic matrix determiner 150 first initializes and generates characteristic matrices corresponding to orders of the target tensor and updates characteristic matrices by collecting the results of updating operations on the characteristic matrices performed in the threads. Here, the initialization of the characteristic matrices may mean assigning each element of the characteristic matrices to any value between 0 and 1.

이때, 각 특성 행렬들은 대상 텐서의 각 축에 대응하며, 해당 축에 대한 숨은 특징(latent feature)들을 나타낸다. 대상 텐서의 축을 구성하는 항목들에 대한 분석은 특성 행렬들과 코어 텐서와의 연산을 통하여 이루어질 수 있다. 예컨대, n번째 특성 행렬 A(n)은 대상 텐서 X의 n모드에 대한 항목의 숨은 특징들을 나타낼 수 있으며, 그 차원은 (대상 텐서 X의 n번째 축의 차원수, 숨은 특징 수)로 설정할 수 있다. 특히, 각 특성 행렬들에 대한 숨은 특징 수는 대상 텐서 X에 상응하는 코어 텐서 G의 n번째 축의 차원수와 동일하며, 미리 주어진 값일 수 있다. 예컨대, 대상 텐서 X의 차원이 I1×I2×...×IN이고, 코어 텐서 G의 차원이 J1×J2×...×JN인 경우에는, n번째 특성 행렬의 차원은 In×Jn일 수 있다.At this time, each characteristic matrix corresponds to each axis of the target tensor and represents latent features for the corresponding axis. The analysis of the items constituting the axis of the target tensor can be performed through calculation of the characteristic matrices and the core tensor. For example, the n-th characteristic matrix A (n) can represent the hidden features of the item for the n-mode of the target tensor X, and its dimension can be set to (the number of dimensions of the n-th axis of the target tensor X, . In particular, the number of hidden features for each characteristic matrix is equal to the number of dimensions of the n-th axis of the core tensor G corresponding to the target tensor X, and may be a predetermined value. For example, when the dimension of the target tensor X is I 1 x I 2 x ... x I N and the dimension of the core tensor G is J 1 x J 2 x ... x J N , the dimension of the nth characteristic matrix May be I n x J n .

이때, 특성 행렬 결정부(150)는 각 쓰레드들에서 행 단위로 이루어진 갱신 연산의 결과로써 특성 행렬에 대한 갱신된 행 정보를 수집할 수 있고, 수집된 갱신된 행 정보를 이용하여 특성 행렬들을 갱신할 수 있다.At this time, the characteristic matrix determiner 150 may collect updated row information about the characteristic matrix as a result of an update operation in units of rows in each of the threads, and update characteristic matrices using the collected updated row information can do.

이때, 특성 행렬 결정부(150)는 특성 행렬들에 대한 갱신이 종료되면 특성 행렬들을 직교화한다. 여기서, 특성 행렬들에 대한 갱신의 종료는 기설정된 횟수만큼의 1-싸이클 갱신 연산이 수행되었거나, 재구축 에러가 기설정된 값보다 작거나, 재구축 에러가 수렴하는 경우에 이루어질 수 있다. 예컨대, 특성 행렬들을 각각 100번씩 갱신하였을 때 특성 행렬들에 대한 갱신을 종료할 수도 있고, 특성 행렬들에 대한 갱신을 수행하여 재구축 에러의 변화율이 1% 이내로 감축되어 수렴하는 경우에 특성 행렬들에 대한 갱신을 종료할 수도 있다. 특히, 특성 행렬들에 대한 직교화는 하기 수학식 9와 같이 각 특성 행렬들을 QR 분해하여, 하기 수학식 10과 같이 Q행렬을 특성 행렬로 갱신함으로써 직교화할 수 있다. 이는, QR 분해의 Q행렬이 직교 행렬이기 때문이다. 여기서, QR 분해에 따른 R행렬은 코어 텐서를 갱신하는데 이용할 수 있다.At this time, the characteristic matrix determiner 150 orthogonalizes the characteristic matrices when the updating of the characteristic matrices ends. Here, the end of the updating of the characteristic matrices may be performed when a predetermined number of 1-cycle update operations have been performed, a reconstruction error is smaller than a predetermined value, or a reconstruction error has converged. For example, when the characteristic matrices are updated 100 times each, the updating of the characteristic matrices may be terminated. If the rate of change of the reconstruction error is reduced to 1% or less by performing the updating on the characteristic matrices, May terminate the update to the < RTI ID = 0.0 > In particular, orthogonalization of the characteristic matrices can be performed by QR decomposing each characteristic matrix as shown in Equation (9), and updating the Q matrix as a characteristic matrix as shown in Equation (10). This is because the Q matrix of QR decomposition is an orthogonal matrix. Here, the R matrix according to QR decomposition can be used to update the core tensor.

[수학식 9]&Quot; (9) "

Figure pat00020
Figure pat00020

[수학식 10]&Quot; (10) "

Figure pat00021
Figure pat00021

코어 텐서 결정부(160)는 최초에 코어 텐서를 초기화하여 생성하고, 특성 행렬들에 대한 갱신이 완료됨에 따라 특성 행렬들을 이용하여 코어 텐서를 갱신한다. 여기서, 코어 텐서의 초기화는 코어 텐서의 각 원소들을 0에서 1 사이의 임의의 값으로 할당하는 것을 의미할 수 있다.The core tensor determining unit 160 first initializes and generates a core tensor, and updates the core tensor using the characteristic matrices as the updating of the characteristic matrices is completed. Herein, initialization of the core tensor may mean assigning each element of the core tensor to any value between 0 and 1.

이때, 코어 텐서의 각 원소들은 특성 행렬들의 열 간의 관계의 가중치를 나타낼 수 있다. 그리고, 코어 텐서의 차원은 각 특성 행렬들의 숨은 특징 수에 상응하도록 결정될 수 있다. 예컨대, 대상 텐서 X의 차원이 I1×I2×...×IN이고, 코어 텐서 G의 차원이 J1×J2×...×JN인 경우에는, n번째 특성 행렬의 차원은 In×Jn이 되고 숨은 특징 수는 Jn개가 된다.At this time, each element of the core tensor can represent a weight of a relation between columns of characteristic matrices. And, the dimension of the core tensor can be determined to correspond to the number of hidden features of each characteristic matrix. For example, when the dimension of the target tensor X is I 1 x I 2 x ... x I N and the dimension of the core tensor G is J 1 x J 2 x ... x J N , the dimension of the nth characteristic matrix Becomes I n × J n and the hidden feature number becomes J n .

이때, 코어 텐서 결정부(160)는 각 특성 행렬들에 대한 갱신이 종료되면, 특성 행렬들을 이용하여 코어 텐서를 갱신한다. 특히, 특성 행렬들에 대한 직교화는 각 특성 행렬들을 QR 분해하여 Q행렬을 특성 행렬로 갱신함으로써 직교화할 수 있고, 하기 수학식 11과 같이 R행렬들을 코어 텐서에 곱하여 코어 텐서를 갱신할 수 있다.At this time, the core tensor determining unit 160 updates the core tensor using the characteristic matrices when updating of the characteristic matrices is completed. In particular, orthogonalization of the characteristic matrices can be performed by QR decomposing the characteristic matrices to update the Q matrix to the characteristic matrix, and the core tensor can be updated by multiplying R matrices by the core tensor as shown in Equation (11) .

[수학식 11]&Quot; (11) "

Figure pat00022
Figure pat00022

상기 수학식 11의 ×n은 텐서와 행렬 간의 n모드 곱셈을 의미한다.X n in Equation (11) means n mode multiplication between the tensor and the matrix.

캐싱 처리부(170)는 특성 행렬들을 갱신함에 있어서 반복되는 연산을 캐싱하여 연산 효율을 높이는 과정을 제어한다.The caching processor 170 controls the process of increasing the computation efficiency by caching repeated operations in updating the characteristic matrices.

이때, 캐싱 처리부(170)는 갱신 연산들에 포함된 연산들 중에서 기설정된 고반복 연산을 쓰레드들에 대하여 미리 연산하도록 하고, 고반복 연산에 대한 연산 결과를 캐시하고, 쓰레드들에 대하여 캐시된 데이터를 이용하여 갱신 연산들을 처리하도록 명령할 수 있다. 즉, 갱신 연산들에 포함된 연산들 중에서 자주 반복되는 연산에 대하여는 미리 계산하여 캐시 테이블에 보관하고, 캐시된 데이터를 이용함으로써 갱신 연산들에 요구되는 리소스를 감축할 수 있다. At this time, the caching processor 170 may perform a predetermined high-order operation in advance among the operations included in the update operations for the threads, cache the operation result for the high-order operation, and use the cached data for the threads To process the update operations. In other words, frequently-repeated operations among the operations included in the update operations are calculated in advance and stored in the cache table, and resources required for update operations can be reduced by using cached data.

이때, 캐싱 처리부(170)는 쓰레들에서 갱신 연산들이 수행되어 특성 행렬들이 갱신된 이후에, 갱신된 특성 행렬들을 이용하여 캐시된 데이터를 갱신할 수 있다. 즉, 특성 행렬들에 대한 갱신 연산들은 현재 특성 행렬들의 정보를 이용하여 수행되는 것이므로, 특성 행렬들이 갱신되면 이후의 갱신 연산들에 사용되는 특성 행렬들의 정보가 변경되며, 이에 따라 캐시된 데이터를 갱신한다.At this time, the caching processor 170 may update the cached data using the updated characteristic matrices after the updating operations are performed in the trash to update the characteristic matrices. That is, since the update operations on the characteristic matrices are performed using the information of the current characteristic matrices, when the characteristic matrices are updated, the information on the characteristic matrices used in the subsequent update operations is changed, do.

잡음 제거부(180)는 코어 텐서에서 잡음을 제거하여 연산 효율을 높이는 과정을 제어한다. 코어 텐서의 잡음을 제거함으로써 0이 아닌 원소의 개수가 줄어들어 연산량이 감소하여 연산 효율이 좋아질 수 있다.The noise removing unit 180 removes noise from the core tensor to control the process of increasing the calculation efficiency. By eliminating the noise of the core tensor, the number of non-zero elements is reduced, so that the calculation amount can be reduced and the operation efficiency can be improved.

이때, 잡음 제거부(180)는 특성 행렬들이 갱신되면 코어 텐서의 각 원소들에 대하여 에러들을 계산하고, 계산된 에러 값에 따라 제거 대상 원소를 결정하여 해당 제거 대상 원소를 제거할 수 있다. 여기서, 코어 텐서의 원소 β에 대한 에러 R(β)는 하기 수학식 12와 같이 정의되고, 하기 수학식 13과 같이 정리할 수 있다.At this time, when the characteristic matrices are updated, the noise eliminator 180 calculates errors for each element of the core tensor, and determines the element to be removed according to the calculated error value, thereby removing the element to be removed. Here, the error R (?) With respect to the element? Of the core tensor is defined as Equation (12) and can be summarized as Equation (13) below.

[수학식 12]&Quot; (12) "

Figure pat00023
Figure pat00023

[수학식 13]&Quot; (13) "

Figure pat00024
Figure pat00024

이때, 잡음 제거부(180)는 코어 텐서의 각 원소들에 중에서 에러가 기설정된 기준치 이상인 것들을 제거 대상 원소로 결정할 수도 있고, 각 원소들 중에서 에러가 높은 순서대로 기설정된 개수만큼을 제거 대상 원소로 결정할 수도 있다.At this time, the noise removing unit 180 may determine that the elements of the core tensor whose error is equal to or greater than a preset reference value are to be removed, and that a predetermined number of the elements are to be removed You can decide.

이때, 잡음 제거부(180)는 기설정된 횟수만큼 코어 텐서의 노이즈를 제거하고, 그 이후에는 노이즈를 제거하지 않을 수 있다. 예컨대, 처음 14회의 1-싸이클 갱신 연산이 수행될 동안에만 코어 텐서에 대한 노이즈를 제거하고, 그 이후에는 코어 텐서에 대한 노이즈를 제거하지 않도록 할 수 있다. At this time, the noise removing unit 180 may remove the noise of the core tensor by a preset number of times, and may not remove the noise thereafter. For example, noise may be removed from the core tensor only during the first 14 cycles of one-cycle update operations, after which no noise may be removed from the core tensor.

이때, 잡음 제거부(180)는 이전의 1-싸이클 갱신 연산이 수행될 때 코어 텐서의 원소의 에러 중에서 가장 큰 값과 현재 1-싸이클 갱신 연산이 수행 될 때 코어 텐서의 에러 중에서 가장 큰 값을 비교하여, 코어 텐서의 노이즈를 제거하는 작업을 수행할지 여부를 판단할 수 있다. 여기서, 비교 대상이 되는 이전의 에러는 바로 직전의 1-싸이클 갱신 연산이 수행될 때의 코어 텐서의 원소에 대한 에러뿐만 아니라 그 이전에 수행된 1-싸이클 갱신 연산에서의 코어 텐서의 원소에 대한 에러를 포함할 수 있다.At this time, the noise removing unit 180 calculates the maximum value of the error of the element of the core tensor when the previous one-cycle update operation is performed and the largest value of the error of the core tensor when the current one- It is possible to judge whether or not to perform an operation of removing the noise of the core tensor. Here, the previous error to be compared is not only an error on the element of the core tensor when the immediately preceding 1-cycle update operation is performed, but also an error on the element of the core tensor in the previously performed 1-cycle update operation It may contain errors.

이때, 잡음 제거부(180)는 제거 대상 원소의 값을 0으로 설정하여 제거 대상 원소를 코어 텐서에서 제거할 수 있다.At this time, the noise removing unit 180 may remove the element to be removed from the core tensor by setting the value of the element to be removed to zero.

위의 과정을 거쳐 특성 행렬들과 코어 텐서에 대한 갱신을 마치면, 대상 텐서의 코어 텐서와 특성 행렬들로의 분해가 완료되는 것이다. 이렇게 분해된 코어 텐서와 특성 행렬들은 대상 텐서에 상응하는 다차원 데이터에 대하여 트렌드, 연관성, 추천, 군집화 등의 분석을 수행하는데 이용될 수 있다.After updating the characteristic matrices and the core tensor through the above process, the decomposition into the core tensor and the characteristic matrices of the target tensor is completed. The decomposed core tensor and characteristic matrices can be used to perform analysis such as trend, relevance, recommendation, clustering, etc. for multi-dimensional data corresponding to the target tensor.

도 3은 본 발명의 일 실시예에 따른 텐서 분해 기법을 도식화한 도면이다.FIG. 3 is a diagram illustrating a tensor decomposition technique according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 텐서 분해 기법은 분해 대상이 되는 입력 텐서 혹은 대상 텐서(31)를 한 개의 코어 텐서(32)와 대상 텐서(31)의 차수(order)만큼의 특성 행렬들(33, 34 및 35)로 분해한다. 특히, 도 3은 대상 텐서(31)이 3차 텐서인 경우를 나타낸다.3, according to an embodiment of the present invention, the tensor decomposition technique is a method of decomposing an input tensor or target tensor 31 to be decomposed by an order of one core tensor 32 and a target tensor 31 Into characteristic matrices (33, 34 and 35). Particularly, Fig. 3 shows a case where the target tensor 31 is a tertiary tensor.

여기서, 대상 텐서(31)가 3차 텐서이며 차원이 I1×I2×I3일 경우, 코어 텐서(32)는 3차 텐서이고 특성 행렬들(33, 34 및 35)는 3개로 구성된다. 또한, 코어 텐서(32)의 차원이 J1×J2×J3인 경우에는, n번째 특성 행렬의 차원은 In×Jn이 되고 숨은 특징 수는 Jn개가 된다.Here, when the target tensor 31 is a tertiary tensor and the dimension is I 1 x I 2 x I 3 , the core tensor 32 is a tertiary tensor and the characteristic matrices 33, 34, and 35 are composed of three . In addition, when the dimension of the core tensor 32 is J 1 × J 2 × J 3 , the dimension of the n-th characteristic matrix is I n × J n and the number of hidden features is J n .

본 발명은 대상 텐서를 코어 텐서와 특성 행렬들로 분해함에 있어서 병렬 처리를 통하여 연산의 효율을 높여 고속, 고정확도, 고확장성을 보장한다.The present invention increases the efficiency of computation by parallel processing in decomposing the target tensor into the core tensor and the characteristic matrices, thereby ensuring high speed, high accuracy, and high scalability.

도 4는 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 방법을 나타낸 동작 흐름도이다.4 is a flowchart illustrating a method of supporting multidimensional data analysis through parallel processing according to an exemplary embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 방법은 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(도 1의 100 참조)가, 분해 대상 텐서를 결정한다(S401). 이는, 다른 다차원 데이터 보관 장치 혹은 다차원 데이터 수집 장치로부터 획득한 텐서 데이터 중에서 분해 대상 텐서를 결정하는 것을 의미할 수 있다.Referring to FIG. 4, a method for supporting multidimensional data analysis through parallel processing according to an embodiment of the present invention includes: a device (see 100 in FIG. 1) supporting multidimensional data analysis through parallel processing, (S401). This may mean determining the decomposition target tensor among the tensor data acquired from other multi-dimensional data storage devices or multi-dimensional data collection devices.

또한, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 방법은 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(도 1의 100 참조)가, 대상 텐서를 분해하여 생성될 코어 텐서와 특성 행렬들을 초기화한다(S403). In addition, a method for supporting multi-dimensional data analysis through parallel processing according to an embodiment of the present invention includes the steps of: (a) The tensor and characteristic matrices are initialized (S403).

이때, 코어 텐서와 특성 행렬들의 각 원소들을 0에서 1 사이의 임의의 값으로 설정하여 코어 텐서와 특성 행렬들을 초기화할 수 있다.At this time, it is possible to initialize the core tensor and the characteristic matrices by setting each element of the core tensor and the characteristic matrix to an arbitrary value between 0 and 1.

또한, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 방법은 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(도 1의 100 참조)가, 병렬 처리를 통하여 특성 행렬들을 갱신한다(S405). 본 발명은 특성 행렬들에 대하여 반복적인 갱신 연산을 수행하여 특성 행렬들을 결정하며, 이를 효과적으로 수행하기 위하여 다수의 쓰레드들에 갱신 연산들을 분배하여 병렬 처리하는 것을 특징으로 한다.In addition, a method for supporting multi-dimensional data analysis through parallel processing according to an embodiment of the present invention includes a step of updating (updating) characteristic matrices through parallel processing by an apparatus for supporting multidimensional data analysis through parallel processing (S405). The present invention is characterized in that it performs repetitive update operations on characteristic matrices to determine characteristic matrices, and distributes update operations to a plurality of threads in order to perform them effectively and performs parallel processing.

이때, 병렬 처리를 수행하는 쓰레드들에 대한 리소스 정보를 수집하고, 각 쓰레드들에 대한 정보를 이용하여 특성 행렬들에 대한 갱신 연산들을 분배할 수 있다. 각 쓰레드들은 분배된 갱신 연산들을 수행하고, 이 결과들은 특성 행렬들을 갱신하는데 이용할 수 있다. 여기서, 쓰레드들은 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(도 1의 100 참조)에 포함된 쓰레드들 뿐만 아니라, 별개의 연산 장치(도 1의 400 참조)에 포함된 쓰레드들을 포함할 수 있다.At this time, the resource information for the threads performing the parallel processing may be collected, and the update operations for the characteristic matrices may be distributed using the information about the respective threads. Each thread performs distributed update operations, and these results can be used to update feature matrices. Here, the threads may include threads included in a device (see 100 in FIG. 1) supporting multidimensional data analysis through parallel processing, as well as threads contained in a separate computing device (see 400 in FIG. 1) .

이때, 특성 행렬들의 갱신은 각 특성 행렬들에 대하여 1회씩 갱신 연산을 수행하는 1-싸이클 갱신 연산을 여러 번 반복하여 이루어질 수 있다.At this time, the update of the characteristic matrices may be performed by repeating the one-cycle update operation for performing the update operation once for each characteristic matrix several times.

또한, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 방법은 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(도 1의 100 참조)가, 특성 행렬들을 직교화하고 이를 이용하여 코어 텐서를 갱신한다(S407).In addition, a method for supporting multidimensional data analysis through parallel processing according to an embodiment of the present invention is a method for supporting multidimensional data analysis through parallel processing (see 100 in FIG. 1) by orthogonalizing characteristic matrices and using And updates the core tensor (S407).

이때, 각 특성 행렬들에 대하여 QR 분해를 통하여 Q행렬과 R행렬을 획득하고, 각 특성 행렬에 상응하는 Q행렬을 해당 특성 행렬로 대체함으로써 특성 행렬들을 직교화할 수 있다. 그리고, 코어 텐서에 대하여 R행렬들을 곱함으로써 코어 텐서를 갱신할 수 있다.At this time, characteristic matrices can be orthogonalized by obtaining a Q matrix and an R matrix through QR decomposition for each characteristic matrix, and replacing the Q matrix corresponding to each characteristic matrix with the corresponding characteristic matrix. Then, the core tensor can be updated by multiplying R matrices with respect to the core tensor.

도 5는 도 4에 도시된 특성 행렬들을 갱신하는 단계(S405)의 일 예를 나타낸 동작 흐름도이다.FIG. 5 is an operation flowchart showing an example of step S405 of updating the characteristic matrixes shown in FIG.

도 5를 참조하면, 도 4에 도시된 특성 행렬들을 갱신하는 단계(S405)는, 특성 행렬들을 갱신하는 갱신 연산들에 포함된 연산들 중에서 고반복 연산으로 설정된 중간 연산을 미리 연산하여 캐싱한다(S501). 자주 반복되는 연산을 미리 계산하여 캐싱함으로써, 추후 특성 행렬들에 대한 갱신 연산을 수행할 때 캐싱된 데이터를 이용하여 보다 효율적으로 갱신 연산을 수행할 수 있다.Referring to FIG. 5, in step S405 of updating the characteristic matrices shown in FIG. 4, an intermediate operation set in the high-order operation among the operations included in the update operations for updating the characteristic matrices is calculated and cached in advance ). By frequently calculating and caching frequently repeated operations, it is possible to more efficiently perform update operations using cached data when performing update operations on later characteristic matrices.

이때, 쓰레드들에 대해서 고반복 연산을 병렬 처리하도록 명령하고, 고반복 연산의 결과를 캐싱할 수 있다. 즉, 각 쓰레드들에서 특성 행렬들을 갱신하기 위한 연산이 수행되므로, 각 쓰레드들에서 고반복 연산을 미리 수행하고 이를 캐싱하여 추후에 이용하도록 할 수 있다.At this time, it is possible to instruct the threads to execute the high-order operation in parallel and cache the result of the high-order operation. That is, since the operation for updating the characteristic matrices is performed in each of the threads, it is possible to previously perform the high-latency operation in each of the threads, cache it, and use it later.

이때, 캐싱된 데이터는 특성 행렬들이나 코어 텐서에 변화가 생기면, 이를 반영하여 갱신된 것일 수 있다. 특히, 캐싱된 데이터의 갱신은 특성 행렬들에 대한 1-싸이클 갱신 연산이 완료될 때마다 수행될 수 있다.At this time, the cached data may be updated by reflecting the characteristic matrices or the changes in the core tensor. In particular, updating of the cached data may be performed each time a one-cycle update operation on characteristic matrices is completed.

또한, 도 4에 도시된 특성 행렬을 갱신하는 단계(S405)는, 특성 행렬들에 대한 갱신 연산을 행 단위로 쓰레드들에 분산하여 할당하여 연산한다(S503). 즉, 1 개의 특성 행렬이라도 갱신 연산을 행 단위로 분할함에 따라 크기가 큰 대상 텐서에 대한 특성 행렬에 대하여도 메모리 초과의 문제를 손쉽게 극복할 수 있다.In step S405 of updating the characteristic matrix shown in FIG. 4, the update operations for the characteristic matrices are distributed to the threads in units of rows and allocated to the processors in operation S503. That is, even if one characteristic matrix is divided, the problem of memory overflow can be easily overcome even for a characteristic matrix for a target tensor having a large size by dividing an update operation in units of rows.

이때, 각 쓰레드들은 캐싱된 데이터를 이용하여 행 단위의 갱신 연산을 수행할 수 있다.At this time, each thread can perform a row-by-row update operation using the cached data.

또한, 도 4에 도시된 특성 행렬을 갱신하는 단계(S405)는, 코어 텐서의 각 원소들에 상응하는 에러를 계산하여 제거 대상 원소를 결정하고, 제거 대상 원소를 제거함으로써 코어 텐서의 잡음을 제거한다(S505).In the step S405 of updating the characteristic matrix shown in FIG. 4, an error corresponding to each element of the core tensor is calculated to determine an element to be removed, (S505).

또한, 도 4에 도시된 특성 행렬을 갱신하는 단계(S405)는, 1-싸이클 갱신 연산의 반복 종료 조건이 충족되었는지 여부를 판단한다(S507).In addition, the step of updating the characteristic matrix shown in Fig. 4 (S405) judges whether or not the iteration end condition of the 1-cycle update operation is satisfied (S507).

이때, 반복 종료 조건은 기설정된 반복 횟수 도달 여부, 재구축 에러의 기설정된 기준치 도달 여부, 재구축 에러의 수렴 여부 등을 포함할 수 있다.At this time, the iteration termination condition may include whether or not the predetermined number of repetitions has been reached, whether a predetermined reference value of the reconstruction error has been reached, whether the reconstruction error has converged, and the like.

단계(S507)의 판단 결과 반복 종료 조건을 충족하지 못한 경우에는, 1-싸이클 갱신 연산을 수행하는 단계들(S501, S503 및 S505)를 다시 수행한다.If the repeat termination condition is not satisfied as a result of the determination in step S507, the steps (S501, S503, and S505) for performing the one-cycle update operation are performed again.

단계(S507)의 판단 결과 반복 종료 조건을 충족하는 경우에는, 특성 행렬들을 갱신하는 단계를 종료한다.As a result of the determination in step S507, if the repeat termination condition is satisfied, the step of updating the characteristic matrices ends.

도 6은 종래의 텐서 분해 알고리즘의 일 예를 나타낸 도면이다.6 is a diagram showing an example of a conventional tensor decomposition algorithm.

도 6을 참조하면, 터커(Tucker) 분해 기법이라고도 불리우는 종래의 텐서 분해 알고리즘은, N차 I1×I2×...×IN차원의 분해 대상 텐서 X와, 코어 텐서의 차원도(dimensionality) J1, J2, ..., JN을 입력으로 하고, N차 J1×J2×...×JN차원의 코어 텐서 G와 N개의 특성 행렬들을 출력으로 한다. 여기서, n번째 특성 행렬 A(n)은 In×Jn차원의 행렬이다.Referring to FIG. 6, a conventional tensor decomposition algorithm, also referred to as a Tucker decomposition technique, is a decomposition target tensor X of N-order I 1 × I 2 × ... × I N dimensions and a dimensionality of a core tensor ) J 1 , J 2 , ..., J N are input, and the N- dimensional J 1 × J 2 × ... × J N- dimensional core tensor G and N characteristic matrices are output. Here, the n-th characteristic matrix A (n) is an I n × J n- dimensional matrix.

터커 분해 기법은 우선 특성 행렬들을 초기화한다(1행). 그리고, 각 특성 행렬에 대하여 갱신을 수행하는 연산을 반복적으로 수행한다(2행 내지 6행). 그리고, 갱신된 특성 행렬들을 대상 텐서 X와 곱하여 코어 텐서 G를 계산한다(7행).The Tucker decomposition technique first initializes characteristic matrices (line 1). Then, an operation of performing update for each characteristic matrix is repeated (lines 2 to 6). Then, the updated characteristic matrices are multiplied by the target tensor X to calculate the core tensor G (line 7).

이때, 각 특성 행렬에 대한 갱신은 ALS(Alternating Least Squares) 알고리즘을 이용하여 이루어질 수 있으며, 이는 갱신 대상이 되는 자기 자신을 제외한 나머지 특성 행렬들과 대상 텐서를 이용하여 갱신 대상 특성 행렬을 갱신하는 알고리즘이다(4행 및 5행).In this case, the update of each characteristic matrix can be performed by using ALS (Alternating Least Squares) algorithm, which is an algorithm for updating the update target characteristic matrix using the characteristic matrices other than the self itself to be updated and the target tensor (Lines 4 and 5).

즉, 종래의 터커 분해 기법은 하나의 특성 행렬을 단위로 갱신 연산이 수행되어야하며, 분해 대상 텐서와 나머지 특성 행렬들에 대하여 모두 연산을 수행해야하는 특징으로 인하여 중간 데이터 폭발의 문제가 발생한다.That is, in the conventional Tucker decomposition technique, an update operation must be performed in units of one characteristic matrix, and a problem of intermediate data explosion arises because of the characteristic that both the decomposition target tensor and the remaining characteristic matrices must be operated.

도 7은 본 발명의 일 실시예에 따른 텐서 분해 방법의 일 예를 나타낸 도면이다.7 is a view illustrating an example of a tensor decomposition method according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 일 실시예에 따른 텐서 분해 방법은 P-터커(P-Tucker) 혹은 병렬-터커(Parallel-Tucker) 분해 기법이라 부를 수 있다. 이는, 기존의 터커 분해 기법에서 병렬 처리 기능을 도입하여 고속, 고확장성, 고정확도의 특별한 효과를 갖는 텐서 분해 방법이다. 만약, 본 발명의 일 실시예에 따른 텐서 분해 방법이 코어 텐서의 노이즈를 제거하는 기능을 포함하는 경우에는, P-터커-근사(P-Tucker-Approx) 혹은 병렬-터커-근사(Parallel-Tucker-Approx) 분해 기법이라 부를 수 있다. 만약, 본 발명의 일 실시예에 따른 텐서 분해 방법이 고반복 연산을 캐시하는 기능을 포함하는 경우에는, P-터커-캐시(P-Tucker-Cache) 혹은 병렬-터커-캐시(Parallel-Tucker-Cache) 분해 기법이라 부를 수 있다.Referring to FIG. 7, the tensor decomposition method according to an embodiment of the present invention may be called a P-Tucker or a Parallel-Tucker decomposition technique. This is a tensor decomposition method which has a special effect of high speed, high scalability and high accuracy by introducing parallel processing function in the conventional Tucker decomposition technique. If the tensor decomposition method according to an embodiment of the present invention includes a function of removing noise from the core tensor, a P-Tucker-Approx or Parallel-Tucker approximation -Approx) decomposition technique. If the tensor decomposition method according to an embodiment of the present invention includes a function of caching high-order operation, a P-Tucker-Cache or a Parallel-Tucker-Cache ) Decomposition technique.

본 발명의 일 실시예에 따른 텐서 분해 방법은, N차 I1×I2×...×IN차원의 분해 대상 텐서 X와, 코어 텐서의 차원도(dimensionality) J1, J2, ..., JN을 입력으로 하고, N차 J1×J2×...×JN차원의 코어 텐서 G와 N개의 특성 행렬들을 출력으로 한다. 여기서, n번째 특성 행렬 A(n)은 In×Jn차원의 행렬이다. 만약, 본 발명의 일 실시예에 따른 텐서 분해 방법이 코어 텐서의 노이즈를 제거하는 기능을 포함하는 경우에는, 코어 텐서의 노이즈 제거 비율을 나타낸 절단률 p를 추가적으로 입력받을 수 있다.The tensor decomposition method according to an embodiment of the present invention is characterized in that the decomposition target tensor X of the N-th order I 1 x I 2 x ... x I N dimension and the dimensionality J 1 , J 2 ,. ..., J N as inputs and outputs N- dimensional J 1 × J 2 × ... × J N- dimensional core tensor G and N characteristic matrices. Here, the n-th characteristic matrix A (n) is an I n × J n- dimensional matrix. If the tensor decomposition method according to an embodiment of the present invention includes a function of removing noise from the core tensor, it is possible to additionally input a cut rate p indicating a noise removal rate of the core tensor.

본 발명의 일 실시예에 따른 텐서 분해 방법은 우선 특성 행렬들과 코어 텐서를 초기화한다(1행). 그리고, 각 특성 행렬에 대하여 갱신을 수행하는 연산을 병렬 처리를 통하여 반복적으로 수행한다(2행 내지 7행). 그리고, 갱신된 특성 행렬들을 QR 분해를 통한 Q행렬을 이용하여 직교화하고, 특성 행렬들의 R행렬들을 코어 텐서 G와 곱하여 코어 텐서 G를 갱신한다(8행).The tensor decomposition method according to an embodiment of the present invention first initializes characteristic matrices and a core tensor (row 1). Then, an operation for performing update on each characteristic matrix is repeatedly performed through parallel processing (lines 2 to 7). The updated characteristic matrices are orthogonalized using the Q matrix through QR decomposition, and the core tensor G is updated by multiplying the R matrices of the characteristic matrices by the core tensor G (line 8).

이때, 각 특성 행렬들에 대하여 도 8에 도시된 알고리즘 3에 따라 상술한 1-싸이클 갱신 연산을 다수의 쓰레드들에 분산하여 수행하고(3행), 1-싸이클 갱신 연산이 마쳐지면 재구축 에러를 계산할 수 있다(4행). 만약, 코어 텐서의 노이즈를 제거하는 기능을 포함하는 경우에는(5행), 도 9에 도시된 알고리즘 4에 따라 코어 텐서의 노이즈를 제거할 수 있다(6행).At this time, the 1-cycle update operation described above is performed for each of the plurality of threads by the algorithm 3 shown in FIG. 8 for each characteristic matrix (row 3). When the 1-cycle update operation is completed, (4 rows). In the case of including the function of removing the noise of the core tensor (row 5), the noise of the core tensor can be removed according to the algorithm 4 shown in FIG. 9 (line 6).

도 8은 도 7에 도시된 특성 행렬들을 갱신하는 과정의 일 예를 나타낸 도면이다.FIG. 8 is a diagram illustrating an example of a process of updating the characteristic matrices shown in FIG.

도 8을 참조하면, 도 7에 도시된 특성 행렬들을 갱신하는 과정은, 만약 본 발명의 일 실시예에 따른 텐서 분해 방법이 고반복 연산을 캐시하는 기능을 포함하는지 판단하여 고반복 연산을 미리 수행하여 캐시 테이블을 저장할 수 있다(1행 내지 4행). 여기서, 캐시 테이블 Pres는 |Ω|×|G| 차원의 행렬일 수 있다. 특히, 캐시 테이블 Pres는 도 8의 4행의 수학식과 같이 계산될 수 있으며, 이는 특성 행렬들에 대한 갱신 연산 중에서 상기 수학식 7에서 자주 반복되는 연산이다. 즉, 이와 같이 자주 반복되는 연산을 미리 계산하여 캐시함으로써, 추후 반복될 갱신 연산에서 불필요하게 반복되는 연산의 숫자를 획기적으로 줄일 수 있다.Referring to FIG. 8, in the process of updating the characteristic matrices shown in FIG. 7, it is determined whether the tensor decomposition method according to an embodiment of the present invention includes a function of caching high- The table can be stored (lines 1 to 4). Here, the cache table Pres is expressed as | Ω | × | G | Dimensional matrix. In particular, the cache table Pres can be computed as shown in equation (4) of FIG. 8, which is an operation that is frequently repeated in the above equation (7) among update operations for characteristic matrices. In other words, by pre-calculating and caching these frequently repeated operations, it is possible to drastically reduce the number of operations unnecessarily repeated in later update operations.

또한, 각 특성 행렬들에 대하여 각 행별로 갱신을 수행한다(5행 내지 19행). 만약 캐시 기능을 이용하지 않는 경우에는 상기 수학식 7에 따라 중간 데이터 중에 하나인 벡터 δ를 계산하고(10행), 만약 캐시 기능을 이용하는 경우에는 캐시된 데이터 Pres를 이용하여 δ를 계산한다(12행). 다만, 12행 및 19행에서 캐시된 데이터를 이용하는 경우에 분모가 0이 되는 경우에는, 캐시된 데이터를 이용하지 않고 10행에 따라 δ를 계산하고, 1행 내지 4행에 따라 Pres를 갱신할 수 있다. 그리고 상기 수학식 5 및 6에 따라 중간 데이터 중 행렬 B와 벡터 c를 계산하고(13행), 상기 수학식 4에 따라 특성 행렬의 행 벡터를 갱신한다(14행 및 15행).In addition, each characteristic matrix is updated for each row (lines 5 to 19). If the cache function is not used, the vector δ, which is one of the intermediate data, is calculated according to Equation (7) (Step 10), and if the cache function is used, δ is calculated using the cached data Pres line). However, when the denominator becomes 0 in the case of using cached data in rows 12 and 19, 隆 is calculated according to 10 rows without using cached data, and Pres is updated in accordance with 1 to 4 rows . Then, the matrix B and the vector c of the intermediate data are calculated according to Equations 5 and 6 (Line 13), and the row vector of the characteristic matrix is updated (Line 14 and Line 15) according to Equation (4).

만약, 고반복 연산을 캐시하는 경우에는 캐시된 데이터 Pres를 새로이 갱신할 수 있다(16행 내지 19행).If the high-order operation is cached, the cached data Pres can be newly updated (lines 16 to 19).

상술한 특성 행렬들을 갱신하는 연산들은 행 단위 갱신 연산으로 구분되어 여러 쓰레드들에 분배되어 처리됨으로써, 메모리 오버플로우 문제를 해결하고 고속으로 연산할 수 있다. 특히, 캐시 데이터를 이용하지 않는 경우에는 주어진 (α, β)번째에서의 δ에 대한 연산 복잡도가 O(N)이지만(10행), 캐시 데이터를 이용하는 경우에는 주어진 (α, β)번째에서의 δ에 대한 연산 복잡도가 O(1)에 불과하다(12행). 즉, 캐시 테이블을 저장함으로 인한 메모리 사용량이 일부 증가하지만, 이에 따라 연산량을 획기적으로 감소시킬 수 있다.Operations for updating the characteristic matrices described above are divided into row-based update operations and distributed to a plurality of threads for processing. Thus, the memory overflow problem can be solved and a high-speed operation can be performed. In particular, when cache data is not used, the computational complexity for a given (?,?) Th is O (N) (10 rows), but when cache data is used, The computational complexity for delta is only O (1) (line 12). That is, the amount of memory used due to the storage of the cache table is partially increased, and thus the amount of computation can be greatly reduced.

도 9는 도 7에 도시된 코어 텐서의 노이즈를 제거하는 과정의 일 예를 나타낸 도면이다.9 is a view illustrating an example of a process of removing noise from the core tensor shown in FIG.

도 9를 참조하면, 도 7에 도시된 코어 텐서의 노이즈를 제거하는 과정은, 코어 텐서의 각 원소들에 대하여 상기 수학식 12 또는 13에 의하여 에러를 계산하고(1행 및 2행), 에러가 높은 순서대로 정렬하여(3행), 절단률 p에 따라 에러가 높은 원소들을 제거한다(4행).Referring to FIG. 9, in the process of removing noise from the core tensor shown in FIG. 7, an error is calculated for each element of the core tensor according to Equation (12) or (13) (Line 3), and remove the elements with high error according to the cutting rate p (line 4).

특히, 코어 텐서의 노이즈를 제거하는 과정은, 도 9에 도시된 것과 같이 절단률 p에 따라 에러가 높은 원소들을 일정 비율만큼 제거하는 방법 이외에도, 에러가 기설정된 기준값을 상회하는 원소들을 제거할 수도 있다.Particularly, in the process of removing the noise of the core tensor, as shown in FIG. 9, in addition to the method of eliminating the high-error elements by a certain ratio according to the cutting rate p, it is also possible to remove the elements whose error exceeds the predetermined reference value have.

이때, 코어 텐서의 노이즈를 제거하는 작업은 특성 행렬들에 대한 1-싸이클 갱신 연산이 이루어질 때마다 반복되어 수행될 수 있다.At this time, the operation of removing the noise of the core tensor can be repeatedly performed each time the one-cycle update operation is performed on the characteristic matrices.

이와 같이, 코어 텐서의 원소들 각각에 대하여 에러를 계산하고 에러가 큰 원소들을 잡음으로 판단하여 제거함으로써, 코어 텐서의 0이 아닌 원소들이 줄어들게 되는바 특성 행렬들을 갱신하는데 필요한 연산이 줄어들어 연산의 효율성이 증가한다. 또한, 코어 텐서의 원소들 각가에 대하여 에러를 계산하여 제거 대상 원소를 판단함으로써, 단순히 값이 작은 코어 텐서의 원소를 노이즈로 판단하는 문제를 해결할 수 있다.As described above, by calculating errors for each of the elements of the core tensor and eliminating elements with large errors by judging noise, non-zero elements of the core tensor are reduced, and the operations required to update the characteristic matrices are reduced, . Further, by calculating an error with respect to each of the elements of the core tensor to judge the element to be removed, it is possible to solve the problem of simply judging the element of the core tensor as noise.

도 10은 본 발명의 일 실시예에서 특성 행렬들을 갱신하는 과정을 도식화한 도면이다.10 is a diagram illustrating a process of updating characteristic matrices in an embodiment of the present invention.

도 10을 참조하면, 분해 대상 텐서(10a)는 한 개의 코어 텐서(6b)와 복수 개의 특성 행렬들(10c_1 내지 10c_N)으로 분해된다. 여기서 특성 행렬들(10c_1 내지 10c_N)의 개수는 대상 텐서(10a)의 차수인 N개이다.Referring to FIG. 10, the decomposition target tensor 10a is decomposed into one core tensor 6b and a plurality of characteristic matrices 10c_1 to 10c_N. Here, the number of characteristic matrices 10c_1 to 10c_N is N, which is the order of the target tensor 10a.

특성 행렬들(10c_1 내지 10c_N)에 대한 갱신은 특성 행렬 하나씩 갱신되며, 특성 행렬 10d는 갱신 대상이 되는 특성 행렬을 행 단위로 구분하여 나타낸 것이다. 여기서, 하나의 특성 행렬에 대한 갱신 연산은 자신을 제외한 나머지 특성 행렬들과 코어 텐서를 이용하여 이루어진다.The updating of the characteristic matrices 10c_1 to 10c_N is updated for each characteristic matrix, and the characteristic matrix 10d is for dividing the characteristic matrix to be updated by row. Here, the updating operation for one characteristic matrix is performed using the remaining characteristic matrices except for itself and the core tensor.

이때, 갱신 대상 특성 행렬(10d)는 In개의 행으로 구성되는데, 이 특성 행렬들의 각 행들은 손실 함수를 최소화하는 과정이 서로에게 독립적인 특징을 갖고 있으므로, 특성 행렬들에 대한 갱신 연산은 각 행들에 대한 갱신 연산으로 분할할 수 있다. 갱신 대상 특성 행렬(10d)의 행렬 갱신 연산은 In개의 행 갱신 연산들로 구분할 수 있으며, 행 갱신 연산들은 병렬 처리를 수행할 쓰레드들(10e_1 내지 10e_T)에 분배한다. 여기서, 쓰레드들(10e_1 내지 10e_T)에 대한 행 갱신 연산들의 분배는 리소스 정보를 참조하여 이루어질 수 있다.At this time, the update characteristic matrix 10d is composed of I n rows, and each row of the characteristic matrices has a characteristic in which the process of minimizing the loss function is independent of each other. Therefore, Can be divided into update operations for the rows. The matrix update operation of the update subject characteristic matrix 10d can be divided into I n row update operations, and the row update operations are distributed to the threads 10e_1 to 10e_T to be subjected to the parallel processing. Here, the distribution of the row update operations for the threads 10e_1 to 10e_T may be made with reference to the resource information.

이때, 각 쓰레드들(10e_1 내지 10e_T)은 분배된 행 갱신 연산들을 분배 순서대로 순차적으로 처리하여 특성 행렬들에 대한 행을 갱신하는 연산을 수행한다. 예컨대, 갱신 대상 특성 행렬(10d)의 i1번째 행(Row i1)과 In번째 행(Row In)은 쓰레드 10e_1에 분배되고, 분배된 순서대로 각각 행 갱신 연산이 수행될 수 있다. 여기서, 각 쓰레드들(10e_1 내지 10e_T)는 서로 연산을 병렬적으로 수행한다.At this time, each of the threads 10e_1 to 10e_T performs an operation of sequentially updating the row for characteristic matrices by sequentially processing the distributed row update operations in the order of distribution. For example, the i 1 -th row (Row i 1 ) and the I n -th row (Row I n ) of the update target characteristic matrix 10d are distributed to the thread 10e_1, and each row update operation can be performed in the order of distribution. Here, each of the threads 10e_1 to 10e_T performs operations in parallel with each other.

이때, 각 쓰레드들(10e_1 내지 10e_T)에서 행 갱신 연산들에 대한 결과를 수집하여 갱신 대상 특성 행렬(10d)를 갱신하여 갱신된 특성 행렬(10f)를 획득할 수 있다. 예컨대, 갱신된 i1번째 행(Row i1, updated)을 갱신 대상 특성 행렬(10d)의 i1 번째 행으로 대체하고, 갱신된 In번째 행(Row In, updated)을 갱신 대상 특성 행렬(10d)의 In 번째 행으로 대체하여, 갱신된 특성 행렬(10f)를 획득할 수 있다.At this time, the result of the row update operations in each of the threads 10e_1 to 10e_T may be collected and the update characteristic matrix 10d may be updated to acquire the updated characteristic matrix 10f. For example, the updated i 1- th row (Row i 1 , updated) is replaced with the i 1 -th row of the update target characteristic matrix 10d, and the updated I n -th row (Row I n , updated) The updated characteristic matrix 10f can be obtained by replacing the I n -th row of the characteristic matrix 10f with the I n -th row of the characteristic matrix 10d.

도 11은 본 발명의 일 실시예에 따른 행 갱신 연산 과정을 나타낸 도면이다.11 is a diagram illustrating a row update calculation process according to an embodiment of the present invention.

도 11을 참조하면, 갱신 대상 특성 행렬 A(n)(11a)의 in번째 행에 대한 갱신은 상기 수학식 4를 이용하여 수행할 수 있다. 이때, 행 갱신 연산에 이용되는 중간 데이터는 길이 Jn의 벡터

Figure pat00025
(11b), 크기 Jn×Jn의 행렬
Figure pat00026
(11c), 길이 Jn의 벡터
Figure pat00027
(11d) 등이 있다. 또한,
Figure pat00028
은 크기 Jn×Jn의 단위 행렬이며, λ는 정규화 파라미터를 의미한다.Referring to FIG. 11, updating of the i n -th row of the update-targeted characteristic matrix A (n) 11a can be performed using Equation (4). At this time, the intermediate data used for the row update operation is a vector of length J n
Figure pat00025
(11b), the size of the matrix × J n J n
Figure pat00026
(11c), the vector length n J
Figure pat00027
(11d) and the like. Also,
Figure pat00028
Is the identity matrix of size n × J n J, λ denotes a normalization parameter.

이때, 벡터

Figure pat00029
(11b)는 상기 수학식 6에 의하여 벡터
Figure pat00030
(11d)를 참조하여 계산하고, 벡터
Figure pat00031
(11b)의 j번째 원소는 벡터
Figure pat00032
(11d)의 j번째 원소를 참조하여 계산할 수 있다.At this time,
Figure pat00029
(11b) can be expressed by Equation (6)
Figure pat00030
(11d), and the vector
Figure pat00031
The jth element of the vector 11b is a vector
Figure pat00032
Can be calculated by referring to the j-th element of the first element 11d.

이때, 행렬

Figure pat00033
(11c)는 상기 수학식 5에 의하여 벡터
Figure pat00034
(11d)를 참조하여 계산하고, 행렬
Figure pat00035
(11c)의 (j1, j2)번째 원소는 벡터
Figure pat00036
(11d)의 j1번째 원소와 j2번째 원소를 참조하여 계산할 수 있다.At this time,
Figure pat00033
(11c) < / RTI >< RTI ID = 0.0 >
Figure pat00034
(11d), and the matrix
Figure pat00035
(J 1 , j 2 ) -th element of the vector 11c is a vector
Figure pat00036
Can be calculated by referring to the j < th > and j < 2 >

도 12 및 13은 코어 텐서의 원소들 각각에 상응하는 에러 값들의 분포를 나타낸 그래프와 에러 값들을 누적한 그래프이다.12 and 13 are graphs showing the distribution of error values corresponding to each of the elements of the core tensor and accumulated error values.

도 12 및 13을 참조하면, 코어 텐서의 원소들 각각에 상응하는 에러 값들(Partial Reconstruction Error R(β))은 내림 차순으로 정렬하게 되면 일부의 원소들만이 큰 에러 값을 가지며, 대부분의 원소들은 상대적으로 기하급수적으로 감소된 작은 에러 값을 갖는다. 대체로 약 20퍼센트의 원소들이 전체 에러 값들의 80퍼센트 가량을 차지함을 확인할 수 있다. 즉, 코어 텐서의 원소들 각각에 대한 에러를 계산하여 에러 값이 높은 순서대로 일정 비율만큼을 제거함으로써 코어 텐서에 포함된 노이즈들을 효과적으로 제거할 수 있다.Referring to FIGS. 12 and 13, when the error values (Partial Reconstruction Error R (?)) Corresponding to each of the elements of the core tensor are arranged in descending order, only some of the elements have a large error value, And has a small error value that is relatively exponentially reduced. In general, we can see that about 20 percent of the elements account for about 80 percent of the total error values. That is, errors included in the core tensor can be effectively removed by calculating an error for each of the elements of the core tensor and eliminating a predetermined ratio in order of increasing error value.

하기 표 2는 도 14 내지 27에서 본 발명에 따른 텐서 분해 방법과 기존의 텐서 분해 방법들의 성능을 비교하기 위하여 이용한 텐서에 대한 정보를 나타낸다.The following Table 2 shows information about the tensor used to compare the performance of the tensor decomposition method according to the present invention and the conventional tensor decomposition methods.

NameName OrderOrder DimensionalityDimensionality |Ω|| Ω | RankRank Yahoo-musicYahoo-music 44 (1M, 625K, 113, 24)(1M, 625K, 113, 24) 252M252M 1010 MovieLensMovieLens 44 (138K, 27K, 21, 24)(138K, 27K, 21, 24) 20M20M 1010 Video (Wave)Video (Wave) 44 (112, 160, 3, 32)(112, 160, 3, 32) 160K160K 33 Image (Lena)Image (Lena) 33 (256, 256, 3)(256, 256, 3) 20K20K 33 SyntheticSynthetic 3~103 to 10 100~10M100 ~ 10M ~100M~ 100M 3~113 to 11

특히, 도 14 내지 17, 20 내지 25는 상기 표 2의 가상(Synthetic) 텐서를 이용한 도면이며, 도 18, 19, 26 및 27은 상기 표 2의 현실의 음악, 영화, 비디오 및 이미지와 관련된 텐서를 이용한 도면이다. 특히, 음악 데이터는 (사용자, 음악, 년-월, 시간, 평점)의 데이터를 포함하고, 영화 데이터는 (사용자, 영화, 년, 시간, 평점)의 데이터를 포함하고, 비디오 데이터와 이미지 데이터는 원본 데이터에서 10%-샘플링한 텐서이다. 그리고, 가상 텐서는 각 원소들이 임의의 좌표를 가지고, 그 값이 0에서 1 사이의 임의의 실수로 결정된 텐서를 의미한다.Particularly, FIGS. 14 to 17 and 20 to 25 are diagrams using the synthetic tensor shown in Table 2, and FIGS. 18, 19, 26 and 27 are diagrams showing the relationship between the reality, Fig. In particular, music data includes data of (user, music, year-month, time, rating), movie data includes data of (user, movie, year, time, rating), video data and image data 10% - sampled tensor from the original data. The virtual tensor is a tensor whose elements have arbitrary coordinates and whose values are determined by random numbers between 0 and 1.

도 14 내지 17은 본 발명의 일 실시예에 따른 텐서 분해 방법과 기존의 텐서 분해 방법들의 성능을 비교하는 도면이다.FIGS. 14 through 17 are views for comparing the performance of the tensor decomposition method and the conventional tensor decomposition methods according to an embodiment of the present invention.

도 14 내지 17에서 본 발명의 일 실시예에 따른 텐서 분해 방법은 P-Tucker(14a, 15a, 16a 및 17a)이며, 기존의 다른 텐서 분해 방법들은 Tucker-CSF(14b, 15b, 16b 및 17b), S-HOTscan(14c, 15c, 16c 및 17c) 및 Tucker-wOpt(14d 및 15d)이다. 특히, 도 14 내지 17에서 y축은 특성 행렬들에 대한 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 초 단위로 나타낸 것으로, 로그 스케일로 나타나져 있다. 14 to 17 are P-Tuckers 14a, 15a, 16a and 17a, and other conventional tensor decomposition methods are Tucker-CSF 14b, 15b, 16b and 17b, , S-HOT scans 14c, 15c, 16c and 17c and Tucker-wOpt 14d and 15d. In particular, the y-axis in Figs. 14 to 17 represents the time required to perform the 1-cycle update operation on the characteristic matrices in seconds, which is represented by a logarithmic scale.

도 14는 분해 대상 텐서의 차수(order)에 따른 특성 행렬들에 대한 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 비교한 그래프로, 본 발명의 텐서 분해 방법인 P-Tucker(14a), Tucker-CSF(14b), S-HOTscan(14c) 및 Tucker-wOpt(14d) 순서대로 연산 수행 시간이 짧다. 즉, 본 발명에 따른 텐서 분해 방법이 가장 연산 속도가 빠름을 알 수 있다. 특히, Tucker-wOpt(14d)는 분해 대상 텐서의 차수가 4차일 때 본 발명에 따른 텐서 분해 방법과 연산 시간이 6만배의 차이가 나며, 분해 대상 텐서의 차수가 5차 이상일 때에는 메모리 초과(O.O.M: Out Of Memory) 상태가 된다. 그리고 Tucker-CSF(14b)와 S-HOTscan(14c)는 분해 대상 텐서의 차수가 10차일 때에도, 본 발명에 따른 텐서 분해 방법과 연산 시간이 7.1배만큼의 차이가 난다.14 is a graph comparing the time required for performing a one-cycle update operation on characteristic matrices according to order of decomposition target tensor. The P-Tucker 14a, the Tucker 14a, -CSF 14b, S-HOT scan 14c, and Tucker-wOpt 14d. That is, it can be seen that the tensor decomposition method according to the present invention has the highest computation speed. In particular, the Tucker-wOpt 14d differs from the tensor decomposition method according to the present invention by a time difference of 60,000 times when the order of the decomposition target tensor is quadratic. When the degree of decomposition target tensor is 5 or more, : Out Of Memory) state. The Tucker-CSF 14b and the S-HOT scan 14c differ from the tensor decomposition method according to the present invention by a factor of 7.1 even when the order of the decomposition target tensor is 10th.

도 15는 분해 대상 텐서의 차원수(dimensionality)에 따른 특성 행렬들에 대한 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 비교한 그래프로, 본 발명의 텐서 분해 방법인 P-Tucker(15a), Tucker-CSF(15b), S-HOTscan(15c) 및 Tucker-wOpt(15d) 순서대로 연산 수행 시간이 짧다. 즉, 본 발명에 따른 텐서 분해 방법이 가장 연산 속도가 빠름을 알 수 있다. 특히, Tucker-wOpt(15d)는 분해 대상 텐서의 차원수가 103일 때 본 발명에 따른 텐서 분해 방법과 연산 시간이 2만배의 차이가 나며, 분해 대상 텐서의 차원수가 103을 초과할 때에는 메모리 초과(O.O.M: Out Of Memory) 상태가 된다. 그리고 Tucker-CSF(15b)와 S-HOTscan(15c)는 분해 대상 텐서의 차원수가 107일 때에도, 본 발명에 따른 텐서 분해 방법과 연산 시간이 10.7배만큼의 차이가 난다.15 is a graph comparing the time required for performing a one-cycle update operation on characteristic matrices according to the dimensionality of the decomposition target tensor. The P-Tucker 15a, the tensor decomposition method of the present invention, Tucker-CSF 15b, S-HOT scan 15c, and Tucker-wOpt 15d. That is, it can be seen that the tensor decomposition method according to the present invention has the highest computation speed. In particular, when the number of dimensions of the decomposition target tensor is 10 3 , the Tucker-wOpt (15d) differs from the tensor decomposition method according to the present invention in the calculation time of 20,000 times. When the number of dimensions of the decomposition target tensor exceeds 10 3 , (OOM: Out Of Memory) state. And Tucker-CSF (15b) and S-HOT scan (15c) is when the number of dimensions 10 7 days of decomposition target tensor, differ as much as 10.7 times the tensor decomposition method and the operation time in accordance with the present invention.

도 16은 분해 대상 텐서의 관측 가능한 원소의 개수(number of observable entries)에 따른 특성 행렬들에 대한 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 비교한 그래프로, 본 발명의 텐서 분해 방법인 P-Tucker(16a)가 가장 연산 수행 시간이 짧다. 즉, 본 발명에 따른 텐서 분해 방법이 가장 연산 속도가 빠름을 알 수 있다. 특히, Tucker-wOpt(16d)는 분해 대상 텐서의 원소 수가 103 이상일 때에는 메모리 초과(O.O.M: Out Of Memory) 상태가 된다. 그리고 Tucker-CSF(16b)와 S-HOTscan(16c)는 분해 대상 텐서의 원소 수가 107일 때에도, 본 발명에 따른 텐서 분해 방법과 연산 시간이 14.1배 이상의 차이가 난다.FIG. 16 is a graph comparing the time required for performing the one-cycle update operation on the characteristic matrices according to the number of observable entries of the decomposition target tensor. The tensor decomposition method of the present invention, P -Tucker 16a has the shortest execution time. That is, it can be seen that the tensor decomposition method according to the present invention has the highest computation speed. In particular, the Tucker-wOpt (16d) is in an OOM (Out Of Memory) state when the number of elements of the decomposition target tensor is 10 3 or more. The Tucker-CSF 16b and the S-HOT scan 16c differ from the tensor decomposition method according to the present invention by 14.1 times or more even when the number of elements of the decomposition target tensor is 10 7 .

도 17는 분해 대상 텐서의 랭크(rank)에 따른 특성 행렬들에 대한 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 비교한 그래프로, 본 발명의 텐서 분해 방법인 P-Tucker(17a), Tucker-CSF(17b), S-HOTscan(17c) 및 Tucker-wOpt(17d) 순서대로 연산 수행 시간이 짧다. 즉, 본 발명에 따른 텐서 분해 방법이 가장 연산 속도가 빠름을 알 수 있다. 특히, Tucker-wOpt(17d)는 분해 대상 텐서의 랭크가 3 이상일 때 메모리 초과(O.O.M: Out Of Memory) 상태가 된다. 그리고 Tucker-CSF(17b)와 S-HOTscan(17c)는 분해 대상 텐서의 랭크가 11일 때에도, 본 발명에 따른 텐서 분해 방법과 연산 시간이 12.9배만큼의 차이가 난다.17 is a graph comparing the time required for performing the one-cycle update operation on the characteristic matrices according to the rank of the decomposition subject tensor. The P-Tucker 17a, the Tucker 17a, -CSF 17b, S-HOT scan 17c, and Tucker-wOpt 17d. That is, it can be seen that the tensor decomposition method according to the present invention has the highest computation speed. In particular, the Tucker-wOpt 17d becomes an OOM (Out Of Memory) state when the rank of the decomposition target tensor is 3 or more. The Tucker-CSF 17b and the S-HOT scan 17c differ from the tensor decomposition method according to the present invention by 12.9 times even when the decomposition target tensor has a rank of 11.

따라서, 본 발명에 따른 텐서 분해 방법은 기존의 텐서 분해 방법들과 비교하였을 때 최소 7배 이상의 성능 향상이 이루어짐을 확인할 수 있다.Therefore, it can be confirmed that the tensor decomposition method according to the present invention has a performance improvement of at least 7 times as compared with the conventional tensor decomposition methods.

도 18 및 19는 현실의 큰 스케일의 다차원 데이터에 대하여 본 발명의 일 실시예에 따른 텐서 분해 방법과 기존의 텐서 분해 방법들의 성능을 비교하는 도면이다.FIGS. 18 and 19 are diagrams for comparing the performance of the conventional tensor decomposition methods with the tensor decomposition method according to an embodiment of the present invention with respect to real-scale large-scale multi-dimensional data.

도 18 및 19에서 본 발명의 일 실시예에 따른 텐서 분해 방법은 P-Tucker와 P-Tucker-APPROX이며, 기존의 다른 텐서 분해 방법들은 Tucker-CSF, S-HOTscan 및 Tucker-wOpt이다. 특히, 도 18 및 19에서 y축은 특성 행렬들에 대한 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 초 단위로 나타낸 것으로, 로그 스케일로 나타나져 있다. P-Tucker는 본 발명의 특성 행렬의 갱신을 행 단위로 나누어 병렬 처리하는 텐서 분해 방법이며, P-Tucker-APPROX는 본 발명의 P-Tucker에서 코어 텐서의 노이즈를 제거하는 과정을 추가적으로 수행하는 텐서 분해 방법이다.In FIGS. 18 and 19, the tensor decomposition method according to an embodiment of the present invention is P-Tucker and P-Tucker-APPROX, and other conventional tensor decomposition methods are Tucker-CSF, S-HOT scan and Tucker-wOpt. In particular, in Figures 18 and 19, the y-axis represents the time required to perform the 1-cycle update operation on the characteristic matrices in seconds, which is represented by a logarithmic scale. P-Tucker is a tensor decomposition method in which the update of the characteristic matrix of the present invention is divided and performed in units of rows, and P-Tucker-APPROX is a tensor decomposition method in which a process of removing noise of a core tensor is further performed in the P- Decomposition method.

도 18은 특정 음악 제공 서비스에서 수집한 다차원 데이터와 특정 영화 서비스에서 수집한 다차원 데이터에 대하여, 특성 행렬들에 대한 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 비교한 그래프이다. 도 18을 참조하면, 음악 서비스 분석이나 영화 서비스 분석에 대하여 본 발명에 따른 P-Tucker-APPROX, P-Tucker, 그리고 기존의 텐서 분해 방법인 Tucker-CSF, S-HOTscan, Tucker-wOpt 순으로 연산 속도가 빠름을 확인할 수 있다. 여기서, 기존의 텐서 분해 방법 중에서 Tucker-wOpt의 경우에는 메모리 초과 상태가 되어 도 18에 나타나지 않았다. 특히, 본 발명에 따른 P-Tucker-APPROX가 기존의 텐서 분해 기법 중에서 가장 빠른 Tucker-CSF와 비교하여도 음악 서비스 분석시에 소요되는 시간이 2.4배 차이나고, 영화 서비스 분석시에 소요되는 시간이 2.9배 차이나는 것을 확인할 수 있다.FIG. 18 is a graph comparing time required for performing a one-cycle update operation on characteristic matrices with respect to multidimensional data collected from a specific music providing service and multidimensional data collected from a specific movie service. Referring to FIG. 18, P-Tucker-APPROX and P-Tucker according to the present invention and Tucker-CSF, S-HOT scan and Tucker-wOpt, which are conventional tensor decomposition methods, It can be confirmed that the operation speed is fast. Here, in the case of Tucker-wOpt among the conventional tensor decomposition methods, the memory is overstated and not shown in FIG. In particular, the time required to analyze the music service is 2.4 times that of the Pucker-APPROX according to the present invention, which is the fastest among the existing tensor decomposition techniques, and the time required for analyzing the movie service 2.9 times.

도 19는 특정 비디오 제공 서비스에서 수집한 다차원 데이터와 레나 이미지에 대한 다차원 데이터에 대하여, 특성 행렬들에 대한 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 비교한 그래프이다. 도 19를 참조하면, 비디오 서비스 분석이나 레나 이미지 분석에 대하여 본 발명에 따른 P-Tucker-APPROX 또는 P-Tucker가 기존의 텐서 분해 방법인 Tucker-CSF, S-HOTscan, Tucker-wOpt 보다 연산 속도가 빠름을 확인할 수 있다. 특히, 비디오 분석에서 본 발명에 따른 P-Tucker-APPROX가 기존의 텐서 분해 기법 중에서 가장 빠른 Tucker-CSF와 비교하여 소요되는 시간이 1.7배 차이나고, 레나 이미지 분석에서 본 발명에 따른 P-Tucker가 기존의 텐서 분해 기법 중에서 가장 빠른 Tucker-CSF와 비교하여 소요되는 시간이 5.3배 차이나는 것을 확인할 수 있다.FIG. 19 is a graph comparing time required for performing a one-cycle update operation on characteristic matrices for multidimensional data collected from a specific video providing service and multidimensional data for a Lena image. Referring to FIG. 19, P-Tucker-APPROX or P-Tucker according to the present invention is compared with Tucker-CSF, S-HOT scan , and Tucker-wOpt, which are conventional tensor decomposition methods, Is fast. In particular, in the video analysis, the time required for the P-Tucker-APPROX according to the present invention is 1.7 times as compared with that of the fastest Tucker-CSF in the conventional tensor decomposition technique, and in the Lena image analysis, P- Compared with the fastest Tucker-CSF among the existing tensor decomposition techniques, the time required is 5.3 times.

따라서, 본 발명에 따른 텐서 분해 방법은 현실의 큰 스케일의 다차원 데이터를 분해함에 있어서도 기존의 텐서 분해 방법들과 비교하였을 때 최소 1.7배 이상의 성능 향상이 이루어짐을 확인할 수 있다.Therefore, the tensor decomposition method according to the present invention can realize a performance improvement of 1.7 times or more as compared with the existing tensor decomposition methods even in decomposing realistic multi-dimensional data of a large scale.

도 20 및 21은 본 발명의 일 실시예에 따른 텐서 분해 방법에서 캐시 기능을 이용함에 따른 성능을 비교하는 도면이다.20 and 21 are diagrams comparing performance according to the use of the cache function in the tensor decomposition method according to an embodiment of the present invention.

도 20 및 21에서 본 발명의 일 실시예에 따른 텐서 분해 방법 중 고반복 연산을 캐시하는 기능을 이용하지 않는 경우는 P-Tucker(20a 및 21a)이며, 고반복 연산을 캐시하는 기능을 이용하는 경우는 P-Tucker-Cache(20b 및 21b)이다.20 and 21 illustrate P-Tucker 20a and 21a when the function of caching high-latency operation is not used in the tensor decomposition method according to an embodiment of the present invention. -Tucker-Cache (20b and 21b).

도 20은 분해 대상 텐서의 차수(order)에 따른 특성 행렬들에 대하여 평균적으로 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 비교한 그래프로, 캐시 기능을 이용하는 P-Tucker-Cache(20b)가 캐시 기능을 이용하지 않는 P-Tucker(20a)보다 연산 시간이 짧음을 확인할 수 있다. 특히, 분해 대상 텐서의 차수가 증가함에 따라 연산 시간의 차이는 커지며, 텐서 차수가 10차일 때, 연산 시간이 1.7배만큼 차이가 난다.FIG. 20 is a graph comparing the time required for performing the one-cycle update operation on the characteristic matrices according to the order of the decomposition target tensor. The P-Tucker-Cache 20b using the cache function It can be confirmed that the calculation time is shorter than that of the P-Tucker 20a which does not use the cache function. In particular, as the degree of the decomposition target tensor increases, the difference in the computation time increases. When the tensile degree is 10th, the computation time differs by 1.7 times.

도 21은 분해 대상 텐서의 차수(order)에 따른 특성 행렬들을 갱신하는데 요구되는 메모리 사용량을 비교한 그래프로, 캐시 기능을 이용하는 P-Tucker-Cache(21b)가 캐시 기능을 이용하지 않는 P-Tucker(21a)보다 메모리 사용량이 큼을 확인할 수 있다. 캐시 기능을 이용하지 않는 P-Tucker(21a)는 텐서 차수가 증가하더라도 메모리 사용량이 크게 증가하지 않는 반면에, 캐시 기능을 이용하는 P-Tucker-Cache(21b)는 텐서 차수가 증가함에 따라 메모리 사용량이 꾸준히 증가한다. 특히, 분해 대상 텐서의 차수가 증가함에 따라 메모리 사용량의 차이는 커지며, 텐서 차수가 10차일 때, 메모리 사용량이 29.5배만큼 차이가 난다.FIG. 21 is a graph comparing the memory usage required to update the characteristic matrices according to order of decomposition subject tensor. The P-Tucker-Cache 21b using the cache function is a P-Tucker It can be confirmed that the memory usage is larger than that of the memory 21a. The P-Tucker 21a that does not use the cache function does not significantly increase the memory usage even when the tensile order increases, whereas the P-Tucker-Cache 21b that uses the cache function increases the memory usage as the tensile order increases It increases steadily. Particularly, as the degree of decomposition target tensor increases, the difference in memory usage increases, and when the tensile degree is 10th, the memory usage differs by 29.5 times.

즉, 본 발명에 따른 텐서 분해 방법은 캐시 기능을 이용함에 따라 연산 속도를 높일 수 있으나, 데이터를 캐시함에 따른 메모리 사용량이 크게 증가함을 알 수 있다. 따라서, 메모리 사용량과 연산 속도가 서로 트레이드 오프(trade off) 관계에 있으며, 메모리 사용량이 증가하더라도 연산 속도를 높일 필요가 있는 경우에는 캐시 기능을 이용할 수 있다.In other words, the tensor decomposition method according to the present invention can increase the operation speed by using the cache function, but it can be seen that the memory usage increases as the data is cached. Therefore, the memory usage and the operation speed are in a trade off relationship with each other, and the cache function can be used when it is necessary to increase the operation speed even if the memory usage increases.

도 22 및 23은 본 발명의 일 실시예에 따른 텐서 분해 방법에서 코어 텐서의 노이즈를 제거하는 기능을 이용함에 따른 성능을 비교하는 도면이다.FIGS. 22 and 23 are diagrams for comparing performance according to the use of the noise removing function of the core tensor in the tensor decomposition method according to an embodiment of the present invention.

도 22 및 23에서 본 발명의 일 실시예에 따른 텐서 분해 방법 중 코어 텐서의 노이즈를 제거하는 기능을 이용하지 않는 경우는 P-Tucker(22a 및 23a)이며, 코어 텐서의 노이즈를 제거하는 기능을 이용하는 경우는 P-Tucker-APPROX(22b 및 23b)이다.22 and 23 illustrate the P-Tuckers 22a and 23a that do not use the function of removing noise from the core tensor among the tensor decomposition methods according to an embodiment of the present invention, And P-Tucker-APPROX 22b and 23b when used.

도 22는 특성 행렬들에 대한 1-싸이클 갱신 연산을 반복한 횟수에 따른 1-싸이클 갱신 연산을 수행하는데 소요되는 시간을 비교한 그래프이다. 반복 횟수가 적을 때에는 코어 텐서의 원소들에 대하여 노이즈를 계산하는 연산으로 인하여 1-싸이클 갱신 연산을 수행하는데 걸리는 시간이 P-Tucker-APPROX(22b)가 P-Tucker(22a)보다 더 오래 걸리는 것을 확인할 수 있다. 그리고, 반복 횟수가 7회를 초과하게 되면 코어 텐서의 노이즈가 줄어듬에 따라 1-싸이클 갱신 연산에 포함된 계산의 숫자가 줄어드는 효과가 커지고 1-싸이클 갱신 연산을 수행하는데 걸리는 시간이 P-Tucker-APPROX(22b)가 P-Tucker(22a)보다 더 짧아진다는 것을 확인할 수 있다. 반복 횟수가 증가함에 따라 P-Tucker-APPROX(22b)는 연산 속도가 더욱 빨라지게 된다. 특히, 반복 횟수가 14회일 경우에는 P-Tucker-APPROX(22b)가 P-Tucker(22a)보다 연산 시간이 약 2.7배만큼 빠르다.22 is a graph comparing the time required to perform a 1-cycle update operation according to the number of repetitions of the 1-cycle update operation on the characteristic matrices. When the number of repetition times is small, the time required to perform the one-cycle update operation due to the operation of calculating the noise for the elements of the core tensor is longer than that of the P-Tucker 22a in the P-Tucker-APPROX 22b Can be confirmed. If the number of iterations exceeds 7, the number of calculations included in the 1-cycle update operation decreases as the noise of the core tensor decreases, and the time required to perform the 1-cycle update operation becomes larger than that of the P-Tucker- It can be confirmed that the APPROX 22b is shorter than the P-Tucker 22a. As the number of repetitions increases, the operation speed of the P-Tucker-APPROX 22b becomes faster. In particular, when the number of repetitions is 14, the calculation time of the P-Tucker-APPROX 22b is about 2.7 times faster than that of the P-Tucker 22a.

도 23은 특성 행렬들에 대한 1-싸이클 갱신 연산을 반복한 횟수에 따른 정확도를 비교한 그래프이다. 전체적으로 코어 텐서의 노이즈를 제거하는 P-Tucker-APPROX(23b)는 코어 텐서의 노이즈를 제거하지 않는 P-Tucker(23a)와 비교하여 정확도가 낮음을 확인할 수 있다. 코어 텐서의 노이즈를 제거하는 P-Tucker-APPROX(23b)는 반복 횟수가 증가하더라도 정확도가 일정 선을 유지하다가, 특정 반복 횟수(14회)를 넘어서면 정확도가 급격히 떨어지게 된다. 이는 코어 텐서의 노이즈를 제거하는 것이 반복되면서 의미있는 수치가 노이즈로 판단되어 제거되는 현상이 발생하기 때문이다. 따라서, 반복 횟수가 14회일 때(23c), 코어 텐서의 노이즈를 제거하는 텐서 분해 방법의 최적 지점이라 볼 수 있다.23 is a graph comparing the accuracy according to the number of repetitions of the one-cycle update operation on the characteristic matrices. The P-Tucker-APPROX 23b, which totally removes the noise of the core tensor, is less accurate than the P-Tucker 23a which does not remove the noise of the core tensor. The P-Tucker-APPROX (23b), which removes the noise of the core tensor, maintains a certain accuracy even if the number of repetitions increases, but when the number of repetitions exceeds a certain number of repetitions (14 times), the accuracy rapidly decreases. This is because the removal of the noise of the core tensor is repeated and a meaningful value is determined as noise and is removed. Therefore, when the number of repetitions is 14 (23c), it can be regarded as an optimum point of the tensor decomposition method for removing the noise of the core tensor.

도 22 및 23에 따르면, 반복 횟수가 14회일 때 코어 텐서의 노이즈를 제거하는 P-Tucker-APPROX의 연산이 코어 텐서의 노이즈를 제거하지 않는 P-Tucker에 비하여 정확도 손실대비 연산 속도 증가량이 가장 큼을 확인할 수 있다. 즉, 코어 텐서의 노이즈를 제거하는 경우에는 연산 속도와 정확도가 서로 트레이드 오프 관계에 있음을 알 수 있다.22 and 23, the calculation of P-Tucker-APPROX, which removes the noise of the core tensor when the number of repetitions is 14, is larger than that of P-Tucker which does not remove the noise of the core tensor, Can be confirmed. That is, when the noise of the core tensor is removed, it can be seen that the calculation speed and the accuracy are in a trade-off relationship with each other.

도 24 및 25는 본 발명의 일 실시예에 따른 텐서 분해 방법에서 쓰레드의 개수와 성능의 상관 관계를 나타낸 도면이다.24 and 25 are views showing the correlation between the number of threads and performance in the tensor decomposition method according to an embodiment of the present invention.

도 24는 본 발명에 따른 병렬 처리를 통한 텐서 분해 방법에서 다수의 쓰레드를 이용할 때의 연산 속도와 하나의 쓰레드를 이용할 때의 연산 속도의 비율(24a)을 나타낸 그래프이다. 이는, 하나의 쓰레드를 이용할 때의 연산 시간을 다수의 쓰레드를 이용할 때의 연산 시간으로 나눔으로써 계산할 수도 있다. 병렬 처리에 이용되는 쓰레드가 증가함에 따라 연산 속도는 거의 선형적으로 증가함을 확인할 수 있으며, 20개의 쓰레드를 이용하는 경우에는 1개의 쓰레드를 이용하는 경우에 비하여 약 15배의 연산 속도 증가의 효과가 있음을 확인할 수 있다. 쓰레드의 증가와 연산 속도의 증가가 선형적으로 이루어지므로, 병렬 처리의 규모를 키우더라도 늘어난 규모에 비례하여 연산 속도에서 이득을 볼 수 있는 장점이 있다.FIG. 24 is a graph showing the ratio (24a) between the operation speed when using a plurality of threads and the operation speed when using one thread in the tensor decomposition method according to the present invention. This can be calculated by dividing the operation time when one thread is used by the operation time when using a plurality of threads. As the number of threads used for parallel processing increases, the operation speed increases almost linearly. In the case of using 20 threads, the operation speed is increased by about 15 times as compared with the case where one thread is used can confirm. Since the increase of the thread and the increase of the operation speed are performed linearly, there is an advantage that the gain can be obtained at the operation speed in proportion to the increased size even if the parallel processing size is increased.

도 25는 본 발명에 따른 병렬 처리를 통한 텐서 분해 방법에서 다수의 쓰레드를 이용할 때의 메모리 요구량(25a)을 나타낸 그래프이다. 병렬 처리에 이용되는 쓰레드가 증가함에 따라 메모리 증가량은 거의 선형적으로 증가함을 확인할 수 있으며, 20개의 쓰레드를 이용하는 경우에는 1개의 쓰레드를 이용하는 경우에 비하여 약 4배의 메모리 요구량 증가의 효과가 있음을 확인할 수 있다. 25 is a graph showing a memory requirement amount 25a when a plurality of threads are used in the tensor decomposition method according to the present invention. As the number of threads used for parallel processing increases, the amount of memory increase increases almost linearly. In the case of using 20 threads, the memory requirement increases by about 4 times as compared with the case where one thread is used can confirm.

도 24 및 25에 따르면, 쓰레드가 증가함에 따라 연산 속도의 증가와 메모리 요구량의 증가가 선형적으로 이루어지며, 연산 속도의 증가 폭이 메모리 요구량의 증가 폭보다 크므로 쓰레드 개수를 늘리는 것이 연산 효율을 효과적으로 높일 수 있다.24 and 25, as the number of threads increases, the operation speed increases and the memory requirement increases linearly. Since the increase in the operation speed is larger than the increase in the memory requirement, the increase in the number of threads increases the operation efficiency Can be effectively increased.

도 26 및 27은 현실의 큰 스케일의 다차원 데이터에 대하여 본 발명의 일 실시예에 따른 텐서 분해 방법과 기존의 텐서 분해 방법들의 정확도를 비교하는 도면이다.Figs. 26 and 27 are diagrams for comparing the accuracy of the conventional tensor decomposition methods with the tensor decomposition method according to an embodiment of the present invention with respect to actual large-scale multi-dimensional data.

도 26 및 27에서 본 발명의 일 실시예에 따른 텐서 분해 방법은 P-Tucker와 P-Tucker-APPROX이며, 기존의 다른 텐서 분해 방법들은 Tucker-CSF, S-HOTscan 및 Tucker-wOpt이다.In FIGS. 26 and 27, the tensor decomposition method according to an embodiment of the present invention is P-Tucker and P-Tucker-APPROX, and other conventional tensor decomposition methods are Tucker-CSF, S-HOT scan and Tucker-wOpt.

도 26은 음악 데이터, 영화 데이터, 비디오 데이터, 이미지 데이터에 대하여, 텐서 분해에 따른 재구축 에러를 비교한 그래프이다. 본 발명에 따른 텐서 분해 방법은 코어 텐서의 노이즈를 제거하지 않는 P-Tucker가 코어 텐서의 노이즈를 제거하는 P-Tucker-APPROX보다 재구축 에러가 작다. 그리고 본 발명에 따른 P-Tucker와 P-Tucker-APPROX 모두 기존의 텐서 분해 방법보다 재구축 에러가 작다. 음악 데이터와 영화 데이터에서는 Tucker-wOpt는 메모리 초과 상태가 되었으며, 비디오 데이터와 이미지 데이터에서는 Tucker-wOpt가 S-HOTscan 및 Tucker-CSF보다 재구축 에러가 작다. 즉, 본 발명에 따른 텐서 분해 방법을 이용하는 경우에는 큰 스케일의 현실 데이터에 대하여도 기존의 텐서 분해 방법과 비교하여 최소 1.4배부터 최대 4.8배만큼 정확도가 높다.26 is a graph comparing reconstruction errors caused by tensor decomposition for music data, movie data, video data, and image data. In the tensor decomposition method according to the present invention, the P-Tucker which does not remove the noise of the core tensor has a smaller reconstruction error than the P-Tucker-APPROX which removes the noise of the core tensor. Both P-Tucker and P-Tucker-APPROX according to the present invention have a smaller reconstruction error than the conventional tensor decomposition method. In music data and movie data, Tucker-wOpt is in excess of memory. In video data and image data, Tucker-wOpt is smaller than S-HOT scan and Tucker-CSF. That is, when the tensor decomposition method according to the present invention is used, accuracy of at least 1.4 times to 4.8 times as high as that of the conventional tensor decomposition method is high for large-scale real data.

도 27은 음악 데이터, 영화 데이터, 비디오 데이터, 이미지 데이터에 대하여, 텐서 분해에 따른 평균 제곱근 오차(RMSE; Root Mean Square Error)를 비교한 그래프이다. 평균 제곱근 오차를 계산할 때에는, 원래 데이터에서 10%를 분리한 테스트 데이터에 대해 계산했으며, 갱신 연산은 나머지 90%의 데이터를 사용하여 계산하였다. 본 발명에 따른 텐서 분해 방법은 코어 텐서의 노이즈를 제거하지 않는 P-Tucker가 코어 텐서의 노이즈를 제거하는 P-Tucker-APPROX보다 평균 제곱근 오차가 작다. 그리고 본 발명에 따른 P-Tucker와 P-Tucker-APPROX 모두 기존의 텐서 분해 방법보다 평균 제곱근 오차가 작다. 음악 데이터와 영화 데이터에서는 Tucker-wOpt는 메모리 초과 상태가 되었으며, 비디오 데이터와 이미지 데이터에서는 Tucker-wOpt가 S-HOTscan 및 Tucker-CSF보다 평균 제곱근 오차가 작다. 즉, 본 발명에 따른 텐서 분해 방법을 이용하는 경우에는 큰 스케일의 현실 데이터에 대하여도 기존의 텐서 분해 방법과 비교하여 최소 1.4배부터 최대 4.3배만큼 정확도가 높다.27 is a graph comparing a root mean square error (RMSE) according to tensor decomposition for music data, movie data, video data, and image data. When computing the mean square error, we calculated for the test data that separated 10% from the original data, and the update operation was calculated using the remaining 90% of the data. The tensor decomposition method according to the present invention has a smaller mean square root error than P-Tucker-APPROX in which the P-Tucker which does not remove the noise of the core tensor removes the noise of the core tensor. The P-Tucker and the P-Tucker-APPROX according to the present invention have a smaller mean square root error than the conventional tensor decomposition method. In music data and movie data, Tucker-wOpt is in excess of memory, and Tucker-wOpt is smaller than S-HOT scan and Tucker-CSF in video data and image data. That is, in the case of using the tensor decomposition method according to the present invention, accuracy of at least 1.4 times to 4.3 times as high as that of the conventional tensor decomposition method is high for large scale real data.

이와 같이, 본 발명에 따른 병렬 처리를 통한 텐서 분해 방법은 종래의 텐서 분해 방법들과 비교하였을 때, 정확도, 연산 속도, 스케일 및 메모리에서 큰 성능 향상이 있음을 확인할 수 있다. 하기 표 3은 기존의 텐서 분해 방법들과 본 발명에 따른 텐서 분해 방법들의 스케일, 속도, 메모리, 정확도 측면에서의 특징들을 비교한 것이고, 하기 표 4는 기존의 텐서 분해 방법들과 본 발명에 따른 텐서 분해 방법들의 1-싸이클 갱신 연산에 대한 시간 복잡도와 메모리 복잡도를 비교한 것이다.As described above, the tensor decomposition method according to the present invention has a great improvement in accuracy, operation speed, scale, and memory when compared with the conventional tensor decomposition methods. Table 3 below compares features in terms of scale, speed, memory, and accuracy of the conventional tensor decomposition methods and the tensor decomposition methods according to the present invention. Table 4 below shows the conventional tensor decomposition methods and the tensor decomposition methods according to the present invention. It compares the time complexity and the memory complexity for 1-cycle update operations of tensor decomposition methods.

MethodMethod ScaleScale SpeedSpeed MemoryMemory AccuracyAccuracy Tucker-wOptTucker-wOpt OO Tucker-CSFTucker-CSF OO OO S-HOTscan S-HOT scan OO OO OO P-TuckerP-Tucker OO OO OO OO

MethodMethod Time Complexity
(per iteration)
Time Complexity
(per iteration)
Memory ComplexityMemory Complexity
P-TuckerP-Tucker O(NIJ3 + N2|Ω|JN)O (NIJ 3 + N 2 | Ω | J N ) O(TJN)O (TJ N ) P-Tucker-CACHEP-Tucker-CACHE O(NIJ3 + N|Ω|JN)O (NIJ 3 + N | Ω | J N ) O(|Ω|JN)O (| Ω | J N ) P-Tucker-APPROXP-Tucker-APPROX O(NIJ3 + N2|Ω||G|)O (NIJ 3 + N 2 | Ω || G |) O(JN)O (J N ) Tucker-wOptTucker-wOpt O(N

Figure pat00037
(IN-kJk))O (N
Figure pat00037
(Nk J I k)) O(IN-1J)O (I N-1 J) Tucker-CSFTucker-CSF O(NJN-1(|Ω| + J2(N-1))O (NJ N-1 (| OMEGA | + J 2 (N-1) ) O(IJN-1)O (IJ N-1 ) S-HOTscan S-HOT scan O(NJN + N|Ω|JN)O ( N N N + N | Ω | J N ) O(JN-1)O (J N-1 )

본 발명의 텐서 분해 방법은 스케일이 큰 데이터에 대하여도 메모리 초과 없이 고속 및 고정확도로 텐서를 분해할 수 있으므로, 분해된 특성 행렬들과 코어 텐서를 이용하여 다차원 데이터에 대한 분석을 효과적으로 수행할 수 있다. 특히, 텐서 분해 과정에서 비어있는 원소의 값을 단순히 0으로 예측하는 종래의 텐서 분해 방법들과는 달리, 본 발명에 따른 텐서 분해 방법은 병렬 처리에 의하여 비어있는 원소의 값에 대하여도 높은 정확도로 예측할 수 있으므로, 실제 데이터에 대하여 높은 정확도로 트렌드, 군집화, 추천 등의 분석이 가능하다. 예컨대, 빅데이터 분석 분야뿐만 아니라, 생명공학에서 인간 유전자를 분석할 때 비슷한 유전자들을 군집화할 수 있으며, 산업 공학에서는 대규모의 센서 데이터에 대한 이상 값 또는 트렌드를 분석하는데 사용할 수 있다.The tensor decomposition method of the present invention can decompose the tensor with high speed and high accuracy without exceeding the memory even for large scale data and therefore can analyze the multidimensional data effectively using the decomposed characteristic matrices and the core tensor have. In particular, unlike the conventional tensor decomposition methods for predicting the value of an empty element to zero in the tensor decomposition process, the tensor decomposition method according to the present invention can predict the values of empty elements with high accuracy by parallel processing Therefore, it is possible to analyze trends, clustering and recommendation with high accuracy with respect to actual data. For example, similar genes can be clustered when analyzing human genes in biotechnology as well as in big data analysis areas, and industrial engineering can be used to analyze abnormal values or trends for large-scale sensor data.

하기 표 5 및 6은 현실의 영화 데이터로부터 본 발명의 텐서 분해 방법에 따라 분해된 코어 텐서와 특성 행렬들을 이용한 영화 컨셉 분석 결과와 영화 관계 분석 결과를 나타낸 것이다. 여기서 이용된 영화 데이터는 표 2에 나타낸 영화 데이터와 같다. 제시한 컨셉 분석이나 관계 분석은 다차원 데이터 분석 장치(도 1의 300 참조)에서 수행될 수 있다.Tables 5 and 6 below show the results of the movie concept analysis and the movie relation analysis using the core tensor and characteristic matrices decomposed according to the tensor decomposition method of the present invention from actual movie data. The movie data used here is the same as the movie data shown in Table 2. The proposed concept analysis or relationship analysis can be performed in a multidimensional data analysis apparatus (see 300 in FIG. 1).

ConceptConcept IndexIndex AttributesAttributes C1: ThrillerC1: Thriller 15535
4880
24694
15535
4880
24694
Inception, 2010, Action|Crime|Sci-Fi
Vanilla Sky, 2001, Mystery|Romance
The Imitation Game, 2014, Drama|Thriller
Inception, 2010, Action | Crime | Sci-Fi
Vanilla Sky, 2001, Mystery | Romance
The Imitation Game, 2014, Drama | Thriller
C2: ComedyC2: Comedy 6373
16680
12811
6373
16680
12811
Bruce Almighty, 2003, Drama|Fantasy
Home Alone 4, 2002, Children|Comedy
Mamma Mia!, 2008, Musical|Romance
Bruce Almighty, 2003, Drama
Home Alone 4, 2002, Children | Comedy
Mamma Mia !, 2008, Musical | Romance
C3: DramaC3: Drama 19822
11873
214
19822
11873
214
Life of Pi, 2012, Adventure|drama|IMAX
Once, 2006, Drama|Musical|Romance
Before Sunrise, 1995, Drama|Romance
Life of Pi, 2012, Adventure | drama | IMAX
Once, 2006, Drama | Musical | Romance
Before Sunrise, 1995, Drama | Romance

RelationsRelations G ValueG Value DetailsDetails R1: Drama-HourR1: Drama-Hour 1.65×106 1.65 x 10 6 Most preferred hours for drama genre
8am, 4pm, 1am, 9pm, and 6pm
Most preferred hours for drama genre
8am, 4pm, 1am, 9pm, and 6pm
R2: Comedy-YearR2: Comedy-Year 1.29×106 1.29 × 10 6 Comedy genre is favored in this period
(1997, 1998, 1999), (2005, 2006, 2007)
Comedy genre is favored in this period
(1997, 1998, 1999), (2005, 2006, 2007)
R3: Year-HourR3: Year-Hour 2.29×106 2.29 × 10 6 Most preferred hour for watching movies
(2015, 2pm), (2014, 0am), (2013, 9pm)
Most preferred hour for watching movies
(2015, 2pm), (2014, 0am), (2013, 9pm)

상기 표 5는 특성 행렬들의 각 행이 숨은 특징을 나타내는 점을 이용하여, 영화에 상응하는 특성 행렬에 대하여 K-means 클러스터링 알고리즘을 적용하여 영화에 대한 컨셉을 분석한 것이다. 영화에 상응하는 특성 행렬에서는 각 행이 영화에 대한 숨은 특징을 나타내기 때문에, 클러스터링된 행들을 분석함으로써 영화의 장르를 파악할 수 있다.Table 5 analyzes the concept of a movie by applying a K-means clustering algorithm to a characteristic matrix corresponding to a movie using points where each row of characteristic matrices represents hidden features. In the property matrix corresponding to the movie, each line represents the hidden feature for the movie, so the genre of the movie can be grasped by analyzing the clustered rows.

상기 표 6은 코어 텐서가 특성 행렬들 간의 관계를 나타내는 점을 이용하여, 영화에 대한 여러 속성들 간의 관계를 분석한 것이다. 코어 텐서의 특정 원소의 값이 크면, 해당 원소의 좌표에 상응하는 특성 행렬들의 열 간에 강한 상관관계를 가짐을 알 수 있다. 예컨대, 코어 텐서의 가장 큰 원소 3개로부터 년-시간(Year-Hour) 관계 분석을 통해, '2015년 오후 2시', '2014년 오전 0시', '2013년 오후 9시' 순서대로 가장 영화 시청이 선호되었음을 파악할 수 있다.Table 6 above analyzes the relationship among various properties of a movie using the point where the core tensor represents the relationship between the characteristic matrices. If the value of a specific element of the core tensor is large, it can be seen that there is a strong correlation between the columns of the characteristic matrices corresponding to the coordinates of the element. For example, from the three largest elements of the core tensor, a year-hour relationship analysis is performed to determine the best fit for each of the three elements in the order of "2015 PM 2:00 PM", "2014 AM 0:00 PM" and "2013 PM 9:00 PM" You can see that watching movies is preferred.

주어진 다차원 데이터를 정확하게 코어 텐서와 특성 행렬들로 분해할수록, 다차원 데이터를 분석하여 얻는 결과의 정확도도 높아지게 된다. 따라서, 본 발명은 큰 규모의 다차원 데이터에 대하여도 빠른 속도로 정확하게 분해할 수 있으므로, 기존의 기술들에 비하여 효율성뿐만 아니라 정확성까지 도모할 수 있는 장점이 있다.The more accurately the given multidimensional data is decomposed into the core tensor and characteristic matrices, the more accurate the results obtained by analyzing the multidimensional data. Therefore, the present invention has an advantage in that not only efficiency but also accuracy can be achieved as compared with the existing technologies since the present invention can be rapidly and accurately decomposed even for large-scale multi-dimensional data.

이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.The embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer-readable recording medium may be those specifically designed and configured for the present invention or may be those known and used by those skilled in the computer software arts. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROM and DVD, magneto-optical media such as floptical disks, medium, 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 generated 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 device may be modified into one or more software modules for performing the processing according to the present invention, and vice versa.

본 발명에서 설명하는 특정 실행들은 실시예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific acts described in the present invention are embodiments and are not intended to limit the scope of the invention in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of such systems may be omitted. Also, the connections or connecting members of the lines between the components shown in the figures are illustrative of functional connections and / or physical or circuit connections, which may be replaced or additionally provided by a variety of functional connections, physical Connection, or circuit connections. Also, unless explicitly mentioned, such as " essential ", " importantly ", etc., it may not be a necessary component for application of the present invention.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all ranges that are equivalent to or equivalent to the claims of the present invention as well as the claims .

1: 병렬 처리를 통한 다차원 데이터 분석을 지원하는 시스템
100: 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치
110: 제어부 120: 통신부
130: 메모리 140: 연산 분배부
150: 특성 행렬 결정부 160: 코어 텐서 결정부
170: 캐싱 처리부 180: 잡음 제거부
200: 다차원 데이터 제공 장치 300: 데이터 분석 장치
400: 연산 장치
1: A system that supports multi-dimensional data analysis through parallel processing
100: Devices that support multidimensional data analysis through parallel processing
110: control unit 120: communication unit
130: memory 140: operation distribution unit
150: characteristic matrix determiner 160: core tensor determiner
170: Caching processing unit 180: Noise removing unit
200: Multidimensional data providing apparatus 300: Data analysis apparatus
400: computing device

Claims (5)

복수 개의 속성들을 갖는 다차원 데이터를 수집하는 통신부;
상기 각각에 속성들에 대하여 한 개씩 대응되며, 상기 각각의 속성들에 상응하는 숨은 특징들에 대한 정보를 포함하는 특성 행렬들을 갱신하고 결정하는 특성 행렬 결정부;
상기 숨은 특징들 간의 관계 정보를 포함하는 한 개의 코어 텐서를 결정하는 코어 텐서 결정부; 및
상기 특성 행렬들을 갱신함에 있어서, 상기 특성 행렬들을 손실 함수를 최소화하도록 갱신하는 갱신 연산들을 분할 단위로 나누고, 병렬 처리를 수행할 복수의 쓰레드들에 대한 리소스 정보를 수집하고, 상기 리소스 정보를 고려하여 상기 쓰레드들에 분할된 갱신 연산들을 분배하여 할당하는 연산 분배부
를 포함하는 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치.
A communication unit for collecting multidimensional data having a plurality of attributes;
A characteristic matrix determination unit for updating and determining characteristic matrices each corresponding to one of the attributes and including information about hidden features corresponding to the respective attributes;
A core tensor determining unit determining a core tensor including relationship information between the hidden features; And
Wherein the updating of the characteristic matrices includes dividing update operations for updating the characteristic matrices to minimize a loss function, dividing the update operations into division units, collecting resource information for a plurality of threads to be subjected to parallel processing, An operation distribution unit for allocating and allocating update operations divided into the threads,
Wherein the processor is adapted to support multi-dimensional data analysis through parallel processing.
청구항 1에 있어서,
상기 분할 단위는
상기 특성 행렬들에 대한 행 단위이고,
상기 분할된 갱신 연산들은
갱신 대상 행에 상응하는 특성 행렬을 제외한 나머지 특성 행렬들과 상기 코어 텐서를 이용하여, 상기 갱신 대상 행을 상기 손실 함수를 최소화하도록 갱신하는 연산들인 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치.
The method according to claim 1,
The division unit
A row unit for the characteristic matrices,
The divided update operations
Wherein the updating of the updated row is performed to minimize the loss function using the remaining characteristic matrices except for the characteristic matrix corresponding to the row to be updated and the core tensor. Supported devices.
청구항 2에 있어서,
상기 리소스 정보는
상기 쓰레드들 각각에 상응하는 연산 처리 능력, 현재 할당된 연산량 및 연산 처리 지연도 중 적어도 하나 이상을 포함하는 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치.
The method of claim 2,
The resource information
Wherein the at least one thread includes at least one of an operation processing capability corresponding to each of the threads, a currently allocated operation amount, and an operation processing delay.
청구항 1에 있어서,
반복되는 연산을 줄이기 위하여 상기 갱신 연산들에 포함된 연산들 중에서 기설정된 고반복 연산에 대한 연산 결과를 캐시(cache)하고, 상기 특성 행렬들이 갱신될 때 상기 갱신된 특성 행렬들을 이용하여 상기 캐시된 연산 결과를 갱신하는 캐싱 처리부
를 더 포함하고,
상기 연산 분배부는
상기 쓰레드들에 상기 고반복 연산들을 분배하고, 상기 쓰레드들에 상기 캐시된 연산 결과를 이용하는 갱신 연산들을 분배하는 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치.
The method according to claim 1,
The method includes the steps of: caching an operation result for a predetermined high-order operation among the operations included in the update operations to reduce a repeated operation, and when the feature matrices are updated, A caching processor
Further comprising:
The operation distribution unit
Distributing the high-order operations to the threads, and distributing update operations using the cached operation result to the threads.
청구항 1에 있어서,
상기 코어 텐서의 각 원소들에 상응하는 에러 값들을 계산하고, 상기 에러 값들을 기반으로 상기 코어 텐서의 각 원소들 중에서 제거 대상 원소들을 선정하여 상기 코어 텐서에서 상기 제거 대상 원소들을 제거하는 잡음 제거부
를 더 포함하는 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치.
The method according to claim 1,
A noise eliminator that calculates error values corresponding to the respective elements of the core tensor and selects the elements to be removed from among the elements of the core tensor based on the error values to remove the elements to be removed from the core tensor,
Further comprising: a processor for processing the multidimensional data through parallel processing.
KR1020170158951A 2017-11-24 2017-11-24 Apparatus for supporting multi-dimensional data analysis through parallel processing and method for the same KR102027034B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170158951A KR102027034B1 (en) 2017-11-24 2017-11-24 Apparatus for supporting multi-dimensional data analysis through parallel processing and method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170158951A KR102027034B1 (en) 2017-11-24 2017-11-24 Apparatus for supporting multi-dimensional data analysis through parallel processing and method for the same

Publications (2)

Publication Number Publication Date
KR20190060600A true KR20190060600A (en) 2019-06-03
KR102027034B1 KR102027034B1 (en) 2019-09-30

Family

ID=66849489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170158951A KR102027034B1 (en) 2017-11-24 2017-11-24 Apparatus for supporting multi-dimensional data analysis through parallel processing and method for the same

Country Status (1)

Country Link
KR (1) KR102027034B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210039039A (en) * 2019-10-01 2021-04-09 주식회사 아이옵스테크놀러지 Management server to predict obstacle
KR20230018928A (en) 2021-07-30 2023-02-07 서울대학교산학협력단 Apparatus and method for tensor analysis

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629395B1 (en) 2015-12-24 2016-06-13 한국과학기술정보연구원 apparatus for analyzing data, method of analyzing data and storage for storing a program analyzing data
KR20170092445A (en) * 2016-02-03 2017-08-11 구글 인코포레이티드 Accessing data in multi-dimensional tensors
US20170316312A1 (en) * 2016-05-02 2017-11-02 Cavium, Inc. Systems and methods for deep learning processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629395B1 (en) 2015-12-24 2016-06-13 한국과학기술정보연구원 apparatus for analyzing data, method of analyzing data and storage for storing a program analyzing data
KR20170092445A (en) * 2016-02-03 2017-08-11 구글 인코포레이티드 Accessing data in multi-dimensional tensors
US20170316312A1 (en) * 2016-05-02 2017-11-02 Cavium, Inc. Systems and methods for deep learning processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
신기정 외, "Fully Scalable Methods for Distributed Tensor Factorization", IEEE Transactions on Knowledge and Data Engineering, Volume 29, Issue 1(2017.01.) 1부.* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210039039A (en) * 2019-10-01 2021-04-09 주식회사 아이옵스테크놀러지 Management server to predict obstacle
KR20230018928A (en) 2021-07-30 2023-02-07 서울대학교산학협력단 Apparatus and method for tensor analysis

Also Published As

Publication number Publication date
KR102027034B1 (en) 2019-09-30

Similar Documents

Publication Publication Date Title
Oh et al. Scalable tucker factorization for sparse tensors-algorithms and discoveries
Zhou et al. Accelerating online cp decompositions for higher order tensors
Khan et al. Variable selection for survival data with a class of adaptive elastic net techniques
WO2007064375A2 (en) Selective latent semantic indexing method for information retrieval applications
JP2016119084A (en) Computer-implemented system and method for efficient sparse matrix representation and processing
WO2009148475A1 (en) Recommender system with fast matrix factorization using infinite dimensions
US20150261833A1 (en) Data visualization system
Cevahir et al. Site-based partitioning and repartitioning techniques for parallel pagerank computation
Dorier et al. Adaptive performance-constrained in situ visualization of atmospheric simulations
KR102027034B1 (en) Apparatus for supporting multi-dimensional data analysis through parallel processing and method for the same
Park et al. Fast and scalable distributed boolean tensor factorization
Deb et al. Generating uniformly distributed points on a unit simplex for evolutionary many-objective optimization
CN116830097A (en) Automatic linear clustering recommendation for database region maps
CN106599122B (en) Parallel frequent closed sequence mining method based on vertical decomposition
Yuan et al. A hierarchical tensor-based approach to compressing, updating and querying geospatial data
Spears et al. Analyzing GAs Using Markov Models with Semantically Ordered and Lumped States.
US11361003B2 (en) Data clustering and visualization with determined group number
De Vries et al. Parallel streaming signature em-tree: A clustering algorithm for web scale applications
Rammer et al. Alleviating i/o inefficiencies to enable effective model training over voluminous, high-dimensional datasets
Ghosh et al. Aid*: a spatial index for visual exploration of geo-spatial data
Guzun et al. A two-phase mapreduce algorithm for scalable preference queries over high-dimensional data
JP6393411B2 (en) Data analysis support system and data analysis support method
WO2014145341A2 (en) K-grid for clustering data objects
CN110334067B (en) Sparse matrix compression method, device, equipment and storage medium
CN107491417A (en) A kind of document structure tree method under topic model based on particular division

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant