I was wondering whether there is a name for the following operation, which is a kind of multiplication between a rank-$3$ tensor and a matrix.

One is given a matrix $A\in\mathbb{R}^{q\times m}$, a matrix $B\in\mathbb{R}^{n\times q}$ and a rank-3 tensor $D\in \mathbb{R}^{m\times n\times p}$, which is represented as a matrix $(D_{ij})\in \mathbb{R}^{m\times n}$ where each element is a vector $\mathbb{R}^{p}$.

I would like to to describe a multiplication between $A$ or $B$ with $D$ as the usual matrix multiplication, by only considering the first two dimensions of $D$. That is,

$AD\in \mathbb{R}^{q\times n\times p}$, where each element (a vector) is obtained by the usual matrix multiplication; and similarly $DB\in \mathbb{R}^{m\times q\times p}$.

Is there a name for this operation? Or how do you recommend me to describe this operation in a professional way (acceptable for peer reviewing)?

Besides denoting the operation using tensor contraction, as suggestion by Travis's answer, I find the $n$-mode product is quite suitable for this setting. However, the $n$-mode product are only defined between a tensor and a matrix (or vector). For example, I cannot denote $D_1D_2B$ where $D_i$ are both rank-3 tensors using $n$-mode product. But tensor contraction can be defined between two tensors.

Anyway, using the $n$-mode product, we can denote the desired operations as: $D\times_1A$ and $D\times_2B^T$.


One might call the operations $(A, D) \mapsto AD$ and $(D, B) \mapsto DB$ contractions. They are each given by forming a tensor product, e.g., $A \otimes D$ and taking a particular trace.

  • $\begingroup$ Thanks for your answer. I am quite new to tensor so I am not sure whether my understanding is correct. I have browsed the Internet and found that the contraction has to be defined with at least one controvariant and one covariant index. However, I am not sure how to properly choose controvariant or covariant indices here. Do you think $D^{ik}_jB^j_{l}$ ($i, j, k$ denotes the the first, second, and third dimension, respectively) is proper to define the desired operation $DB$ ? $\endgroup$ – John May 26 '17 at 14:15
  • $\begingroup$ This usually isn't something you choose, it's a built-in feature of the problem. I would avoid index notation here, because using the same sort of characters for indices, e.g., lowercase Roman $i, j, k, \ldots$ in my experience usually indicates that they all correspond to objects in the same vector space (or its dual), so that, e.g., $B^j{}_l$ denotes an object in $V \otimes V^*$ for some vector space here, but your $B$ is an element of $\Bbb R^n \otimes (\Bbb R^q)^*$, where we may or may not have $n = q$. $\endgroup$ – Travis Willse May 26 '17 at 14:50
  • $\begingroup$ Still, if you're set on index notation despite this reservation, probably it would be best to write what you say, perhaps with some spacing to indicate their order, e.g., $(DB)^i{}_j{}^k := D^i{}_l{}^k B^l{}_j$. $\endgroup$ – Travis Willse May 26 '17 at 14:52
  • $\begingroup$ Alternatively, one could think of $D$ as an array $(D^k)$ of matrices indexed by $k$, in from this point of view $BD$ is the just array $((BD)^k) = (BD^k)$. Absent any more information, I'd suggest you just mimic the presentation/notation choices of the articles you cite. $\endgroup$ – Travis Willse May 26 '17 at 14:55
  • $\begingroup$ Thanks for your answers. I found another notation $n$-mode product is quite helpful in this case, but your suggestion is more suitable for a general setting. $\endgroup$ – John May 26 '17 at 15:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.