Оглавление:
Правило 5 друзей вконтакте
Однажды в студеную зимнюю пору я столкнулся с упоминанием того, что кто-то в Facebook пытается подтвердить теорию шести рукопожатий. Для тех кто не в курсе, эта теория заключается в том, что все жители земли в среднем знакомы друг с другом через цепочку из пяти друзей (т.е. шести рукопожатий). Подробнее об истории этой теории можно прочитать в википедии, там же можно узнать о том, что Майкрософт несколько лет назад пыталась подтвердить эту теорию на основе данных о контакт-листах мессенджера MSN — в результате у них получилось 6,6 рукопожатий, что вполне вписывается в теорию.
Очень мне захотелось эту теорию подтвердить самому, используя данные, которые есть под рукой — ВКонтакте. Для претворения моей странной идеи в жизнь надо было решить целый комплекс проблем:
- На каких данных это все расчитывать.
- Где эти данные взять.
- Как эти данные сохранять.
- Каким алгоритмом воспользоваться для расчетов.
С засильем социальных сетей в современной жизни вопрос о том, где взять данные о социальных связях, не такой уж сложный. Конечно, было бы прекрасно взять данные о друзьях из Facebook, ведь он охватывает весь мир, да и народа там много. Но через публичный API вытянуть список друзей для любого человека я не могу, а парсить страничку — не самый эффективный вариант, ибо Facebook список друзей выплевывает в виде dhtml, примерно по 1кб данных на одного друга, итого 400М человек * 130 друзей в среднем * 1кб = 52 Тб трафика. Такой объем трафика малость не вписывался в стремившийся к нулю бюджет исследования, и вариант с Facebook был откинут.
Мой взгляд был устремлен на ВКонтакте. Да, он охватывает только Россию и СНГ (причем неравномерно — в одноклассниках, к примеру, публика постарше). Да, там огромное количество ботов. ВКонтакте неидеален, но зато умеет раздавать список друзей в json-формате через запрос к al_friends.php.
Но как эти данные хранить и обрабатывать?
- Можно пойти в лоб и писать сразу в MySQL: паук выплевывает 100 пользователей в секунду, у каждого 130 друзей, итого 13000 вставок в БД в секунду. Цифра не запредельная, но с учетом того, что паук работал на слабом сервере (старый одноядерный атлон), не совсем радужная.
- Можно писать текстовый дамп на диск, а потом всасывать его в базу данных. При таком раскладе база будет весить примерно (4 байта (размер поля user_id) + 4 байта (размер поля friend_id) + 8 байтов на оверхед и индексы) * 80М пользователей вконтакте * 130 друзей = 166Гб. Многовато будет. Причем выборка с такой базы всех друзей пользователя не будет выглядеть как суперэффективный запрос.
- Можно забить на MySQL и использовать какое-нибудь hash-value хранилище. В него писать пару «user_id array(friend_id friend_id . )», таким макаром база сдуется раза в четыре и всех друзей будет выбирать одним обращением к диску. В качестве хранилища изначально был выбран Kyoto Cabinet, но из-за каких-то странных аномалий в производительности на большой базе состоялся переезд на гугловый LevelDB.
Спустя трое суток и полтора терабайта трафика база друзей была получена (между прочим, всего лишь 22Гб). И тут возникает самый интересный вопрос: как же считать дистанцию между пользователями?
- Алгоритм Флойда-Уоршелла, позволил бы рассчитать дистанции от всех пользователей ко всем. Чудесный алгоритм, но у него есть неприятное требование памяти — необходимо хранить квадратную матрицу user_id/user_id, которая бы занимала 1 байт * 80М пользователей * 80М пользователей = 6400 Тб. Совсем многовато.
- Алгоритм Дейкстры, позволил бы найти дистанции от одного пользователя до всех остальных сразу. Существует довольно много эффективных его реализаций, одна из которых и была ради эксперимента использована. Алгоритм чудесно работал на 1% синтетическом сэмпле всей базы, но при запуске уже на среднем 10% семпле базы начинал жестоко тормозить в довольно неожиданном месте — обход большого дерева друзей постоянно лазил в случайные места памяти и ловил почти 100% CACHE_MISS и без того слабого процессора. Говоря человеческим языком, данные не помещались в кэш процессора, и тут начинались феерические тормоза.
- Двунаправленный поиск. Да, не самый элегантный в мире алгоритм, зато простой как таблица умножения. Позволяет найти кратчайшую дистанцию между двумя пользователями. Реализация его писалась с использованием битовых полей, которые элегантно упихивались в кэш процессора, в результате дистанцию между двумя людьми алгоритм находил где-то за полминуты.
При решении ресурсоемких задач я люблю делать такие их реализации, которые будут нормально работать даже на моем скромном нетбуке, а потом уже включать тяжелую артиллерию. В качестве тяжелой артиллерии использовался скромный сервер с двумя шестиядерными ксеонами X5650 и 32Гб памяти. На нем дистанция считалась уже за 10 секунд на поток. С учетом распараллеливания, за минуту рассчитывались дистанции между 144 парами пользователей.
Далее начались странности с данными. Почти 50% всех пользователей с ненулевым количеством друзей входило в абсолютно независимые кластеры, в которых нет внешних связей (или таких связей полторы штуки на весь кластер). Грубо говоря, 50 человек зафрендили друг друга и больше никого. Довольно странное поведение, не так ли? Да, возможно, это сектанты и им религия запрещает френдить ВКонтакте не-членов секты. Но врядли, скорее всего это боты.
Выкинув ботов, отловленных подобным неожиданными способом, было проанализировано 6773 пары пользователей и получился очень интересный результат:
На гистограмме по оси x — длина найденной кратчайшей цепочки друзей, а по оси y — вероятность ее найти в процентах.Таком образом, в среднем, между двумя случайными пользователями ВКонтакте есть 5.65 друзей (т.е. 6.65 рукопожатий). Эта цифра вполне вписывается в изначально проверяемую теорию, к тому же довольно точно совпадает с результатом, полученным в Microsoft (у них вышло 6.6). Так что полученный результат можно считать еще одним подтверждением теории шести рукопожатий.
m.habr.com
Женская блогика / Как я проверяла теорию шести рукопожатий
Дело было вечером, делать было нечего. В процессе произвольного серфинга по инете наткнулась на инфу , как проверить теорию тесного мира («теорию 6 рукопожатий») в контакте.
Кому лень идти по ссылке в Вики, кратко по сабжу: теория шести рукопожатий — теория, согласно которой любые два человека на Земле разделены в среднем лишь пятью уровнями общих знакомых (и, соответственно, шестью уровнями связей).Теория была выдвинута в 1969 году американскими психологами Стэнли Милгрэмом и Джеффри Трэверсом (Jeffrey Travers). Предложенная ими гипотеза заключалась в том, что каждый человек опосредованно знаком с любым другим жителем планеты через цепочку общих знакомых, в среднем состоящую из шести человек. Милгрэм опирался на данные эксперимента в двух американских городах. Жителям одного города было роздано 300 конвертов, которые надо было передать определённому человеку, который жил в другом городе. Конверты можно было передавать только через своих знакомых и родственников. До бостонского адресата дошло 60 конвертов. Произведя подсчеты, Милгрэм определил, что в среднем каждый конверт прошел через пять человек. Так и родилась теория «шести рукопожатий».
Как ее проверить вконтакте?
Излагаю.
1. Напишите в поиске людей любое имя и фамилию, какие придут в голову 2. Из полученного списка выберите человека не из вашего города (лучше подальше, чтобы было интереснее) 3. Зайдите в его список друзей и перейдите на страницу первого в списке (незнакомые друзья ранжируются по рейтингу) 4. Повторите пункт 3, считая количество «рукопожатий». В среднем бывает 3-5 переходов.Сказано — сделано! А поскольку девочка я литературно подкованная, но с вполне банальными ассоциациями, первыми на ум пришло имя (сделайте паузу и проверьте себя)
Все верно, ищем Евгения Онегина. В контакте их аж 2 тыщи. с гаком!
Не заморачиваясь, перехожу по верхней ссылке. Хм, товарищ то необщительный, всего три гаврика в френдах. Большая редкость по нынешним временам.
Захожу на страничку к первой даме в полосатом купальнике. У нее друзей побольше.
Но скрин ее страницы не вставляется в пост, хоть убейся! Цензура, однако! Будем искать обходные пути. Пришлось загрузить скрины в галерею и давать ссылки. Интересно, хоть так работать будет?
И темасисек ,так волнующая наших блогеров мужеска полу, вполне себе раскрыта.От этой мадмуазели перехожу к страничке некого красавчика Олега Панова, у которого в друзьях 2 350 человек, и не все они — девушки.
С его перечня друзей первой в списке страничка некой Юлианны Жемчуговой, предстающей на своей страничке почему-то сразу в коленно-локтевой позе. Бинго! Оказывается, с энтой очаровашкой у нас один общий знакомый! Итого — ровно 5 шагов. В легком остолбенении ставлю контрольный опыт.
Вспомнив менее банального и потрясшего меня в школьные годы персонажа классической литературы, задаю в поиске Екатерина Измайлова. Однофамилиц леди Макбет Мценского уезда нашлось 460 штук, если «вконтакте» не врет.
Перехожу по ссылке той, что живет на краю света — в Магнитогорске. Заодно освежаю в памяти, где это.
У госпожи Измайловой в списке друзей первым числится некто Игорь Добровольский, тоже вполне себе общительный товарищ.Из его 1172 френдов меня интересует первый по списку — Андрей Сафронов (везет мне сегодня на красавчиков! )
0 %У него даже мобильный телефон на страничке записан, но не это главное. Первым из списка 2 757 друзей Андрея выдается страничка некоего Алексея Усовича из ВГУ им. Машерова.
Разумеется, с господином Усовичем тут же обнаруживается общий друг
Итого — три «рукопожатия»
Далее в контрольных замерах выяснилось, что с Андреем Макаревичем или его клоном в сети меня сближает (разделяет?) 4 человека, абстрактным Ваней Сидоровым — 5, Петей Ивановым — 7.
Подробно уже не раскажу, сил делать скрины не осталось, да и движок блога (Ау, разработчики!) барахлит, напрочь отказываясь вставлять картинки. Черте те что! Два дня пишу пост, надоело. Все, вывешиваю, что получилось.Пианиста не стреляйте, он играет, как умеет.Ну и финальный вопрос.
А вы, уважаемые однобложане, ощущаете свою связь со всем миром? И как она проявляется?У меня два встречных вопроса: Зачем вам это надо? И самое главное зачем я весь ваш пост (внимательно) в двенадцать ночи прочитал?
Влом читать, принцип знаю, смысл забавы понял по скринам вконтакте. Могу порекомендовать следующую: за 6 переходов дойти с одной страницы Википедии до другой. К примеру, с XVIII Олимпийских игр до Фейербаха 🙂
aspasia.bloger.by
Что лучше: много друзей или много подписчиков ВКонтакте?
Решил разобраться, что же лучше для продвижения аккаунта ВКонтакте: иметь много друзей или много подписчиков? Начал изучать мнения людей в сети.
А мнения разошлись. Кто-то предлагает сначала набрать друзей до лимита (10 000), а потом набирать подписчиков, кто-то говорит «не имей 10 000 рублей, а имей 10 000 друзей», кто-то за подписчиков. Однозначного ответа нет.
На что влияет количество друзей/подписчиков?
В первую очередь на ваши позиции в выдаче поиска людей ВК. Анализируя популярных людей, видно, что у них много именно подписчиков.
Специально выбрал локальные параметры поиска, чтобы исключить звёзд российского масштаба
В итоге я пришел к выводу, что иметь большое количество подписчиков полезнее для рейтинга, нежели иметь 10 000 друзей.
Большое число подписчиков указывает на то, что людям интересно следить за вашей страницей. Друзья могут скрыть ваши обновления из ленты и вы об этом даже не узнаете. Подписчики могут только отписаться. А если их много, они не отписываются, значит, вы интересная личность. По крайней мере так считает ВК.
Думаю, другие социальные сети считают так же, т.к. если смотреть популярные аккаунты в том же Instagram, можно увидеть, что у них мало подписок и несоразмерно больше подписчиков.
Как быть с уже добавленной армией друзей?
Тоже задался этим вопросом. Лента завалена постами незнакомых мне людей. Скрывать каждого — не вариант.
Я решил поступить немного иначе. На рейтинг в социальных сетях влияет не только количество подписчиков, но и охват, и вовлеченность аудитории. Что это значит? Это значит, что если у вас огромная армия подписчиков, но никто не лайкает и не комментирует ваши посты, то либо вы что-то не так делаете, либо аудитория у вас вялая/накрученная.
Например, на момент написания этой заметки, у меня в друзьях ВК было 1169 друзей и 503 подписчика (1672 чел.). А в среднем количество лайков поста составляло от 30 до 50. Комментариев, как правило, не много — в среднем до 5.
В итоге получаем вовлеченность аудитории около 3% (примерный подсчет). Много это или мало? Мало. Очень мало. Вовлеченность аудитории Instagram у меня доходит до 30%. Это значит, что 30% из всех подписчиков так или иначе отреагировали на мой очередной пост: лайкнули или прокомментировали. А это уже хороший показатель. Это означает живую и активную аудиторию.
Что делать? Я решил постепенно переводить неизвестных мне людей из друзей в подписчики. Так я упрощу себе работу со списком друзей, оставив только тех, с кем действительно общаюсь и знаком лично.
Если кто-то обидится за такое мое хамское поведение и отпишется — не обижусь. Как раз и узнаю, кому из нынешней аудитории действительно интересны мои посты, а кто висит «для кучи».
Буду рад, если вы поделитесь своими наблюдениями и опытом по теме поста в комментариях.
tiil.ru
7 интересных возможностей «ВКонтакте», о которых нужно знать
Большинство из нас пользуется «ВКонтакте» каждый день, даже не задумываясь о многих неочевидных функциях этой социальной сети.
1. Как удалить таргетированную рекламу
Избавиться от рекламных баннеров в левой части страницы довольно легко: просто измените язык интерфейса «ВКонтакте» на английский. Если переключение на язык Шекспира и Елизаветы II для вас слишком радикальное решение, попробуйте «Советский»: реклама также будет удалена.
2. Как отправлять сообщения на электронную почту
С некоторых пор «ВКонтакте» поддерживает возможность переписки вне платформы. Просто начните набирать email в строке выбора адресата. Ответ на письмо придёт вам в личные сообщения.
3. Как бесплатно получить голоса «ВКонтакте»
Голоса «ВКонтакте» необходимы для того, чтобы дарить подарки, покупать стикерпаки и играть в некоторые игры. Большинство пользователей сети уверены, что единственный способ получить голоса — пополнить баланс настоящими деньгами. Но это не так.
Чтобы получить голоса бесплатно, необходимо перейти в настройки, после чего выбрать вкладку «Платежи и переводы». Нажатие кнопки «Пополнить баланс» приведёт к выбору источника оплаты. Здесь необходимо кликнуть на пункт «Специальные предложения».
Перед вами откроется список заданий от рекламодателей. При нажатии на задание появится более подробное его описание. Выполните необходимые задачи — и голоса ваши.
4. Как прикрепить снимок экрана
Прикрепление снимка экрана без необходимости сохранения отдельного файла изображения — результат совместной работы «ВКонтакте» и базовой функции Print Screen. Для прикрепления изображения вам нужно сначала нажать клавишу PrtScr, которая по умолчанию копирует снимок экрана в буфер обмена, а затем Ctrl + V в окне отправляемого сообщения.
5. Как фильтровать новости в ленте
Структурируйте новостную ленту по категориям для удобства просмотра. Вы можете даже полностью исключить из ленты новости из определённых источников. Настройки фильтрации постов в ленте располагаются в правом верхнем углу на стартовой странице «ВКонтакте».
6. Как перемещать треки в плейлисте
Прослушивание музыки в социальной сети доступно не только во вкладке «Аудиозаписи», но и на любой странице сервиса. Проигрывание осуществляется через мини-плеер в верхней части страницы. Составляя плейлист, вы можете перемещать композиции местами, причём это не отразится на последовательности песен в «Аудиозаписях».
7. Как использовать ботов «ВКонтакте»
Боты — автоматизированные собеседники, предназначенные для выполнения определённых задач. Они умеют распознавать QR-коды, переводить тексты, распознавать музыку по записи с микрофона, а также делать десятки других полезных вещей. Чтобы открыть для себя весь спектр предлагаемых ботами услуг, просто введите «бот» в поиске групп.
А какими неочевидными возможностями «ВКонтакте» пользуетесь вы? Расскажите в комментариях.
lifehacker.ru
Как завести друзей и оказывать влияние на свой социальный граф (ВК+ФБ)
Современные социальные сети бывают жестоки. Только завел аккаунт, разослал сто реквестов в друзья звездам, политикам и другим селебрити, как тебя уже заблокировали на две недели.
Говорят, что среднее количество друзей в соцсетях — около 140, но до этой цифры еще нужно дорасти. Как сделать так, чтобы вас добавил в друзья Цукерберг, Дуров или хотя бы Цыплухин? Читайте наш подробный гайд.
1. Не добавляйте всех подряд
Это основное правило. Если вы не хотите оказаться через пару дней с тысячей случайных людей, из которых вы будете знать трех-четырех, а остальные будут гореть желанием пригласть вас на важную вечеринку в Брянске или продать вам эксклюзивных и непременно оригинальных парфюмов, нажимайте «Оставить в подписчиках» или «Я его не знаю» чаще, чем «Добавить в друзья».
Люди с тысячей-другой друзей вызывают подозрения как на Фейсбуке, так и ВКонтакте. Вряд ли кто-то в состоянии переварить контент пяти тысяч человек, а это значит, что владелец известного и популярного аккаунта никогда не прочитает ваш статус. Но вы ведь его добавляли именно для этого?
2. Используйте свое настоящее имя
Продажу Вагонов, фейковых Павлов Дуровых, Дарью Пластиковое Окно, добавляют в друзья только люди с железной волей и массой свободного времени, готовые стоически терпеть спам в личных сообщениях, попытки взлома аккаунты и бесконечные приглашения на абсурдные ивенты.
ВКонтакте фейковость имен никого не волнует, Фейсбук активно блокирует неугодные профайлы по странному алгоритму: фейковый аккаунт может жить и процветать годами, а свежесозданного бота с каким-то реальным именем могут выпилить за секунду.
3. Поставьте на аватарку свою фотографию
Возможно вы желаете остаться анонимным, но какой резон тогда кому-то дружить с вами? В мире слишком много Иванов Смирновых, чтобы тратить время на еще одного, который не удосужился даже загрузить свою фотку.
Отдельная каста — любители котиков, песиков, селебрити и смешных картинок на юзерпиках. Это круто, что вы смогли найти фотографию Джейсона Стетхема или классного кота, но шансы на то, что вас добавит кто-то, кто ценит свое личное пространство обратно пропорциональны популярности картинки в интернете.
4. Заполните хоть какую-то информацию в профиле
Если ваше имя не на слуху и журналисты ежечасно не обрывают ваш телефон звонками с просьбой прокомментировать то или иное событие, то не стоит пренебрегать этим советом. Возможно, кто-то бы и рад с вами подружиться, но понятия не имеет, что за очередной Сергей Пенкин стучится к нему в друзья. Небольшие уточнения, например, место работы, увлечения, любимая певица или сорт пива, уже облегчат путь в нахождении единомышленников.
Главное — не переборщить:
5. Не нужно делать перепосты всего подряд
По нашим экспертным наблюдениям, соцсети вполне подчиняются правилу 90/9/1. 90% людей бездумно потребляют контент, 9% вовлекаются и 1% его создает. Для ВКонтакте это правило больше похоже на 99/0.9/0.1 — уж слишком часто местные пользователи злоупотребляют так называемыми «репостами» так называемых «пабликов».
Что происходит в замкнутом кластере из 100 людей, которые находятся друг у друга в друзьях и подписаны примерно на те же страницы, когда они все начинают репостить «смешную» картинку из «паблика» с 3 млн. подписчиков? Репосты схлопываются в «98 похожих записей скрыты из ленты», а самые резкие — скрывают ценный меморетранслятор навсегда.
6. Не пишите слишком много
Если вы проводите (по работе, или «по работе») по 12 часов в день в соцсетях, это не значит, что так же поступают все те, кто имел неосторожность добавить вас в друзья.
Пять-десять постов в день — вот предел, который может вытерпеть средний человек (если, конечно, у него не 1000 друзей). Фейсбучный Edge Rank как-то помогает справиться со всей этой социальной диареей, интеллигентно скрывая от вас самые интересные посты друзей, а вот ВКонтакте вываливает абсолютно весь контент вам в ленту. Неудивительно, что любители описывать каждые 15 минут своей жизни скоро оказываются у всех в черных списках.
Если у вас социальное недержание — есть место и для таких как вы, в Твиттере таких любят например.
7. Не подписывайтесь на всё подряд
Публичные страницы что в ВК что на ФБ нужны для того, чтобы коммуницировать с брендом и вовлекаться в корпоративный мессидж, помните об этом.
Если вы видите в списке подписок человека такие высокоинтеллектуальные источники как МДК, Борщ или «VIP клуб для людей с чувством юмора. Юмор с характером (18+)», то, скорее всего, перед вами либо одноклеточный организм, который не стоит вашего внимания, либо владелец этой страницы, либо топ-менеджер, которому на условности наплевать.
Кстати, наша страница в ваших подписках говорит исключительно о вашем тонком вкусе, страсти к изысканным и премиальным брендам, хорошем пищеварении и широком кругозоре.
8. Не спамьте в личку
По статистике, личное сообщение «добавь» снижает шанс одобрения заявки на 95%. Не надо так.
Отдельно стоят просьбы что-то кому-то передать. С такой проблемой сталкивался любой, кто есть в друзьях у Павла Дурова (тоже хочу). «Передайте, что он дебил». «Пусть вернет стену». «У меня есть идея, но я расскажу ее только Павлу, пусть он мне напишет». «А ты кто такой, что тебя Дуров добавил?» За такие сообщения, обычно, добавляют в бан, а не в друзья.
Фейсбук решил эту проблему разделением входящих сообщений на «Входящие», куда попадает переписка от друзей и оплаченные месседжи от незнакомцев и «Прочее», где резвятся спамеры и прочие цифровые проходимцы.
Соблюдайте эту социальную диету и рано или поздно к вам придет успех, счастье и влиятельные друзья.
vc.ru