  In this paper, we develop a method which we call OnlineGCP for computing the
Generalized Canonical Polyadic (GCP) tensor decomposition of streaming data.
GCP differs from traditional canonical polyadic (CP) tensor decompositions as
it allows for arbitrary objective functions which the CP model attempts to
minimize. This approach can provide better fits and more interpretable models
when the observed tensor data is strongly non-Gaussian. In the streaming case,
tensor data is gradually observed over time and the algorithm must
incrementally update a GCP factorization with limited access to prior data. In
this work, we extend the GCP formalism to the streaming context by deriving a
GCP optimization problem to be solved as new tensor data is observed, formulate
a tunable history term to balance reconstruction of recently observed data with
data observed in the past, develop a scalable solution strategy based on
segregated solves using stochastic gradient descent methods, describe a
software implementation that provides performance and portability to
contemporary CPU and GPU architectures and integrates with Matlab for enhanced
useability, and demonstrate the utility and performance of the approach and
software on several synthetic and real tensor data sets.
