1 |
1
텐서(tensor)를 분해하는 방법에 있어서,입력 텐서를, 상기 입력 텐서의 복수의 모드(mode)들 중에서 첫 번째와 두 번째로 큰 모드로 구성된 복수의 행렬들로 슬라이스(slice)하는 단계;상기 슬라이스된 행렬들 각각에 대해서 특이값 분해(이하, SVD)를 수행하는 단계;상기 입력 텐서를 재구성하지 않고, 상기 슬라이스된 행렬들의 SVD 결과를 이용하여 상기 입력 텐서의 인자 행렬들(factor matrices)의 초기값을 결정하는 단계; 및상기 슬라이스된 행렬들의 SVD 결과 및 상기 인자 행렬들의 초기값을 이용하여 상기 인자 행렬들 및 코어 텐서(core tensor)를 반복해서 업데이트하는 단계를 포함하는, 방법
|
2 |
2
제1항에 있어서,상기 초기값을 결정하는 단계는,상기 슬라이스된 행렬들의 SVD 결과에 대해서 행렬 U 및 Σ들을 행렬 V와 분리하는 단계;상기 분리된 행렬 U 및 Σ들에 대해서 SVD를 수행한 결과의 왼쪽 인자 행렬을 첫 번째 모드의 인자 행렬의 초기값으로 할당하는 단계;상기 슬라이스된 행렬들의 SVD 결과들 중 행렬 U들과 (i-1) 모드의 초기화된 인자 행렬 간 행렬 곱셈을 수행하고, 그 결과와 행렬 Σ및 V들 간 행렬 곱셈을 수행하여 중간 데이터 Y를 획득하는 단계(단, i≥2); 및상기 중간 데이터 Y에 모드-i 행렬화를 수행한 뒤 SVD를 수행한 결과의 왼쪽 인자 행렬을 i 번째 모드의 인자 행렬의 초기값으로 할당하는 단계를 포함하는 것을 특징으로 하는 방법
|
3 |
3
제1항에 있어서,상기 반복해서 업데이트하는 단계는,업데이트된 인자 행렬들과 코어 텐서를 이용해 복원된 텐서가, 상기 입력 텐서에 수렴할 때까지 상기 인자 행렬들 및 코어 텐서에 대한 업데이트를 수행하는 것을 특징으로 하는 방법
|
4 |
4
제1항에 있어서,상기 복수의 행렬들로 슬라이스하는 단계는,상기 입력 텐서의 모드를 하향 순서로 재정렬(reordering)하는 단계; 및상기 재정렬된 입력 텐서를 첫 번째와 두 번째로 큰 모드로 구성된 복수의 행렬들로 분해하는 단계를 포함하는 것을 특징으로 하는 방법
|
5 |
5
제1항에 있어서,상기 SVD를 수행하는 단계는,상기 슬라이스된 행렬들 각각에 대해서 무작위 SVD(randomized SVD)를 수행하는 것을 특징으로 하는 방법
|
6 |
6
컴퓨터에 제1항에 기재된 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
|
7 |
7
컴퓨팅 장치에 의해 수행되며, 제1항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램
|
8 |
8
텐서(tensor) 분해를 수행하기 위한 컴퓨팅 장치에 있어서,데이터를 입력 받고, 이를 연산 처리한 결과를 출력하기 위한 입출력부;텐서 분해 방법을 수행하기 위한 프로그램이 저장되는 저장부; 및적어도 하나의 프로세서를 포함하며, 상기 프로그램을 실행시킴으로써 상기 입출력부를 통해 수신된 입력 텐서를 분해하는 제어부를 포함하며,상기 제어부는,상기 입력 텐서를 상기 입력 텐서의 복수의 모드(mode)들 중에서 첫 번째와 두 번째로 큰 모드로 구성된 복수의 행렬들로 슬라이스(slice)하고, 상기 슬라이스된 행렬들 각각에 대해서 특이값 분해(이하, SVD)를 수행하고, 상기 입력 텐서를 재구성하지 않고 상기 슬라이스된 행렬들의 SVD 결과를 이용하여 상기 입력 텐서의 인자 행렬들(factor matrices)의 초기값을 결정하고, 상기 슬라이스된 행렬들의 SVD 결과 및 상기 인자 행렬들의 초기값을 이용하여 상기 인자 행렬들 및 코어 텐서(core tensor)를 반복해서 업데이트하는, 장치
|
9 |
9
제8항에 있어서,상기 제어부는 상기 초기값을 결정함에 있어서,상기 슬라이스된 행렬들의 SVD 결과에 대해서 행렬 U 및 Σ들을 행렬 V와 분리하고, 상기 분리된 행렬 U 및 Σ들에 대해서 SVD를 수행한 결과의 왼쪽 인자 행렬을 첫 번째 모드의 인자 행렬의 초기값으로 할당하고, 상기 슬라이스된 행렬들의 SVD 결과들 중 행렬 U들과 (i-1) 모드의 초기화된 인자 행렬 간 행렬 곱셈을 수행하고, 그 결과와 행렬 Σ및 V들 간 행렬 곱셈을 수행하여 중간 데이터 Y를 획득하고(단, i≥2), 상기 중간 데이터 Y에 모드-i 행렬화를 수행한 뒤 SVD를 수행한 결과의 왼쪽 인자 행렬을 i 번째 모드의 인자 행렬의 초기값으로 할당하는 것을 특징으로 하는 장치
|
10 |
10
제8항에 있어서,상기 제어부는 상기 인자 행렬들 및 코어 텐서를 반복해서 업데이트함에 있어서,업데이트된 인자 행렬들과 코어 텐서를 이용해 복원된 텐서가, 상기 입력 텐서에 수렴할 때까지 상기 인자 행렬들 및 코어 텐서에 대한 업데이트를 수행하는 것을 특징으로 하는 장치
|
11 |
11
제8항에 있어서,상기 제어부는 상기 복수의 행렬들로 슬라이스함에 있어서,상기 입력 텐서의 모드를 하향 순서로 재정렬(reordering)하고, 상기 재정렬된 입력 텐서를 첫 번째와 두 번째로 큰 모드로 구성된 복수의 행렬들로 분해하는 것을 특징으로 하는 장치
|
12 |
12
제8항에 있어서,상기 제어부는 상기 슬라이스된 행렬들 각각에 SVD를 수행함에 있어서,상기 슬라이스된 행렬들 각각에 대해서 무작위 SVD(randomized SVD)를 수행하는 것을 특징으로 하는 장치
|