Обзор генерации кандидатов

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

Тип Определение Пример
контентная фильтрация Использует сходство между элементами, чтобы рекомендовать элементы, похожие на то, что нравится пользователю. Если пользователь А смотрит два видео с милыми кошками, система может порекомендовать этому пользователю видео с милыми животными.
совместная фильтрация Одновременно использует сходство между запросами и элементами для предоставления рекомендаций. Если пользователь А похож на пользователя Б, а пользователю Б нравится видео 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)\).

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