Софтмакс Обучение

На предыдущей странице объяснялось, как включить слой softmax в глубокую нейронную сеть для системы рекомендаций. На этой странице более подробно рассматриваются данные обучения для этой системы.

Тренировочные данные

Данные обучения softmax состоят из функций запроса \(x\) и вектора элементов, с которыми взаимодействовал пользователь (представленного в виде распределения вероятностей \(p\)). Они отмечены синим цветом на следующем рисунке. Переменными модели являются веса в разных слоях. Они отмечены оранжевым цветом на следующем рисунке. Модель обычно обучается с использованием любого варианта стохастического градиентного спуска.

Обучение выделению изображения глубокой нейронной сети softmax

Отрицательная выборка

Поскольку функция потерь сравнивает два вектора вероятностей\(p, \hat p(x) \in \mathbb R^n\) (наземную истину и выходные данные модели соответственно), вычисление градиента потерь (для одного запроса \(x\)) может быть непомерно дорогим, если размер корпуса \(n\) слишком большой.

Вы можете настроить систему для вычисления градиентов только для положительных элементов (элементов, которые активны в наземном векторе истинности). Однако, если система обучается только на положительных парах, модель может сворачиваться, как объясняется ниже.

Складной
Изображение самолета, сложенного пополам, на котором показаны 3 разные группы квадратов, представляющих запросы, и круги, представляющие элементы. Каждая группа имеет свой цвет, и запросы взаимодействуют только с элементами из одной группы. Предположим, что на следующем рисунке каждый цвет представляет отдельную категорию запросов и элементов. Каждый запрос (представленный в виде квадрата) в основном взаимодействует только с элементами (представленными в виде круга) одного цвета. Например, считайте, что каждая категория — это отдельный язык на YouTube. Типичный пользователь будет в основном взаимодействовать с видео на одном языке.

Модель может научиться размещать вложения запроса/элемента заданного цвета относительно друг друга (правильно фиксируя сходство внутри этого цвета), но вложения разных цветов могут случайно оказаться в одной и той же области пространства вложений. Это явление, известное как сворачивание , может привести к ложным рекомендациям: во время запроса модель может неправильно предсказать высокий балл для элемента из другой группы.

Отрицательные примеры — это элементы, помеченные как «нерелевантные» для данного запроса. Показ модели отрицательных примеров во время обучения учит модель тому, что эмбеддинги разных групп нужно отталкивать друг от друга.

Вместо того, чтобы использовать все элементы для вычисления градиента (что может быть слишком дорого) или использовать только положительные элементы (что делает модель склонной к свертыванию), вы можете использовать отрицательную выборку. Точнее, вы вычисляете приблизительный градиент, используя следующие элементы:

  • Все положительные элементы (те, которые указаны в целевом ярлыке)
  • Пример исключенных элементов (\(j\) в \({1, …, n}\))

Существуют разные стратегии отбора проб негативов:

  • Вы можете попробовать равномерно.
  • Вы можете дать более высокую вероятность элементам j с более высоким баллом \(\psi(x) . V_j\). Интуитивно понятно, что это примеры, которые вносят наибольший вклад в градиент); эти примеры часто называют жесткими отрицаниями.

О матричной факторизации против. Софтмакс

Модели DNN устраняют многие ограничения матричной факторизации, но, как правило, их обучение и запросы требуют больших затрат. В таблице ниже приведены некоторые важные различия между двумя моделями.

Матричная факторизация Софтмакс ДНН
Особенности запроса Не легко включить. Может быть включен.
Холодный запуск Не легко обрабатывает запросы или элементы вне словарного запаса. Можно использовать некоторые эвристики (например, для нового запроса усреднить вложения похожих запросов). Легко обрабатывает новые запросы.
Складной Складывание можно легко уменьшить, отрегулировав ненаблюдаемый вес в WALS. Склонен к складыванию. Необходимо использовать такие методы, как отрицательная выборка или гравитация.
Масштабируемость обучения Легко масштабируется до очень больших корпусов (возможно, сотен миллионов элементов и более), но только если входная матрица разрежена. Сложнее масштабировать до очень больших корпусов. Можно использовать некоторые методы, такие как хеширование, отрицательная выборка и т. д.
Масштабируемость обслуживания Вложения U, V являются статическими, и набор кандидатов может быть предварительно вычислен и сохранен. Вложения элементов V являются статическими и могут быть сохранены.

Внедрение запроса обычно необходимо вычислять во время запроса, что делает модель более дорогой в обслуживании.

В итоге:

  • Матричная факторизация обычно является лучшим выбором для больших корпусов. Его легче масштабировать, дешевле запрашивать и он менее склонен к свертыванию.
  • Модели DNN могут лучше фиксировать персонализированные предпочтения, но их сложнее обучать и дороже запрашивать. Модели DNN предпочтительнее матричной факторизации для оценки, потому что модели DNN могут использовать больше функций для лучшего определения релевантности. Кроме того, для моделей DNN обычно допустимо сворачиваться, поскольку вы в основном заботитесь о ранжировании предварительно отфильтрованного набора кандидатов, которые считаются релевантными.