Исходя из того, что вы описали, и поскольку вы упомянули о системе рекомендаций, я бы рассмотрел ваш набор данных в качестве следующего примера: каждая строка - это пользователь, а функция A, B - это личная информация пользователя, например, а функция C - это вещи, которые он купил. И, конечно же, функция C не содержит одинакового количества элементов в каждой строке, и она может расширяться.
Я бы построил две разные рекомендательные модели и потом объединил бы их. Один для функции A, B, а другой - для функции C. Поскольку функция C развивается со временем, вы можете строить модель на регулярной основе (сделайте снимок функции C) или до тех пор, пока какое-то «событие» запускает процесс построения. Для функции C, в моем Например, это матрицы пользовательских элементов.