SPARSE TENSORS DECOMPOSITION SOFTWARE Papa S Diaw Masters

  • Slides: 35
Download presentation
SPARSE TENSORS DECOMPOSITION SOFTWARE Papa S. Diaw, Master’s Candidate Dr. Michael W. Berry, Major

SPARSE TENSORS DECOMPOSITION SOFTWARE Papa S. Diaw, Master’s Candidate Dr. Michael W. Berry, Major Professor 12/3/2020 1

Introduction • Large data sets • Nonnegative Matrix Factorization (NMF) § Insights on the

Introduction • Large data sets • Nonnegative Matrix Factorization (NMF) § Insights on the hidden relationships § Arrange multi-way data into a matrix • • 12/3/2020 Computation memory and higher CPU Linear relationships in the matrix representation Failure to capture important structure information Slower or less accurate calculations 2

Introduction (cont'd) • Nonnegative Tensor Factorizations (NTF) § Natural way for high dimensionality §

Introduction (cont'd) • Nonnegative Tensor Factorizations (NTF) § Natural way for high dimensionality § Original multi-way structure of the data § Image processing, text mining 12/3/2020 3

Tensor Toolbox For MATLAB • Sandia National Laboratories • Licenses • Proprietary Software 12/3/2020

Tensor Toolbox For MATLAB • Sandia National Laboratories • Licenses • Proprietary Software 12/3/2020 4

Motivation of the PILOT • Python Software for NTF • Alternative to Tensor Toolbox

Motivation of the PILOT • Python Software for NTF • Alternative to Tensor Toolbox for MATLAB • Incorporation into Future. Lens • Exposure to NTF • Interest in the open source community 12/3/2020 5

Tensors • • • Multi-way array Order/Mode/Ways High-order Fiber Slice Unfolding § Matricization or

Tensors • • • Multi-way array Order/Mode/Ways High-order Fiber Slice Unfolding § Matricization or flattening § Reordering the elements of an N-th order tensor into a matrix. § Not unique 12/3/2020 6

Tensors (cont’d) • Kronecker Product • Khatri-Rao product § A⊙B=[a 1⊗b 1 a 2⊗b

Tensors (cont’d) • Kronecker Product • Khatri-Rao product § A⊙B=[a 1⊗b 1 a 2⊗b 2… a. J⊗b. J] 12/3/2020 7

Tensor Factorization • Hitchcock in 1927 and later developed by Cattell in 1944 and

Tensor Factorization • Hitchcock in 1927 and later developed by Cattell in 1944 and Tucker in 1966 • Rewrite a given tensor as a finite sum of lowerrank tensors. • Tucker and PARAFAC • Rank Approximation is a problem 12/3/2020 8

PARAFAC • Parallel Factor Analysis • Canonical Decomposition (CANDE-COMPE) • Harsman, Carroll and Chang,

PARAFAC • Parallel Factor Analysis • Canonical Decomposition (CANDE-COMPE) • Harsman, Carroll and Chang, 1970 12/3/2020 9

PARAFAC (cont’d) • Given a three-way tensor X and an approximation rank R, we

PARAFAC (cont’d) • Given a three-way tensor X and an approximation rank R, we define the factor matrices as the combination of the vectors from the rank-one components. 12/3/2020 10

PARAFAC (cont’d) 12/3/2020 11

PARAFAC (cont’d) 12/3/2020 11

PARAFAC (cont’d) • Alternating Least Square (ALS) • We cycle “over all the factor

PARAFAC (cont’d) • Alternating Least Square (ALS) • We cycle “over all the factor matrices and performs a least-square update for one factor matrix while holding all the others constant. ”[7] • NTF can be considered an extension of the PARAFAC model with the constraint of nonnegativity 12/3/2020 12

Python • Object-oriented, Interpreted • Runs on all systems • Flat learning curve •

Python • Object-oriented, Interpreted • Runs on all systems • Flat learning curve • Supports object methods (everything is an object in Python) 12/3/2020 13

Python (cont’d) • Recent interest in the scientific community • Several scientific computing packages

Python (cont’d) • Recent interest in the scientific community • Several scientific computing packages § Numpy § Scipy • Python is extensible 12/3/2020 14

Data Structures • Dictionary § Store the tensor data § Mutable type of container

Data Structures • Dictionary § Store the tensor data § Mutable type of container that can store any number of Python objects § Pairs of keys and their corresponding values • Suitable for sparseness of our tensors • VAST 2007 contest data 1, 385, 205, 184 elements, with 1, 184, 139 nz • Stores the nonzero elements and keeps track of the zeros by using the default value of the dictionary 12/3/2020 15

Data Structures (cont’d) • Numpy Arrays § Fundamental package for scientific computing in Python

Data Structures (cont’d) • Numpy Arrays § Fundamental package for scientific computing in Python § Khatri-Rao products or tensors multiplications § Speed 12/3/2020 16

Modules 12/3/2020 17

Modules 12/3/2020 17

Modules (cont’d) • SPTENSOR § Most important module § Class (subscripts of nz, values)

Modules (cont’d) • SPTENSOR § Most important module § Class (subscripts of nz, values) • Flexibility (Numpy Arrays, Numpy Matrix, Python Lists) § Dictionary § Keeps a few instances variables • Size • Number of dimensions • Frobenius norm (Euclidean Norm) 12/3/2020 18

Modules (cont’d) • PARAFAC § coordinates the NTF § Implementation of ALS § Convergence

Modules (cont’d) • PARAFAC § coordinates the NTF § Implementation of ALS § Convergence or the maximum number of iterations § Factor matrices are turned into a Kruskal Tensor 12/3/2020 19

Modules (cont’d) 12/3/2020 20

Modules (cont’d) 12/3/2020 20

Modules (cont’d) 12/3/2020 21

Modules (cont’d) 12/3/2020 21

Modules (cont’d) • INNERPROD § Inner product between SPTENSOR and KTENSOR § PARAFAC to

Modules (cont’d) • INNERPROD § Inner product between SPTENSOR and KTENSOR § PARAFAC to compute the residual norm § Kronecker product for matrices • TTV § Product sparse tensor with a (column) vector § Returns a tensor • Workhorse of our software package • Most computation • It is called by the MTTKRP and INNERPROD modules 12/3/2020 22

Modules (cont’d) • MTTKRP § Khatri-Rao product off all factor matrices except the one

Modules (cont’d) • MTTKRP § Khatri-Rao product off all factor matrices except the one being updated § Matrix multiplication of the matricized tensor with KR product obtained above • Ktensor § Kruskal tensor § Object returned after the factorization is done and the factor matrices are normalized. § Class • Instance variables such as the Norm. • Norm of ktensor plays a big part in determining the residual norm in the PARAFAC module. 12/3/2020 23

Performance • Python Profiler § Run time performance § Tool for detecting bottlenecks §

Performance • Python Profiler § Run time performance § Tool for detecting bottlenecks § Code optimization • negligible improvement • efficiency loss in some modules 12/3/2020 24

Performance (cnt’d) • Lists and Recursions 12/3/2020 25

Performance (cnt’d) • Lists and Recursions 12/3/2020 25

Performance (cnt’d) • Numpy Arrays 12/3/2020 26

Performance (cnt’d) • Numpy Arrays 12/3/2020 26

Performance (cnt’d) • After removing Recursions 12/3/2020 27

Performance (cnt’d) • After removing Recursions 12/3/2020 27

Floating-Point Arithmetic • Binary floating-point § “Binary floating-point cannot exactly represent decimal fractions, so

Floating-Point Arithmetic • Binary floating-point § “Binary floating-point cannot exactly represent decimal fractions, so if binary floating-point is used it is not possible to guarantee that results will be the same as those using decimal arithmetic. ”[12] § Makes the iterations volatile 12/3/2020 28

Convergence Issues 12/3/2020 29

Convergence Issues 12/3/2020 29

Convergence Issues (ctn’d) 12/3/2020 30

Convergence Issues (ctn’d) 12/3/2020 30

Convergence Issues (cont’d) 12/3/2020 31

Convergence Issues (cont’d) 12/3/2020 31

Conclusion • There is still work to do after NTF § Preprocessing of data

Conclusion • There is still work to do after NTF § Preprocessing of data § Post Processing of results such as Future. Lens • Expertise • Extract and Identify hidden components • Tucker Implementation. • C extension to increase speed. • GUI 12/3/2020 32

Acknowledgments • Mr. Andrey Puretskiy § Discussions at all stages of the PILOT §

Acknowledgments • Mr. Andrey Puretskiy § Discussions at all stages of the PILOT § Consultancy in text mining § Testing • Tensor Toolbox For MATLAB (Bader and Kolda) § Understanding of tensor Decomposition § PARAFAC 12/3/2020 33

References 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) http:

References 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) http: //csmr. ca. sandia. gov/~tgkolda/Tensor. Toolbox/ Tamara G. Kolda, Brett W. Bader , “Tensor Decompostions and Applications”, SIAM Review , June 10, 2008. Andrzej Cichocki, Rafal Zdunek, Anh Huy Phan, Shun-ichi Amari, “Nonnegative Matrix and Tensor Factorizations”, John Wiley & Sons, Ltd, 1009. http: //docs. python. org/library/profile. html http: //www. mathworks. com/access/helpdesk/help/techdoc http: //www. scipy. org/Num. Py_for_Matlab_Users Brett W. Bader, Andrey A. Puretskiy, Michael W. Berry, “Scenario Discovery Using Nonnegative Tensor Factorization”, J. Ruiz-Schulcloper and W. G. Kropatsch (Eds. ): CIARP 2008, LNCS 5197, pp. 791 -805, 2008 http: //docs. scipy. org/doc/numpy/user/whatisnumpy. html Tamara G. Kolda, “Multilinear operators for higher-order decompositions”, SANDIA REPORT, April 2006 http: //speleotrove. com/decimal/decifaq 1. html#inexact 12/3/2020 34

QUESTIONS? 12/3/2020 35

QUESTIONS? 12/3/2020 35