6
$\begingroup$

Canonical Correlation Analysis (CCA) (and its kernel equivalent (KCCA)) can be used to find linear (nonlinear) relationships between two aligned multivariate datasets (or views).

Is there a way to extend this to more than two views? I suppose one way would be to apply CCA/KCCA recursively in a tree structure, but this appears to be rather inefficient. Is there a single optimisation that can achieve this in one step? Or are there any alternative methods that do the same thing?

$\endgroup$
6
$\begingroup$

If by more than two 'views' you actually mean extending the CCA framework to k-blocks data structure, then you might be interested in

Tenenhaus, A. and Tenenhaus, M. (2011). Regularized Generalized Canonical Correlation Analysis. Psychometrika, 76(2), 257-284.

The corresponding R package is called RGCCA.

| cite | improve this answer | |
$\endgroup$
4
$\begingroup$

This is just a guess. Is it not that CCA can be interpreted as a probabilistic model of the following form?

X | Z ~ N(A*Z,Psi)

Y | Z ~ N(B*Z,Phi)

where X is vector in first view, Y is vector in second view, and Z is latent variable which captures the relation between X and Y. Psi and Phi are covariance matrices which soak up all the rest of the variations not captured by Z. Generalization to >2 views is now straightforward.

Learning in this framework would presumably be EM but that is not very efficient. It is likely that the typical generalized eigenvalue computations for CCA is a more efficient method to get at the maximum likelihood solution in 2 view case, and there might be a generalization to >2 view2 setting?

| cite | improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.