Page cover

atom-simpleMPSTime

A quantum inspired method for estimating the time-series joint distribution using matrix-product states (MPS).

Original Paper ๐Ÿ“—

J.B. Moore, H.P. Stackhouse, B.D. Fulcher, S. Mahmoodian. "Using matrix-product states for time-series machine learning", Physical Review Research 7: 043010 (2025)arrow-up-right.

MPSTime, a framework for time-series machine learning with MPSs. (a) Encoding: Each real-valued time series amplitude ๐‘ฅ๐‘ก is encoded in a ๐‘‘-dimensional vector ๐œ™๐‘ก by projecting its value onto a truncated orthonormal basis with ๐‘‘ basis functions. An entire time series (of length ๐‘‡ samples) is then encoded as a set of ๐‘‡ ๐œ™๐‘ก vectors, which we represent as a product state embedded in a ๐‘‘๐‘‡-dimensional Hilbert space. (b) MPS training: Using observed time series from a dataset, a generally entangled MPSโ€”depicted here using Penrose graphical notationโ€”with maximum bond dimension ๐œ’max is trained with a DMRG-inspired sweeping optimization algorithm to approximate the joint distribution of the training data. Two copies of the trained MPS (one conjugate-transposed, denoted by the dagger โ€ ) with open physical indices encodes the learned distribution, allowing us to sample from and do inference with complex high-dimensional time-series distributions. In this work, we introduce MPS-based learning algorithms, which we collectively refer to as MPSTime, for two important time-series ML problems: (c) imputation (inferring unmeasured values of a time series) and (d) classification (inferring a time-series class). (c) Generative time-series modeling: We use conditional sampling to perform imputation of missing datapoints. Known points of a single time-series instance (black lines) project the MPS into a subspace, which is then used to find the unknown datapoints (red line). The same method can be used to tackle some forecasting problems if the missing points are future values. (d) MPS for classification: Multiple labeled classes of time series are used to train MPSs. Taking the overlap of unlabeled time-series data (encoded as a product state) with each MPS determines its class.

Public code repository (Julia)

Julia code is available in this GitHub repositoryarrow-up-right, which includes code for implementing our method and for reproducing all results in our paper:

Last updated

Was this helpful?