Мозг и когнитивные функции

суббота, 18 декабря 2010 г.

"Социальные" рекомендации #2

Продолжается "эпопея" социальных рекомендаций.

Даже, учитывая всю ущербность коллаборативной фильтрации и доказанные/неоспоримые преимущества персональных рекомендаций (которые сильные мира сего окрестили "примитивными") закончен прототип именно "социальных" рекомендаций. Прототип выполнен в рамках поставленной задачи - сделать "что-нибудь". Т.е. "от столба и до обеда". Прототип не содержит ни капли интеллектуальной собственности и основан ТОЛЬКО на open source решениях и алгоритмах. Прототип выполнен "в одно лицо" за 4-ре дня в режиме "full-time".

Тезисно, его особенности:
  • Поддерживается граф социальных связей (друзья/фоловеры);
  • Любая активность тех за кем вы следите попадает в список ваших социальных рекомендаций;
  • Персональные рекомендации строятся на основе коллаборативной фильтрации;
  • Ваши социальные рекомендации строятся как список рекомендованного вашими друзьями + коллаборативная фильтрация на подмножестве пользователей которые являются вашими друзьями;
  • НИКАКОЙ специализации на специфику образцов, равно как и НЕТ персональных предпочтений (на основе особенностей характера, вкусов, возрастных и гендерных характеристик). Кстати, именно такие рекомендации и являются “настоящими”. Учитываются ТОЛЬКО рейтинги;
  • В прототипе НЕ поддерживаются рейтинги по категориям: позитивные/нейтральные/негативные. Только средний рейтинг;
  • Прототип готов к использованию в односерверном варианте;
  • Используется НЕ эффективная сериализация (протокол между клиентом и сервером);
  • Прототип может использоваться в продакшине при ограниченных нагрузках (не более 150 друзей, не более 500 заблокированных экземпляров – это такие, которые удалили из списка рекомендованных и других ограничения – которые будут выявлены при стресс тестировании);
  • Прототип НЕ поддерживает холодный старт и НЕ содержит ничего, что имеет хоть какую-то ноу-хау составляющую или интеллектуальную собственность (ну что могло бы быть оценено в 100 рублей за произведение). Отсутствие холодного старта – это пустой список рекомендованного если не накоплена статистика;
  • Прототип может быть изменен/доработан (поддерживается гибкая система конфигурирования и кастомизации) либо полностью заменен;
  • Имеется рудиментарный WEB UI для демонстрации;
  • Прототип поставляется как один JAR + конфиг для него;
  • Хранилища прототипа реализованы полностью на файлах и не требуют наличия какой-либо базы данных.
Некоторые подробности

Как я писал ранее, "социальные" рекомендации являются "новой струёй" в индустрии. Они основываются на активностях ваших друзей (графе социальных связей) и банально сводятся к следующему алгоритму. Если вашему другу понравился образец (музыкальный трек/пылесос/автомобиль BMW x6/кефир/фильм/...) то всем его друзьям (фоловерам - т.е. тем кто за ним "следит" в соц.сетях) будут рекомендовать те же образцы, только с определенным "весом". Например, ваш друг купил образец - тогда вам рекомендуют тот же образец с весом X. Если ваш друг оценил образец (ну понравился ему купленный x6, а вы даже не имеете и трети стоимости этой бэхи) - тогда вам рекомендуют BMW x6 с весом Y. Если ваш друг, посоветовал остальным пользоваться iPad'ом (а вы не любите поделки Apple и предпочитаете Android) - тогда вам таки рекомендуют iPad с весом Z. Результирующий список "социальных" рекомендаций будет собран и отсортирован в соответствии с весами. Это и есть "гениальное" изобретение именуемое "социальными" рекомендациями. То что это полнейшая лажа - я оспаривать не буду, да и в полемику обычно не вступают те люди которые принимают решения и которым втюхивают подобное. Главное, что прототип делает то что заказывали :) На этом фоне, поискать похожие оценки (рейтинги) на подмножестве друзей методом подобия Пирсона или др. - будет "великой наукой" (кстати, прототип это тоже делает). Конечно, алгоритм может и должен быть более "замысловатым", но это уже "наука" и НЕ open source решения.

Перспективы
Учитывая предыдущий опыт общения "по существу" с сильными мира сего и с работодателями (которые и заказывали исполнение прототипа - сделать хоть что нибудь), даже не берусь прогнозировать дальнейшее развитие событий. Кроме того, одному за условную неделю, родить то, что ваяли коллективом из 5+ человек 6-ть месяцев и то, что преподносилось как "настоящее" ... это, ну, ... не хочу ругаться (с оговорками). Отвечая на любимый вопрос В.И. Ульянова-Ленина: "Кому это выгодно?" - могу сказать лишь то, что в сложной "иерархии" каждый преследует свои интересы. К сожалению, эти интересы не имеют общего вектора (как лебедь рак и щука). Время покажет.

Продолжение следует...

Комментариев нет: