I want to ask for a general linear algebra formula that I found in the book Nonnegative Matrix and Tensor Factorizations in page 370, is that we can replace $\textbf{U}^{\otimes ^{-n}} \textbf{G}_{(n)}^T$ by $\overline{\textbf{X}}^T_{(n)} \textbf{U}^{(n)^{\dagger^T}}$

Specifying the rule with $N = 3$ and $n = 1$,

$(\textbf{U}^{(2)} \otimes \textbf{U}^{(3)}) \textbf{G}_{(1)}^T = \overline{\textbf{X}}^T_{(1)} \textbf{U}^{(1)^{\dagger^T}}$

I used this formula in an algorithm that wasn't converging except once every 10 times and then after doing this replacement it converged every single time.

Just for clarification this is for tucker decomposition,

$\cal{X} = \mathcal{G} \times_1 \textbf{U}^{(1)} \times_2 \textbf{U}^{(2)} \times_3 \textbf{U}^{(3)}$ for $N=3$ as $N$ is the order of the tensor $\mathcal{X}$, while $\mathcal{G}$ is the core tensor, $U^{(n)}$ are tensor factors.

$\textbf{U}^{(n)^T}$ is the transpose of nth factor matrix

$\times_n$ is the n-product

$\otimes$ is the kronecker product

$\dagger$ is the pseudo inverse

$\overline{\textbf{X}}_{(n)}$ over bar shows that this is the result of estimation of the unfolding n of the tensor $\mathcal{X}$

$\textbf{U}^{\otimes -n} = \textbf{U}^{(N)} \otimes ... \otimes \textbf{U}^{(n+1)} \otimes \textbf{U}^{(n-1)} \otimes ... \times \textbf{U}^{(1)}$

$\textbf{G}_{(n)}$ is the nth unfolding of the core tensor

Here is my question,

First I thought that both formulas would give the same result with difference in calculations cost. I need help how to confirm that both calculations are different or similar.


I just found my mistake while writing the question,

I replaced the numbers in the kronecker product $\textbf{U}^{(2)} \otimes \textbf{U}^{(3)} \neq \textbf{U}^{(3)} \otimes \textbf{U}^{(2)}$

and confirmed that the formulas are the same as follows,

The unfolding formula for Tucker $\textbf{X}_{(1)} = \textbf{U}^{(1)} \textbf{G}_{(1)} (\textbf{U}^{(3)} \otimes \textbf{U}^{(2)})^T$

then by using the formula in the book $\textbf{U}^{\otimes ^{-n}} \textbf{G}_{(n)}^T$ by $\overline{\textbf{X}}^T_{(n)} \textbf{U}^{(n)^{\dagger^T}}$

$\textbf{X}_{(1)} = \textbf{U}^{(1)} \textbf{U}^{(1)^{\dagger}} \overline{\textbf{X}}_{(1)}$ and because $\textbf{U}^{(n)}$ is orthogonal so it will come true.


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.