# Tensorregression

Als Tensorregression bezeichnet man in der Statistik ein Regressionsmodell basierend auf Tensoren. Bei einer solchen Regression können entweder der Regressor $X$, der Regressand $Y$ oder beide Tensoren sein. Tensorregressionen werden vor allem für hochdimensionale oder große Daten verwendet, da Tensoren eine natürliche Darstellung solcher Daten sind. Ein Anwendungsbeispiel für die Tensorregression liegt im Neuroimaging, wo man zum Beispiel die Hirnaktivität einer Maus misst, welche durch ein Labyrinth rennt. Dabei werden Hunderte von Neuronen über einen längeren Zeitraum gemessen.
Bei hochdimensionalen Daten besitzt der Koeffiziententensor meistens einen viel höheren Rang als der Regressor und der Regressand, weshalb man – ähnlich wie bei der Regression mit reduziertem Rang – häufig die Annahme trifft, dass der Koeffiziententensor einen tiefen Rang basierend auf einer Tensorzerlegung besitzt. Bekannte solche Zerlegungen sind die Candecomp/Parafac-Zerlegung (CP), die Tucker-Zerlegung, die Tensor-Singulärwertzerlegung (t-SVD) und die Tensor-Train-Zerlegung (TT).
Im Artikel wird eine Tensor-Verallgemeinerung der verallgemeinerten linearen Modelle (GLM) behandelt, welche 2013 von Hua Zhou et al. mit der Candecomp/Parafec-Zerlegung eingeführt wurde und manchmal als CP-GLTR (englisch generalized linear tensor regression) abgekürzt wird.

## Tensorregression

Im Artikel wird die Tensorregression auf den reellen Zahlen mit dem reellen Tensorprodukt $\otimes :=\otimes _{\mathbb {R} }$ definiert, das Konzept lässt sich aber auch auf allgemeinen Vektorräumen respektive Moduln definieren.
In der allgemeinen Form sind Tensordaten $\{{\mathcal {X}}_{n},{\mathcal {Y}}_{n}\}_{1\leq n\leq N}$ gegeben, dann ist das Tensorregressionsmodell von der Form
    ${\mathcal {Y}}_{n}=f({\mathcal {X}}_{n},{\mathcal {B}})+{\mathcal {E}}_{n},$
wobei
    ${\mathcal {Y}}_{n}\in \bigotimes _{i=1}^{M}\mathbb {R} ^{q_{i}},\quad {\mathcal {X}}_{n}\in \bigotimes _{i=1}^{L}\mathbb {R} ^{p_{i}},\quad {\mathcal {B}},\quad {\mathcal {E}}_{n}\in \bigotimes _{i=1}^{M}\mathbb {R} ^{q_{i}}$
Tensoren und $q_{1},\dots ,q_{M},p_{1},\dots ,p_{L}$ natürliche Zahlen sind. Typischerweise besitzt der Koeffiziententensor ${\mathcal {B}}$ einen viel höheren Rang als die anderen Tensoren.
Durch Konkatenation ${\mathcal {Y}}\in \mathbb {R} ^{N}\otimes \mathbb {R} ^{q_{1}}\otimes \cdots \otimes \mathbb {R} ^{q_{M}},{\mathcal {X}}\in \mathbb {R} ^{N}\otimes \mathbb {R} ^{p_{1}}\otimes \cdots \otimes \mathbb {R} ^{p_{L}},{\mathcal {E}}\in \mathbb {R} ^{N}\otimes \mathbb {R} ^{q_{1}}\otimes \cdots \otimes \mathbb {R} ^{q_{M}}$, lässt sich das auch kompakter als
    ${\mathcal {Y}}=f({\mathcal {X}},{\mathcal {B}})+{\mathcal {E}}$
hinschreiben.

### Tensorapproximation

Für einen beliebigen Tensor $T$ sucht man einen Tensor ${\widehat {T}}$ mit einer niedrigen Rang-Zerlegung, welche $T$ am besten approximiert, welches zu einem Optimierungsproblem der Form
    ${\mathcal {L}}(T)=\min \limits _{\widehat {T}}\|T-{\widehat {T}}\|_{F}$
führt, wobei wir hier die Frobenius-Norm gewählt haben. Zwei populäre Wahlen für eine solche Zerlegung sind die Candecomp/Parafec-Zerlegung (kurz CP-Zerlegung) und die Tucker-Zerlegung. Die CP-Zerlegung ist auch unter dem Namen canonical polyadic decomposition bekannt. Die Tucker-Zerlegung ist eine Form einer höher-dimensionalen Hauptkomponentenanalyse und wird auch HOSVD für englisch higher-order singular value decomposition genannt.

### Tensorzerlegungen
#### CP-Zerlegung

Sei $T\in \mathbb {R} ^{q_{1}}\otimes \mathbb {R} ^{q_{2}}\otimes \cdots \otimes \mathbb {R} ^{q_{D}}$ ein Tensor. Eine CP-Zerlegung für ein $R\in \mathbb {N}$ ist eine Rang-$R$-Zerlegung von $T$ in Elementartensoren
    $T=\sum \limits _{k=1}^{R}\lambda _{k}\mathbf {v} _{k}^{(1)}\otimes \mathbf {v} _{k}^{(2)}\otimes \cdots \otimes \mathbf {v} _{k}^{(D)},$
wobei die $\mathbf {v} _{k}^{(1)},\dots ,\mathbf {v} _{k}^{(D)}$ Vektoren der Form $\mathbf {v} _{k}^{(i)}=(v_{k,1}^{(i)},v_{k,2}^{(i)},\dots ,v_{k,q_{i}}^{(i)})^{T}\in \mathbb {R} ^{q_{i}}$ sind und ${\boldsymbol {\lambda }}=(\lambda _{1},\dots ,\lambda _{R})^{T}\in \mathbb {R} ^{R}$ ein Gewichtsvektor zur Normierung ist. Die minimale Zahl
    $\operatorname {rank} (T)=\min \left\{R\in \mathbb {N} \colon T=\sum \limits _{k=1}^{R}\mathbf {v} _{k}^{(1)}\otimes \mathbf {v} _{k}^{(2)}\otimes \cdots \otimes \mathbf {v} _{k}^{(D)}\right\}$
nennt man den Rang von $T$ und er ist invariant unter Basiswechsel. Die Berechnung des Rangs ist jedoch NP-schwer.

#### Tucker-Zerlegung

Die Tucker-Zerlegung (oder auch HOSVD) zerlegt einen Tensor $T\in \mathbb {R} ^{q_{1}}\otimes \mathbb {R} ^{q_{2}}\otimes \cdots \otimes \mathbb {R} ^{q_{D}}$ in einen Kern-Tensor $G\in \mathbb {R} ^{R_{1}}\otimes \mathbb {R} ^{R_{2}}\otimes \cdots \otimes \mathbb {R} ^{R_{D}}$ und $D$ Faktor-Matrizen $A_{1}\in \mathbb {R} ^{q_{1}\times R_{1}},A_{2}\in \mathbb {R} ^{q_{2}\times R_{2}},\dots ,A_{D}\in \mathbb {R} ^{q_{D}\times R_{D}}$
    $T=G\times A_{1}\times \cdots \times A_{D}$
elementweise geschrieben
    $T=\sum \limits _{j_{1}=1}^{R_{1}}\sum \limits _{j_{2}=1}^{R_{2}}\cdots \sum \limits _{j_{D}=1}^{R_{D}}g_{i_{1},i_{2},\dots ,i_{D}}\mathbf {a} _{j_{1}}^{(1)}\otimes \mathbf {a} _{j_{2}}^{(2)}\otimes \cdots \otimes \mathbf {a} _{j_{D}}^{(D)}$
wobei $\mathbf {a} _{j_{k}}^{(k)}\in \mathbb {R} ^{q_{k}}$ für $k=1,\dots ,d$ und $j_{k}=1,\dots ,R_{k}$ Vektoren sind und $g_{i_{1},i_{2},\dots ,i_{D}}\in \mathbb {R}$. Die Parameter $(R_{1},\dots ,R_{D})$ nennt man Tucker-Ränge.

### Regressionsmodelle
#### Verallgemeinerte lineare Tensorregression mit CP-Zerlegung

Die von Zhou et al. betrachtete Verallgemeinerung der verallgemeinerten linearen Modelle ist die Kopplungsfunktion
    $g(\mu )=\alpha +{\boldsymbol {\gamma }}^{T}\mathbf {z} +\langle {\mathcal {B}},{\mathcal {X}}\rangle ,$
wobei der Regressor ${\mathcal {X}}\in \mathbb {R} ^{N}\otimes \mathbb {R} ^{p_{1}}\otimes \mathbb {R} ^{p_{2}}\otimes \cdots \otimes \mathbb {R} ^{p_{L}}$ und ${\mathcal {B}}$ Tensoren sind, $\mathbf {z}$ ein Vektor-Regressor, der Regressand $y$ ein Skalar und $\alpha \in \mathbb {R}$ der y-Achsenabschnitt ist. Das innere Produkt ist über die Vektorisierung $\langle {\mathcal {B}},{\mathcal {X}}\rangle =\langle \operatorname {vec} ({\mathcal {B}}),\operatorname {vec} ({\mathcal {X}})\rangle$ definiert. Sie nahmen nun an, dass für ${\mathcal {B}}$ eine CP-Zerlegung mit Rang $R$ existiert
    $g(\mu )=\alpha +{\boldsymbol {\gamma }}^{T}\mathbf {z} +\left\langle \sum \limits _{k=1}^{R}\mathbf {b} _{k}^{(1)}\otimes \mathbf {b} _{k}^{(2)}\otimes \cdots \otimes \mathbf {b} _{k}^{(D)},{\mathcal {X}}\right\rangle .$
Das Khatri-Rao-Produkt $\star$ (auch spaltenweises Kronecker-Produkt) ist für zwei Matrizen $A\in \mathbb {R} ^{I\times K}$ und $B\in \mathbb {R} ^{J\times K}$ wie folgt definiert
    $A\star B:={\begin{bmatrix}\mathbf {a} _{1}\otimes \mathbf {b} _{1}&\mathbf {a} _{2}\otimes \mathbf {b} _{2}&\cdots &\mathbf {a} _{K}\otimes \mathbf {b} _{K}\end{bmatrix}}\in \mathbb {R} ^{(IJ)\times K},$
wobei $\mathbf {a} _{1},\dots ,\mathbf {a} _{K},\mathbf {b} _{1},\dots ,\mathbf {b} _{K}$ hier die Spalten der Matrizen sind und das Kronecker-Produkt genommen wird.
Mit Hilfe des Khatri-Rao-Produkt kann das Regressionsmodell nun umgeschrieben werden
    $g(\mu )=\alpha +{\boldsymbol {\gamma }}^{T}\mathbf {z} +\left\langle (B_{D}\star B_{D-1}\star \cdots \star B_{1})1_{R},\operatorname {vec} ({\mathcal {X}})\right\rangle$
wobei $B_{D}\star B_{D-1}\star \cdots \star B_{1}\in \mathbb {R} ^{\prod _{d}p_{d}\times R}$ aus $D$ Matrizen $B_{i}\in \mathbb {R} ^{p_{i}\times R}$ besteht, $1_{R}=(1,\dots ,1)$ ein Vektor aus $R$ Einsen ist.