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

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

Чтобы продемонстрировать фильтрацию на основе контента, давайте вручную разработаем некоторые функции для магазина 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. Наш пользователь не заинтересован в казуальных приложениях, таких как игры.