  Given sparse multi-dimensional data (e.g., (user, movie, time; rating) for
movie recommendations), how can we discover latent concepts/relations and
predict missing values? Tucker factorization has been widely used to solve such
problems with multi-dimensional data, which are modeled as tensors. However,
most Tucker factorization algorithms regard and estimate missing entries as
zeros, which triggers a highly inaccurate decomposition. Moreover, few methods
focusing on an accuracy exhibit limited scalability since they require huge
memory and heavy computational costs while updating factor matrices. In this
paper, we propose P-Tucker, a scalable Tucker factorization method for sparse
tensors. P-Tucker performs alternating least squares with a row-wise update
rule in a fully parallel way, which significantly reduces memory requirements
for updating factor matrices. Furthermore, we offer two variants of P-Tucker: a
caching algorithm P-Tucker-Cache and an approximation algorithm
P-Tucker-Approx, both of which accelerate the update process. Experimental
results show that P-Tucker exhibits 1.7-14.1x speed-up and 1.4-4.8x less error
compared to the state-of-the-art. In addition, P-Tucker scales near linearly
with the number of observable entries in a tensor and number of threads. Thanks
to P-Tucker, we successfully discover hidden concepts and relations in a
large-scale real-world tensor, while existing methods cannot reveal latent
features due to their limited scalability or low accuracy.
