Tensors (also known as multidimensional arrays or N-way arrays) are
used in a variety of applications ranging from chemometrics to
network analysis. The Tensor Toolbox provides the following classes for
manipulating dense, sparse, and structured tensors using MATLAB's
object-oriented features:
- tensor - A (dense) multidimensional array
(extends MATLAB's current capabilities).
- sptensor - A sparse multidimensional array.
- tenmat - Store a tensor as a matrix, with extra information so
that it can be converted back into a tensor.
- sptenmat - Store an sptensor as a sparse matrix in
coordinate format, with extra information so
that it can be converted back into an sptensor.
- ttensor - Store a tensor decomposed as a Tucker operator
(see Glossary).
- ktensor - Store a tensor decomposed as a Kruskal operator
(see Glossary).
The Tensor Toolbox for MATLAB is free for research and evaluation, but we ask that you agree to the license terms below and please cite the appropriate references (listed below) so that we can continue to show the relevance of this work.
What's New in Version 2.5?
Version 2.5 adds
- cp_apr - Poisson Tensor Factorization for canonical (CP) factorizations of sparse count data
- sshopm - Shifted Symmetric Higher-Order Power Method for computing tensor eigenpairs
- create_problem - Tools for generating random solutions and data for tensor factorization
- create_guess - Tools for creating starting points for initializing tensor factorizations
- symmetrize/issymmetric - Functions to symmetrize a tensor and check symmetry
- ttsv - Multiplies a dense symmetric tensor by the vector in multiple modes
- teneye - Creates the (symmetric) "identity tensor" such that multiplying that tensor by any random vector of norm 1 in all modes but one returns the same vector
- import_data/export_data - Functions for importing and exporting text versions of tensors and matrices
- divide - Elementwise division of an sptensor by a ktensor
We have also fixed many bugs. To see a complete list of changes, view
the RELEASE_NOTES.txt file.
Download
To obtain a free license for our software for research and evaluation, visit the
Tensor Toolbox License, Registration, and Download page. Commercial licenses are available at low cost.
How to Cite
If you have used the Tensor Toolbox in your work in any way, please cite the software itself along with at least one publication or preprint. BibTeX for each item can be seen by clicking "[BibTeX]". Thanks very much for your support.
— Software reference —
Brett W. Bader, Tamara G. Kolda and others.
MATLAB Tensor Toolbox Version 2.5,
Available online,
January
2012.
URL: http://www.sandia.gov/~tgkolda/TensorToolbox/.
[BibTeX]
|
@misc{TTB_Software,
author = {Brett W. Bader and Tamara G. Kolda and others},
title = {MATLAB Tensor Toolbox Version 2.5},
howpublished = {Available online},
month = {January},
year = {2012},
url = {http://www.sandia.gov/~tgkolda/TensorToolbox/}
}
|
— Default article to cite for dense computations with the Tensor Toolbox —
B. W. Bader and T. G. Kolda.
Algorithm 862: MATLAB tensor classes for fast algorithm prototyping,
ACM Transactions on Mathematical Software
32(4):635-653,
December
2006.
DOI: 10.1145/1186785.1186794.
[BibTeX]
|
@article{TTB_Dense,
author = {Brett W. Bader and Tamara G. Kolda},
title = {Algorithm 862: {MATLAB} tensor classes for fast algorithm prototyping},
journal = {ACM Transactions on Mathematical Software},
month = {December},
year = {2006},
volume = {32},
number = {4},
pages = {635--653},
doi = {10.1145/1186785.1186794}
}
|
— Default article to cite for sparse computation with the Tensor Toolbox —
B. W. Bader and T. G. Kolda.
Efficient MATLAB computations with sparse and factored tensors,
SIAM Journal on Scientific Computing
30(1):205-231,
December
2007.
DOI: 10.1137/060676489.
[BibTeX]
|
@article{TTB_Sparse,
author = {Brett W. Bader and Tamara G. Kolda},
title = {Efficient {MATLAB} computations with sparse and factored tensors},
journal = {SIAM Journal on Scientific Computing},
month = {December},
year = {2007},
volume = {30},
number = {1},
pages = {205--231},
doi = {10.1137/060676489}
}
|
— Article for Memory-Efficient Tucker (tucker_me and ttm_me) —
T. G. Kolda and J. Sun.
Scalable Tensor Decompositions for Multi-aspect Data Mining,
ICDM 2008: Proceedings of the 8th IEEE International Conference on Data Mining,
pp. 363-372,
December
2008.
DOI: 10.1109/ICDM.2008.89.
[BibTeX]
|
@inproceedings{TTB_MET,
author = {Tamara G. Kolda and Jimeng Sun},
title = {Scalable Tensor Decompositions for Multi-aspect Data Mining},
booktitle = {ICDM 2008: Proceedings of the 8th IEEE International Conference on Data Mining},
month = {December},
year = {2008},
pages = {363--372},
doi = {10.1109/ICDM.2008.89}
}
|
— Article on all-at-once optimization for CP factorization (cp_opt) —
E. Acar, D. M. Dunlavy and T. G. Kolda.
A Scalable Optimization Approach for Fitting Canonical Tensor Decompositions,
Journal of Chemometrics
25(2):67-86,
February
2011.
DOI: 10.1002/cem.1335.
[BibTeX]
|
@article{TTB_CPOPT,
author = {Evrim Acar and Daniel M. Dunlavy and Tamara G. Kolda},
title = {A Scalable Optimization Approach for Fitting Canonical Tensor Decompositions},
journal = {Journal of Chemometrics},
month = {February},
year = {2011},
volume = {25},
number = {2},
pages = {67--86},
doi = {10.1002/cem.1335}
}
|
— Article on CP factorization with missing data (cp_wopt) —
E. Acar, D. M. Dunlavy, T. G. Kolda and M. Mørup.
Scalable Tensor Factorizations for Incomplete Data,
Chemometrics and Intelligent Laboratory Systems
106(1):41-56,
March
2011.
DOI: 10.1016/j.chemolab.2010.08.004.
[BibTeX]
|
@article{TTB_CPWOPT,
author = {Evrim Acar and Daniel M. Dunlavy and Tamara G. Kolda and Morten M{\o}rup},
title = {Scalable Tensor Factorizations for Incomplete Data},
journal = {Chemometrics and Intelligent Laboratory Systems},
month = {March},
year = {2011},
volume = {106},
number = {1},
pages = {41--56},
doi = {10.1016/j.chemolab.2010.08.004}
}
|
— Article on Shifted Symmetric Higher-Order Power Method for Tensor Eigenvalues (sshopm) —
T. G. Kolda and J. R. Mayo.
Shifted Power Method for Computing Tensor Eigenpairs,
SIAM Journal on Matrix Analysis and Applications
32(4):1095-1124,
October
2011.
DOI: 10.1137/100801482.
[BibTeX]
|
@article{TTB_SSHOPM,
author = {Tamara G. Kolda and Jackson R. Mayo},
title = {Shifted Power Method for Computing Tensor Eigenpairs},
journal = {SIAM Journal on Matrix Analysis and Applications},
month = {October},
year = {2011},
volume = {32},
number = {4},
pages = {1095-1124},
doi = {10.1137/100801482}
}
|
— Preprint on Poisson Tensor Factorization (cp_apr) —
E. C. Chi and T. G. Kolda.
On Tensors, Sparsity, and Nonnegative Factorizations,
arXiv:1112.2414 [math.NA],
December
2011.
URL: http://arxiv.org/abs/1112.2414.
[BibTeX]
|
@misc{TTB_CPAPR,
author = {Eric C. Chi and Tamara G. Kolda},
title = {On Tensors, Sparsity, and Nonnegative Factorizations},
howpublished = {arXiv:1112.2414 [math.NA]},
month = {December},
year = {2011},
url = {http://arxiv.org/abs/1112.2414}
}
|
A tensor is a multidimensional or N-way array. A 1-way tensor
is a vector and a 2-way tensor is a matrix. A 3-way tensor is a cube of
data. And so on.
A sparse tensor is a tensor where only a small fraction of the
elements are nonzero. In this case, it is more efficient to store just
the nonzeros and their indices.
A tensor that is decomposed as a Tucker Operator comprises a
core tensor multiplied in each mode by a matrix. For a three-way array,
this means the tensor X can be written as:
xijk = Σr Σs Σt grst
air bjs ckt for all i,j,k
Thus, the tensor X may be stored in terms of its components, the core
tensor G and the factor matrices A,B,C.
A tensor that is decomposed as a Kruskal Operator comprises a
component matrix for each mode and an optional scaling vector. For a
three-way array, this means the tensor X can be written as:
xijk = Σr λr air bjr ckr for all i,j,k.
Thus, the tensor X may be stored in terms of its components, the
vector λ and the factor matrices A,B,C.
Contributors (in chronological order)
- Tamara G. Kolda (Sandia)
- Brett W. Bader (Digital Globe; formerly at Sandia)
- Jimeng Sun (IBM)
- Daniel M. Dunlavy (Sandia)
- Evrim Acar (U. Copenhagen; former postdoc at Sandia)
- Jackson Mayo (Sandia)
- Eric C. Chi (UCLA; former student intern at Sandia)
Mailing List
Join the
Tensor Toolbox Mailing List to get important information on new
releases and more.
Questions or Comments
Links to Previous Versions
|
Tensor objects in MATLAB — The tensor
toolbox allows for the manipulation of multiway arrays.
Contacts
Tamara Kolda
(tgkolda@sandia.gov)
(925)294-4769
Dependencies
Poblano Toolbox for
Matlab
Related Links
The N-way toolbox for MATLAB
|