Дело в том, что там как раз надо выполнить НЕ матричное умножение. Перемножаемые объекты - не матрицы, а тензоры. Для матриц правило умножения всегда "строка на столбец". Это связано с тем, что элемент матрицы жёстко указан своим положением: такая-то строка и такой-то столбец. А для тензоров элемент жёстко указан своими индексами, которых вообще больше двух. Это последовательность чисел: такой-то первый индекс, такой-то второй индекс, такой-то третий индекс... Расположение элементов тензора в табличку наподобие матрицы - только вспомогательное действие, тензор остаётся самим собой, пока мы не перепутали его элементов именно по индексам.
Я рекомендую (пока не появится привычки, да и потом это полезно бывает) чтобы не запутаться, не просто писать тензоры "как матрицы", но ещё и отмечать, какой индекс где изменяется: какой индекс соответствует номеру строки, а какой номеру столбца. Тогда формула будет выглядеть так:
Теперь должно быть видно, что имеет в виду Коренев: индекс
по которому нужно сворачивать, и там и там пробегает по строке, так что перемножать надо строку на строку. Но это связано просто с тем, что мы записали тензоры в привычном виде "первый индекс по вертикали, второй по горизонтали". А могли бы и наоборот, "транспонировать" якобы-матрицу для второго тензора, тогда запись бы поменялась, зато произведение бралось бы по привычному рецепту "строка на столбец", и вот это записано у Коренева:
С тензорами и то и то допустимо, потому что нет жёстких правил, как записывать тензоры "как матрицы", и нет жёстких правил умножения в терминах строк и столбцов, а жёсткие правила относятся к тому, какой индекс на котором месте стоит, и какой с каким перемножается (сворачивается). Здесь структура того, что надо посчитать, сводится к тому, что надо свернуть второй индекс со вторым, а как вы это расположите на листке бумаги - безразлично. Можно вообще не рисовать "матриц", а выписывать по одному элементу, типа скучного столбика: