[ https://issues.apache.org/jira/browse/SYSTEMML-1761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias Boehm resolved SYSTEMML-1761. -------------------------------------- Resolution: Fixed Assignee: Matthias Boehm Fix Version/s: SystemML 1.0 > Sparsity-exploiting weighted squared loss w/o weights > ----------------------------------------------------- > > Key: SYSTEMML-1761 > URL: https://issues.apache.org/jira/browse/SYSTEMML-1761 > Project: SystemML > Issue Type: Task > Reporter: Matthias Boehm > Assignee: Matthias Boehm > Fix For: SystemML 1.0 > > > There are existing rewrites and fused operators for weighted squared loss > (wsloss). However, for the wsloss type {{NONE}}, i.e., without weights > {{sum((X-(U%*%t(V)))^2)}}, the implementation is not sparsity-exploiting > leading to huge (unnecessary) computation overhead for the outer-product-like > multiply of factors. As it turns out, this expression can be rewritten into a > sparsity-exploiting form as follows: > {code} > sum ((X - U %*% t(V)) ^ 2) > -> sum(X^2) - sum(2 * (X * (U%*%t(V)))) + sum((U%*%t(V))^2) > -> sum(X^2) - sum(2 * (X * (U%*%t(V)))) + sum ((t(U) %*% U) * (t(V) %*% V)) > {code} > This task aims to change the block-level wsloss NONE implementation to > exploit this logical rewrite by computing {{sum(X^2) - sum(2 * (X * > (U%*%t(V))))}} in a sparsity-exploiting pass over non-zeros in X and a > subsequent correction for {{+ sum ((t(U) %*% U) * (t(V) %*% V))}} via two > tsmm operations. -- This message was sent by Atlassian JIRA (v6.4.14#64029)