[Math] the relation between Kruskal tensor and CP decomposition

linear algebratensors

In Matlab Tensor Toolbox there is a tensor type called "Kruskal tensors", I found its form is similar to the CP decomposition.

Wikipedia mentioned "As such, many of the methods have been independently invented several times, often with subtle variations, leading to a confusing literature. Abstract and general mathematical theorems are rare (though see Kruskal[1] with regard to the CP decomposition)"

In a paper on [A concise proof of Kruskal's theorem on tensor decomposition], it mentioned "…In these
fields, the expression of a tensor as a sum of rank-1 tensors is often referred to as the
Candecomp or Parafac decomposition."

So, what is the relation or difference between Kruskal tensor decomposition and CP decomposition?

Are they actually the same thing but Kruskal decomposition is devised by a different person in different field for 3-dimensional tensor?

Best Answer

Tensor Toolbox stores the output of a CP - Decomposition as a kruskal Tensor. The output format of a Kruskal Tensor is [ Lambda; A, B , C ] , where one element of Lambda is the value that is obtained when a particular Column of A, B, C is normalized. Let lambda ai be value obtained by normalizing ith column of A and so on. Therefore Lambda i = lambda ai * lambda bi * lambda ci. ( My guess )

Therefore Lambda is a vector of size R. A particular column of A is in a outer product with the corresponding column of B, C, (ai o bi o ci), this outer product is multiplied by Lambda i to give a rank 1 tensor, this format of writing a tensor is known as kruskal tensor. For more details refer to :