Retrieval

Предположим, у вас есть модель встраивания. Учитывая пользователя, как бы вы решили, какие элементы рекомендовать?

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

  • Для модели матричной факторизации встраивание запроса (или пользователя) известно статически, и система может просто найти его в матрице встраивания пользователя.
  • Для модели DNN система вычисляет запрос, встраивающий \(\psi(x)\), во время обслуживания, запуская сеть на векторе признаков \(x\).

Когда у вас есть запрос, встраивающий \(q\), найдите вложения элементов\(V_j\) , которые близки к \(q\) в пространстве вложений. Это проблема ближайшего соседа. Например, вы можете вернуть первые k элементов в соответствии с оценкой сходства \(s(q, V_j)\).

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

Вы можете использовать аналогичный подход в рекомендациях связанных элементов. Например, когда пользователь просматривает видео на YouTube, система может сначала найти встраивание этого элемента, а затем искать встраивания других элементов\(V_j\) , которые находятся рядом в пространстве встраивания.

Крупномасштабный поиск

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

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