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

28 апреля 2016 года мы официально объявили о запуске первого адаптивного курса на Stepic.org , который подбирает задачи по Python в зависимости от уровня учащегося. До этого мы ещё реализовали на платформе рекомендованные уроки, чтоб учащиеся как не забывали, что они уже прошли, так и открывали для себя новые темы, которые могут их заинтересовать.

Под катом две основные темы:

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

Про онлайн-образование, его плюсы, минусы и подводные камни

Эта часть в большей мере вводная, характеризующая онлайн-образование, волнующие подробности рекомендательных систем под следующей картинкой:)

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

Одной из наиболее распространенных форм онлайн-обучения являются массовые открытые онлайн-курсы (MOOCs, Massive Open Online Courses). Чаще всего они включают видео, слайды и текстовый контент, подготовленные преподавателем, а также задачи для проверки знаний, которые обычно проверяются автоматически, но также возможна проверка студентами работ друг друга. В качестве задач могут быть предложены самые разнообразные типы заданий: от простого выбора правильного ответа до написания эссе и даже, как у нас на Стэпике, задач на программирование с автоматической проверкой.

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

В то же время в онлайн-обучении есть и минусы. В отличие от традиционного образования, где у студента всегда есть мотивация в виде оценки его академической успеваемости, в случае онлайн-курсов нет никаких штрафов за непройденный курс. Из-за этого доля закончивших курс из записавшихся на него редко превышает 10% (у нас на Стэпике лучший по версии EdCrunch Awards 2015 курс Анатолия Карпова “Основы статистики” в первый запуск прошли рекордные 17% записавшихся, но это скорее исключение). Помимо этого, из-за большого числа учащихся у преподавателя нет возможности уделять индивидуальное внимание каждому студенту сообразно его уровню и возможностям.


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

В общем, учиться должно было стать ещё интереснее!

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

  • Системы, основанные на фильтрации контента. Такие системы предлагают пользователям контент, похожий на тот, что они изучали ранее. Схожесть подсчитывается с помощью характеристик сравниваемых объектов. Например, для рекомендации фильмов можно использовать близость жанров или актерский состав. Такой подход используется в сервисе для оценки, поиска и рекомендаций фильмов Internet Movie Database .
  • Системы, использующие коллаборативную фильтрацию. В этом случае пользователю предлагается контент, заинтересовавший похожих на него пользователей. Рекомендации сервиса MovieLens основаны именно на этом подходе.
  • Гибридные системы, комбинирующие два предыдущих подхода. Система такого типа используется в Netflix , сервисе для онлайн-просмотра фильмов и сериалов.

Мы создали гибридную систему с более активным использованием фильтрации контента и менее активным – коллаборативной фильтрации.

Существует множество исследований, посвященных рекомендательным системам для обучения, основанного на использовании технологий (Technology Enhanced Learning) . Специфика задачи в этом случае добавляет новые направления развития рекомендательной системы.


В чём особенности рекомендательной системы образовательного проекта?

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

Во-вторых, можно извлечь зависимости между обучающими материалами из данных о том, как пользователи их проходят.

Эти данные могут помочь извлечь отдельные темы в материалах, связи между этими темами, их соотношения по сложности .

Coursera, EdX, Udacity (платформы для онлайн-обучения) используют свои рекомендательные системы, советуя пользователям курсы, которые их могут заинтересовать. Недостаток этих рекомендаций в том, что они могут предложить только курс целиком, но не какую-то его часть, даже если пользователю будет интересна только она. Также построенная таким образом система никак не может помочь пользователю в изучении курса, который он выбрал.

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

В следующих статьях мы подробнее расскажем про устройство Stepic.org и реализацию рекомендательной системы, определим, что такое адаптивная рекомендательная система, и подробно проанализируем полученные результаты. Будет весело:)

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

При фильтрации содержимого создаются профили пользователей и объектов.

  • Профили пользователей могут включать демографическую информацию или ответы на определённый набор вопросов.
  • Профили объектов могут включать названия жанров, имена актёров, имена исполнителей и т.п. - в зависимости от типа объекта.

Этот подход используется в проекте Music Genome Project : музыкальный аналитик оценивает каждую композицию по сотням различных музыкальных характеристик, которые могут использоваться для выявления музыкальных предпочтений пользователя.

При коллаборативной фильтрации используется информация о поведении пользователей в прошлом - например, информация о покупках или оценках. В этом случае не имеет значения, с какими типами объектов ведётся работа, но при этом могут учитываться неявные характеристики, которые сложно было бы учесть при создании профиля. Основная проблема этого типа рекомендательных систем - «холодный старт»: отсутствие данных о недавно появившихся в системе пользователях или объектах.

Методика

Примеры явного сбора данных

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

Примеры неявного сбора данных

  • наблюдение за тем, что осматривает пользователь в интернет-магазинах или базах данных другого типа;
  • ведение записей о поведении пользователя онлайн;
  • отслеживание содержимого компьютера пользователя;

Применение

Рекомендательные системы сравнивают однотипные данные от разных людей и вычисляют список рекомендаций для конкретного пользователя. Некоторые примеры их коммерческого и некоммерческого использования приведены в статье о коллаборативной фильтрации . Рекомендательные системы - удобная альтернатива поисковым алгоритмам, так как позволяют обнаружить объекты, которые не могут быть найдены последними. Любопытно, что рекомендательные системы часто используют поисковые машины для индексации необычных данных.

  • Имхонет (фильмы, литература, фото)
  • Last.fm (музыка)
  • Ozon (книги, диски и пр.)
  • Software Informer (программное обеспечение)
  • Лаборатория фантастики (сайт о фантастике и фэнтези)
  • Imdb - фильмы (сайт на английском)
  • Rechelper - фильмы
  • Advizzer - места
  • Мир4 - экспериментальная система способная работать с любым контентом, в том числе малотиражным. Пока работает лишь с новостями.

Ссылки

Примечания

Литература

  • Melville P.,Mooney R., Nagarajan R. Content-Boosted Collaborative Filtering for Improved Recommendations (англ.) // University of Texas, USA : Материалы конф. / AAAI-02, Austin, TX, USA, 2002. - 2002. - С. 187-192.

Wikimedia Foundation . 2010 .

    Отрасль научной и практической деятельности, один из видов библиографии (См. Библиография). Главное общественное назначение Р. б. в СССР и др. социалистических странах содействовать общему и профессиональному образованию и самообразованию … Большая советская энциклопедия

    URL: http://imhonet.ru Коммерческий: Нет Тип са … Википедия

    Эта статья в данный момент активно редактируется участником Участник:Moshanin. Пожалуйста, не вносите в неё никаких изменений до тех пор, пока не исчезнет это объявление. В противном случае могут возникнуть конфликты редактирования. Данное… … Википедия - Эту страницу предлагается переименовать в Международное Агентство по Атомной Энергии. Пояснение причин и обсуждение на странице Википедия:К переименованию/24 июля 2012. Возможно, её текущее название не соответствует нормам современного … Википедия

    БИБЛИОГРАФИЯ ДЕТСКОЙ ЛИТЕРАТУРЫ - раздел библиографии, в задачи к рого входят учёт и информация о произведениях печати для детей и юношества. Такая информация направлена в два осн. адреса: взрослым (учителям, родителям, воспитателям, специалистам, профессионально связанным с… … Российская педагогическая энциклопедия

    Экономика страны - (National economy) Экономика страны это общественные отношения по обеспечению богатства страны и благосостояния ее граждан Роль национальной экономики в жизни государства, сущность, функции, отрасли и показатели экономики страны, структура стран… … Энциклопедия инвестора

    Ликвидность - (Liquidity) Ликвидность это мобильность активов, обеспечивающая возможность бесперебойной оплаты обязательств Экономическая характеристика и коэффициент ликвидности предприятия, банка, рынка, активов и инвестиций как важный экономический… … Энциклопедия инвестора

Когда системы рекомендаций только начинали ненавязчиво внедрять на различных ресурсах, это казалось приятным дополнением к процессу самостоятельного поиска. Когда выбор продукции или какого-либо контента достаточно велик, поиск превращается в увлекательное путешествие с часто непредсказуемым результатом. Например, я никогда не интересовался ужастиками, предпочитая фильмы несколько другой направленности, однако, благодаря случайному копошению в контенте, однажды я наткнулся на классический Hellraiser , случайный же просмотр которого оставил у меня сильное и неизгладимое впечатление. Уверен, что каждый из читателей хотя бы раз обогащался в культурном или эстетическом смысле именно благодаря рандомному поиску и действиям наугад. С другой стороны, я открыл для себя массу интересных вещей с помощью рекомендаций, которые мне предоставляют тематические ресурсы. Многие фильмы, книги, музыка или товары стали мне известны (и интересны) только по причине удачного срабатывания системы рекомендаций. Что характерно, теперь я практически всегда опираюсь на рекомендации и значительно реже ищу что-либо самостоятельно, ведь для последнего уже просто не осталось времени!

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

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

Методы фильтрации, использующиеся в рекомендательных системах

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

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

Подход, основанный на сопоставлении пользователей (в народе – user-based), принимает во внимание похожесть заданного юзера на других юзеров, задействованных в системе. К примеру, если Василий положительно оценил Lady Gaga, Oasis и Led Zeppelin, то Анастасии, любящей Lady Gaga и Led Zeppelin, вполне можно попробовать предложить Oasis.

Концепция сопоставления объектов (item-based соответственно), напротив, анализирует сами объекты и выявляет их похожесть на те, которые Василию когда-то понравились. На практике это выглядит так – Василию когда-то понравились Radiohead и Blur, почему бы нам не предложить ему еще и Oasis?

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

Василий и Анастасия: взаимные автоматические рекомендации на основе различий в предпочтениях.

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

Контентная фильтрация выстраивает внутренние связи между предложенными товарами или каким-либо контентом. Этот простой принцип проявляется в рекомендации пользователю объектов, похожих на те, что он выбрал ранее. К примеру, если в книжном магазине вы приобретаете пособие по игре на гитаре, вам автоматически будут предложены другие популярные самоучители или пособия того же автора. Большой плюс рекомендательных систем, использующих принцип контентной фильтрации – возможность заинтересовать нового пользователя предложениями буквально с его первых потребительских шагов. Вам не нужно долгое время собирать данные о предпочтениях человека, вы можете сразу же включить посетителя в работу с ресурсом. Также немаловажное преимущество контентной фильтрации заключается в возможности рекомендовать пользователю те объекты, которые не оценили и обошли стороной другие юзеры. Последний момент часто имеет место при использовании коллаборативного метода.

Контентная фильтрация полностью игнорирует мнения пользователей по поводу тех или иных объектов. Выстраивая связи сугубо между самими объектами, мы имеем возможность моментально, без сбора оценок и дополнительных персональных сведений, предложить человеку что-то похожее на ту позицию, которая его заинтересовала. Выключая пользовательский опыт из рекомендательной системы как основополагающую субстанцию, мы вроде бы решаем проблему т.н. «холодного старта», когда разреженность данных о пользователе мешает системе вырабатывать персонализированные рекомендации. Однако обратная сторона контентной фильтрации заключается в совершенно неуместных, а порой и просто нелепых рекомендациях вроде «Купили Toyota RAV4? Возможно вас также заинтересует Toyota Highlander!»

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

Фильтрация, основанная на знаниях (Knowledge based systems )

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

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

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

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

а) Пользовательские пожелания . Знакомая всем ситуация – сайт предлагает пользователю указать желаемые характеристики, после чего предлагает подходящие под запрос товары.

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

б) Демографические особенности. Собственно, демографические данные для выработки рекомендаций используют крупнейшие социальные сети, такие как Facebook, LinkedIn, Вконтакте и другие.

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

Гибридная фильтрация

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

Такой пример демонстрирует Netflix, чья сложная гибридная система рекомендаций, демонстрирующая уникальную точность, постоянно совершенствуется и модернизируется. Разработка такого мощного алгоритма во многом связана с щедрым финансированием исследований в этой области самим Netflix, который в 2006 году предложил $1.000.000 за усовершенствование своей системы рекомендаций на 10%.

Команда разработчиков BellKor’s Pragmatic Chaos, которым удалось улучшить алгоритм Netflix на 10,09%.

Пара слов о практических шагах в качестве заключения

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

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

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