Pull to refresh

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

Reading time6 min
Views2.5K
Original author: 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: проверка скорости загрузки сайтов
Tags:
Hubs:
+24
Comments25

Articles