Софтмакс тренировка

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

Данные обучения

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

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

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

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

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

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

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

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

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

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

Существуют различные стратегии отбора отрицательных образцов:

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

О матричной факторизации и softmax

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

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

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

В итоге:

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