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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Abstract
Description
본 발명은 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치 및 그 방법에 관한 것으로, 병렬 처리를 통하여 고확장성, 고속 및 고정확도로 다차원 데이터에 상응하는 텐서를 분해함으로써 다차원 데이터의 분석을 지원하는 장치 및 그 방법에 관한 것이다.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.
본 발명의 목적은 병렬 처리를 통하여 다차원 데이터 분석을 지원하는 장치 및 그 방법을 제공하는 것이다.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
도 1을 참조하면, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 시스템(1)에서 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 다차원 데이터 제공 장치(200) 및 데이터 분석 장치(300)와 상호 연결된다. 또한, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 하나 이상의 연산 장치들(400)과 상호 연결될 수 있다.Referring to FIG. 1, an
본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 분해 대상 텐서에 상응하는 다차원 데이터를 입력 받고, 대상 텐서를 분해하여 생성할 하나의 코어 텐서와 특성 행렬들을 초기화한다. 병렬 처리를 수행할 쓰레드들(Threads)의 리소스 정보를 획득하고, 리소스 정보를 이용하여 손실 함수를 최소화하는 각 특성 행렬에 대한 갱신 연산들을 쓰레드들에 분할하여 할당한다. 각 쓰레드들에서 갱신 연산들이 수행되면 갱신 연산들의 결과들을 수집하여 특성 행렬들을 갱신한다. 특성 행렬들에 대한 갱신이 종료되면 특성 행렬들을 직교화(Orthogonalize)하고, 직교화에 상응하여 코어 텐서를 갱신한다. 이에 따라, 대상 텐서는 코어 텐서와 특성 행렬들로 분해된다. 특히, 분해의 대상이 되는 대상 텐서는 희소(sparse)형의 텐서일 수 있다. The
여기서, 다차원 데이터는 하나의 차원이 하나의 속성(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.
이때, 병렬 처리를 수행할 쓰레드들은 다차원 데이터 분석을 지원하는 장치(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
이때, 리소스 정보에는 각 쓰레드들에 대한 연산 처리 능력(예컨대, 클럭 수), 현재 할당된 연산량, 연산 처리 지연도 등이 포함될 수 있다.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
선택적 실시예에서, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 쓰레드들에 대하여 갱신 연산들을 분배하여 할당할 때, 코어 텐서의 각 원소들에 상응하는 에러 값들을 계산하고, 에러 값들을 기반으로 코어 텐서의 각 원소들 중에서 제거 대상 원소들을 선정하고, 코어 텐서에서 제거 대상 원소들을 제거할 수 있다. 즉, 갱신 연산들을 반복하는 과정에서 에러 값 계산을 통한 코어 텐서의 노이즈(noise)를 제거함으로써, 코어 텐서의 0이 아닌 원소의 숫자들이 줄어들고 이에 따라 갱신 연산들에 소모되는 자원과 시간을 절약할 수 있다.In an alternative embodiment, the
이때, 제거 대상 원소들을 제거한다는 의미는 해당 원소의 값을 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
데이터 분석 장치(300)는 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)에서 대상 텐서를 분해한 결과들인 코어 텐서와 특성 행렬들을 이용하여, 상응하는 다차원 데이터에 대한 분석을 수행하는 장치이다. 예컨대, 다차원 데이터에 대한 트렌드 분석, 군집화, 추천, 원소 값 예측 등의 분석을 수행할 수 있다.The
연산 장치(400)는 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)와 구분되어 존재하는 연산이 가능한 장치이다. 이는 다차원 데이터 분석을 지원하는 장치(100)의 연산을 대신 수행해주는 역할을 할 수 있으며, 분산 처리 시스템을 의미할 수 있다.The computing device 400 is a device capable of performing computation existing in the
도 2는 도 1에 도시된 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)의 일 예를 나타낸 블록도이다.FIG. 2 is a block diagram illustrating an example of an
도 2를 참조하면, 본 발명의 일 실시예에 따른 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)는 제어부(110), 통신부(120), 메모리(130), 연산 분배부(140), 특성 행렬 결정부(150), 코어 텐서 결정부(160), 캐싱 처리부(170) 및 잡음 제거부(180) 등을 포함한다.Referring to FIG. 2, an
상세히, 제어부(110)는 일종의 중앙처리장치로서 병렬 처리를 통한 텐서 분해의 전체 과정을 제어한다. 즉, 제어부(110)는 연산 분배부(140), 특성 행렬 결정부(150), 코어 텐서 결정부(160), 캐싱 처리부(170) 및 잡음 제거부(180) 등을 제어하여 다양한 기능을 제공할 수 있다.In detail, the
여기서, 제어부(110)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.Here, the
통신부(120)는 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치(100)와 다차원 데이터 제공 장치(200), 데이터 분석 장치(300) 및 연산 장치(400) 간의 송수신 신호를 전송하는데 필요한 통신 인터페이스를 제공한다.The
여기서, 통신부(120)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다. Here, the
메모리(130)는 제어부(110)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 여기서, 메모리(130)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The
이때, 메모리(130)는 텐서 분해 과정 중에 발생하는 중간 데이터를 저장할 수 있다. 특히, 메모리(130)는 캐시 기능을 이용하여 고반복 연산을 미리 계산한 경우에, 고반복 연산에 대한 결과를 캐시할 수 있다.At this time, the
연산 분배부(140)는 대상 텐서의 분해 결과물인 코어 텐서와 특성 행렬들에 대한 갱신 연산들을 쓰레드들에 분배한다. 여기서, 특정한 특성 행렬에 대한 갱신 연산은 자신을 제외한 나머지 특성 행렬들과 코어 텐서를 이용하여 이루어지는 연산일 수 있다.The
이때, 갱신 연산들은 손실 함수를 최소화하는 값으로 특성 행렬들을 갱신하는 연산을 의미할 수 있다. 특히, 갱신 연산들은 특성 행렬들의 행 단위로 갱신하는 연산을 의미하며, 손실 함수를 최소화하는 행을 해당 특성 행렬의 행으로 갱신하는 연산을 의미할 수 있다. 예컨대, 행 단위 갱신 연산들은 하기 수학식 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]
[수학식 2]&Quot; (2) "
상기 수학식 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) "
[수학식 4]&Quot; (4) "
[수학식 5]&Quot; (5) "
[수학식 6]&Quot; (6) "
[수학식 7]&Quot; (7) "
상기 수학식 3에 의하여 손실 함수를 최소화하는 행 벡터를 계산할 수 있으며, 이에 따라 상기 수학식 4와 같이 간단한 계산을 통하여 특성 행렬의 행을 갱신할 수 있다. 상기 수학식 3 및 4의 는 Jn×Jn 행렬로, (j1, j2)번째 원소가 상기 수학식 5와 같다. 상기 수학식 3 및 4의 는 길이 Jn의 벡터로, j번째 원소가 상기 수학식 6과 같다. 상기 수학식 3 및 4의 은 길이 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) 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) Is a vector of length J n , and the jth element is the same as Equation (6). In the equations (3) and (4) 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
이때, 연산 분배부(140)는 병렬 처리에 이용될 쓰레드들에 대하여 대한 리소스 정보를 수집하고, 각 쓰레드들에 대한 리소스 정보를 고려하여 갱신 연산들을 분배할 수 있다. 여기서, 리소스 정보에는 쓰레드의 연산 처리 능력, 현재 할당된 연산량, 연산 처리 지연도 등이 포함될 수 있다. 예컨대, 특정 쓰레드가 다른 쓰레드들보다 할당된 연산량이 적은 경우에는, 해당 쓰레드에 갱신 연산을 더 할당할 수 있다. 여기서, 각 쓰레드는 자신에 분배된 갱신 연산들을 순차적으로 처리할 수 있다.At this time, the
이때, 연산 분배부(140)는 갱신 연산들을 행 단위 갱신 연산으로 분리하여 쓰레드들에 분배할 수 있다. 종래에는 1개 특성 행렬에 대한 갱신 연산이 해당 특성 행렬 전체에 대하여 이루어져야 했으며, 이에 따라 1개 특성 행렬을 갱신하는데 요구되는 불가분적인 연산량과 메모리 요구량이큰 문제점이 있었다. 하지만, 본 발명에서는 1개 특성 행렬에 대한 갱신 연산을 해당 특성 행렬의 행 단위의 갱신 연산으로 분할함으로써, 단일 쓰레드에서의 연산량과 메모리 요구량을 감소시킬 수 있다.At this time, the
이때, 연산 분배부(140)는 각 쓰레드들에 대하여 재구축 에러(Reconstruction Error)를 계산하기 위한 연산들을 분배할 수 있다. 즉, 텐서의 분해를 반복된 연산을 통한 학습으로 수행하는바, 학습의 정확도 판단을 위한 에러값의 계산이 필요한데, 이를 각 쓰레드들에 분배하여 병렬 처리함으로써 연산 효율을 높일 수 있다. 여기서, 재구축 에러는 하기 수학식 8과 같이 정의될 수 있다.At this time, the
[수학식 8]&Quot; (8) "
특성 행렬 결정부(150)는 최초에 대상 텐서의 차수(order)만큼의 특성 행렬들을 초기화하여 생성하고, 쓰레드들에서 수행된 특성 행렬들에 대한 갱신 연산들의 결과를 수집하여 특성 행렬들을 갱신한다. 여기서, 특성 행렬들의 초기화는 특성 행렬들의 각 원소들을 0에서 1 사이의 임의의 값으로 할당하는 것을 의미할 수 있다.The
이때, 각 특성 행렬들은 대상 텐서의 각 축에 대응하며, 해당 축에 대한 숨은 특징(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
이때, 특성 행렬 결정부(150)는 특성 행렬들에 대한 갱신이 종료되면 특성 행렬들을 직교화한다. 여기서, 특성 행렬들에 대한 갱신의 종료는 기설정된 횟수만큼의 1-싸이클 갱신 연산이 수행되었거나, 재구축 에러가 기설정된 값보다 작거나, 재구축 에러가 수렴하는 경우에 이루어질 수 있다. 예컨대, 특성 행렬들을 각각 100번씩 갱신하였을 때 특성 행렬들에 대한 갱신을 종료할 수도 있고, 특성 행렬들에 대한 갱신을 수행하여 재구축 에러의 변화율이 1% 이내로 감축되어 수렴하는 경우에 특성 행렬들에 대한 갱신을 종료할 수도 있다. 특히, 특성 행렬들에 대한 직교화는 하기 수학식 9와 같이 각 특성 행렬들을 QR 분해하여, 하기 수학식 10과 같이 Q행렬을 특성 행렬로 갱신함으로써 직교화할 수 있다. 이는, QR 분해의 Q행렬이 직교 행렬이기 때문이다. 여기서, QR 분해에 따른 R행렬은 코어 텐서를 갱신하는데 이용할 수 있다.At this time, the
[수학식 9]&Quot; (9) "
[수학식 10]&Quot; (10) "
코어 텐서 결정부(160)는 최초에 코어 텐서를 초기화하여 생성하고, 특성 행렬들에 대한 갱신이 완료됨에 따라 특성 행렬들을 이용하여 코어 텐서를 갱신한다. 여기서, 코어 텐서의 초기화는 코어 텐서의 각 원소들을 0에서 1 사이의 임의의 값으로 할당하는 것을 의미할 수 있다.The core
이때, 코어 텐서의 각 원소들은 특성 행렬들의 열 간의 관계의 가중치를 나타낼 수 있다. 그리고, 코어 텐서의 차원은 각 특성 행렬들의 숨은 특징 수에 상응하도록 결정될 수 있다. 예컨대, 대상 텐서 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
[수학식 11]&Quot; (11) "
상기 수학식 11의 ×n은 텐서와 행렬 간의 n모드 곱셈을 의미한다.X n in Equation (11) means n mode multiplication between the tensor and the matrix.
캐싱 처리부(170)는 특성 행렬들을 갱신함에 있어서 반복되는 연산을 캐싱하여 연산 효율을 높이는 과정을 제어한다.The
이때, 캐싱 처리부(170)는 갱신 연산들에 포함된 연산들 중에서 기설정된 고반복 연산을 쓰레드들에 대하여 미리 연산하도록 하고, 고반복 연산에 대한 연산 결과를 캐시하고, 쓰레드들에 대하여 캐시된 데이터를 이용하여 갱신 연산들을 처리하도록 명령할 수 있다. 즉, 갱신 연산들에 포함된 연산들 중에서 자주 반복되는 연산에 대하여는 미리 계산하여 캐시 테이블에 보관하고, 캐시된 데이터를 이용함으로써 갱신 연산들에 요구되는 리소스를 감축할 수 있다. At this time, the
이때, 캐싱 처리부(170)는 쓰레들에서 갱신 연산들이 수행되어 특성 행렬들이 갱신된 이후에, 갱신된 특성 행렬들을 이용하여 캐시된 데이터를 갱신할 수 있다. 즉, 특성 행렬들에 대한 갱신 연산들은 현재 특성 행렬들의 정보를 이용하여 수행되는 것이므로, 특성 행렬들이 갱신되면 이후의 갱신 연산들에 사용되는 특성 행렬들의 정보가 변경되며, 이에 따라 캐시된 데이터를 갱신한다.At this time, the
잡음 제거부(180)는 코어 텐서에서 잡음을 제거하여 연산 효율을 높이는 과정을 제어한다. 코어 텐서의 잡음을 제거함으로써 0이 아닌 원소의 개수가 줄어들어 연산량이 감소하여 연산 효율이 좋아질 수 있다.The
이때, 잡음 제거부(180)는 특성 행렬들이 갱신되면 코어 텐서의 각 원소들에 대하여 에러들을 계산하고, 계산된 에러 값에 따라 제거 대상 원소를 결정하여 해당 제거 대상 원소를 제거할 수 있다. 여기서, 코어 텐서의 원소 β에 대한 에러 R(β)는 하기 수학식 12와 같이 정의되고, 하기 수학식 13과 같이 정리할 수 있다.At this time, when the characteristic matrices are updated, the
[수학식 12]&Quot; (12) "
[수학식 13]&Quot; (13) "
이때, 잡음 제거부(180)는 코어 텐서의 각 원소들에 중에서 에러가 기설정된 기준치 이상인 것들을 제거 대상 원소로 결정할 수도 있고, 각 원소들 중에서 에러가 높은 순서대로 기설정된 개수만큼을 제거 대상 원소로 결정할 수도 있다.At this time, the
이때, 잡음 제거부(180)는 기설정된 횟수만큼 코어 텐서의 노이즈를 제거하고, 그 이후에는 노이즈를 제거하지 않을 수 있다. 예컨대, 처음 14회의 1-싸이클 갱신 연산이 수행될 동안에만 코어 텐서에 대한 노이즈를 제거하고, 그 이후에는 코어 텐서에 대한 노이즈를 제거하지 않도록 할 수 있다. At this time, the
이때, 잡음 제거부(180)는 이전의 1-싸이클 갱신 연산이 수행될 때 코어 텐서의 원소의 에러 중에서 가장 큰 값과 현재 1-싸이클 갱신 연산이 수행 될 때 코어 텐서의 에러 중에서 가장 큰 값을 비교하여, 코어 텐서의 노이즈를 제거하는 작업을 수행할지 여부를 판단할 수 있다. 여기서, 비교 대상이 되는 이전의 에러는 바로 직전의 1-싸이클 갱신 연산이 수행될 때의 코어 텐서의 원소에 대한 에러뿐만 아니라 그 이전에 수행된 1-싸이클 갱신 연산에서의 코어 텐서의 원소에 대한 에러를 포함할 수 있다.At this time, the
이때, 잡음 제거부(180)는 제거 대상 원소의 값을 0으로 설정하여 제거 대상 원소를 코어 텐서에서 제거할 수 있다.At this time, the
위의 과정을 거쳐 특성 행렬들과 코어 텐서에 대한 갱신을 마치면, 대상 텐서의 코어 텐서와 특성 행렬들로의 분해가 완료되는 것이다. 이렇게 분해된 코어 텐서와 특성 행렬들은 대상 텐서에 상응하는 다차원 데이터에 대하여 트렌드, 연관성, 추천, 군집화 등의 분석을 수행하는데 이용될 수 있다.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
여기서, 대상 텐서(31)가 3차 텐서이며 차원이 I1×I2×I3일 경우, 코어 텐서(32)는 3차 텐서이고 특성 행렬들(33, 34 및 35)는 3개로 구성된다. 또한, 코어 텐서(32)의 차원이 J1×J2×J3인 경우에는, n번째 특성 행렬의 차원은 In×Jn이 되고 숨은 특징 수는 Jn개가 된다.Here, when the
본 발명은 대상 텐서를 코어 텐서와 특성 행렬들로 분해함에 있어서 병렬 처리를 통하여 연산의 효율을 높여 고속, 고정확도, 고확장성을 보장한다.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 (
이때, 각 특성 행렬에 대한 갱신은 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 (
즉, 종래의 터커 분해 기법은 하나의 특성 행렬을 단위로 갱신 연산이 수행되어야하며, 분해 대상 텐서와 나머지 특성 행렬들에 대하여 모두 연산을 수행해야하는 특징으로 인하여 중간 데이터 폭발의 문제가 발생한다.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 (
이때, 각 특성 행렬들에 대하여 도 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
도 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 (
또한, 각 특성 행렬들에 대하여 각 행별로 갱신을 수행한다(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 (
만약, 고반복 연산을 캐시하는 경우에는 캐시된 데이터 Pres를 새로이 갱신할 수 있다(16행 내지 19행).If the high-order operation is cached, the cached data Pres can be newly updated (
상술한 특성 행렬들을 갱신하는 연산들은 행 단위 갱신 연산으로 구분되어 여러 쓰레드들에 분배되어 처리됨으로써, 메모리 오버플로우 문제를 해결하고 고속으로 연산할 수 있다. 특히, 캐시 데이터를 이용하지 않는 경우에는 주어진 (α, β)번째에서의 δ에 대한 연산 복잡도가 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
특성 행렬들(10c_1 내지 10c_N)에 대한 갱신은 특성 행렬 하나씩 갱신되며, 특성 행렬 10d는 갱신 대상이 되는 특성 행렬을 행 단위로 구분하여 나타낸 것이다. 여기서, 하나의 특성 행렬에 대한 갱신 연산은 자신을 제외한 나머지 특성 행렬들과 코어 텐서를 이용하여 이루어진다.The updating of the characteristic matrices 10c_1 to 10c_N is updated for each characteristic matrix, and the
이때, 갱신 대상 특성 행렬(10d)는 In개의 행으로 구성되는데, 이 특성 행렬들의 각 행들은 손실 함수를 최소화하는 과정이 서로에게 독립적인 특징을 갖고 있으므로, 특성 행렬들에 대한 갱신 연산은 각 행들에 대한 갱신 연산으로 분할할 수 있다. 갱신 대상 특성 행렬(10d)의 행렬 갱신 연산은 In개의 행 갱신 연산들로 구분할 수 있으며, 행 갱신 연산들은 병렬 처리를 수행할 쓰레드들(10e_1 내지 10e_T)에 분배한다. 여기서, 쓰레드들(10e_1 내지 10e_T)에 대한 행 갱신 연산들의 분배는 리소스 정보를 참조하여 이루어질 수 있다.At this time, the update
이때, 각 쓰레드들(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
이때, 각 쓰레드들(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
도 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의 벡터 (11b), 크기 Jn×Jn의 행렬 (11c), 길이 Jn의 벡터 (11d) 등이 있다. 또한, 은 크기 Jn×Jn의 단위 행렬이며, λ는 정규화 파라미터를 의미한다.Referring to FIG. 11, updating of the i n -th row of the update-targeted
이때, 벡터 (11b)는 상기 수학식 6에 의하여 벡터 (11d)를 참조하여 계산하고, 벡터 (11b)의 j번째 원소는 벡터 (11d)의 j번째 원소를 참조하여 계산할 수 있다.At this time, (11b) can be expressed by Equation (6) (11d), and the vector The jth element of the
이때, 행렬 (11c)는 상기 수학식 5에 의하여 벡터 (11d)를 참조하여 계산하고, 행렬 (11c)의 (j1, j2)번째 원소는 벡터 (11d)의 j1번째 원소와 j2번째 원소를 참조하여 계산할 수 있다.At this time, (11c) < / RTI >< RTI ID = 0.0 > (11d), and the matrix (J 1 , j 2 ) -th element of the
도 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.
특히, 도 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
도 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-
도 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-
도 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-
도 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 -
도 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-
따라서, 본 발명에 따른 텐서 분해 방법은 기존의 텐서 분해 방법들과 비교하였을 때 최소 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-
도 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-
도 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-
즉, 본 발명에 따른 텐서 분해 방법은 캐시 기능을 이용함에 따라 연산 속도를 높일 수 있으나, 데이터를 캐시함에 따른 메모리 사용량이 크게 증가함을 알 수 있다. 따라서, 메모리 사용량과 연산 속도가 서로 트레이드 오프(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-
도 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-
도 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-
도 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
도 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.
(per iteration)Time Complexity
(per iteration)
본 발명의 텐서 분해 방법은 스케일이 큰 데이터에 대하여도 메모리 초과 없이 고속 및 고정확도로 텐서를 분해할 수 있으므로, 분해된 특성 행렬들과 코어 텐서를 이용하여 다차원 데이터에 대한 분석을 효과적으로 수행할 수 있다. 특히, 텐서 분해 과정에서 비어있는 원소의 값을 단순히 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).
4880
2469415535
4880
24694
Vanilla Sky, 2001, Mystery|Romance
The Imitation Game, 2014, Drama|ThrillerInception, 2010, Action | Crime | Sci-Fi
Vanilla Sky, 2001, Mystery | Romance
The Imitation Game, 2014, Drama | Thriller
16680
128116373
16680
12811
Home Alone 4, 2002, Children|Comedy
Mamma Mia!, 2008, Musical|RomanceBruce Almighty, 2003, Drama
Home Alone 4, 2002, Children | Comedy
Mamma Mia !, 2008, Musical | Romance
11873
21419822
11873
214
Once, 2006, Drama|Musical|Romance
Before Sunrise, 1995, Drama|RomanceLife of Pi, 2012, Adventure | drama | IMAX
Once, 2006, Drama | Musical | Romance
Before Sunrise, 1995, Drama | Romance
8am, 4pm, 1am, 9pm, and 6pmMost preferred hours for drama genre
8am, 4pm, 1am, 9pm, and 6pm
(1997, 1998, 1999), (2005, 2006, 2007)Comedy genre is favored in this period
(1997, 1998, 1999), (2005, 2006, 2007)
(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.
상기 분할 단위는
상기 특성 행렬들에 대한 행 단위이고,
상기 분할된 갱신 연산들은
갱신 대상 행에 상응하는 특성 행렬을 제외한 나머지 특성 행렬들과 상기 코어 텐서를 이용하여, 상기 갱신 대상 행을 상기 손실 함수를 최소화하도록 갱신하는 연산들인 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치.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.
상기 리소스 정보는
상기 쓰레드들 각각에 상응하는 연산 처리 능력, 현재 할당된 연산량 및 연산 처리 지연도 중 적어도 하나 이상을 포함하는 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치.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.
반복되는 연산을 줄이기 위하여 상기 갱신 연산들에 포함된 연산들 중에서 기설정된 고반복 연산에 대한 연산 결과를 캐시(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.
상기 코어 텐서의 각 원소들에 상응하는 에러 값들을 계산하고, 상기 에러 값들을 기반으로 상기 코어 텐서의 각 원소들 중에서 제거 대상 원소들을 선정하여 상기 코어 텐서에서 상기 제거 대상 원소들을 제거하는 잡음 제거부
를 더 포함하는 것을 특징으로 하는, 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치.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.
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)
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)
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 |
-
2017
- 2017-11-24 KR KR1020170158951A patent/KR102027034B1/en active IP Right Grant
Patent Citations (3)
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)
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)
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 |