3. Métodos de Descomposición Multilineal de las Observaciones 3.1. Introducción En multitud de aplicaciones el conjunto de datos observados contiene información latente que puede ser de gran utilidad a la hora de alcanzar un resultado satisfactorio. La manera en la que se representan dichos datos es fundamental para poder extraer esta información subyacente y, en diversas disciplinas, ha surgido la necesidad de manipular datos descritos en múltiples dimensiones denominados tensores. Los tensores pueden ser pensados como una generalización multilineal de matrices (tensores de orden dos) y de vectores (tensores de orden uno), donde los datos se organizan en tres o más direcciones. El reemplazo de estos tensores por una aproximación de menor dimensión permite observar estructuras que a priori no podían ser observadas. Así pues, la factorización o descomposición desempeña un papel fundamental en la extracción de las estructuras ocultas. Por otra parte, existen multitud de áreas de trabajo donde los datos a analizar son no negativos (o parcialmente no negativos). Uniendo estas dos características nace la Factorización No Negativa de Tensores (Nonnegative Tensor Factorization, NTF) y la Descomposición Tucker No Negativa (Nonnegative Tucker Decomposition, NTD). Este capítulo está organizado de la siguiente forma: en la sección 3.2 se lleva a cabo una definición formal de tensor dentro del contexto del álgebra multilineal, así como su transformación en elementos planos (matrización y vectorización). Este apartado también incluye las multiplicaciones modo-n de los tensores por matrices y la definición de algunos tipos de tensores particulares. En la sección 3.3 se realiza la definición de las diferentes variantes de descomposición tensorial, incluyéndose un ejemplo de cada una de ellas. La sección 3.4 revisa los resultados obtenidos y plantea algunas conclusiones. La sección 3.5 se corresponde con un anexo donde se definen algunas de las multiplicaciones empleadas durante la descomposición tensorial y que no están muy extendidas. 25 3. Métodos de Descomposición Multilineal de las Observaciones 3.2. Tensores 3.2.1. Definición Como hemos introducido anteriormente, un tensor es un array o matriz multidimensional. Se conoce como orden o modo de un tensor al número de dimensiones que lo forman. Formalmente, un tensor de orden N se define como el producto de N espacios vectoriales. De Lathauwer [Lathauwer01] formula la siguiente definición: ! Sea V1,V2,..., VN un conjunto de N espacios vectoriales euclídeos con dimensiones finitas I1,I2,...,IN. Consideremos entonces un conjunto de N vectores Un: Un ! Vn n = 1, 2, ..., N. Denotamos U1 ! U2 ! ... ! UN como: (3.1) el mapeo multilineal sobre V1 (U1 ! U2 ! ... ! UN )(X 1 , X 2 , ..., X N ) = U1 X 1 V U2 X 2 1 Un X n donde V ... UN X N 2 V N x V2 x ... x VN , (3.2) representa el producto escalar en Vn y Xn un vector V n arbitrario de Vn. El espacio generado por todos los elementos U1 ! U2 ! ... ! UN se denomina espacio tensor de V1,V2,..., VN. Un elemento de este espacio tensor se denomina tensor de orden N (sobre V1 x V2 x ... x VN ). Y de orden N es un array de datos formado por elementos que se distribuyen en las direcciones I1 ,I2 ,...,IN . El valor que toma cada una de las direcciones Ii determinará el tamaño del tensor en dicha dirección. De una forma más informal, un tensor Los elementos que conforman el tensor se denota mediante índice toma los valores ij = 1,2,...I j . yi ,i 1 2 ,...,iN , donde cada Figura 3.1 Tensor Y de orden (modo) 3, con dimensiones [5,4,3]. El modo 1 toma valores entre i = 1, 2, ..., 5 ; El modo 2 toma valores 1 entre i = 1, 2, 3, 4 ; El modo 3 toma valores entre i = 1, 2, 3 . 1 26 1 3.2 Tensores En términos tensoriales, un escalar se corresponde con un tensor de orden 0, un vector es un tensor de primer orden y una matriz es un tensor de orden 2. Los tensores de tercer o mayor orden se denominan tensores del alto orden. 3.2.2. Subarrays: Fibras y Caras Un subtensor o subarray se forma al extraer parte de los elementos de un tensor, dejando uno o varios de los índices fijos y recorriendo el resto de modos [Kolda]. La notación que seguiremos es la misma que emplea MATLAB para recorrer todos los elementos de una de las direcciones. Por ejemplo, en una matriz A, la segunda columna se representa mediante A:,2, mientras que la tercera fila sería A:,3. Se define un tensor fibra como un tensor de primer orden obtenido al fijar todos salvo uno de los índices de un tensor de orden mayor. La columna de una matriz es una fibra de modo-1, la fila de una matriz se denomina fibra de modo-2. En un tensor de tercer orden, la fibra que se obtiene al fijar los dos primeros índices y recorrer el tercero se denomina fibra de modo-3 o tubo. (a) (b) (c) Figura 3.2 Fibras obtenidas a partir del tensor Y de orden (modo) 3, con dimensiones [5, 4, 3]. (a) Columna o fibra de modo-1 obtenida como Y . :,4,1 (b) Fila o fibra de modo-2 obtenida como Y1,:,3. (c) Tubo o fibra de modo-3 obtenida como Y1,3,:. La descripción de un tensor a partir de sus fibras es muy práctica pero no es la única forma de expresar un tensor de una forma alternativa. Así pues, si en lugar de dejar libre uno de los índices que recorren el tensor dejamos dos nos encontramos ante un tensor de segundo orden, o lo que es lo mismo, una matriz. A las matrices que se obtienen como subarrays de tensores se conocen como slices. La forma de expresar los tensores en matrices o slices se conoce como desdoblado, matrización o flattening. De la misma forma que ocurre con la descomposición en fibras, un tensor se pude desdoblar de diferentes formas. En un tensor Y de tercer orden, a las slices que se forman al fijar el primer índice y dejar libres los otros dos se conocen como caras horizontales. En caso de dejar libre la tercera y primera dirección, manteniendo fijado únicamente el segundo índice, estamos antes slices Laterales. Si por el contrario fijamos el tercer índice y dejamos los otros dos restantes estamos ante una matrización en slices frontales. 27 3. Métodos de Descomposición Multilineal de las Observaciones (a) (b) (c) Figura 3.3 Slices obtenidas a partir del tensor Y de orden (modo) 3, con dimensiones [5, 4, 3]. (a) Slices horizontales. La primera slice horizontal se obtiene como Y slice lateral se obtiene como Y slice frontal se obtiene como Y . (b) Slices Laterales. El primer 1,:,: . (c) Slices Frontales. El primera :,1,: :,:,1 . 3.2.3. Mecanismos de Desdoblado - Matrización En la sección anterior hemos definido las diferentes formas de obtener un subtensor de dos dimensiones o matriz a parir de un tensor. Pero la idea de formar slices individuales y tratarlas de forma independiente no tiene gran interés ya que así se pierde parte de la información que guarda toda la estructura tensorial. El verdadero interés de la matrización del tensor es el de poder realizar operaciones con la simplicidad que ofrece el cálculo en dos dimensiones. Pero, de la misma forma que existen varias alternativas para la extracción de matrices de un tensor, existen diferentes maneras o modos de ordenar estas matrices obtenidas. El desdoblado de modo-n de un tensor Y de dimensiones [I1,I2,...,IN] se denota como Y(n) y se obtiene de la ordenación de las fibras modo-n en columnas. Así pues, un elemento del tensor con índices (i1,i2,...,iN) se mapea en un elemento de matriz con índices (in,j), donde: $1, & j = 1 + ( (ip ! 1)Jp , con Jp = % p!1 p"n &# In , 'm"n si p=1 o p=2 y n=1. en otro caso. (3.3) Por ejemplo, para un tensor de tercer orden Y de dimensiones [I1,I2,I3], el elemento yi ,i ,i se corresponde con el elemento de matriz (in,j) en el modo-n de la 1 2 3 forma: • modo-1: j = i2 + (i3 ! 1)I2 • modo-2: j = i1 + (i3 ! 1)I1 • modo-3: j = i1 + (i2 ! 1)I1 (3.4) La siguiente figura muestra el desdoblado matricial en cada uno de los tres modos posibles de un tensor A de dimensiones [3,4,2]. 28 3.2 Tensores Figura 3.4 Desdoblado del tensor A de orden 3, con dimensiones [4,3,2]. El modo-1 tiene como resultado una matriz de dimensiones [3,8], el modo-2 de [4,6] y el modo-3 de [2,12]. 3.2.4. Mecanismos de Desdoblado - Vectorización De la misma forma que se puede desdoblar un tensor en matrices, se puede vectorizar un tensor. La vectorización de una matriz Y=[Y1,...,YT] de dimensiones IxT se define como: vec(Y) = [Y1t , Y2t ,..., YTt ]t , (3.5) siendo vec(Y) un vector columna de tamaño IT. De la misma forma, se define la vectorización de un tensor Y como la vectorización de la matriz Y(1) obtenida a partir de la matrización modo-1 del tensor Y . Por ejemplo, un tensor de tercer orden A de dimensiones [I1,I2,I3] se vectoriza de la forma: 29 3. Métodos de Descomposición Multilineal de las Observaciones vec(A) = vec(A(1) ) = [vec(Y:,:,1)t , vec(Y:,:,2 )t ,..., vec(Y:,:,I )t ]t , (3.6) 3 siendo vec(A) un vector columna de tamaño I1I2I3. 3.2.5. Multiplicación Modo-n de Tensores Hemos visto en la sección anterior que existen diferentes modos de representar un tensor en fibras. Para multiplicar un tensor por una matriz habrá que especificar el modo en el que el tensor será multiplicador por las columnas (o filas de la matriz). Se define el producto modo-n de un tensor por una matriz como: Y = G xn A , (3.7) siendo A una matriz de dimensiones [In,Jn], G un tensor de dimensiones [J1,J2,...,JN] e Y el tensor resultante de la multiplicación, de dimensiones [J1,J2,...,Jn-1,Jn,Jn+1,...,JN], y formado por los elementos: Yj ,j 1 2 ,...,jn!1 ,in ,jn+1 ,...jN Jn = "G jn =1 j1 ,j2 ,...,JN Ai n ,jn . (3.8) Si en vez de utilizar la notación tensorial desdoblamos el tensor Y en su modo-n, Y(n), la multiplicación del tensor G por la matriz A se representa como: Y(n) = AG(n) (3.9) Además, si en lugar de utilizar la notación tensorial utilizamos la vectorización del tensor Y , vec(Y(n) ) , podemos representar la misma multiplicación como: vec(Y(n) ) = (I ! A)vec(G(n) ) , siendo (3.10) (I ! A) el producto Kronecker entre la matriz identidad y la matriz A. En la siguiente figura vemos un ejemplo de multiplicación en cada uno de los modos posibles de un tensor de tercer orden G de dimensiones [2x4x3] y una matriz. (a) 30 3.2 Tensores (b) (c) Figura 3.5 Multiplicación de un tensor G de orden (modo) 3, con dimensiones [5,4,3] por una matriz. (a) Multiplicación modo-1. (b) Multiplicación modo-2. (c) Multiplicación modo-3. Una de las propiedades que cumple la multiplicación tensor-matriz es que puede aplicarse sobre varios modos de forma conmutativa: Y = (G xnA) xmB = (G xmB) xnA = G xnA xmB . (3.11) En el caso en el que los modos de multiplicación son los mismos, la expresión queda reducida a: Y = (G xnA) xnB = G xn(BA). (3.12) De la misma forma que se puede multiplicar un tensor por una matriz, existe la multiplicación tensor-vector. La multiplicación modo-n de un tensor de dimensiones [J1,J2,...,JN] G por un vector A de tamaño Jn se denota como: Y = G xn A . (3.13) El resultado es un tensor Y de orden N-1 con dimensiones [J1,J2,..,Jn-1,Jn+1,..,JN], donde cada elemento se obtiene como: 31 3. Métodos de Descomposición Multilineal de las Observaciones Yj ,j 1 2 ,...,jn!1 ,jn+1 ,...jN = Jn "G jn =1 j1 ,j2 ,...,JN Aj . n (3.14) Si en vez de utilizar la notación tensorial desdoblamos el tensor en su modo-n,Y(n), la multiplicación del tensor G por el vector A se representa como: (3.15) Y(n) = A t G(n) . Además, si en lugar de desdoblar el tensor en matrices lo vectorizamos tenemos que: t vec(Y(n) ) = (I ! A t )vec(G(n) ) = G(n) A. (3.16) Como ocurre con la multiplicación tensor-matriz, es posible multiplicar un tensor por un vector en más de un modo, con la característica que con cada multiplicación el tensor se reduce en un orden. Así por ejemplo, la multiplicación de un tensor G de orden tres de dimensiones [ J, R, P] por un vector A de tamaño J tiene como resultado una matriz de dimensiones [1, R, P] 2 . Si multiplicamos la matriz resultante por un vector B de tamaño R obtenemos un vector de dimensiones [1,1, P] 3 . Y, por último, si multiplicamos dicho vector por otro vector C de tamaño P derivamos en un escalar: J R P z = G x1 A x2 B x3 C = ! ! ! Gjrp A jBrCp . (3.17) j=1 r =1 p=1 Figura 3.6 Multiplicación de un tensor G de orden (modo) 3, con dimensiones [5,4,3] en cada uno de sus modos por los vectores A, B y C, de dimensiones [5,1], [4,1] y [3,1] respectivamente. 2 Una matriz puede considerarse como un tensor de orden tres en el que uno de sus modos tiene tamaño unidad. 3 Un vector puede considerarse como un tensor de orden tres en el solo uno de sus índices tiene un tamaño superior a la unidad. 32 3.2 Tensores 3.2.6. Producto Escalar de Tensores El producto escalar de dos tensores A , B de orden N y con dimensiones [I1,I2,...,IN] se denota como A, B y es el resultado de la suma del producto elemento a elemento recorriendo todos los índices del tensor, es decir: A, B = I1 I2 IN ! ! ...! A i1 i2 iN i1 ,i2 ,...,iN Bi ,i 1 ,...,iN 2 . (3.18) Si el producto escalar se realiza sobre el mismo tensor estamos ante el cuadrado de la norma Frobenius de alto orden del tensor: A 2 F = A, A = I1 I2 IN ! ! ...! A i1 i2 iN 2 i1 ,i2 ,...,iN . (3.19) 3.2.7. Casos Particulares de Tensores ! Un tensor A de orden N se dice que es de rango unidad cuando puede representarse como el producto externo de N vectores [Cichocki02]: A = A(1) ! A(2) !... ! A(N) (3.20) Figura 3.7 Tensor G de tercer orden de rango unidad obtenido como multiplicación de los vectores A, B y C: G = A ! B ! C . ! Un tensor A de orden N se dice que es cúbico si cada uno de los modos tiene el mismo tamaño I1=I2=IN=I. Un tensor cúbico se dice que es supersimétrico si permanece constate ante cualquier permutación de alguno de sus índices. Por ejemplo, un tensor G de orden tres de dimensiones [I,I,I] sería simétrico si: Gi,j,k = Gi,k,j = Gj,i,k = Gj,k,i = Gk,i,j = Gk,j,i ! i,j,k=1,...,I. (3.21) Si la simetría no se cumple con todos sus índices, se dice que este tensor es (parcialmente) simétrico. Por ejemplo, un tensor de orden tres es simétrico en sus modos uno y dos si todas sus caras frontales son simétricas: t G:,:,k = G:,:,k ! k=1,...,I. (3.22) 33 3. Métodos de Descomposición Multilineal de las Observaciones ! Un tensor A de orden N es diagonal si todos sus elementos son nulos salvo los de su superdiagonal: Ai ,i 1 2 ,...,iN ! 0 si i1 = i2 = ... = iN . (3.23) Si además, estos elementos distintos de cero toman valor unidad, el tensor se denomina tensor identidad, I . Figura 3.8 Tensor identidad I de tercer orden. Todos sus elementos son nulos salvo los de la diagonal principal. 3.3. Descomposición y Factorización de Tensores Las observaciones que se realizan sobre los sistemas actuales ofrecen un conjunto de datos muy extenso en los que la representación natural es la tensorial. La forma en la que se descomponen o factorizan estos tensores es fundamental a la hora de extraer las componentes comunes que guardan los diferentes modos que componen el tensor. Las dos descomposiciones/factorizaciones más populares en los tensores de orden N son Tucker y PARAFAC/CANDECOMP. Como resultado de estas descomposiciones, las estructuras inherentes en los tensores se hacen visibles y pueden ser explotadas. Así, por ejemplo, se puede eliminar información redundante, extraer patrones o aislar componentes que en un principio eran inseparables. 3.3.1. PARAFAC/CANDECOMP La descomposición y factorización de tensores es muy empleada en la actualidad aunque su estudio viene desde muy lejos. Hitchcock, en 1927, introdujo la idea de expresar un tensor como la suma de un número finito de tensores de rango unidad. El concepto tomó popularidad en 1970 a partir de la Descomposición Canónica (CANDECOMP) propuesta por Carroll y Chang, modelo similar al Análisis de Factores Paralelos (PARAFAC) establecido por Harshman de forma independiente. En 1988, Möks redescubrió la CP (CANDECOMP/PARAFAC) nombrándola Modelo de Componentes Topográficas. La descomposición CP factoriza un tensor en una suma de tensores de rango unidad. Para poder ver este mecanismo de forma gráfica utilizaremos un ejemplo de tensor de tercer orden. Así pues, dado un tensor de dimensiones [I,T,Q] y los vectores A, B y C, de dimensiones [I,1], [T,1] y [Q,1] respectivamente, se define la CP como [Rasmus]: 34 3.3 Descomposición y Factorización de Tensores J Y = ! A j ! B j ! C j = "$# A,B, C %'& , (3.24) j=1 donde cada elemento que compone el tensor resultante se obtiene como: Yi,t,q = J !A j=1 Bt,jCq,j . i,j (3.25) Figura 3.9 Descomposición PARAFAC/CANDECOMP. Un tensor de tercer orden se obtiene como resultado de la suma de tensores de rango unidad. Se denominan factores o matrices de carga a las matrices formadas por la combinación de los vectores de rango unidad que descomponen el tensor: A = [A1 ,..., A J ] B = [B1 ,...,BJ ] . (3.26) C = [C1 ,...,C J ] A partir de las matrices de carga se puede definir el tensor matriciales como: Y(1) = A(C ! B)t Y(2) = B(C ! A)t , Y en sus formas (3.27) Y(3) = C(B ! A)t siendo ! el producto Khatri-Rao. En muchos casos es conveniente suponer que todos los vectores Aj, Bj, y Cj (j=1,2,...,J) están normalizados, en cuyo caso el modelo CP se conoce como el modelo PARAFAC de [Harshman], viene dado por: J Y = " ! j A j ! B j ! C j = "$# !, A,B, C %'& , (3.28) j=1 donde ! j representa los factores de escala ! = [!1 , !2 ,..., !J ]. 35 3. Métodos de Descomposición Multilineal de las Observaciones Otra forma de representar el tensor modo-n de las matrices de carga: Y puede ser a partir de las multiplicaciones (3.29) Y = ! x1A x2B x3C , siendo ! un tensor cúbico de tercer orden con dimensiones [J,J,J], cuyos elementos son todos nulos salvo los pertenecientes a la superdiagonal principal, obtenida a partir de los factores de escala ! j . Si en vez de estar ante el modelo de Harshman estamos en el modelo CP básico el tensor ! superidentidad ! [Cichocki02]. pasa a ser el tensor Figura 3.10 Modelo PARAFAC de Harshman de un tensor de tercer orden. El tensor Y se obtiene como resultado de la multiplicación de la multiplicación de las matrices de carga por un tensor núcleo. Como veremos en próximos apartados, el modelo PARAFAC puede considerarse como un caso particular del modelo Tucker3, donde el tensor núcleo es un tensor cúbico superdiagonal o superidentidad G = !, Gj,j,j " 0 . El modelo PARAFAC/CANDECOMP puede describirse también mediante sus slices frontales, laterales y horizontales de la forma: Y:,:,q = ADq (Cq,:)B t Y:,t,: = ADt (Bt,:)C t , (3.30) Yi,:,: = BDi(Ai,:)C t donde Di(Ai,:), Dt(Bt,:) y Dq(Cq,:) son matrices diagonales formadas a partir de las filas i-ésima, t-ésima y q-ésima de las matrices A, B y C, respectivamente, colocando los elementos de la fila en la diagonal principal. En particular, es conveniente representar el modelo CP en términos de las slices frontales: Yq = ADqB t , (q=1,2,...Q) (3.31) donde Dq= Dq(Cq,:) e Yq=Y:,:,q. Este modo de representación del modelo CP puede interpretarse como un problema de Separación Ciega de Fuentes, donde la matriz A representa la matriz de mezcla, la matriz X=Bt representa las fuentes desconocidas y la matriz C representa la matriz de escalado. 36 3.3 Descomposición y Factorización de Tensores El modelo PARAFAC/CANDECOMP presenta un menor número de grados de libertad que otros modelos como veremos en próximos apartados. Además, este modelo puede conducir a estimaciones inestables o erróneas. 3.3.2. Unicidad Una propiedad de los tensores de alto orden es que su descomposición es única, mientras que la descomposición de matrices no lo es. Si consideramos la matriz X de dimensiones IxJ de rango R, su descomposición vendría dada por: X = AB t = R !A r =1 r ! Br . (3.32) t t Si la SVD de dicha matriz X es U ! V , podemos elegir A = U ! y B = V . Pero también podríamos elegir la matriz A como A = U ! W y la matriz B = VW, siendo W una matriz ortogonal de dimensiones [RxR] . Es decir, podemos construir diferentes conjuntos de matrices de rango unidad que den como resultado la matriz original. La SVD de una matriz es única debido a la restricción de ortogonalidad. Por otro lado, la descomposición CANDECOMP/PARAFAC es única sin presentar esta condición de ortogonalidad [Cichocki02]. Si consideramos ahora el tensor de orden tres y dimensiones [I,J,K] y rango R, su descomposición vendría dada por: R X = ! Ar ! Br ! Cr = "$# A,B, C %'& . (3.33) r =1 La unicidad de esta descomposición establece que es la única combinación de tensores de rango unidad que sumados dan como resultado el tensor X, a excepción de escalados y permutaciones de las mismas: X = !#" A,B, C $%& = !"# A!,B!, C! $%& , donde (3.34) ! es una matriz permutación de dimensiones RxR. 3.3.3. Obtención de la Descomposición CP Para determinar cómo de buena ha sido la descomposición de un tensor definimos la función de coste: ( ) 2 2 2 2 DF Y !#" A,B, C $&% = Y - !#" A,B, C $&% + ! A A + !B B + ! C C , F F F F donde (3.35) ! A , !B y ! C son parámetros no negativos de regulación. Existen diferentes formas de atacar el problema de optimización de esta función de coste, aunque la más utilizada es la técnica ALS (Alternating Least Squares) debido principalmente a su simplicidad y a su rápida convergencia. Este mecanismo computa el gradiente de la función de coste con respecto cada una de las matrices individuales que componen la descomposición: 37 3. Métodos de Descomposición Multilineal de las Observaciones ( ) ( ) ( ) ( ) ( ) ( ) ! ADF = "Y(1) (C ! B) + A % C t C # B tB + $ AI ' & ( t t !BDF = "Y(2) (C ! A) + B % C C # A A + $BI ' . & ( t t !CDF = "Y(3) (B ! A) + C % B B # A A + $ CI ' & ( (3.36) Igualando las componentes del gradiente a cero podemos despejar la matriz correspondiente y obtener así su actualización: ( ) ( ) ( ) ( ) (B ! A) $(B B ) " ( A A ) + # I & % ' (1 & $ A ! ) Y(1) (C ! B) $ C t C " B tB + # AI & * % ' ' % (1 & $ B ! ) Y(2) (C ! A) $ C t C " A t A + #BI & * . % ' ' % $ C ! ) Y(3) % t t C (1 (3.37) & * ' 3.3.4. Descomposición Tucker La descomposición Tucker, también conocida como Tucker3, fue introducida en [Tucker] y puede verse como una Descomposición SVD de Alto Orden (Higher-order SVD, HOSVD). Dado un tensor de tercer Y orden de dimensiones [I,T,Q] y tres índices positivos {J,R,P}<<{I,T,Q}, buscamos un tensor núcleo G ![J, R, P] y tres matrices, A = [I, J], B = [T, R] y C = [Q, P] , denominadas factores o matrices de carga, de forma que: J R P Y = ! ! ! Gj,r,p (A j ! Br ! Cp ) = "$#G; A,B, C %'& , (3.38) j=1 r =1 p=1 donde cada uno de los elementos que forman el tensor Yi,t,q = J R P !!!G j=1 r =1 p=1 j,r,p Y viene dado como: Ai,jBt,rCq,p . (3.39) El tensor G puede verse como una versión comprimida del tensor origen Y . Si éste es un tensor cuadrado superdiagonal de dimensiones [J, J, J] estamos ante el modelo de descomposición PARAFAC de Harshman. Figura 3.11 Modelo Tucker3. Descomposición del tensor Y. Esta descomposición coincide con el modelo PARAFAC de Harshman cuando el tensor G es un tensor superdiagonal cuadrado de dimensiones [JxJxJ]. 38 3.3 Descomposición y Factorización de Tensores Si imponemos restricción de no negatividad a las matrices y al tensor núcleo transforma esta descomposición en la Descomposición No Negativa de Tucker (Nonnegative Tucker Decomposition, NTD). Al igual que ocurre con la descomposición CP, la descomposición Tucker3 permite múltiples descripciones matemáticas. Así, por ejemplo, su expresión a partir de los modos-n de multiplicación viene dada como: Y = G x1A x2B x3C , (3.40) mientras que la expresión Tucker3 de forma matricial viene dada a partir de productos Kronecker: Y(1) = AG(1) (C ! B)t Y(2) = BG(2) (C ! A)t . (3.41) Y(3) = CG(3) (B ! A)t 3.3.5. Descomposición Tucker2 La descomposición Tucker introducida en el apartado anterior se conoce como Tucker3 debido a que el tensor de tercer orden se descompone en tres factores (A, B y C) y un tensor núcleo. Si una de estas matrices de carga es la matriz identidad o se agrega al tensor núcleo estamos ante la descomposición Tucker2: Y = G x1A x2B = !#"G ; A,B $&% , (3.42) Figura 3.12 Descomposición del tensor Y mediante el modelo Tucker2. Inclusión de la matriz de carga C en el tensor núcleo. 3.3.6. Descomposición Tucker1 De la misma manera que ocurre con la descomposición Tucker2, si en el modelo Tucker3 dos de las matrices de carga son la matriz identidad o se agregan al tensor núcleo, el modelo pasa a denominarse Tucker1, siguiendo la expresión: Y = G x1A = !#"G ; A $&% . (3.43) 39 3. Métodos de Descomposición Multilineal de las Observaciones Figura 3.13 Descomposición del tensor Y mediante el modelo Tucker1. Inclusión de la matriz de carga B en el tensor núcleo. Si expresamos de forma matricial el tensor resultante Y nos encontramos ante el Análisis de Componentes Principales (PCA) Y(1)=AG(1). 3.4. Conclusiones En este capítulo se abordaron algunos de los conceptos y operaciones básicas del álgebra multilineal que son necesarios para el desarrollo del algoritmo ThinICA de apartados posteriores. Al comienzo del capítulo se presentó una definición del concepto de tensor de orden superior propia del álgebra multilineal. Posteriormente, se presentaron diferentes formas de representar matricialmente un tensor de orden superior, con el fin de aprovechar las ventajas que ofrecen las herramientas matriciales existentes. Para un tensor de orden N, la representación matricial se obtiene al desplegar de N formas distintas las matrices que lo forman. Para la ordenación de dichas matrices se sigue la ordenación adoptada en [Cichocki02]. Esta forma de ordenar las matrices es similar a la establecida en [Kolda] pero diferente al ordenamiento adoptado por en [Lathauwer01]. Las diferentes versiones a la hora de desdoblar un tensor, ya sea matricial o vectorial, repercute en la no unicidad en su descomposición. Tras el desdoblado del tensor se definieron las diferentes multiplicaciones modo-n disponibles a la hora de realizar operaciones entre tensores y matrices. En este mismo apartado se definieron tensores especiales como el tensor cúbico, de rango unidad o el tensor identidad. En la siguiente sección se definieron las descomposiciones CANDECOMP/PARAFAC así como las Tucker 1, 2 y 3. Descubrimos que la descomposición tensorial viene desde relativamente lejos y que son varios los autores los que han llegado de forma independiente al mismo resultado. La descomposición CANDECOMP/PARAFAC es única sin necesidad de presentar una condición de ortogonalidad como exige la SVD. La descomposición Tucker (o Tucker3) coincidiría con la PARAFAC en caso de que el tensor núcleo fuese cuadrado. Por otro lado, la descomposición Tucker1 desdoblada en su forma matricial coincide con el PCA. 40 3.5 Apéndice: Multiplicaciones con Tensores 3.5. Apéndice: Multiplicaciones con Tensores A lo largo de la factorización y descomposición de tensores se han utilizado una serie de productos sobre matrices no muy conocidos pero que son de gran utilizad. En este apéndice vamos a definir brevemente cada uno de ellos y veremos algunas de sus propiedades. 3.5.1. Producto Externo Se define el producto externo entre los tensores A y B , de dimensiones [I1,I2,...,IN] y [J1,J2,...,JM] respectivamente, como: (3.44) Z = A ! B, donde Z tiene dimensiones [I1,I2,...,IN,J1,J2,...,JM] y sus elementos vienen dados de la forma: Zi ,i 1 2 ,...,iN ,j1 ,j2 ,...,jM = Ai ,i 1 2 ,...,iN B j ,j 1 2 ,...,jM . (3.45) Como puede observarse, el tensor resultante Z contiene todas las posibles combinaciones entre los elementos que componen los tensores A y B . ! El producto externo de dos vectores A y B obtiene como resultado una matriz de rango uno: Z = A ! B = ABt ! (3.46) El producto externo de tres vectores A, B y C obtiene como resultado un tensor de tercer orden de rango unidad: Z = A ! B ! C, donde (3.47) Zi,j,k = AiB jCk . 3.5.2. Producto Kronecker El producto Kronecker [Graham] de dos matrices A y B, de dimensiones [I,J] y [T,R] respectivamente, tiene como resultado una matriz Z de dimensiones [IT,JR], obtenida como: " $ $ Z= A !B= $ $ $ $# = "$ # A1,2B ! A1,JB % ' A2,1B A2,2B ! A2,JB ' '= ' " " # " ' AI,1B AI,2B ! AI,JB ' & A1,1B A1 ! B1 A1 ! B2 A1 ! B3 ! A J ! BR (1 (3.48) A J ! BR %' . & Mientas que el producto externo de tres vectores A, B y C obtiene como resultado un tensor de tercer orden Z , el producto Kronecker de estos mismo vectores da como resultado el mismo tensor de forma vectorizada: vec(Z) = A ! B ! C . (3.49) 41 3. Métodos de Descomposición Multilineal de las Observaciones 3.5.3. Producto Hadamard El producto Hadamard de dos matrices de igual tamaño da como resultado una matriz de las mismas dimensiones, obtenida como la multiplicación elemento a elemento: " A B $ 1,1 1,1 $ A B Z = A ! B = $ 2,1 2,1 $ " $ $# AI,1BI,1 A1,2B1,2 ! A1,JB1,J % ' A2,2B2,2 ! A2,JB2,J ' '. ' " # " ' AI,2BI,2 ! AI,JBI,J ' & (3.50) 3.5.4. Producto Khatri-Rao Se define el producto Khatri-Rao de dos matrices A y B, de dimensiones [I,J] y [K,J] respectivamente, como: Z = A ! B= "$ A1 ! B1 # A2 ! B2 " A J ! BJ %' , (3.51) & siendo Z una matriz de tamaño [IK,J]. 3.5.5. Propiedades A continuación se presentan alguna de las propiedades de este conjunto de productos y sus relaciones: (A ! B)(C ! D) = AC ! BD (A ! B)t = A t ! B t A ! (B + C) = (A ! B) + (A ! C) (A + B) ! (C + D) = (AC) ! (BD) A ! B ! C = (A ! B) ! C = A ! (B ! C) (A + B) ! C = A ! C + B ! C (A ! B)t (A ! B) = A t A ! B tB 42 (3.52)