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

    Реклама

    Хотите знать, что в данный момент читают другие пользователи интернета?

    Глаз народаТогда предлагаю попробовать расширение для Google Chrome, которое позволяет исполнить это желание. Называется оно “Глаз народа” и по задумке должно показывать самое интересное из читаемого в данный момент пользователями сети.
    Если кратко, то суть его работы в следующем. Расширение отслеживает активность пользователя браузера, протоколирует информацию о том, куда и когда он “ходил” и периодически отсылает данные на сервер. Сервер в режиме реального времени интегрирует полученную информацию, формирует и поддерживает постоянно меняющийся рейтинг популярного контента. Этот рейтинг возвращается всем пользователям расширения в виде короткого списка ссылок. По сути происходит обмен посещенными страницами интернета, позволяющий узнать, что сейчас интересно другим людям.
    К достоинствам такого способа делиться посещенными ресурсами можно отнести следующее.
    • Оперативность. Все происходит почти в реальном времени. Посещение вами веб-страницы может отразиться на текущем рейтинге уже через 10-15 минут.
    • Объективность. Оценку привлекательности контента производит система, исключая субъективные желания пользователя.
    • Непринужденность. Пользователю самому не нужно делать ровным счетом никаких специальных действий. Только получать результат.

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

    Безопасность

    Наверное один из первых справедливых вопросов, который может возникнуть, заключается в следующем. А не получится ли так, что это расширение возьмет и начнет делиться конфиденциальной информацией, которая может находиться на просматриваемых пользователем страницах? Попробую ответить.
    Во-первых, расширение не отсылает никакого содержимого из просматриваемого пользователем контента. На сервер отправляются только URL посещенных страниц, сопровождаемые дополнительной информацией о поведении пользователя. На данный момент таковая состоит исключительно из времени, проведенном на соответствующем ресурсе. В этом можно убедиться, взглянув на файл background.html. Даже если бы расширение захотело это сделать, то оно бы не смогло, поскольку не содержит контент-скриптов, не обладая соответствующими разрешениями. Именно поэтому во время установки расширения вы не увидите предупреждения о том, что оно “может получить доступ к вашим личным данным на всех веб-сайтах”.
    Во-вторых, любой адрес, прежде чем попасть в рейтинг, проходит проверку со стороны сервера на доступность. Поэтому, если страница защищена от свободного доступа, то даже ее адрес совершенно точно останется “между нами”.
    В-третьих, алгоритм построения рейтинга устроен так, чтобы минимизировать вероятность появления в рейтинге “случайных” страниц. Имеются ввиду такие, которые формально открыты, но вы бы не хотели, чтобы они предстали перед глазами широкого круга зрителей. Главное, что препятствует возможности такого события, — это решительное преимущество тех страниц, которые посещались множеством разных людей.
    пример окна расширения 'Глаз народа'Тем не менее. В момент написания этого текста расширение еще не опубликовано в открытом доступе. Цель данного рассказа как раз в том, чтобы привлечь заметное число пользователей сразу после его публикации, обеспечив ему минимально-осмысленную работоспособность. Поэтому, кто-то из вас окажется в числе самых первых реальных пользователей. Относительный вес пользовательских ссылок, когда их число мало, по понятным причинам довольно высок. Чтобы смягчить эффект искажений, связанных с особенностями начального периода использования, я “ужесточил” некоторые параметры, регулирующие вероятность “высвечивания” пользовательских ссылок с одной стороны, а с другой, чтобы было не скучно, добавил возможность появления полуслучайных ссылок, ни как не связанных с пользовательской активностью. Именно их можно будет наблюдать в списке первое время (пример на картинке). Сам же список я пока сделал покороче. Когда же наберется энное число пользователей, этот внешний источник я отключу, а список станет подлиннее.
    Несмотря на все эти обстоятельства, если вы хотите стопроцентной гарантии непоявления определенных страниц в списке, то поначалу можно открывать их в режиме инкогнито (в этом режиме расширения по умолчанию блокируются).

    Как это работает

    Немного подробнее о том, как работает система.
    В основу оценки популярности ресурса положены две характеристики: число пользователей, посетивших его за определенное время, прошедшее с текущего момента, а также показатели индивидуального к нему интереса, проявленного каждым пользователем. Показатель интереса рассчитывается как нелинейная функция от проведенного за просмотром конкретной страницы времени. Учитывать только время — довольно грубо. Но для первой версии я считаю вполне приемлемо. В перспективе это можно усовершенствовать, если учесть дополнительные характеристики поведения, а также особенности самой страницы.
    как работает 'Глаз народа'Расширение измеряет времена для каждой веб-страницы и периодически передает накопленные данные на сервер, получая в ответ текущий список рейтинга. Понятно, что переданные данные отразятся на рейтинге в лучшем случае к следующему запросу. Интервал между запросами сейчас как правило равен пяти минутам, но эта величина переменная, которая может меняться при определенных обстоятельствах.
    Сервер полученные от пользователя данные складывает в его индивидуальную “копилку”. С определенной периодичностью сервер “распечатывает” копилки активных пользователей, вычисляет показатели интересов, приводит к своей шкале времени и интегрирует данные разных пользователей, превращая их в оценки популярности каждой имеющейся странички для каждого заранее определенного момента времени. С другой определенной периодичностью сервер производит построение рейтинга. Для этого анализируется массив накопленных “моментальных” оценок популярности на определенную глубину в прошлое. В процессе анализа эти рейтинги суммируются уже в окончательный. При этом учитывается число пользователей, посетивших страницу, а также актуальность каждого “моментального” рейтинга (более свежие — актуальнее). Имеющийся список страниц сортируется, отсекается, проверяется, фильтруется и становится текущим. Глубина просмотра — величина переменная, зависящая от текущей пользовательской активности. Диапазон — примерно от пары часов до полусуток.

    Развитие

    Я надеюсь, что даже в таком виде, как сейчас, данная система окажется кому-то интересной.
    Но для меня ее создание является только маленьким шагом, который возможно позволит приблизиться к реализации идеи, которая меня на самом деле интересует.
    Многие из нас ежедневно читают новости, ищут что-то свежее интересное для себя, исходя из своих личных предпочтений. Для этого мы пользуемся поиском, rss-ридерами, лентами друзей, просто пробегаем по любимым сайтам, а также используем еще кучу разных способов. Поток свежего контента сегодня немаленький и чтобы его отфильтровать, порой уходит немало времени. Да, существует множество способов настраивать этот поток, исходя из своих предпочтений, но это далеко не всегда срабатывает, само по себе еще требуя времени и усилий.
    В размышлениях над этой проблемой у меня как-то зародилась мысль о системе, которая бы изучала поведение человека в сети и на основе полученных данных сама обучалась на предмет его интересов. Основываясь на этих интересах, такая система автоматически будет строить и модифицировать при необходимости набор персональных фильтров, который она применит к потоку постоянно поступающего свежего контента. А пользователю будет предлагать уже “отборное” содержимое, не требуя от него никаких специальных действий.
    выделение групп пользоватлейВернемся теперь к нашей системе с расширением для браузера. В процессе своей работы она постоянно имеет некий “горячий” список посещаемых веб-страниц. Можно сказать, что множество элементов этого списка задает систему координат в многомерном пространстве, а значения соответствующих показателей интереса — положение связанной с определенным пользователем точки в этом пространстве. Если получится выделить группы близких между собой точек, удаленных в то же время от остальных, то мы получим разделение пользователей на группы со схожими в некотором смысле интересами. Тогда, если строить независимые рейтинги в рамках выделенных групп пользователей, получим уже множество списков, ориентированных на определенные интересы людей. И эти списки будут определяться не какими-то искусственными категориями типа “спорт” или “политика”, а более естественными разбиениями, которые, как можно надеяться, дадут релевантный интересам пользователей результат.
    Далее можно подключить анализ непосредственно содержимого страниц. Если научиться классифицировать контент, то станет реальным решать задачу подключения всего информационного потока, включая ту его часть, которая не охвачена пользователями системы.
    Не стоит конечно слишком буквально воспринимать приведенную модель с пользователями-точками в многомерном пространстве. Это иллюстрация возможности подхода, а реализация может несколько отличаться. Поскольку это пока в мыслях, то вдаваться в дальнейшие детали не стану. Конкретика должна быть основана на исследованиях данных, которые я и надеюсь получить с помощью развития текущей реализации системы.
    Вполне возможно, что результаты работы этой самой текущей реализации окажутся банальными и не интересными для вас, как для пользователя расширения. Но может быть понимание задумки подтолкнет к тому, чтобы все-таки приютить на какое-то время подсматривающий зеленый глаз (кстати, если кликнуть правым щелчком на кнопке расширения, то там есть вариант “Скрыть кнопку”).

    О недостатках

    Главным недостатком на сегодняшний день является отсутствие пользователей. Понятно, что результаты работы такой системы будут не слишком достоверными. Например, поскольку данная публикация появилась на Хабре, то по-началу и генерируемый рейтинг окажется своего рода рейтингом статей с Хабра. Остается надеяться, что это со временем само исправится.
    Также очевидно, что поскольку сейчас система никак предварительно не классифицирует поступающие к ней URL, довольно быстро верхние строчки рейтинга займут крупные сервисы типа GMail или главные страницы популярных ресурсов (например, habrahabr опять-таки). Думаю, что эти случаи надо будет постепенно и целенаправленно отфильтровать, организовав, возможно, отдельный рейтинг. Но пока я хочу вместе с вами посмотреть на то, что получится.
    Понятно, что по задумке хочется видеть в генерируемом списке что-то для нас интересное из того, что возможно мы пропустили по каким-то причинам. Нет гарантии, что предложенный метод оправдает эти ожидания. И я предлагаю не рассматривать эту систему в качестве альтернативы чему-либо, а лишь как еще один способ взглянуть на поток поступающей информации.
    Я не имею представления о том, сколько людей захочет установить у себя расширение, какая окажется нагрузка и как она будет распределена. Я конечно тестировал систему, но это был “искусственный” режим. Поэтому я заранее прошу прощения за возможные “недоразумения”, если что-то пойдет не так.
    Теперь, перед публикацией текста, я могу опубликовать расширение. А всем читателям желаю удачи в наступающем новом году!