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

Автор оригинала: Alex Iskold
  • Перевод
Примечание: ниже перевод статьи «Rethinking Recommendation Engines» от Alex Iskold (знаменитого своими исследованиями в области экономики внимания и теоретических основ механизма социальных сетей), в которой автор рассматривает текущие рекомендательные системы и пытается предсказать, что ждет их в будущем (фактически, предлагает радикальный способ по их улучшению).

NeflixБолее двух лет назад Netflix анонсировал соревнование по движку рекомендаций: любой, кто изобретает алгоритм, позволяющий улучшить качество их рекомендательной системы не менее, чем на 10%, выигрывал один миллион долларов. Многие исследовательские группы с энтузиазмом взялись за дело, воодушевленные количеством доступной для анализа информации. В самом начале был достигнут некоторый прогресс, но затем он затормозился, и сейчас исследователи остановились в районе улучшения примерно на 8,5%.

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

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

Генетика рекомендательных движков



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

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


Перепросмотр Социальные рекомедации также известны как совместная фильтрация: люди, которые любят X также любят Y. Например, люди, которым нравится Властелин колец, скорее всего, также оценят Эрагон и Хроники Нарнии. Проблема с этим подходом заключается в том, что вкусы людей в действительности не разбиваются на простые категории. Если у двух людей общие вкусы в фэнтезийных фильмах, это совсем не означает, что они также будут любить драмы или детективы. В качестве хорошего пояснительного примера можно привести генетические особенности человека. Много раз мы встречаем людей, внешний вид которых нам кажется знакомым. Например, глаза или губы двух людей могут выглядеть очень похожими, однако, это совершенно разные люди.

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

Парень в гараже



Перепросмотр 2Сложность проблемы обеспечения пользователя хорошими рекомендациями заключается еще и в широком поле возможностей для этого. Ситуация очень похожа на определение, какой именно ген у человека отвечает за ту или иную особенность, так же сложно бывает установить, какие именно биты в музыкальном или видео-файле заставили нас отдать ему 5 баллов. Обратный инжиниринг (reverse engineering) мышления человека весьма непрост. Именно поэтому один из основных претендентов, отмеченный в упомянутой статье, использует весьма интересный способ для обеспечения верности рекомендаций.

Gavin Potter из Лондона, взяв себе ник «Парень в гараже» (Guy In The Garage), полагается на человеческую инертность. Очевидно, что оценка фильма зависит от оценки предыдущих фильмов, которые мы только что посмотрели. Например, если вы посмотрите три фильма подряд и проголосуете за каждый оценкой 4, а затем посмотрите более хороший фильм, то, скорее всего, вы дадите ему 5 баллов. В противном случае, если вы оцените эти фильмы всего лишь в 1 балл, то следующий фильм, за который вы проголосуете 5 баллами, получит лишь 4.

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

Заменяем рекомендации фильтрами



Перепросмотр 3Сколько раз вы попадали в следующую ситуацию: друг советовал вам какой-то фильм или ресторан — вы шли туда в предвкушении чего-то хорошего, но, в итоге, испытывали разочарование? Довольно много раз! Очевидно, что такая реклама завышает нашу оценку, увеличивая шанс неудачи. На математическом языке такой тип неудачи известен как ошибочный результат (false positive). Подумайте, что произойдет, если вместо рекомендации фильма друг посоветует вам, куда не стоит ходить, на что не стоит тратить свое время?

Что может произойти плохого в такой ситуации? Да почти ничего, потому что вы, скорее всего, просто не пойдете на этот фильм. Но, даже если вы на него пойдете, и он вам понравится, у вас не будет неприятного осадка. Этот пример демонстрирует различие наших реакций на неверную ошибку (false negative) и ошибочный результат. Ошибочные результаты расстраивают, а неверные ошибки нет. Идея перепросмотра рекомендаций как раз и заключается в использовании фильтров как применения вышеописанного явления.

Когда Netflix рекомендует что-либо, то практически заведомо обрекает сама себя на неудачу. Очень скоро она порекомендует вам фильм, который вам не понравится. Что если вместо этого, она будет предлагать вам новинки, и помещать рядом с каждой кнопку: отфильтровать те, которые мне, скорее всего, не понравятся. Алгоритм будет такой же, но восприятие его изменится.

Фильтры в режиме реального времени



Эта идея становится особенно важной и действенной в эпоху новостей в режиме реального времени. Мы все больше и больше приучаемся фильтровать новую информацию. Мы делаем это каждый день в наших RSS-аггрегаторах. Мы думаем об окружающем мире в терминах потоков новостей, когда вещи в прошлом уже не является актуальными. Нам не нужны рекомендации, потому что мы и так уже слишком подписаны. Нам нужны шумовые фильтры (noise filters). Нам необходим простой алгоритм, который говорил бы нам: «Эй, это определенно не то, что тебе нужно,» — и прятал бы это.

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

Заключение



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

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

Спасибо всем, кто ознакомился с данным переводом. Пожалуйста, оставьте свои мысли и комментарии по заявленной проблематике.

Web Optimizator: проверка скорости загрузки сайтов

Комментарии 25

    0
    Статья хорошая, безусловно, но не могли бы вы исправить некоторые ошибки? Перечитайте повнимательней.
      +1
      был бы признателен, если бы указали конкретные места, которые, по Вашему мнению, стоит переработать
        +1
        Я не буквоед, но из-за этих ошибок пришлось абзац три раза перечитать чтобы понять:)
        2й абзац - "...любой, кто изобретает алгоритмА.."
        - "...количеством доступнОМ для анализа информации.."
        - "...достигнут некоторый прогреАсс.."
        - "...скорее, вопросом преставления.." (наверное все-таки преДставления:)
        - не буду перечислять еще что-то потому что вы сами должны были это сделать перед тем как постить.
          0
          Александр, я уважаю Ваш труд, но считаю недопустимым указывать, что я должен был сделать перед публикацией
            0
            Не обижайтесь, я из хороших побуждений (да и кто я такой, чтобы Вам указывать:).
              0
              да я внес уже все правки, чуть еще подправил, it's OK :)
      +1
      Веселые времена настанут тогда, когда эти рекомендательные системы станут на столько хороши и популярны, что фильмы начнут снимать под них.
        0
        А что в этом плохого, собственно говоря? Наверняка сценаристы в Голливуде уже давно имеют набор штампов, которые нравятся публике. На самом деле, интересное начнется тогда, когда фильмы станут интерактивными.
          0
          в шоубизнесе будут создаваться аналоги дорвеев
            0
            они и так уже давным давно есть
        0
        Я лично использую рекомендательный сервис imhonet. Должен сказать, он бывает ошибается, однако в большинстве случаев предугадывает довольно верно.
          0
          Alex Iskold прежде всего знаменит своими статьями о семантике, у него и компания на этом специализируется. Очень хорошие у него статьи, популярные такие, то есть легкие, потому с удовольствием читаю.
            –2
            Это что - машинный перевод?
              0
              Если не брать в расчет фильмы и новости, где было бы хорошо применить вышеописанные фильтры?

              Их можно применять там же, где сейчас уже применяют рекомендации, например, в музыке. В Imhonet ещё есть разделы, посвящённые книгам, сцене, комп. играм.
              Можно ещё к кафе/ресторанам.
              Фильтры и рекомендации можно применять вообще ко всем вещам, которые можно сравнивать и выбирать.
                0
                livelib.ru Рекомендует книги. Пока доволен, книги куда медленнее читаются поэтому навреное дольше буду доволен.
                  0
                  > Ошибочные результаты расстраиваются, а неверные ошибки нет.

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

                  К сожалению, в статье практически не раскрыта тема успешных алгоритмов конкурса Netflix, так чтобы мы смогли применить их на практике.
                    0
                    Первая цитата приведена как лишенная смысла :) Наверное, там утеряно "из-за"
                      0
                      ОЗОН как раз предлагает "то, что тебе должно понравиться". При этом позволяет настроить рекомендации вручную. Таким образом пытаются уменьшить риск того, что в статье названо "ошибочный результат".

                      Тема про "неверные ошибки" — это, как японял, не выбор "хороших" сущностей, а удаление "плохих". В общем-то спам фильтры работают по такому принципу. Считаем, что нам страшнее плохое назвать хорошим чем не назвать хорошее хорошим. В статитсике это ошибки 1го и 2го рода (никогда не мог запомнить что из них что).

                      Мне, как раз, очень понравилась эта идея. Новая для меня мысль в плане рекомендательных систем.
                        0
                        А, спасибо, теперь понял. Интересная идея. Только вот она мне кажется затратной с точки зрения рассчетов. Если для писем понятны параметры для оценки (текст, отправитель и т.д.), то какие параметры у рекомендательной системы? Искать максимально непохожих на данного пользователя пользователя и вычеркивать его предпочтения?
                          0
                          Идея частично в статье была: из множества киноновинок отсечь заведомо мне неинтересные. Понять, что мне НЕ интересны низкобюджетные ужастики, тупые молодежные комедии и все фильмы с Вином Дизелем (все для примера) — задача сопостовимая с определением интересных фильмов. Тут вся выборка сущностей достаточно маленькая. Мне бы лично такой сервис был бы интересн...

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

                            Заведомо неинтересные? Но тогда и пользователя нужно отправлять не на оценку прочитанных книг, а того, что ему не нравится?
                              0
                              >> Но тогда и пользователя нужно отправлять не на оценку прочитанных книг, а того, что ему не нравится?

                              Ну почему же?! Юзер идет на список новинок, видит большой список. Нажимет кнопку "убрать неинтересные" и список существенно сокращается. Почему это лучше, чем вывести список понравившихся — (см. статью) психология потребителя.

                              Повторюсь, что это хорошо на сравнительно небольшом списке объектов. Даже больше: если до удаление "мусора" список необозримо большой, а после — вполне доступен для беглого просмотра, то наша модель заработала!
                                0
                                > Юзер идет на список новинок, видит большой список. Нажимет кнопку "убрать неинтересные" и список существенно сокращается.
                                Это понятно, это уже следствие алгоритма. А сам алгоритм? Из чего он будет получать информацию о том, что есть потенциальный "спам"?
                                  +1
                                  Нужны неоторые события, характеризующие негативное отношение к товару. Например, плохая оценка товара, плохой отзыв, малое время просмотра (это уже сложно и экзотично). А дальше все аналогично поиску положительных рекомендаций (тут масса вариантов). "Товар не нравиться похожим на меня людям => не понравиться мне"
                                    0
                                    Хм, довольно интересный подход. Задумался.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое