A recursive eigenspace computation for the canonical polyadic decomposition

Eric Evert, Michiel Vandecappelle, Lieven De Lathauwer


The canonical polyadic decomposition (CPD) is a compact decomposition which expresses a tensor as a sum of its rank-1 components. A common step in the computation of a CPD is computing a generalized eigenvalue decomposition (GEVD) of the tensor. A GEVD provides an algebraic approximation of the CPD which can then be used as an initialization in optimization routines. While in the noiseless setting GEVD exactly recovers the CPD, it has recently been shown that pencil-based computations such as GEVD are not stable. In this article we present an algebraic method for approximation of a CPD which greatly improves the accuracy of GEVD. Our method is still fundamentally pencil based; however, rather than using a single pencil and computing all of its generalized eigenvectors, we use many different pencils and in each pencil compute generalized eigenspaces corresponding to sufficiently well-separated generalized eigenvalues. The resulting “generalized eigenspace decomposition" is significantly more robust to noise than the classical GEVD. Accuracy of the generalized eigenspace decomposition is examined both empirically and theoretically. In particular, we provide a deterministic perturbation theoretic bound which is predictive of error in the computed factorization.

Code description

This package provides an implementation of the generalized eigenspacedecomposition (GESD) method to algebraically compute the CPD of atensor, following the GESD paper, as well as a tutorial on how to usethe method and files to generate the experiments from the papers.


E. Evert, M. Vandecappelle, and L. De Lathauwer, "A recursive eigenspace computation for the canonical polyadic decomposition," SIAM Journal on Matrix Analysis and Applications, vol. 43, no. 1, pp. 274-300, 2022.

Download code

This repository can be cited as:
S. Hendrikx, M. Boussé, N. Vervliet, M. Vandecappelle, R. Kenis, and L. De Lathauwer, Tensorlab⁺, Available online, Version of Dec 2022 downloaded from https://www.tensorlabplus.net.