Вопрос или проблема
Этот вопрос задавали раньше, но я не видел на него удовлетворительного ответа.
Я читаю документ YouTube о их системе рекомендаций. Система состоит из двух элементов, первый из которых — это DNN, генерирующая 100 “кандидатных” видео, которые затем комбинируются с кандидатами из других источников и ранжируются вторым DNN. В документе говорится, что они рассматривают задачу генерации кандидатов как экстремальную многоклассовую классификацию с использованием Softmax. Этот подход понятен; индексы N наибольших значений в выходе Softmax становятся N предсказанными кандидатами — проще простого.
Однако, читая дальше в документе, я начал путаться в том, что точно делает их сеть. Они предоставляют изображение структуры своей сети:
И из этого изображения видно, что есть целый другой шаг за пределами Softmax слоя, что я не понимаю. Также в документе приводится следующая цитата:
Слой Softmax выдает многономинальное распределение по тем же 1M видео классам с размерностью 256 (что можно рассматривать как отдельное видео представление).
и также что:
Поскольку откалиброванные вероятности от выходного слоя Softmax не нужны во время обслуживания, проблема оценки сводится к поиску ближайших соседей в пространстве скалярного произведения, для чего можно использовать библиотеки общего назначения.
Но я запутался в том, что они на самом деле реализуют здесь. Утверждение, что слой Softmax выдает...с размерностью 256
, подразумевает для меня, что у них действительно есть финальный слой в виде Dense(256, activation='softmax')
вместо Dense(n_classes...
, однако присутствие “вероятностей классов” на изображении делает это невозможным, поскольку нельзя преобразовать такое представление в вероятности классов.
Итак, я действительно запутался; кто-нибудь знает, как точно интерпретировать то, что здесь делается?
Часть путаницы возникает из-за различных процессов предсказания, используемых для обучения и обслуживания.
Softmax используется в процессе обучения для создания предсказаний для 1 миллиона видеокатегорий. Softmax упрощает обучение градиентов нейросети и хорошо работает в библиотеках глубокого обучения.
Эти 1 миллион видеокатегорий также встраиваются в 256-мерное пространство. Во время обслуживания предсказание теперь осуществляется как поиск ближайших соседей. Поиск ближайших соседей быстрее, так как это операция скалярного произведения и может использовать библиотеки общего назначения.
Я не полностью уверен, но вот что я понимаю. Слой Softmax используется только на стадии обучения, чтобы выучить все параметры модели, особенно финальный ReLu слой и видео представления.
Во время инференса нас действительно не интересует выход Softmax. Финальный ReLu слой имеет размер 256, как видно в Таблице 1 в документе. Они говорят, что финальный ReLu слой можно рассматривать как вектор пользователя. Я не знаю почему, но поскольку обученный финальный ReLu слой имеет тот же размер, что и видео представления, они отображаются в одном пространстве для вычисления приближенных ближайших соседей для вектора пользователя. Таким образом, они пытаются найти наиболее похожие видео представления на вектор пользователя.
Видео, как показано на картинке, — это просто представления последнего слоя. Слой Softmax — это 256x10M, каждая строка — это видео представление. Эти 10M представлений хранятся в индексе.
На этапе инференса 256-вектор пользователя извлекается и сравнивается с видео представлениями.
.
Ответ или решение
Вопрос понимания работы слоя softmax в рекомендательной системе YouTube представляет собой интересную и сложную задачу, требующую ясности как в отношении теоретических основ, так и их применения в практике. Речь идет о модели, состоящей из двух основополагающих частей — генерации кандидатов и ранжирования. Разберем более подробно, что происходит на каждом этапе и каким образом слой softmax вписывается в данную архитектуру.
Теоретическая основа
Рассматриваемая задача YouTube в данном случае моделируется как случай экстремальной многоклассовой классификации, где softmax играет ключевую роль. В классическом понимании softmax слой превращает неотнормированные логиты в вероятностное распределение по классам. Это означает, что выходной вектор со значениями классов нормализуется таким образом, чтобы сумма всех вероятностей была равна единице. Таким образом, softmax позволяет интерпретировать выходы модели как вероятности принадлежности к каждому из классов.
Но в случае с YouTube система содержит около миллиона классов (видео), что делает использование стандартного подхода не только сложным с вычислительной точки зрения, но и неоптимальным на этапе предсказания. Логично предположить, что на этапе обучения layer softmax помогает настраивать параметры модели через механизм обратного распространения ошибки, обучая модель распознавать связи между пользователями и видео.
Пример и его применение
Обратим внимание на архитектуру сети: на финальном этапе модели присутствует слой ReLU размерностью 256, который следуют за softmax. Введение слоя с размерностью 256 может вызвать недоумение, так как традиционно ожидается, что выход softmax будет соответствовать числу классов. Однако, по сути, этот слой является проекцией пользователей в пространство размерности 256, что позволяет создать пользовательские векторы (или embeddings), которые затем могут быть сравнимы с embedding видео. Эти embedding предварительно сформированы в 256-мерной пространственной картографии.
На этапе эксплуатации (serving) задача решается уже не с использованием непосредственных вероятностей из softmax, а через поиск ближайших соседей в индексированном пространстве embedding. В данном контексте использование softmax слоя на этапе выводов было бы излишним, так как результатом служит не просто вероятность, а нахождение ближайших координат в 256-мерном пространстве.
Практическое применение и выводы
Таким образом, в практическом плане YouTube использует метод, при котором на этапе обучения softmax слой имеет вспомогательный характер для оптимизации и настройки параметров сети. Но уже на этапе применения модели в реальном времени его функциональная роль минимизируется. Вместо этого пользовательские embedding создаются в совместном пространстве с embedding видео, где ближайшие соседи определяются с помощью стандартных библиотек, специализирующихся на таких операциях.
Это позволяет существенно увеличить скорость работы рекомендательной системы, так как поиск ближайших соседей выполняется значительно быстрее, чем обработка трехмиллионного классового пространства на каждом индивидуальном запросе.
Такой подход к обработке рекомендательной системы демонстрирует высокий уровень эффективности и масштабируемости, позволяя обслуживать миллиарды пользователей по всему миру с высокой скоростью и точностью. Softmax, в свою очередь, представляет собой лишь один из интегральных элементов обучающей механики, завершающийся в более сложном процессе соответствия — выделении и сравнению embedding.
Заключая, можно отметить, что YouTube использует стратегический подход, комбинирующий преимущества блока softmax, нейронной сети и механизмов nearest neighbor, чтобы максимизировать возможные рекомендации, основываясь на богатых данных о поведении пользователей. Такой подход может служить образцом для других систем рекомендаций, стремящихся к высокоэффективным методам персонализации контента.
Таким образом, рассматриваемая система рекомендаций YouTube демонстрирует сложную и многоступенчатую структуру, где теоретические концепты перекликаются с практическими подходами, обеспечивая тем самым высокую производительность и адаптивность модели в связке с большими данными.