Você está na página 1de 11

Resolving the sign ambiguity in the singular value decomposition

R. Broa a1 , E. Acar b e Tamara G. Kolda c

1 Department of Food Science, Faculty of Life Sciences, University of Copenhagen, DK-1958 Frederiksberg C, Denmark. rb@life.ku.dk a Department of Food Science, Faculty of Life Sciences, University of Copenhagen, DK-1958 Frederiksberg C, Denmark b Computer Science Department, Rensselaer Polytechnic Institute, Troy, NY, USA c Sandia National Laboratories, Livermore, CA, USA

Resumo. Muitos metodos´ de analise´ de dados modernos envolvem computar uma decomposic¸ao˜ de uma matriz em valores singulares (SVD - singular value decomposition) ou decomposic¸ao˜ em autovalores (EVD - eigenvalue decompo- sition). Embora a SVD e EVD estejam bem estabelecidas e podem ser calcu- ladas via algoritmos state-of-the-art, nao˜ e´ comumente mencionado que existe uma indeterminac¸ao˜ intr´ınseca no sinal de modo que possa alterar significati- vamente as conclusoes˜ e interpretac¸oes˜ retiradas de seus resultados. Aqui nos´ fornecemos uma soluc¸ao˜ para o problema da ambiguidade no sinal e mostramos como ela leva a soluc¸oes˜ mais sensatas. Palavras-chave: PCA; indeterminac¸ao˜ do sinal; SVD

Abstract. Many modern data analysis methods involve computing a matrix sin- gular value decomposition (SVD) or eigenvalue decomposition (EVD). Princi- pal component analysis is the time-honored example, but more recent applica- tions include latent semantic indexing (LSI), hypertext induced topic selection (HITS), clustering, classification, etc. Though the SVD and EVD are well esta- blished and can be computed via state-of-the-art algorithms, it is not commonly mentioned that there is an intrinsic sign indeterminacy that can significantly impact the conclusions and interpretations drawn from their results. Here we provide a solution to the sign ambiguity problem and show how it leads to more sensible solutions. Keywords: PCA; sign indeterminacy; SVD

1. Introduc¸ao˜

A decomposic¸ao˜ em valores singulares (SVD) e´ de fundamental importanciaˆ em um grande numero´ de aplicac¸oes˜ em varios´ campos da analise´ de dados, incluindo a analise´ de componentes principais (PCA - principal components analysis)[1,2], indexac¸ao˜ semanticaˆ latente (LSI - latent semantic indexing)[3], selec¸ao˜ induzida de hipertexto topico´ (HITS - hypertext induced topic selection)[4], agrupamento, classificac¸ao,˜ etc. Para uma matriz a` valores reais, XR I×J , o teorema da decomposic¸ao˜ em valores singulares afirma que existem matrizes ortogonais

U

= {u 1 , u 2 ,

, u I } ∈ R I×I

e V = {v 1 , v 2 ,

, v J } ∈ R J×J

tais que

X = UΣV T

onde Σ = diag(σ 1 , σ 2 ,

As entradas diagonais de Σ sao˜ os valores singulares enquanto as colunas de U e V sao,˜ respectivamente, vetores singulares a` esquerda e a` direita. Se estes valores singulares sao˜ distintos, a decomposic¸ao˜ e´ dita ser unica[5,6].´ Na analise´ de situac¸oes˜ que envolvem muitos dados, e´ mais pratico´ trabalhar com a forma truncada da SVD, onde apenas os

, σ P ), com P = min(I, J) e σ 1 σ 2 ≥ ··· ≥ σ P 0.

primeiros K<P valores singulares e vetores sao˜ usados para que

X

U K Σ K V

T

K =

K

k=1

σ k u k v T

k

onde U K = {u 1 , u 2 ,

diag(σ 1 , σ 2 ,

aproximac¸ao˜ na classe K no sentido dos m´ınimos quadrados e ainda e´ a unica,´ se os valores singulares sao˜ distintos.

No entanto, a decomposic¸ao˜ so´ e´ unica´ ate´ uma reflexao˜ de cada conjunto de vetores singulares, porque para qualquer conjunto de vetores singulares, k, ela sustenta que

σ k u k v T = σ k (u k )(v T )

, v K } ∈ R J×K e Σ K =

, σ K ). Isto ja´ nao˜ e´ uma decomposic¸ao˜ exata da matriz X, mas e´ a melhor

, u K } ∈ R I×K , V K = {v 1 , v 2 ,

k

k

Assim, a SVD em si nao˜ fornece meios para avaliar o sinal de cada vetor singu- lar. Em reais implementac¸oes˜ de algoritmos de SVD, essa indeterminac¸ao˜ e´ herdada de modo que os vetores singulares individuais temˆ um sinal arbitrario.´ O sinal real e´ de- terminada como um subproduto dos calculos´ que sao˜ usados para garantir a estabilidade numerica.´ Esta determinac¸ao˜ de sinal e´ essencialmente o mesmo que atribuir o sinal de forma aleatoria´ e, portanto, o sinal nao˜ tem interpretac¸ao˜ significativa em termos de dados que representa a decomposic¸ao.˜

Mesmo que nao˜ fac¸a diferenc¸a matematicamente, a atual arbitrariedade na convenc¸ao˜ de sinais tem ramificac¸oes˜ importantes e significativas em um numero´ de aplicac¸oes.˜

Um exemplo e´ a avaliac¸ao˜ estat´ıstica de incerteza atraves´ de bootstrapping em que muitos modelos sao˜ calculados com dados ligeiramente alterados. Comparac¸ao˜ entre esses modelos diferentes pode ser problematica´ quando o sinal pode mudar.

Outro exemplo e´ a validac¸ao˜ cruzada. Um dos metodos´ para validac¸ao˜ cruzada

e´ a abordagem classica[7]´ em que dois modelos PCA sao˜ calculados com da-

dos ligeiramente diferentes e entao˜ combinados. Mesmo na abordagem original,

a indeterminac¸ao˜ do sinal foi realizada para ser um problema, mas apenas uma

soluc¸ao˜ ad hoc (a verificac¸ao˜ de paridade assim chamada) e´ utilizada para contor- nar o problema.

Na analise´ exploratoria´ atraves´ da analise´ de componentes principais, os sinais das pontuac¸oes˜ e cargas (correspondente a escala vetores singulares), muitas ve- zes irreverentes, e.g., apos´ a remoc¸ao˜ de outliers. Enquanto isto e´ trivial matema- ticamente, tem consequenciasˆ para os analistas menos experientes que nao˜ estao˜ cientes da arbitrariedade do sinal da soluc¸ao.˜

Comum nos exemplos acima e´ a falta de uma tecnica´ fundamental para determinar

o sinal. Portanto, abordagens ad hoc sao˜ usadas como a definic¸ao˜ do elemento maximo´

em um vetor singular como sendo positivo. Infelizmente, tais abordagens nao˜ resolvem o

problema para dados anal´ıticos ou de um ponto de vista interpretativo.

Considere o seguinte exemplo simples:

X =

4

1

11

11

22

5

69

69

3

1

10

10

5

1

14

14

MATLAB tem dois metodos´ padrao˜ para o calculo´ da SVD. O metodo´ ’svd’ usa

o comando LAPACK DGESVD que e´ baseado no metodo´ QR (ver referenciaˆ [8]). O

comando ’svds’, por outro lado, usa ARPACK que e´ baseado no uso de iterac¸oes˜ Lanczos (ver referenciaˆ [9]). Estes sao˜ apenas dois metodos´ diferentes, mas devem, idealmente, sempre produzir os mesmos resultados.

Usando ’svd’ para calcular a SVD de X, temos os seguintes vetores singulares

esquerdos

U =

0.22

0.05

0.69

0.69

0.97

0.06

0.16

0.16

0.07

1.00

0.03

0.03

0.00

0.00

0.71

0.71

No entanto, ’svds’ troca os sinais dos primeiros tresˆ pares de vetores singulares. Abaixo os vetores singulares esquerdos sao˜ mostrados (os vetores singulares direitos temˆ um sinal correspondente).

Alem´

U =

0.22

0.05

0.69

0.69

0.97

0.06

0.16

0.16

0.07

1.00

0.03

0.03

0.00

0.00

0.71

0.71

disso, como o algoritmo ’svds’ baseado em Lanczos tem um componente

aleatorio,´

os resultados podem diferir em calculos´

repetidos para exatamente a mesma

matriz.

Obviamente, essa ambiguidade pode causar problemas, especialmente para um usuario´ inesperiente. Como um exemplo pratico,´ considere o seguinte conjunto de dados simples publicado na revista Time, janeiro de 1996 (obtido a partir PLS Toolbox Ver. 4, ResEigenvector., Inc.), mostrando um consumo medio´ de vinho, licor e cerveja (L / ano), bem como expectativa de vida em anos e a taxa de doenc¸as card´ıacas por 100.000/ano (Tabela I).

Ao realizar uma SVD sobre esses dados claramente positivos, o primeiro vetor direito e´ singular

u =

0.008

0.068

0.321

0.320

0.889

Como pode ser visto o vetor singular e´ todo negativo, embora os pontos de dados estejam apontando claramente no sentido oposto. Na verdade, a implementac¸ao˜ atual da SVD em MATLAB baseada no LAPACK e´ tal que o primeiro vetor singular de uma matriz totalmente positiva sempre tera´ todos os elementos negativos.

to-

e´ significativa em termos de

talmente identificada para SVD e uma soluc¸ao˜ os dados serem decompostos.

A seguir, uma convenc¸ao˜

sera´ desenvolvida de modo que leve a uma soluc¸ao˜

que tambem´

 

Tabela.1 Dados da revista Time

 
 

Licor

Vinho

Cerveja

Exp. de vida (anos)

Doenc¸as card´ıacas

(L/anos)

(L/anos)

(L/anos)

(100.000/anos)

Franc¸a

2.5

63.5

40.1

78

61.1

Italia´

0.9

58.0

25.1

78

94.1

Su´ıc¸a

1.7

46.0

65.0

78

106.4

Australia´

1.2

15.7

102.1

78

173.0

Gra-Bretanha˜

1.5

12.2

100.0

77

199.7

Estados Unidos

2.0

8.9

87.8

76

176.0

Russia´

3.8

2.7

17.1

69

373.6

Rep. Checa

1.0

1.7

140.0

73

283.7

Japao˜

2.1

1.0

55.0

79

34.7

Mexico´

0.8

0.2

50.4

73

36.4

2. Metodologia

Matematicamente, nao˜ ha´ maneira de evitar a ambiguidade do sinal de um termo mul- tiplicativo, como o par de vetores singulares. Assim, a matematica´ nao˜ pode orientar a escolha do sinal. No entanto, a analise´ de dados e´ mais do que a algebra.´ A fim de iden- tificar o sinal de um vetor singular, sugere-se que seja semelhante ao sinal da maioria dos vetores que esta´ representando. Geometricamente, ele deve apontar na mesma direc¸ao,˜ e nao˜ na direc¸ao˜ oposta, como os pontos que estao˜ representando. Na Figura 1 sao˜ da- dos alguns exemplos de dados bidimensionais e o correspondente primeiro vetor singular direito, bem como o vetor com o sinal corrigido.

Outro exemplo e´ dado na Figura 2, onde mostra-se um conjunto de dados 201- dimensional de espectros de fluorescencia.ˆ Os espectros sao˜ vistos como tendo uma forma positiva comum, enquanto o primeiro vetor singular tem a direc¸ao˜ oposta. Um vetor singular com o sinal corrigido ira´ apontar na direc¸ao˜ positiva e, portanto, reflete a direc¸ao˜ comum de pontos de dados individuais.

O sinal aqui sugerido pode ser determinado a partir do sinal do produto interno do vetor singular e os vetores de dados individuais. Os vetores de dados podem ter orientac¸ao˜

Figura 1. Quatro exemplos de matrizes 10 × 2 aleatorias.´ Os elementos sao˜ ex- tra´ıdos

Figura 1. Quatro exemplos de matrizes 10×2 aleatorias.´ Os elementos sao˜ ex- tra´ıdos de uma distribuic¸ ao˜ uniforme com um vies´ positivo para tornar a direc¸ ao˜ obvia.´ Cada linha e´ mostrada como uma linha fina e o primeiro vetor singular direito e´ mostrado na grossa tracejada. O sinal corrigido do vector singular di- reito e´ mostrada como uma linha espessa. Este numero´ esta´ dispon´ıvel on-line em cores a www.interscience.wiley.com/journal/cem

on-line em cores a www.interscience.wiley.com/journal/cem Figura 2. Exemplo de uma matriz de dados. Cada linha

Figura 2. Exemplo de uma matriz de dados. Cada linha representa uma fina linha em uma matriz de 61×201 e a linha grossa esta´ associada ao primeiro vetor singular direito. Neste caso, o vetor singular e´ dito com sinal errado, porque ele aponta na direc¸ ao˜ oposta dos vetores que representa. Este numero´ esta´ dispon´ıvel on-line em cores a www.interscience.wiley.com/journal/cem

diferente, mas, em seguida, faz sentido intuitivo, bem como senso pratico´ escolher a direc¸ao˜ da maioria do vetores pontos. Isto pode ser encontrado atraves´ da avaliac¸ao˜ do sinal da soma dos produtos internos assinados. Suponha, por exemplo, que queremos determinar o sinal para o k-esimo´ vetor singular a` esquerda, u k . Idealmente, teremos

(u k ) T (x j ) > 0 para j = 1,

, J

se o vetor singular estiver alinhado corretamente sing-wise com os vetores colunas x j da matriz de dados X R I×J . Especificamente, nos´ escolhemos o sinal para maximizar

s =

J

j=1

sign(u T x j )(u T x j ) 2

k

k

onde x j e´ a coluna j da matriz X. O sinal correspondente ao vetor direito singular e´ de- terminada de forma semelhante usando as linhas da matriz X (ou, pensar nele como as colunas de X T ). Se os dois sinais ideais dos vetores singulares esquerdo e direito discor- darem quando avaliados dessa forma, o sinal global pode ser determinado pela escolha do sinal com base no qual o vetor singular da esquerda e da direita tem o maior valor absoluto somado. Isso ajudara´ a superar a ambiguidade causada por um modo arbitrario´ de assinar (e.g., por causa de dados centralizados).

O algoritmo detalhado e´ dado na Figura 3, que inclui tambem´ uma subtrac¸ao˜ de componentes adicionais antes de determinar o sinal de um determinado componente.Isso nao˜ e´ necessario´ em SVD padrao,˜ mas e´ util´ se os componentes estao˜ correlacionados, o que pode ser o caso em modelos alternativos bilineares, tais como resoluc¸ao˜ de curva mul- tivariada ou, pelo menos regressao˜ parcial de quadrados. O algoritmo pode ser esperado para o trabalho quando a magnitude do produtos internos nao˜ estao˜ perto de zero. Quando as magnitudes chegarem perto de zero, entao˜ o sinal sera´ arbitrario,´ essencialmente por- que os vetores pontos se igualam a muitos em todas as direc¸oes.˜ Isto esta´ parcialmente resolvido no algoritmo considerando a magnitude combinada dos vetores singulares da esquerda e da direita, mas e´ claro que, no extremo, o sinal sera´ arbitrario.´

3. Exemplos

Varios´

sua utilidade.

exemplos sobre o uso da convenc¸ao˜

de sinais sao˜

fornecidos a seguir para ilustrar

3.1. O efeito da sinalizac¸ao˜ amb´ıgua no Eigenfaces

Um exemplo para a ilustrac¸ao˜ da ambiguidade¨ no sinal da SVD e´ uma tecnica´ bem conhe- cida chamada Eigenfaces [10], muitas vezes usado no reconhecimento de faces. A ideia subjacente a Eigenfaces e´ para representar um conjunto de imagens faciais organizados como uma matriz usando os autovetores significativos da matriz de covarianciaˆ pixelwise do conjuto de dados da imagem. Seja X R I×J representante de um conjuto de dados de imagem, onde J e´ o numero´ de imagens e I e´ o numero´ de pixel por imagens. Podemos re- duzir a dimensionalidade dos dados e representar o conjuto de dados da imagem usando os autovalores significativos de XX T ; em outras palavras, o significante vetor singular esquerdo da matrix original X. Consequentimente, tambem´ nas aplicac¸oes˜ de Eigenfaces, vetores singulares podem ter o sinal alterado devido a ambiguidade intr´ınseca da SVD.

Figura 3. Algoritmo para determinar o sinal de vetores singulares.

Figura 3. Algoritmo para determinar o sinal de vetores singulares.

Figura 4. Eigenfaces correspondentes aos tresˆ tidos em execuc¸ oes˜ imagens sao˜ primeiros vetores singulares

Figura 4. Eigenfaces correspondentes aos tresˆ

tidos em execuc¸ oes˜

imagens sao˜

primeiros vetores singulares ob-

’svd’ em MATLAB, quando 200 de 265

diferentes do metodo´

aleatoriamente amostradas em cada execuc¸ ao.˜

do metodo´ aleatoriamente amostradas em cada execuc¸ ao.˜ Figura 5. Eigenfaces correspondentes aos tresˆ primeiros

Figura 5. Eigenfaces correspondentes aos tresˆ primeiros vetores singulares obtidos de forma consistente em execuc¸ oes˜ diferentes com a func¸ ao˜ SignFlip quando 200 de 265 imagens sao˜ aleatoriamente amostradas em cada execuc¸ ao.˜

Para ilustrar o efeito da alterac¸ao˜ do sinal em Eigenfaces, calculamos a Eigenfaces de um conjunto de dados de imagem contendo 265 imagens de 10 indiv´ıduos em poses diferentes do banco de dados UMIST (atualmente o banco de dados Sheffield)[11]. A Figura 4 mostra a Eigenfaces correspondente aos tresˆ primeiros vetores singulares esquer- dos de um conjunto de imagens obtidos de duas execuc¸ao˜ do metodo´ ’svd’ no MATLAB quando 200 imagens de 265 sao˜ selecionadas aleatoriamente´ em cada execuc¸ao.˜ Obser- vamos que como resultado da sinalizac¸ao˜ amb´ıgua, obtemos a fotografia negativa para o segundo e ocasionalmente o terceiro eigenface em diferentes execuc¸oes.˜ Por outro lado, quando a nossa abordagem da troca de sinal e´ utilizada, obtemos de forma consistente os Eigenfaces apresentados na Figura 5 que sao˜ vistos como positivos, em vez de negativos fotograficos.´

3.2. O efeito da sinalizac¸ao˜ amb´ıgua em dados espectrais

Um conjunto de espectros de cada emissao˜ de fluorescenciaˆ de dimensao˜ 201 e´ dado por 61 comprimentos de onda de excitac¸ao˜ diferente e mantido em uma matriz de 61×201 (Figura 6). Estes espectros representam tresˆ componentes espectrais subjacente e, por-

Figura 6. Sesenta e uma emisoes˜ de espectros fluorescentes 201-dimensionais. Figura 7. Bootstrapped dos tresˆ

Figura 6. Sesenta e uma emisoes˜

de espectros fluorescentes 201-dimensionais.

uma emisoes˜ de espectros fluorescentes 201-dimensionais. Figura 7. Bootstrapped dos tresˆ Figura 6 antes

Figura 7. Bootstrapped dos tresˆ

Figura 6 antes (superior) e depois (inferior) da correc¸ ao˜

primeiros vetores singulares direitos a partir da

do sinal.

tanto, as tresˆ maiores componentes singulares devem representar a variac¸ao˜ sistematica´ dos dados que e´ de fato encontrado para ser o caso.

Em um experimento, estes tresˆ componentes sao˜ inicialmente amarradas (boots-

trapped) 100 vezes, a fim de ser capaz de avaliar a incerteza dos componentes estimados.

O

bootstrapping e´ feito por amostragem de 61 linhas com a substituic¸ao˜ de 100 vezes, e

os

resultados sao˜

mostrados na metade superior da Figura 7.

Enquanto a inversao˜ de sinal pode ser devido a` inicializac¸ao˜ tambem´ e´ provavel´ que seja devido a` natureza semi-aleatorio´ do sinal dos vetores singulares. Na metade in- ferior da Figura 7, o resultado da aplicac¸ao˜ da convenc¸ao˜ de sinais proposto e´ mostrado e como pode ser visto, todos os vetores singulares podem agora ser imediatamente com- parados porque seus sinais nao˜ mudam desde que eles representam aspectos semelhantes dos dados.

4. Conclusao˜

A regra tem sido desenvolvida para a aplicac¸ao˜ de sinais significativos para vetores sin-

gulares. Esta regra faz com que seja poss´ıvel, pela primeira vez a obtenc¸ao˜ de parametrosˆ unicos´ da SVD que sao˜ significativos a partir de uma representac¸ao˜ de dados e de pontos

de vista interpretativos. Isto tem implicac¸oes˜ para todas as situac¸oes˜ onde a SVD e´ usado

como o motor computacional para analise´

de dados.

5. Referenciasˆ

1.

Jackson JE. Principal components and factor analysis: part I–principal compo- nents. J. Qual. Technol. 1980; 12: 201-213.

2.

Jackson JE. Principal components and factor analysis: part II– additional topics related to principal components. J. Qual. Technol. 1981; 13: 46-58.

3.

Dumais ST, Furnas GW, Landauer TK, Deerwester S, Harshman RA. Using Latent Semantic Analysis to Improve Access to Textual Information, CHI ’88: Procee- dings of the SIGGHI Conference on Fuman Factors in Computing systems. ACM Press: PL New York, NY, 1988; 281-285.

4.

Kleinberg JM. Authoritative sources in a hyperlinked environment. J. ACM 1999; 46: 604-632.

5.

Kahaner D, Moler C, Nash S. Numerical Methods and Software. Prentice Hall:

Upper Saddle River, NJ, USA, 1989.

6.

Schott JR. Matrix analysis for statistics. Wiley and Sons: New York, 1997.

7.

Eastment HT, Krzanowski WJ. Cross-validatory choice of the number of compo- nents from a principal component analysis. Technometrics 1982; 24: 73-77.

8.

Anderson E, Bai Z, Bischof C, Blackford S, Demmel J, Dongarra J, Du Croz J, Greenbaum A, Hammarling S, Mckenney A, Sorensen D. LAPACK User’s Guide, third edition. SIAM: Philadelphia, PA,1999.

9.

Lehoucq RB, Sorensen DC, Yang C. ARPACK Users’ Guide: Solution of Large- Scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods. SIAM:

Philadelphia, PA, 1998.

10.

Turk M, Pentland A. Eigenfaces for recognition. J. Cognitive Neurosci. 1991; 3:

72-86.

11.

Graham DB, Allinson NM. Characterizing virtual eigensignatures for general purpose face recognition, Face Recognition: From Theory to Applications, Ser. NATO AS

Algorithm 1 Func¸ao˜

SignFlip

Entradas:

singulares (U,V,Σ).

X

R I×J e sua (possivelmente truncadas) decomposic¸ao˜

em valores

Sa´ıdas: e ( vetores singulares a` esquerda e a` direita com sinais apropriados).

(1 o passo) Para cada vetor singular a` esquerda, k

=

j-esima´

coluna de Y

Y = X

K

m=1,m

=k

σ m u m v

1, 2,

T

m

fim do para

Seja s esquerdo

k

=

J

j=1

sign(u T y j )(u T y j ) 2

k

k

(2 o passo) Para cada vetor singular a` direita, k i-esima´ linha transposta de Y

=

Y = X

K

m=1,m

=k

σ m u m v

1, 2,

T

m

fim do para

Seja s direito k

=

I

i=1

sign(v T y i )(v T y i ) 2

k

k

(3 o passo) Para cada vetor singular, k = 1, 2,

, K

>>

>>

>>

>>

>>

>>

>>

se (s esquerdo

k

)(s direito

k

) < 0, entao˜

se (s esquerdo

k

) < (s direito

k

), entao˜

s esquerdo

k

= s esquerdo

k

se nao,˜

s direito

k

fim do se fim do se

= s direito

k

fim do para

k = sign(s esquerdo )u k

k

k = sign(s direito )v k

k

, K

, K

e para y j

e para

y i

sendo a

sendo a

fim do algoritmo ———————————————————————————————————–