# Can you help solve for this equation or give some hints for me?

$C \in \mathbb{R}^{m \times n}$, $X \in \mathbb{R}^{m \times n}$, $W \in \mathbb{R}^{m \times k}$, $H \in \mathbb{R}^{n \times k}$

$\circ$ is Hadamard product (element-wise product).

$$[C \circ (WH^T)]H - (C \circ X)H +{\lambda}W = 0 \quad (1)$$

Hi everyone,

In equation (1), how to get the $W$ expression, that is $W$ was expressed by other matrices. Or is there some ways to change the hadamard product to ordinary matrix product (if no such hadamard product, it is easy to solve as usual)? What is the trick to solve such kinds of equations?

$$W = ?$$

Thanks.

Kevin

It's of the form $L(W) + \lambda W = B$ where $L$ is a linear operator, so if $L + \lambda I$ is invertible the solution is $W = (L+\lambda I)^{-1} B$. I don't know if there is a very nice expression for $(L + \lambda I)^{-1}$.

• Thanks @Robert Israel. It is difficult to get $W$ using this expression. In fact, I asked the questions here: math.stackexchange.com/questions/1670377/… I just want to get the derivative of a function wrt $W$ and $H$. However, there is a solution like this: $\frac{\partial f}{\partial W_{i}}$, where $W_{i}$ is the ith row of $W$. Can you help proof $\frac{\partial f}{\partial W_{i}}$? Thanks. – BioChemoinformatics Feb 28 '16 at 22:14

I try to solve it by vectorization and kronecker product according to the fact.

$$vec(ABC) = (C^T \otimes A) vec(B)$$

$$vec(A \circ B )=diag(vec(A)) vec(B)$$

So,

$$I_m[C \circ (W \times H^T) ]H + \lambda I_m W I_k = I_m (C \circ X)H$$

$$(H^T \otimes I_m) vec[C \circ (WH^T)] + \lambda (I_k^T \otimes I_m)vec(W)=(H^T \otimes I_m)vec(C \circ X)$$

$$(H^T \otimes I_m) diag[vec(C)]vec[I_m WH^T] + \lambda (I_k^T \otimes I_m)vec(W)=(H^T \otimes I_m)vec(C \circ X)$$

$$(H^T \otimes I_m) diag[vec(C)](H \otimes I_m) vec(W) + \lambda (I_k^T \otimes I_m)vec(W)=(H^T \otimes I_m)vec(C \circ X)$$

So,

$$vec(W)=[(H^T \otimes I_m) diag[vec(C)](H \otimes I_m) + \lambda (I_k^T \otimes I_m)]^{-1}(H^T \otimes I_m)vec(C \circ X)$$

Hope, anyone help check the result if it is right. Thanks.

• This looks like the right approach. The only problem I see is that in the initial expansion, the term $(\lambda\,I_m\,W\,I_m)$ should be $(\lambda\,I_m\,W\,I_k)$. Switch that $I_m$ term to $I_k$ in all your subsequent manipulations. Everything else looks good. – hans Mar 6 '16 at 1:37
• @hans Thanks. I will check that. – BioChemoinformatics Mar 7 '16 at 14:12