systemml-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthias Boehm (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (SYSTEMML-1761) Sparsity-exploiting weighted squared loss w/o weights
Date Wed, 09 Aug 2017 20:42:00 GMT

     [ https://issues.apache.org/jira/browse/SYSTEMML-1761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Matthias Boehm closed SYSTEMML-1761.
------------------------------------

> 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)

Mime
View raw message