본문 바로가기

Theory/ETC

Compositional Data

반응형

세상에는 이미지, 음성, 로그 등의 많은 종류의 데이터가 다양한 분야에 존재합니다. 특히, 생물학, 화학, 지질학 등의 자연과학에서는 다음 표와 같이 다양한 구성 요소가 퍼센트로 표현되어 합이 100 (혹은 1) 으로 표현되는 데이터가 많은데요, 이러한 데이터를 compositional data 라고 합니다. 즉, 확률, 구성성분, 퍼센트, ppm 등으로 표현되는 모든 류의 데이터가 compositional data 가 되는 것이죠.

Data Component 1 Component 2 Component 3 Component 4 Sum
Data 1 20 30 20 30 100
Data 2 25 25 25 25 100
Data 3 15 55 15 15 100

 

다른 종류의 데이터와는 다른 compositional data 의 독특한 특성은 1) 데이터의 모든 feature 의 값이 양수이고, 2) feature 총합이 모든 데이터에 대해 상수 (보통 100이나 1) 라는 점입니다.  이 Compositional data 에 관한 수학적인 배경은 스코틀랜드의 통계학자 John Aitchison 에 의해 정립되었습니다. 이번 포스트에서는 Aitchison 이 정립한 수학적인 배경과 더불어 머신러닝에 사용하기 위한 compositional data의 변환에 대해 알아보도록 하겠습니다.

Simplex

Aitchison 은 1982년도에 compositional data 를 "proportions of some whole" 이라 정의하면서 Equation 1의 simplex 공간으로부터 생성된 양수의 요소를 가진 벡터로 정의했습니다. Simplex $S^D$ 를 구성하는 $D$ 차원의 벡터 $x$는 총합이 $\kappa$로 일정할 뿐 각 구성요소 (component) 간의 상대적인 비율만 알 수 있습니다.

Equation 1

$S^D$의 특성상 $x$에 어떠한 양수를 곱하더라도 각 구성요소 간의 상대적인 비율은 일정하게 유지됩니다. Figure 1에서 $x_1, x_2, x_3$이 구성비율을 나타낸다고 했을 때, A,B,C 는 서로 같고 D,E 는 서로 같습니다.

Figure 1

따라서 $\kappa=1$로 한 standard simplex 로 정의할 수 있으며, standard simplex 를 만들기 위한 normalization 을 위한 closure $C[\cdot]$을 Equation 2와 같이 정의할 수 있습니다.

Equation 2

Geometry

우리가 다루는 일반적인 Euclidean space $R^D$ 에서는 벡터를 더하고, 상수를 곱하고, 거리를 구하는 등의 동작을 수행합니다. 하지만 compositional data 를 구성하는 simplex 에서는 이를 그대로 적용할 수 없는 것이 1) compositional data끼리 더하거나 상수를 곱한 것이 원래의 simplex 공간에 존재하지 않을 수 있으며, 2) compositional data 사이의 euclidean 거리가 비율에 따라 상대적이기 때문입니다. (0.05%-0.1% 의 차이와 50.05%-50.10% 의 차이는 다릅니다.)

따라서 Aitchison 은 compositional data 에 대해 다음을 만족하는 Aitchison geometry (Aitchison simplex) 벡터 공간을 정의합니다.

1) Perturbation

2) Powering

Perturbation 은 일반 벡터 공간에서의 더하기, Powering 은 일반 벡터 공간에서의 상수 곱하기라 생각할 수 있습니다. 이를 기반으로 Aitchison geometry 의 벡터 내적 공간을 다음과 같이 정의합니다.

3) Inner product

4) norm

5) distance

따라서 Aitchison geometry 는 유한한 차원을 가진 Hilbert 공간이 되므로 simplex 로부터 Gram-Schmidt 직교법이나 SVD 등으로 직교 좌표계를 구성할 수 있습니다. 이때 중요한 점은 이 직교화로 $S^D$로부터 $R^{D-1}$의 Euclidean 벡터 공간으로 매핑할 수 있다는 점입니다. 즉, simplex 로부터 얻은 직교 좌표 (orthonormal basis) $e_1, ..., e_{D-1}$ 로부터 $x\in S^D$를 $y = (<x, e_1>, ..., <x, e_{D-1}>) \in R^{D-1}$ 로 변환할 수 있다는 것이죠. 밑의 수식에서의 $x_i^*$가 $R^{D-1}$ Euclidean 공간에서의 $x$의 좌표가 됩니다.

$x = \bigoplus_i^{D-1} x_i^* \odot e_i$

따라서 중요한 점은 Aitchison simplex 공간에서 정의된 compositional data를 $R^{D-1}$ Euclidean 벡터 공간으로 매핑하면 우리가 다루는 일반적인 operation 을 적용할 수 있다는 것입니다.

Transformation

Isometric log-ratio transformation

위의 $S^D \rightarrow R^{D-1}$ 변환을 ILR (Isometric Log-Ratio transformation) 라고 합니다. $D$ 차원에서 $D-1$ 차원으로 바뀌는 이유는 직교화를 위해서는 각 기저벡터들이 서로 선형 독립이어야 하는데 simplex 특성상 합이 일정하므로 $D-1$ 개의 선형 독립인 벡터를 구할 수 있기 때문입니다. (자유도의 개념과 비슷합니다.)

변환을 위해서는 isomorphism 과 isometry 특성을 만족해야 하는데, isomorphism 은 변환 이후에도 구조체가 유지되고 역변환이 가능한 매핑을 말하며 (일반적으로 일대일 관계를 가지는 bijective mapping 이면 성립합니다.) isometry 는 각 공간에서 정의한 metric 상에서 매핑 전과 후의 데이터의 거리가 일정하게 유지되는 성질을 말합니다. 즉, $f: X\rightarrow Y$, $X, Y$에서의 거리 $d_X, d_Y$에 대해 다음을 만족하면 $f$를 isometry (distance preserving) 이라 합니다.

$d_Y (f(a), f(b)) = d_X (a,b) \forall a, b \in X$

Center log-ratio transformation

이 둘을 만족하는 대표적인 방법이 CLR (Center Log-Ratio transformation) 입니다. ($S^D \rightarrow R^D$) CLR 은 먼저 데이터 $x\in R^D$에 대해 기하평균 $g(x)$를 정의합니다. 기하평균 (geometric mean) 은 평균의 일종으로 평균을 구할 때 사용되는 합 대신 곱으로 $x_1, ..., x_n$에 대해 Equation 3과 같이 정의합니다.

Equation 3

$g(x)$를 통해 최종적으로 다음과 같이 CLR 값을 구합니다.

$CLR(x) = v = [log\frac{x_1}{g(x)},..., log \frac{x_D}{g(x)}]$

CLR 변환을 통해 얻은 $v\in R^D$ 는 $\sum_{i=1}^D v_i = log \frac{x_1 x_2 ... x_D}{g(x)^D} =log 1= 0$ 이며, $S^D$ 로부터의 isometry 한 변환이므로 여기서부터 $D-1$ 차원의 ILR 을 수행할 수 있습니다. CLR은 $R^D$로 매핑하면서 $S^D$의 sum constraint를 $\kappa$에서 0으로 바꾸는 것으로 $R^D$ 에서의 hperplane을 구성하게 됩니다. 따라서 CLR로부터의 ILR은 CLR을 통해 얻은 hyperplance을 spanning 할 수 있는 $k-1$개의 orthonormal basis로 구해집니다. 또한, isomorphism / isometry 한 매핑이므로 $CLR(x)$ 값으로 위에서 정의한 내적, norm, metric 을 정의할 수 있습니다.

$<x, y> = \sum_{i=1}^D CLR(x) CLR(y)$

CLR은 $R^D$로 매핑하면서 $S^D$의 sum constraint를 $\kappa$에서 0으로 바꾸게 되어 singular covariance matrix 가 유도됩니다. Singular covariance matrix 라는 하나 이상의 열 (행)이 다른 요소의 선형결합으로 표현될 수 있다는 것으로 CLR 변환 데이터에 PCA, regression 을 적용하면 문제가 발생할 가능성이 있습니다. (colinearity)

Additive log-ratio transformation

ALR (Additive Log-Ratio transformation) 은 $S^D \rightarrow R^{D-1}$ 의 변환으로 특정 구성요소를 다른 구성요소에 나눈 후의 로그값을 사용합니다. $x_D$의 선택은 임의로 어떠한 구성요소를 선택할 수 있으며 ALR 변환은 Figure 2와 같이 isometry 하지 않습니다. Figure 2는 왼쪽 그람의 원에서 ALR 역변환을 수행한 이후에 다시 ALR 변환을 했을 때가 오른쪽 그림으로 거리 정보가 유지되지 않는 것을 확인할 수 있습니다.

$ALR(x) = [log\frac{x_1}{x_D}, ..., log \frac{x_{D-1}}{x_D}] \in R^{D-1}$

Figure 2


Compositional data의 transformation 은 파이썬에서 scikit-bio 패키지의 composition 모듈, composition_stats 패키지에서 지원합니다.

 

참조

반응형