Tensor Computations (CS 598 EVS) Fall 2020
What  Where 

Instructor  Edgar Solomonik (solomon2@illinois.edu) 
TA  Samah Karim (swkarim2@illinois.edu) 
Time/place  M/W 9:30am10:45am, (virtual + recorded via zoom, email or see piazza for link to zoom and recordings) 
Office Hours  After class (10:4511:15 on zoom) or by appointment (via zoom or other videochat) 
Class URL  https://relate.cs.illinois.edu/course/cs598evsf20/ 
Web forum  View Piazza » 
Calendar  View Calendar » 
The course will cover theory, algorithms, and applications of tensor decompositions and tensor networks. The key prerequisite for this material is familiarity with numerical linear algebra topics and algorithmic analysis.
The planned syllabus for the course is below. The major learning objectives for the courser are to establish fluency/inuition of understanding for computations involving tensor contractions and decompositions, to provide a general understanding of theoretical foundations of associated nonlinear optimization problems, to develop a methodology for efficient implementaton of tensor algorithms, and to provide a view of the application landscape of tensor computations.

Tensor Algebra
 characterization of tensors (order, dimensions, symmetry, sparsity)
 tensor contractions (tensor products, Kronecker products, etc.)
 tensor notation (matricization, moden products, indexing)
 diagrammatic notation (graphs / Feynman diagrams to represent tensor contractions)

Theoretical Fundamentals of Tensor Decompositions
 Motivating application: bilinear algorithms
 tensor decomposition rank (CP, Tucker, tensor train)
 uniqueness, conditioning, and stability (canonical forms)
 hardness of CP decomposition
 generalized tensor decomposition
 tensor eigenvalues

Dense Tensor Decomposition Algorithms
 Motivating application: quantum chemistry
 CP decomposition algorithms (alternating least squares, GaussNewton)
 Tucker decomposition algorithms (highorder SVD, highorder orthogonal iteration)
 tensor train SVD

Sparse Tensor Decomposition Algorithms
 Motivating application: recommender systems
 sparse CP and Tucker decomposition
 tensor completion algorithms (alternating least squares, coordinate descent, stochastic gradient descent, GaussNewton)
 highperformance implementation of sparse tensor kernels (MTTKRP, TTMc, TTTP) and compressed sparse tensor formats

Tensor Network Methods
 Motivating application: quantum simulation
 tensor network states (1D/MPS and 2D/PEPS)
 leastsquares and eigenvalue problems with tensor network states
 alternating minimization techniques (DMRG, TTALS)
 time evolution techniques (Trotterization)

Student presentations and lectures on other topics based on student interest
Lectures will be supplemented with short inclass web assignments, which can also be completed asynchronously. Three short homework assignments are planned to test understanding, which can be completed individually or in small groups. Students have the choice of giving a presentation or preparing a report on a research project or review. Inclass assignments, homeworks, and the presentation/report will each be worth 1/3 of the grade.
MiniHomeworks
Homework 1: Preconditioning via LowRank Approximation »
Homework 2: Accelerating CPALS using Tucker »
Homework 3: Review of Tensor Computations »
Quizzes (inclass activities)
Quiz 2: Computing the Maximum Ritz Value »
Quiz 3: Low Rank Approximation: Randomized SVD vs Krylov Subspace Methods »
Quiz 5: Kronecker Product as a Tensor Operation »
Quiz 6: Converting a CP Decomposition to a Tucker Decomposition »
Quiz 8: Bilinear Algorithms for Convolution »
Quiz 9: Bilinear Algorithm for Multiplication of a Symmetric Matrix and a Vector »
Quiz 10: Tensor Contraction with Group Symmetry »
Quiz 11: Alternating Least Squares for CP Decomposition »
Quiz 12: Dimension Trees for CP ALS »
Quiz 13: GaussNewton Method for CP Decomposition »
Quiz 14: Sparse Tensor times Matrix using CSF Format »
Quiz 15: Nonnegative Tensor Factorization »
Quiz 16: Imaginary Time Evolution »
Quiz 17: Density Matrix Renormalization Group (DMRG) »
Quiz 18: Tensor Network Canonical Forms »
Quiz 19: Computing Eigenvalues of a Symmetric Tensor »
Student Presentation Activity: Symmetric CP Decomposition »
Course Outline
 Course Overview

Matrix Computations Background
 Lecture Notes
 Lecture 2 Recording (Aug 26, 66 minutes)
 Quiz 2: Computing the Maximum Ritz Value
 Lecture 3 Recording (Aug 31, part 1, 32 minutes)
 Lecture 3 Recording (Aug 31, part 2, 15 minutes)
 Quiz 3: Low Rank Approximation: Randomized SVD vs Krylov Subspace Methods
 Lecture 4 Recording (Sep 2, part 1, 43 minutes)
 Lecture 4 Recording (Sep 2, part 2, 15 minutes)
 Lecture 5 Recording (Sep 9, 58 minutes)
 Lecture 6 Recording (Sep 14, part 1, 12 minutes)
 Lecture 6 Recording (Sep 14, part 2, 15 minutes)
 Quiz 4: GaussNewton Method
 Lecture 7 Recording (Sep 16, starts at 9:39, 60 minutes)
 Basics of Tensor Computations

Bilinear Algorithms
 Lecture Notes
 Lecture 11 Recording (Sep 30, 77 minutes)
 Quiz 8: Bilinear Algorithms for Convolution
 Lecture 12 Recording (Oct 5, 73 minutes)
 Quiz 9: Bilinear Algorithm for Multiplication of a Symmetric Matrix and a Vector
 Lecture 13 Recording (Oct 7, 78 minutes)
 Quiz 10: Tensor Contraction with Group Symmetry
 Lecture 14 Recording (Oct 12, 79 minutes)

Tensor Decomposition
 Lecture Notes
 Lecture 15 Recording (Oct 14, 78 minutes)
 Quiz 11: Alternating Least Squares for CP Decomposition
 Lecture 16 Recording (Oct 19, 77 minutes)
 Quiz 12: Dimension Trees for CP ALS
 Lecture 17 Recording (Oct 26, 78 minutes)
 Quiz 13: GaussNewton Method for CP Decomposition
 Lecture 18 Recording (Oct 28, 75 minutes)
 Quiz 14: Sparse Tensor times Matrix using CSF Format
 Lecture 19 Recording (Nov 1, 73 minutes)
 Quiz 15: Nonnegative Tensor Factorization
 Tensor Networks
 Tensor Eigenvalues
Related Courses
CS 598 EVS: Provably Efficient Algorithms for Numerical and Combinatorial Problems, Spring '20
CS 450: Numerical Analysis, Fall '18
Related Texts
 Matrix Computations Gene Golub and Charles Van Loan, 4th Edition, The John's Hopkins University Press, 2013.
 Tensor Decompositions and Applications T.G. Kolda and B.W. Bader, SIAM Review, 2009.
 A Practical Introduction to Tensor Networks: Matrix Product States and Projected Entangled Pair States R. Orus, Annals of Physics, 2014.
Python Help
We will be using Python with the libraries numpy, scipy and matplotlib for inclass work and assignments.
 Python tutorial
 Facts and myths about Python names and values
 Learn Python the hard way
 Project Euler (Lots of practice problems)
Python Workshop Material
 Video: Located on Echo 360 along with the other class recordings
 Tutorial material
 Scipy lecture notes
 CSE workshop training material
Numpy Help
 Introduction to Python for Science
 The SciPy lectures
 The Numpy MedKit by Stéfan van der Walt
 The Numpy User Guide by Travis Oliphant
 Numpy/Scipy documentation
 More in this reddit thread
 Spyder (a Python IDE, like Matlab) is installed in the virtual machine. (Applications Menu > Development > Spyder)
 An introduction to Numpy and SciPy
Statement and Support Resources on Mental Health
Diminished mental health, including significant stress, mood changes, excessive worry, substance/alcohol abuse, or problems with eating and/or sleeping can interfere with optimal academic performance, social development, and emotional wellbeing. The University of Illinois offers a variety of confidential services including individual and group counseling, crisis intervention, psychiatric services, and specialized screenings at no additional cost. If you or someone you know experiences any of the above mental health concerns, it is strongly encouraged to contact or visit any of the University’s resources provided below. Getting help is a smart and courageous thing to do  for yourself and for those who care about you.
Counseling Center: 2173333704, 610 East John Street Champaign, IL 61820
McKinley Health Center:2173332700, 1109 South Lincoln Avenue, Urbana, Illinois 61801