Given some sparse unitary square matrix $A$ ($dim=2^n$ if it matters), is there an algorithm to decompose $A$ into a Kronecker/tensor product of smaller unitary matrices? In other words: decompose unitary $A$ into $$A=U_1 \otimes U_2 \otimes ... \otimes U_k$$ where each $U_i$ is individually unitary and $\otimes$ denotes the Kronecker product.
I know that in general, the inverse of a Kronecker product is not unique and may not even exist, but if it does, all I would care about is a single tensor decomposition, not an exhaustive list. It wouldn't matter to me what the individual phases are for example.
Edit: I assumed the matrix was a Kronecker product, but in the case that it isn't, is there a way to check?
Edit 2: I found a resource here describing a general outline on how to do the inverse Kronecker product and how to check if it is a Kronecker product in the first place. It looks like the problem can be solved in polynomial time. If however, I demand unitary matrices, is there a similar scheme?