Как мне адаптировать мой движок рекомендаций к холодному запуску?

StackOverflow https://stackoverflow.com/questions/1992508

Вопрос

Мне любопытно, каковы методы / подходы для преодоления проблемы "холодного запуска", когда, когда новый пользователь или элемент входит в систему, из-за отсутствия информации об этом новом объекте составление рекомендаций является проблемой.

Я могу подумать о том, чтобы дать какую-нибудь рекомендацию, основанную на прогнозировании (например, пол, национальность и так далее).

Это было полезно?

Решение

Может быть, бывают случаи, когда просто не следует давать рекомендации?«Недостаток данных» следует квалифицировать как один из таких случаев.

Я просто не понимаю, как рекомендации по прогнозированию, основанные на «поле, национальности и т. д.», будут представлять собой нечто большее, чем стереотипы.

IIRC, такие места, как Amazon, некоторое время создавали свои базы данных, прежде чем выдавать рекомендации.Это не та вещь, в которой вы хотите ошибиться;Существует множество историй о неуместных рекомендациях, основанных на недостаточности данных.

Другие советы

Вы можете «холодно» запустить систему рекомендаций.

Существует два типа рекомендательных систем;совместная фильтрация и контент-ориентированная.Системы, основанные на контенте, используют метаданные о том, что вы рекомендуете.Тогда возникает вопрос, какие метаданные важны?Второй подход — это совместная фильтрация, которая не учитывает метаданные, а просто использует то, что люди сделали или сказали об элементе, чтобы дать рекомендацию.Благодаря совместной фильтрации вам не придется беспокоиться о том, какие термины в метаданных важны.На самом деле вам не нужны никакие метаданные, чтобы дать рекомендацию.Проблема совместной фильтрации заключается в том, что вам нужны данные.Прежде чем у вас будет достаточно данных, вы можете использовать рекомендации на основе контента.Вы можете предоставить рекомендации, основанные на обоих методах, и вначале на 100% основанные на контенте, а затем, по мере получения большего количества данных, начать смешивать их на основе совместной фильтрации.Это метод, который я использовал в прошлом.

Другой распространенный метод — рассматривать часть, основанную на контенте, как простую задачу поиска.Вы просто вводите метаданные в виде текста или тела вашего документа, а затем индексируете свои документы.Вы можете сделать это с помощью Lucene & Solr без написания кода.

Если вы хотите узнать, как работает базовая совместная фильтрация, прочтите главу 2 книги Тоби Сегарана «Программирование коллективного разума».

Сам работаю над этой проблемой, но эта статья от Microsoft о машинах Больцмана выглядит стоящей: http://research.microsoft.com/pubs/81783/gunawardana09__unified_approac_build_hybrid_recom_system.pdf

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

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

Есть два других способа холодного запуска двигателя рекомендаций.

  1. Создайте модель самостоятельно.
  2. Попросите своих поставщиков внести ключевую информацию в скелетную модель.(Также может потребоваться поощрение в долларах.)

Во всем этом есть множество потенциальных ловушек, о которых слишком здравомысленно упоминать.

Как и следовало ожидать, бесплатных обедов здесь нет.Но подумайте об этом так:рекомендательные системы — это не бизнес-план.Они просто улучшают бизнес-план.

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

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

  2. САМЫЙ ВАЖНЫЙ:Вам нужен цикл обратной связи с пользователями, с помощью которого пользователи могут просматривать рекомендации, предлагаемые механизмом персонализации.Например, кнопка "Да / Нет" для "Было ли это предложение полезным?" должна помещать обзор участников в очередь в одном обучающем наборе данных (т. е."рекомендуемый" обучающий набор данных) к другому обучающему набору данных (т.е.НЕ рекомендуется обучать набор данных).

  3. Модель, используемая для предложений (Рекомендовать / НЕ рекомендовать), никогда не должна рассматриваться как универсальная рекомендация для всех.В дополнение к классификации продукта или услуги, которую компания предлагает клиенту, имеет значение и то, как фирма классифицирует каждого конкретного клиента.При правильном функционировании следует ожидать, что клиенты с разными функциями будут получать разные предложения (Рекомендовать / НЕ рекомендовать) в данной ситуации.Это было бы частью "персонализации" движков персонализации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top