Обзор поколения кандидатов

Генерация кандидатов – это первый этап рекомендации. По запросу система генерирует набор подходящих кандидатов. В следующей таблице показаны два распространенных подхода к генерации кандидатов:

Тип Определение Пример
фильтрация на основе контента Использует сходство между элементами, чтобы рекомендовать элементы, похожие на то, что нравится пользователю. Если пользователь А просматривает два милых видеоролика с котиками, система может порекомендовать этому пользователю видеоролики с милыми животными.
совместная фильтрация Одновременно использует сходство между запросами и элементами для предоставления рекомендаций. Если пользователь А похож на пользователя Б, а пользователю Б нравится видео 1, то система может порекомендовать видео 1 пользователю А (даже если пользователь А не видел видео, похожее на видео 1).

Встраивание пространства

Как фильтрация на основе контента, так и совместная фильтрация сопоставляют каждый элемент и каждый запрос (или контекст) с вектором внедрения в общем пространстве внедрения\(E = \mathbb R^d\). Обычно пространство внедрения является малоразмерным (то есть \(d\) намного меньше размера корпуса) и фиксирует некоторую скрытую структуру элемента или набора запросов. Похожие элементы, например видеоролики YouTube, которые обычно просматривает один и тот же пользователь, в конечном итоге оказываются близко друг к другу в пространстве встраивания. Понятие «близость» определяется мерой сходства.

Меры сходства

Мерой сходства является функция \(s : E \times E \to \mathbb R\) , которая принимает пару вложений и возвращает скаляр, измеряющий их сходство. Вложения можно использовать для генерации кандидатов следующим образом: по запросу, встраивающему \(q \in E\), система ищет встраивания элементов\(x \in E\) , которые близки к \(q\), то есть вложения с высоким сходством \(s(q, x)\).

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

  • косинус
  • скалярное произведение
  • Евклидово расстояние

Косинус

Это просто косинус угла между двумя векторами, \(s(q, x) = \cos(q, x)\)

Скалярное произведение

Скалярное произведение двух векторов — это\(s(q, x) = \langle q, x \rangle = \sum_{i = 1}^d q_i x_i\). Он также задается \(s(q, x) = \|x\| \|q\| \cos(q, x)\) (косинус угла, умноженный на произведение норм). Таким образом, если вложения нормализованы, то скалярное произведение и косинус совпадают.

Евклидово расстояние

Это обычное расстояние в евклидовом пространстве, \(s(q, x) = \|q - x\| = \left[ \sum_{i = 1}^d (q_i - x_i)^2\right]^{\frac{1}{2}}\). Меньшее расстояние означает большее сходство. Обратите внимание, что когда вложения нормализованы, квадрат евклидова расстояния совпадает со скалярным произведением (и косинусом) с точностью до константы, поскольку в этом случае \(\frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle\).

Изображение, показывающее двумерное пространство внедрения, содержащее внедрение запроса и три элемента-кандидата.

Сравнение мер сходства

Рассмотрим пример на рисунке справа. Черный вектор иллюстрирует внедрение запроса. Остальные три вектора внедрения (элемент A, элемент B, элемент C) представляют элементы-кандидаты. В зависимости от используемой меры сходства ранжирование элементов может быть разным.

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

Какая мера сходства?

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

  • Элементы, которые очень часто появляются в обучающем наборе (например, популярные видео на YouTube), как правило, имеют встраивания с большими нормами. Если сбор информации о популярности желателен, вам следует отдать предпочтение скалярному произведению. Однако, если вы не будете осторожны, популярные товары могут оказаться в списке рекомендаций. На практике можно использовать и другие варианты меры сходства, в которых меньше внимания уделяется норме предмета. Например, определите\(s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)\) для некоторого \(\alpha \in (0, 1)\).

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