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

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

Кредит: https://github.com/blog/1724-10-million-repositories

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

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

  • Совместная фильтрация. Рекомендации основаны на предпочтениях и поведении других пользователей. Ключом к этому алгоритму является определение сходства между пользователями через их историю оценок, а затем определение других элементов, которые понравились этим похожим пользователям. Например, Алисе рекомендуются предметы, которые нравятся Бобу, если Алиса и Боб разделяют схожие вкусы в предметах. Кроме того, из набора предпочтительных элементов пользователя вы можете определить похожие элементы с помощью оценок других пользователей. Например, любителям чая часто рекомендуют чайники, а любителям чая часто нравятся и чайники. При использовании любого из этих методов вам не нужно определять атрибуты элементов, и вы можете иметь более широкий спектр рекомендаций, но вам нужно большое количество оценок пользователей, и вы можете рекомендовать популярные элементы.
  • На основе содержания: рекомендации основаны на атрибутах (характеристиках содержания) элементов. Атрибуты фильма могут включать жанр фильма, актеров, продюсера, музыку, год и / или тематические слова или ключевые слова из его названия и описания. Например, Алисе рекомендуются другие боевики, если ей понравился последний фильм о Джеймсе Бонде. С помощью этого метода вы можете давать рекомендации с более разреженными наборами данных и легко описывать, почему рекомендуется конкретный элемент, но атрибуты элемента должны быть определены, и может быть легко переоценить модель.

Lab41 - далеко не первая группа, которая изучает рекомендательные системы, а это означает, что существует ряд очень хороших ресурсов, которые помогут нам разобраться в этой технологии. Вот несколько вводных источников для общего обзора рекомендательных систем:

  • Введение в рекомендательные системы: шестинедельный курс Coursera от Университета Миннесоты с практическими проектами и около 100 часов тематических лекций, интервью и гостевых лекций с экспертами как из академических кругов, так и из промышленности.
  • Справочник по рекомендательным системам (Риччи, Ф., Рокарч, Л., Шаприя, Б., Кантор, П.Б., Springer, 2011): исчерпывающий справочник по рекомендательным системам, включая методы, приложения и оценку рекомендательных систем, взаимодействие с рекомендательными системами, рекомендательные системы и сообщества, а также передовые алгоритмы.
  • Рекомендательные системы: 4-часовая обучающая презентация Ксавье Аматриана по рекомендательным системам, включая уроки, извлеченные из конкурса Netflix Prize.

Еще одним очень полезным ресурсом было посещение RecSys 2015, поскольку оно сосредоточило внимание на последних достижениях в области рекомендательных систем и позволило нам связаться с другими исследователями в этой области. Если вы работаете в этой области, я настоятельно рекомендую (* каламбур) отправиться на RecSys 2016, который состоится в Бостоне в сентябре.

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

Но что, если бы мы могли создать системный рекомендатель? Где пользователь может ввести некоторую высокоуровневую информацию о своих данных и показать различные рекомендательные системные алгоритмы и их потенциальную производительность для этого набора данных. Для достижения этой цели мы будем оценивать широкий спектр рекомендательных системных алгоритмов в сравнении с широким спектром приложений по различным показателям производительности. В конце концов, может не быть четкой «лучшей» рекомендательной системы, но, возможно, поле возможностей можно сузить. И после этого анализа мы будем хорошо подготовлены, чтобы начать определять, как рекомендовать данные, инструменты и программы разработчику программного обеспечения или специалисту по данным.

Как и многие другие наши задачи, задача Hermes основана на некоторой работе, выполненной лабораторией в прошлом. Например, в рамках проекта Circulo была создана система оценки обнаружения сообщества, о которой вы можете скачать или прочитать больше. Платформа выполняет статистический анализ разделов Графика в результате выполнения данного алгоритма обнаружения сообщества. Полученные количественные показатели могут использоваться для проведения экспериментов, таких как измерение эффективности алгоритма по отношению к конкретным типам наборов данных или сравнение результатов выполнения различных алгоритмов с одним и тем же набором данных. Кроме того, две другие задачи сравнивали производительность алгоритма структуры / поведения с алгоритмом, основанным на содержании. Dendrite был исследованием способов анализа, управления, версии и совместного использования чрезвычайно больших графов (GitHub, wiki). И Soft-Boiled проанализировал алгоритмы геоинференции данных Twitter (GitHub).

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

Теги: рекомендательные системы

Первоначально опубликовано на www.lab41.org 19 декабря 2015 г.