Why a Sequential Tensor Representation?
A tensor with \(d\) modes and mode sizes \(I_1,\ldots,I_d\) has \(\prod_{k=1}^d I_k\) entries. That count grows rapidly with the number of modes. A tensor-train representation replaces a single large array with a sequence of smaller three-way arrays linked by indices called bond indices. The representation is useful when the bond dimensions stay small: it can encode a large tensor with far fewer stored numbers than its dense form.
The central question is how these bond dimensions relate to the tensor itself. They are not arbitrary labels: for an exact representation with the smallest possible bonds, each bond dimension is the rank of a particular matrix unfolding. The sequential construction below explains both how to obtain the representation and why that rank relationship holds.
Tensor-Train Definition and Sequential Construction
A sequential construction starts with \(\mathcal{X}\) itself. At step \(k\), arrange the current residual array as a matrix whose rows index the current bond and \(i_k\), and whose columns index \(i_{k+1},\ldots,i_d\). Factor that matrix exactly as \(U_kV_k\), with the inner dimension equal to its matrix rank. Reshape \(U_k\) into the next core; treat \(V_k\) as the residual for the following step. At the final step, reshape the remaining matrix into the last core. No entries are discarded in this construction.
For relating bonds to ranks, define the prefix unfolding \(\mathcal{X}_{[k]}\) by putting \((i_1,\ldots,i_k)\) in its rows and \((i_{k+1},\ldots,i_d)\) in its columns. Use lexicographic order within each group. Thus its dimensions are \((\prod_{j=1}^k I_j)\times(\prod_{j=k+1}^d I_j)\). Changing a consistent ordering only permutes rows or columns and does not change matrix rank.
Worked Example: Sequential Factorization of a Three-Way Tensor
Let \(\mathcal{X}\) be \(2\times2\times2\), with nonzero entries \(\mathcal{X}_{111}=1\), \(\mathcal{X}_{112}=2\), \(\mathcal{X}_{221}=1\), and \(\mathcal{X}_{222}=2\); all other entries are zero. For the first unfolding, order the columns \((j,k)\) as \((1,1),(1,2),(2,1),(2,2)\). Its rows are
The two rows are nonzero and linearly independent, so \(\operatorname{rank}(\mathcal{X}_{[1]})=2\). For the second unfolding, order the rows \((i,j)\) as \((1,1),(1,2),(2,1),(2,2)\). Its columns are \(k=1,2\), giving
The first matrix can be factored as \(U_1V_1\), where \(U_1=I_2\) and \(V_1=\begin{bmatrix}1&2&0&0\\0&0&1&2\end{bmatrix}\). Reshape \(U_1\) as the first core, with entries \(G^{(1)}_{1,i,a}=\mathbf{1}\{i=a\}\). Reshape \(V_1\) as a matrix with rows \(a\) and columns \((j,k)\), then factor it at the next step. It has the form \(V_1\), viewed as the \(2\times2\times2\) residual, with entries \(V_{a,j,k}=\mathbf{1}\{a=j\}(1,2)_k\). Thus take \(G^{(2)}_{a,j,1}=\mathbf{1}\{a=j\}\) and \(G^{(3)}_{1,k,1}=(1,2)_k\). Contracting these cores gives \(\mathcal{X}_{ijk}=\mathbf{1}\{i=j\}(1,2)_k\), exactly the four specified entries. The bonds are \(r_1=2,r_2=1\). This example also illustrates why the entries in an unfolding must be checked against the original tensor: each row must include every entry sharing its row index.
Unfolding Ranks Are the Minimal Bond Dimensions
Proof. In any tensor train, group the first \(k\) cores and their contracted bond indices into a matrix \(L_k\), with rows indexed by \((i_1,\ldots,i_k)\) and columns by \(a_k\). Group the remaining cores into a matrix \(R_k\), with rows indexed by \(a_k\) and columns by \((i_{k+1},\ldots,i_d)\). The entry formula for the tensor gives
The product has inner dimension \(r_k\), so its rank cannot exceed \(r_k\). This proves the lower bound for every representation.
For attainment, perform the sequential construction using exact rank factorizations. At step \(k\), let \(M_k\) be the matrix made from the current residual, with rows indexed by \((a_{k-1},i_k)\) and columns by the remaining modes. Maintain a matrix \(L_{k-1}\) with \(r_{k-1}\) linearly independent columns such that the prefix unfolding through mode \(k-1\) equals \(L_{k-1}\) times the residual. Initially \(L_0\) is the scalar \(1\), so this property holds before the first step.
When the residual is unfolded to form \(M_k\), the prefix unfolding through mode \(k\) is \(Q_kM_k\), where \(Q_k\) maps each pair \((a_{k-1},i_k)\) to the corresponding prefix rows using \(L_{k-1}\). Up to a permutation from the chosen index order, this map applies \(L_{k-1}\) separately for each \(i_k\). Since \(L_{k-1}\) has linearly independent columns, \(Q_k\) does too. Left multiplication by a matrix with linearly independent columns preserves the rank of \(M_k\): it is an injective map on its column space. Consequently,
Factor \(M_k=U_kV_k\) with inner dimension \(\operatorname{rank}(M_k)\), using a rank factorization in which \(U_k\) has linearly independent columns. Reshape \(U_k\) as the next core. Multiplying \(L_{k-1}\) through this reshaped core gives the new prefix factor \(L_k\); it has linearly independent columns because both the previous map and the new factor are injective. This establishes the maintained property for the next step. Repeating through mode \(d-1\), then placing the residual in the final core, gives an exact representation with \(r_k=\operatorname{rank}(\mathcal{X}_{[k]})\) at every cut. Together with the lower bound, this proves the claim. \(\square\)
Worked Example: A Rank-One Tensor and Its Storage
Take a \(2\times3\times2\) tensor defined by \(\mathcal{X}_{ijk}=a_i b_j c_k\), where \(a=(1,2)\), \(b=(1,0,-1)\), and \(c=(2,1)\). Its two frontal slices (fixed \(k\)) are
The first unfolding is \(a(b\otimes c)^\mathsf{T}\), so it has rank one: both factors are nonzero. The second unfolding is \((a\otimes b)c^\mathsf{T}\), also rank one. Hence the minimal bonds are \(r_1=r_2=1\). The cores are simply the three vectors \(a,b,c\), stored with singleton bond dimensions. Their total storage is \(2+3+2=7\) numbers, compared with \(2\cdot3\cdot2=12\) entries in the dense tensor. The formula for the cores directly reproduces each displayed slice.
Storage Cost and When the Representation Helps
A core \(G^{(k)}\) contains \(r_{k-1}I_kr_k\) entries. Counting all core entries gives the nominal storage requirement
This count is a direct consequence of the core dimensions; it does not require the entries to be independent parameters. The dense tensor has \(N_{\mathrm{dense}}=\prod_{k=1}^d I_k\) entries. A tensor train saves storage when the sum of core sizes is smaller than that product. Small unfolding ranks can make this happen, but a tensor-train representation is not automatically compressed.
Worked Example: Comparing Core Storage With Dense Storage
Suppose a six-way tensor has mode size \(10\) in each mode and exact bond dimensions \(r_1=\cdots=r_5=3\). The first and last cores each contain \(1\cdot10\cdot3=30\) entries. Each of the four interior cores contains \(3\cdot10\cdot3=90\) entries. Therefore
Under the stated bond dimensions, the core representation stores 420 numbers instead of one million. This is a storage comparison, not an assertion that every tensor of these dimensions has those ranks: the ranks are properties of the particular tensor, determined by its unfolding ranks.
Rank Constraints and a Common Pitfall
For any tensor, the unfolding dimensions imply
for minimal exact bonds. These bounds are necessary, but they do not mean one can assign arbitrary bond dimensions independently and obtain a representation of a given tensor. The unfolding ranks must be calculated from that tensor. A large bond can always be redundant in a nonminimal representation; an exact minimal representation uses the ranks above.
- Mistake: assuming that every tensor-train representation has bond dimensions equal to unfolding ranks. Any representation has bonds at least as large as those ranks; equality characterizes the minimal possible bonds.
- Correction: factor each sequential residual at its actual matrix rank. The theorem shows that this produces the minimal bond at each cut.
- Mistake: assuming that replacing a dense tensor by cores necessarily reduces storage.
- Correction: count \(\sum_k r_{k-1}I_kr_k\) and compare it with \(\prod_k I_k\). For small tensors or large bonds, the core count can exceed the dense count.
The rank structure matters because it identifies which separations of the modes admit compact representations. Sequential factorization exposes these separations one cut at a time, and the unfolding ranks quantify the dimensions needed to carry information across each cut. For a fixed tensor, those ranks provide the exact minimal bond sizes; the storage formula then tells whether that structure is computationally useful.
Check Your Understanding
Use the definitions and results above to answer the following.
- For a tensor of dimensions \(I_1\times\cdots\times I_d\), which indices form the rows and columns of \(\mathcal{X}_{[k]}\)?
- Why can no exact tensor train have a bond \(r_k\) smaller than \(\operatorname{rank}(\mathcal{X}_{[k]})\)?
- A four-way tensor has minimal bond dimensions \(r_1=2,r_2=3,r_3=2\). Write its core-storage count in terms of \(I_1,I_2,I_3,I_4\).
- Can a tensor-train representation with larger bonds still represent the tensor exactly? Explain how it relates to the minimal representation.
- For the \(2\times3\times2\) rank-one example, verify one entry of each displayed slice directly from \(a_i b_j c_k\).