Яндекс.Метрика

    Разбирая данные

    Системы рекоммендаций: введение в гибридные системы

    Системы рекомендаций:
    Советы от машины
    Холодное начало
    — Введение в гибридные системы
    искусственные имунные системы и эффект идиотипов


    Продолжим с того момента, на котором мы остановились в прошлый раз: мы рассмотрели несколько способов решения проблемы холодного начала, теперь я предлагаю рассмотреть другие проблемы систем рекомендаций (далее просто СР) и подумать, как разные типы СР могут дополнять друг-друга. Сразу оговорюсь, что я не буду подробно рассматривать способы решения той или иной проблемы. Цель этой статьи — лишь помочь разработчикам ориентироваться в разновидностях СР и в связанных с ними проблемах.

    Для начала все-таки придется дополнить классификацию СР. Przemyslaw Kazienko и Pawel Kolodziejski предложили разделить все СР на пять типов: статистические, коллективные, ассоциативные и информационные. Начнем с самых простых.
    • Статистические СР (Statistical approach) — это системы, которые основываются на статистических данных, собранных с пользователей. Проще говоря, это привычные нам рейтинги самых-самых: самые скачиваемые, самые читаемые, самые популярные и тп. Очевидно, что в отличии от всех СР, которые мы рассматривали ранее, такой подход не является персонализированным и предлагает одинаковые рекомендации для всех пользователей.
    • Демографические СР (Demographic recommendation) сравнивают характеристики объекта с характеристиками пользователя. Рассматриваться могут простые дискретные свойства: возраст, пол, место проживания, национальность так и более сложные, например, интерес пользователя к определенному объекту. Некоторые из них система может легко определить самостоятельно: страну и даже город, в котором проживает пользователь, можно определить по IP, предпочитаемый язык можно узнать из свойств браузера использую Javascript. Другие данные можно попросить пользователя указать явно. Не смотря на то, что объем полученной информации о пользователе будет достаточно ограничен, она может помочь принять важные решения, например, кому рекомендовать куклу, а кому видео для взрослых.
    • Ассоциативные СР (Association rules) строят рекомендации на основе данных о том, какие объекты используются вместе. Яркий пример применения таких систем — это анализ покупок пользователей. Например, кто-то купил себе новый телефон и, вполне вероятно, ему понадобятся к нему наушники, чехол, зарядка, дополнительная карта памяти и прочие аксессуары. Прочие СР здесь могут быть бессильны, ведь у этих объектов нет никаких общих параметров и сравнить их не представляется возможным, их объединяет лишь то, что они используются вместе.
    • Информационные СР (Content based; я не нашел общепринятого перевода, более точно было бы системы рекомендаций основанные на содержании, но это слишком длинно) — это системы, которые ищут объекты, которые похожие на те, которые пользователь уже положительно оценил. В отличии от ассоциативных систем они могут оперировать практически любыми данными: от простейший двоичных значений (купил — не купил) до сложных текстовых описаний. В прошлой статье мы рассматривали пару важных методов используемых в реализации систем этого типа, в том числе популярную векторную модель. Забегая вперед, скажу, что это одна из двух систем, которая может решить проблему холодного начала.
    • Коллективные (коллаборативные) СР (Collaborative filtering) — самые распространенные системы, которые для предсказания рейтинга определенного объекта руководствуются оценками других пользователей. Хотя такие системы достаточно эффективны, их точность сильно зависит от того, на сколько пересекаются оцениваемые объекты между отдельными пользователями. Чем больше и чаще эти пересечения, тем точней будет система. Этот факт ограничивает сферу применения данной модели; если каждый пользователь будет свою уникальную информацию, которую никто другой не видел, коллективные СР будут бессильны.


    Более наглядно плюсы и минусы иллюстрирует таблица, которую я нашел в статье уже упомянутых Przemyslaw Kazienko и Pawel Kolodziejsk "Personalized Integration of Recommendation Methods for E-commerce" (pdf), которую я дополнил еще одной колонкой.

    Метод
    Источник данных
    Привязанность к пользователю
    Привязанность к объекту (контекст)
    Решение проблемы нового объекта
    Решение проблемы нового пользователя
    Решение проблемы пересечения объектов
    Учитывает качественные аспекты
    Статистический
    Рейтинги, просмотры, скачивания и тп
    - - - + + +
    Демографический
    Характеристики объекта и пользователя
    + - + + + -
    Ассоциативный
    Общие сферы применения
    - + - + -/+ -
    Информационный*
    Свойства объектов
    +/ - +/ - + +/ - + -
    Коллективный
    Рейтинги
    + - - - - +

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

    • Привязанность к пользователю означает, что системе необходимо идентифицировать пользователя, чтобы давать ему советы. Очевидно, что этой проблемой страдают все персонализированные СР. Решить эту проблему можно простой авторизацией или другими методами идентификации пользователя.
    • Привязанность к объекту обозначает контекст, в котором можно применить определенную СР. Для некоторых систем, например для ассоциативной и информационной требуется, чтобы пользователь выбрал конкретный объект, от которого она сможет отталкиваться (искать другие объекты, похожие или дополняющие выбранный). Другие же системы могут дать рекомендации в любом контексте на любую тему.
    • Решение проблемы нового объекта — это одна из вариаций проблемы холодного начала. Использовать только что добавленный новый объект могут только системы, использующие непосредственно его свойства, которые, обычно, задаются при создании. Для статистических и коллективных СР потребуется некоторое время, пока его не оценят достаточно количество пользователей. Для ассоциативных систем эта проблема может быть сложнее, так-как придется искать новые шаблоны использования объекта.
    • Решение проблемы нового пользователя — это другая вариация проблемы холодного начала, только в данном случае нам ничего не известно о пользователе. Очевидно, что это не будет проблемой для ассоциативных и статистических СР, так-как они вообще не зависят от пользователя. Для демографической системы это не будет проблемой в том случае, если при создании пользователя были указаны хоть какие-то данные, которые система сможет использовать. Для коллективной же системы понадобится время, пока она сможет разузнать нужную ей информацию.
    • Решение проблемы пересечения объектов — характерно практически для всех СР, кроме коллективной и частично ассоциативной. Как я уже писал, их эффективность зависит от того как часто пересекаются сравниваемые объекты. Для коллективной системы это значит, что чем больше людей просмотрит какой-то материал, тем более точно мнение она сможет о нем составить. Для ассоциативной — что чем чаще объект будет пересекаться с каким-то узким набором других объектов, тем проще будет системе выявить шаблоны его применения. Заметьте, что если он будет пересекаться с очень большим количеством объектов, то это только запутает систему.
    • Учитывает качественные аспекты — это пункт, который отвечает за то, учитывает ли система качество объекта. Его не было в оригинальной таблице, но который по-моему тоже стоит учесть. Дело в том, что большинство методов, ищущих сходство между объектами, не учитывают их качество. Они могут найти две похожие новости, но если одна из них интересная, то это еще не значит, что и вторая тоже. В таком случае система не может быть уверена, что то, что она рекомендует пользователю не полный хлам. Эту проблему могут решить только те системы, которые учитывают рейтинги объектов, то есть коллективные и статистические. При чем рейтинги могут быть получены как и явными методами так и не явными наблюдениями.


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

    PS
    Статья получилось достаточно объемной и без конкретных примеров, но я надеюсь, что она помогла кому-то более четко себе представить, что из себя представляют разные системы рекомендаций. Боюсь, что в ближайшее время у меня не будет возможности продолжать цикл, но чтобы компенсировать ваше потраченное время могу дать несколько ссылок, на которые стоит обратить внимание для дальнейшего изучения этой темы (к сожалению, они все англоязычные, в рунете я вообще ничего не нашел):
    — Robin van Meteren и Maarten van Someren: "Using Content-Based Filtering for Recommendation" (pdf);
    — Przemyslaw Kazienko и Pawel Kolodziejski: "Personalized Integration of Recommendation Methods for E-commerce" (pdf);
    — Michael J. Pazzani: "A Framework for Collaborative, Content-Based and Demographic Filtering" (pdf);
    — Christopher D. Manning, Prabhakar Raghavan и Hinrich Sch