Контентная фильтрация

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

Чтобы продемонстрировать фильтрацию на основе контента, давайте вручную разработаем некоторые функции для магазина Google Play. На следующем рисунке показана матрица функций, где каждая строка представляет приложение, а каждый столбец — функцию. Функции могут включать категории (например, «Образование», «Повседневный отдых», «Здоровье»), издателя приложения и многие другие. Для упрощения предположим, что эта матрица функций является двоичной: ненулевое значение означает, что приложение имеет эту функцию.

Вы также представляете пользователя в том же пространстве функций. Некоторые функции, связанные с пользователем, могут быть явно предоставлены пользователем. Например, пользователь выбирает в своем профиле «Развлекательные приложения». Другие функции могут быть неявными в зависимости от ранее установленных приложений. Например, пользователь установил другое приложение, опубликованное Science R Us.

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

Изображение матрицы, показывающей пользователя и приложения, которые могут быть рекомендованы.

Использование скалярного произведения в качестве меры сходства

Рассмотрим случай, когда пользователь, внедряющий \(x\) , и приложение, внедряющее \(y\) являются двоичными векторами. Поскольку\(\langle x, y \rangle = \sum_{i = 1}^d x_i y_i\)функция, появляющаяся как в \(x\) , так и \(y\) добавляет к сумме 1. Другими словами, \(\langle x, y \rangle\) — это количество признаков, которые активны в обоих векторах одновременно. Тогда более высокое скалярное произведение указывает на большее количество общих признаков и, следовательно, на большее сходство.

Попробуй сам!

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

Какое приложение мы можем порекомендовать?
Образовательное приложение, созданное Science R Us.
Ты прав! У этого элемента самый высокий точечный продукт — 2. Нашему пользователю очень нравятся научные и образовательные приложения.
Приложение для здоровья, созданное Healthcare.
Это приложение получило 1 балл. Это не худшая рекомендация, которую могла дать наша система, но и не лучшая.
Казуальное приложение, созданное TimeWastr.
На самом деле это приложение имеет наименьшее скалярное произведение, равное 0. Нашего пользователя не интересуют казуальные приложения, такие как игры.