How can we solve the following equation for B?
$$yl^T \odot D = [(AB \odot D)ll^T]\odot D $$
$y_{n*1}$, $l_{d*1}$ are vectors, $A_{n*k}$, $B_{k*d}$, $D_{n*d}$ are full rank non-square matrices.
How can we solve the following equation for B?
$$yl^T \odot D = [(AB \odot D)ll^T]\odot D $$
$y_{n*1}$, $l_{d*1}$ are vectors, $A_{n*k}$, $B_{k*d}$, $D_{n*d}$ are full rank non-square matrices.
Copyright © 2021 JogjaFile Inc.
Note that if $d > 1$, the equation does not have a unique solution because there are matrices $M$ for which $M(ll^T) = 0$. That said, we can rewrite the equation as follows.
If we vectorize both sides of the equation, we end up with the equivalent $$ \operatorname{vec}(yl^T \odot D) = \operatorname{vec}([(AB \odot D)ll^T]\odot D)\\ \operatorname{vec}(yl^T \odot D) = \operatorname{diag}(\operatorname{vec}(D)) \operatorname{vec}((AB \odot D)ll^T)\\ \operatorname{vec}(yl^T \odot D) = \operatorname{diag}(\operatorname{vec}(D)) (ll^T \otimes I) \operatorname{vec}(AB \odot D)\\ \operatorname{vec}(yl^T \odot D) = \operatorname{diag}(\operatorname{vec}(D)) (ll^T \otimes I) \operatorname{diag}(\operatorname{vec}(D)) \operatorname{vec}(AB)\\ \operatorname{vec}(yl^T \odot D) = \operatorname{diag}(\operatorname{vec}(D)) (ll^T \otimes I) \operatorname{diag}(\operatorname{vec}(D)) (I \otimes A)\operatorname{vec}(B). $$
If the entries of $D$ are all non-zero, we could "Hadamard divide" by the entries of $D$ (i.e. undo $\odot D$ on both sides) in order to simplify the equation to get $$ yl^T = (AB \odot D)ll^T \implies\\ \operatorname{vec}(yl^T) = (ll^T \otimes I) \operatorname{diag}(\operatorname{vec}(D)) (I \otimes A)\operatorname{vec}(B). $$ Because the map $v \mapsto vl^T$ is invertible as well, this can be further simplified to $$ y = (AB \odot D)l \implies\\ y = (l^T \otimes I) \operatorname{diag}(\operatorname{vec}(D)) (I \otimes A)\operatorname{vec}(B). $$
If we have a rank-decomposition of $D$, we could remove the Hadamard product by noting that $$ D = \sum_{j=1}^r u_j v_j^T \implies D \odot M = \sum_{j=1}^r \operatorname{diag}(u_j) M \operatorname{diag}(v_j). $$ With that, we have $$ y = (AB \odot D)l \implies y = \sum_{j=1}^r \operatorname{diag}(u_j) AB \operatorname{diag}(v_j) l. $$