Рекомендации стали неотъемлемой частью нашей жизни. Мы видим это повсюду, начиная от рекомендаций друзей/последователей в социальных сетях и заканчивая рекомендациями о работе и мероприятиях. В этом посте я хочу рассказать об основах рекомендательной системы.

Что такое рекомендательная система? Что они делают? Где их не использовать? Ограничения?

Рекомендация связана не с интересом, а с симпатией. Для рекомендации товаров/продуктов/услуг пользователю важно знать, понравились ли они пользователю (явная обратная связь) наряду с интересом пользователя. У пользователя может быть такой же интерес, как и у определенных продуктов/предметов, но он может не нравиться/покупать/рекомендовать его, что лишает его цели узнать больше интереса пользователя посредством явной обратной связи.

Совместная фильтрация:

Предположения:

· Пользователи, давшие согласие в прошлом, согласятся и в будущем.

· Пользователям будут нравиться те же вещи, что и в прошлом (интересы пользователей не меняются).

Для сбора данных используются явные (запросы у пользователей данных/отзывов/выбора) и неявные методы. Различным видам данных придается разный вес.

Совместная фильтрация бывает двух типов: на основе пользователя или на основе элемента.

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

1. Пользователь выражает свои предпочтения, оценивая элементы (например, книги, фильмы или компакт-диски) в системе. Эти рейтинги можно рассматривать как примерное представление интереса пользователя к соответствующему домену.

2. Система сопоставляет оценки этого пользователя с оценками других пользователей и находит людей с наиболее «похожими» вкусами.

3. С похожими пользователями система рекомендует товары, которые похожие пользователи высоко оценили, но еще не оценили этот пользователь (предположительно отсутствие оценки часто рассматривается как незнакомость товара).

Проблемы с совместной фильтрацией:

1. Проблема холодного запуска: для прогнозирования требуется большой объем существующих пользовательских данных.

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

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

Проблема с холодным запуском:

1. Новый рекомендатель

2. Новый предмет: Новые предметы без рейтинга.

3. Новый пользователь: новые пользователи без обратной связи.

4. Предвзятость популярности: предмет с рейтингом и без рейтинга представляет собой график с длинным хвостом.

5. Решение — гибридная система — низкое рекомендательное качество контента на основе

Шаги подхода на основе памяти:

1. Найти n пользователей, похожих на текущего пользователя (LSH, KNN, кластеризация и т. д.)

2. Соответствующий вектор элементов агрегируется для получения рекомендации.

3. Проблемы: производительность снижается при разреженном наборе данных, проблемы с масштабируемостью.

4. Плюсы: простота создания, требуется меньше информации от пользователя (меньше проблем с холодным запуском).

Модельный подход:

1. Использует методы машинного обучения, интеллектуального анализа данных и т. д.

2. Уменьшение размера является важным шагом (имеет дело с гораздо меньшей матрицей).

3. Уменьшает проблему дефицита и масштабируемости.

Примеры системы рекомендаций, использующей совместную фильтрацию:

1. Amazon — совместная фильтрация товаров на основе товаров для рекомендации товаров.

2. Спотифай — музыка

3. Социальные сети — рекомендации друзей, групп, сообществ, подписчиков

Проблемы в рекомендателях:

1. Разреженность данных.

2. Масштабируемость

3. Синоним

4. Серая овца

5. Шиллинговая атака

6. Разнообразие (пузырь сходства).

На основе содержания:

Ключевые слова/векторы используются для описания элемента/интереса пользователя, которые, в свою очередь, используются для поиска элементов на основе интереса пользователя.

Различные типы рекомендательных систем на основе контента:

1. Фильмы — Rotten Tomatoes, IMDB

2. Музыка — Пандора

Оценка системы рекомендаций:

1. Обратная связь по релевантности: https://en.wikipedia.org/wiki/Relevance_feedback

2. NDCG: https://en.wikipedia.org/wiki/Discounted_cumulative_gain

3. Точность

4. Вспомнить

5. КАРТА

6. Среднеквадратическая ошибка

Подробнее о показателях оценки:

https://stats.stackexchange.com/questions/159657/metrics-for-evaluating-ranking-algorithms

NDCG:

Предположения:

· Высоко релевантные документы более важны, чем маргинальные релевантные документы.

· Чем ниже ранжированная позиция документа, тем менее полезен он для пользователя

Формулировка DCG:

НДКГ

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

Теперь мы суммируем эти баллы; это совокупный выигрыш. Мы бы предпочли, чтобы самые релевантные товары были вверху списка, поэтому перед суммированием баллов мы делим каждый на возрастающее число (обычно это логарифм позиции товара) — это дисконтирование — и получаем DCG.

DCG нельзя напрямую сравнивать между пользователями, поэтому мы нормализуем их. Наихудший возможный DCG при использовании неотрицательных оценок релевантности равен нулю. Чтобы добиться наилучшего результата, мы располагаем все элементы в тестовом наборе в идеальном порядке, берем первые K элементов и вычисляем для них DCG. Затем мы делим необработанную DCG на эту идеальную DCG, чтобы получить NDCG@K, число от 0 до 1.

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

Проблема с NDCG:

1. Нормализованная метрика DCG не наказывает за плохие документы в результате. Например, если запрос возвращает два результата с оценками 1,1,1 и 1,1,1,0 соответственно, оба будут считаться одинаково хорошими, даже если последний содержит плохой документ. Для рейтинговых суждений Отлично, Удовлетворительно, Плохо можно использовать числовые оценки 1,0,-1 вместо 2,1,0. Это приведет к снижению оценки, если будут возвращены плохие результаты, при этом точность результатов будет иметь приоритет над отзывом. Обратите внимание, что этот подход может привести к общей отрицательной оценке, которая сдвинет нижнюю границу оценки с 0 на отрицательное значение.

2. Нормализованный DCG не штрафует за отсутствующие документы в результате. Например, если запрос возвращает два результата с оценками 1, 1, 1 и 1, 1, 1, 1, 1 соответственно, оба будут считаться одинаково хорошими, если предположить, что идеальная DCG вычисляется с рангом 3 для первого и рангом 5 для первого. последний. Один из способов учесть это ограничение — установить фиксированный размер набора для набора результатов и использовать минимальные баллы для отсутствующих документов. В предыдущем примере мы использовали бы оценки 1,1,1,0,0 и 1,1,1,1,1 и указали nDCG как nDCG@5.

3. Нормализованная DCG может не подходить для измерения производительности запросов, которые часто могут иметь несколько одинаково хороших результатов. Это особенно верно, когда эта метрика ограничена только несколькими первыми результатами, как это делается на практике. Например, для таких запросов, как «рестораны», nDCG@1 будет учитывать только первый результат, и, следовательно, если один набор результатов содержит только 1 ресторан из близлежащего района, а другой содержит 5, оба в конечном итоге будут иметь одинаковую оценку, даже если последний является более полным.

Итак, вот следующие вещи, которые мы рассмотрели в посте:

1. Что такое рекомендательные системы?

2. Различные типы рекомендательной системы.

3. Проблемы с рекомендательной системой.

4. Оценка рекомендательной системы.