Ботов отличать от людей и правда сложновато. Я и сам толком не могу это сделать. Но зато я придумал неплохой велоси... метод, как отличать в VK «интересных людей» от «не очень интересных». В плане сетевого общения, естественно, а не по жизни.



Если вам в друзья стучится кто-то, а вы с первого взгляда не можете понять это вообще нормальный человек или хрен знает кто, этот метод может дать немного полезной информации о пользователе. Использовать его для выявления актуальных таргет-групп вряд ли выйдет, потому что VK поставил ограничение на возможность скачивания содержимого стен пользователей, да и медленный больно он. Т.е. можно, но надо сильно дорабатывать, оптимизировать и изворачиваться, чтобы обходить ограничения.

Основная идея


Основная идея заключается в том, что боты, унылые (в сетевом плане) личности, всякие массовые собиратели друзей-подписчиков не очень заботятся о том, кто у них в друзьях, хотя могут достаточно много «писать» у себя на стене содержательных постов. Но унылые личности свою ленту особо не читают, а ботам это вообще не надо. Тем более это не надо массовым собирателям подписчиков и звездам.

Но людям, которые имеют хоть какие-то коммуникативные интересы относительно ВК, как раз очень важно, кто у них в друзьях. И, конечно, они не будут у себя в друзьях собирать 6000 чуваков, которые шапрят только репосты, картинки голых баб и рекламу сливных бочков со скидкой со склада в Новом Уренгое.

И на этом основании можно попытаться составить критерий, по которому выделять людей, которые интересуются содержанием своей ленты. Такие люди проявляют черты настоящего человека. Человека, который, как минимум, осуществляет содержательный односторонний коммуникативный акт. В наше время это уже не так мало.

Сразу мне в голову пришли два критерия:

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

И как в итоге я это проверял?


Я выбрал 50 случайных своих друзей и 50 случайных подписчиков, которые отвечали некоторым критериям, которые бы отрезали совсем очевидных фейков, детей или людей, которые не пользуются этим всем. Типа того, что пользователь не должен быть деактивирован и у него должно быть при этом больше 50 существующих друзей.

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

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

  1. Средний размер словаря друзей человека за их первые 100 постов. Т.е. 50 друзей, у каждого примерно по 100 постов. Для каждого друга все слова из 100 постов сгребаются в кучу, стеммируются и считается количество уникальных слов друга. Дальше считается среднее для всех 50-и друзей. От этого значения брался корень — SQRT(Dic).
  2. Если у друга больше 60 из 100 постов без слов, он обозначается «потерянным». Процент «потерянных» людей в друзьях это второй фактор — Percent.

Еще один фактор проявился случайно. Это логарифм от Айди в ВК log10(ID)

На этом всем я обучил логистическую регрессию, и получил такую:

log(OR) = 9.92-1.537*log10(ID)+0.067*SQRT(Dic)-0.023*Percent

Для тестовой части выборки получился очень неплохой классификатор с AUC = 0.93. Вот такая у него ROC кривая:


ROC кривая классификатора, определяющего содержательность страницы человека

Некоторые вопросы вызывает такая значимость ID ВК для классификации содержательности личности, но кажется, увы, оно так и работает. Чем дальше ID от 1, тем больше вероятность, что это просто бот, который сделан, чтобы рекламировать микрокредиты. Без ID классификатор тоже работает, но хуже. AUC = 0.78. Это не прям хорошо, но и не прям бесполезно.

В любом случае, конечное решение по полезности персонажа за принимающим решение.

Дополнительная проверка


Я взял у одного из своих товарищей все его 5000 подписчиков, где, естестенно, рекламного шлака 95% и прогнал регрессию без дополнительного дообучения. При отсечке на 20%, результаты вышли такие TP = 78%, FP = 11%. Т.е., в целом, на произвольном человеке это тоже более ли менее работает.

Могут ли делать ботов, которые проходят этот тест?


Да, достаточно легко сгенерировать бота у которого в окружении друзей будут какие-то псевдосодержательные посты, но пока это никому не надо. Ну и тяжело с разным контентом заморачиваться, потому что если всем ботам один и тот же генерировать, это тоже легко распознать.

А нельзя ли сделать приложение, которое бы людей по ID проверяло?


Наверное можно, но мне влом делать прилу ВК. Если кто хочет, пусть сам сделает. Вроде метод описан, идея его несложна.

Не слишком ли банально?


Достаточно. Но вдруг кому пригодится как база для своих разработок. Этот метод легко можно усложнять, например, считая не просто длины словарей, а учитывая контент. Тут уже можно применить всю мощь NLP и обучать по контенту. Еще можно брать более сложные классификаторы: деревья, нейросети и т.д. Все это можно усложить, но важно, что даже простые что-то интересное дают.

Комментарии (65)


  1. bindlock
    10.09.2018 21:08

    Есть ещё один возможный критерий — процент совпадения города проверяемого пользователя и городов его друзей. Обычно, я обращаю внимание на тех, у кого больше хотя бы 60%. Ботам всё равно кого добавлять.


    1. Darth_Biomech
      11.09.2018 02:44

      Реальные люди тоже как-то не ограничиваются друзьями из своего города.


      1. ozonar
        11.09.2018 07:21
        +6

        Кроме этого, люди иногда переезжают жить в другой город


        1. zoonman
          11.09.2018 19:46

          А иногда и в страну.


    1. Ckpyt
      11.09.2018 07:57
      +5

      Не совсем так. Я родом из маленького города, переехал в большой а теперь и вовсе сменил страну. Надо ли говорить, что все друзья остались в РФ и большая часть из них до сих пор живет в родном городе?


      1. magisterbes Автор
        11.09.2018 10:03

        Значит просто можно проверять на соответствие «плотности городов», и бот будет достаточно разреженным. Если это не Москва, естественно.


        1. DaneSoul
          11.09.2018 12:46

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


          1. magisterbes Автор
            11.09.2018 13:31

            Классификатор не обязан быть идеальным. Таких людей, видимо, придется искать отдельно.


    1. x67
      11.09.2018 15:12

      Лучше смотреть на характер распределения. И возраста и города — у людей он будет ближе к нормальному. Также можно использовать критерии совпадения групп и сообществ (исключая самые крупные), музыки и тп. Но это все будут слабые модели, которые в конечном итоге могут послужить основой для сильной модели, как в примере автора.
      Тут вообще очень много данных и как следствие — простор для творчества. Хорошо, наверное, аналитикам и дата саентистам ВК с этим работать)


  1. lgorSL
    10.09.2018 22:51

    Определяю на глаз по сочетанию следующих признаков:


    • аккаунт создан недавно
    • это девушка (хотя, возможно, пользователям-девушкам пишут боты-парни)
    • кроме фотографий для аватарки, больше фоток нет
    • на стене репосты со странным временем (например, несколько репостов в одну и ту же минуту, а потом за полгода ничего). Ещё бывают репосты непрерывным потоком.
    • аналогично с автаркой — обычный человек не будет менять 4 аватарки за минуту и потом их вообще не обновлять.
    • Весь "авторский контент" — нескольо фоток, которые заодно есть на аватарке. Всё остальное — какие-то рандомные репосты.
    • в друзьях дофига каких-то странных людей или друзей очень мало.

    Если бы я писал бота, я бы так явно не палился, но, по-видимому, с ботами не особенно борются и ботоводы делают как можно проще.


    1. Welran
      11.09.2018 07:17
      +1

      Непонятно на что рассчитывают авторы этих ботов. Мои старые комментарии в давно заброшенных темах по доте2 регулярно лайкают боты девушки с 5-6 репостами сделанными в один день неделю назад. В чем прикол я так и не понял. Они рассчитывают что я закричу о девушка лайкнула меня и брошусь с ней знакомиться и потом как то разведут меня? Неужели это вообще возможно?


      1. Darth_Malok
        11.09.2018 07:35
        +9

        Вы как минимум перейдёте на страницу к «девушке», а там реклама казино, бинарных опционов, кэшбэков, аукционов игровых вещей, интимных услуг, да в общем-то не важно чего с реферальной ссылкой. Есть шансы, что заинтересуетесь и кликните. Не кликните вы, кликнет кто-нить другой. Главное, чтобы рекламу увидело как можно больше людей.


        1. Welran
          11.09.2018 08:28

          Да нет, там ничего такого не бывает. Типа «правильные» репосты со всяких пабликов типа мдк или для девиц типа я такая особенная. Хотя может это они так паблики рекламируют, но в тоже время зачем мне паблики для девушек.


      1. roscomtheend
        11.09.2018 11:20

        Старые темы в той же группе Мегафона (с обсуждением проблем со связью) 5летней давности. Лайкают «девушки» с рекламой то ли досуга, то ли вирусов. Просто в спам отправляю.


    1. Ckpyt
      11.09.2018 08:01
      +1

      Реальный человек: девушка, добавлена ОДНА аватарка десять лет назад и больше НИКАКИХ фото. Время от времени делает репосты из рзных сообществ, начиная с КатаклизмДДА кончая «Здоровая и вкусная еда». Не бот. Во вконтатнике просто потому что это использовалось как замена скайпу.


      1. sergarcada
        11.09.2018 08:57

        У меня такой же аккаунт в ФБ, только без репостов. Создавался, чтобы что-то читать. Или писать людям, которых знаю в реале. А не для того, чтобы заводить новые знакомства.
        В статье же говорится про случай, когда к вам кто-то стучится и просит добавить в друзья.


        1. balamutang
          11.09.2018 12:06

          Ну так и смысла "дружить" с таким аккаутом нет, все равно что с ботом


      1. darthslider
        11.09.2018 17:02

        «десять лет назад» — как раз и есть показатель, что скорее всего не бот.


    1. roscomtheend
      11.09.2018 11:26
      -1

      Аватарка 3 раза за 2 минуты — легко, если пытаться выбрать отображаемый кусок с фото. И много лет не менял, вообще за все годы было только две аватарки — давно сменил свою фотку в маске на изображение своего внутреннего мира, по нему меня проще узнать. Да и друзей не много и ещё кого считать странными личностями… Впрочем, если меня посчитает ботом какая-нибудь рекламная сеть, то только плюс.


    1. Bellicus
      11.09.2018 12:32

      Есть у меня такие «боты» в друзьях, по ту сторону которых сидят вполне обычные люди.
      Кто-то из них просто не парится о содержимом страницы, так как не в этом их цель. Кто-то со временем вычистил страницу, оставив пару постов и одно фото. Есть даже одна, которое на 100% попадает под ваше описание, что не мешает мне, с ней, периодически встречаться и общаться ИРЛ.

      Да что далеко ходить, я лично, на собственной странице был 5 лет назад. Все пребывание в вконтакте ограничивается вкладкой музыки и диалогов.


    1. Puskoi
      11.09.2018 13:32

      Блин, да я получается бот в вк?))
      1- здесь проверку прохожу, аккаунт больки-меньки древний(больше 5 лет)
      2- Здесь тоже, подписан парнем
      3- аватарки сначала были, а потом поудалял все, ибо вырос, и считаю что они уже не уместны. и есть 1 фото.
      4- на стене репосты с кучковатым временем. Так как я не занимаюсь забивкой стены, а добавляю только реально стоящее, по моему мнению, то репосты появляются редко(до десятка в год)+ регулярная чистка от старых репостов, ну здесь ситуация как с аватарками.
      5- профиль уже вообще без аватарки оставил. Руководствуюсь принципом «Кому нужно — тот знает как я выгляжу, а кому не нужно — тому и не нужно знать» Да и раньше лицом не светил, если и были мои настоящие фото, то только со спины.
      6- Рандомных репостов хватает, темы в разнобой идут. Осталось немного с юности(прЕколы, которые я ещё считаю допустимыми на своей странице), немного интересных видео-научпопов, другое время оружие смотрел, последнее это только музыка. Хотя опять же провожу иногда чистки, и неактуальное удаляется, а новое при этом добавляется не так часто, вот и получается эффект мертвой страницы
      7- и тут выстрел в 10-ку, друзей осталось 13. В лучшие времена было ~60, но после окончания образовательных учреждений почти всех стер, остались только самые с которыми ещё кое что.
      Но это всё уже не важно, т.к. забросил все соц.сети. Остались только пару месенджеров для рабочих моментов.


      1. magisterbes Автор
        11.09.2018 13:34

        Так поэтому я и не назвал это все методом поиска ботов, потому что есть куча людей с достаточно мизерной социальной жизнью внутри соцсети. Это все ищет тех, кто хочет общаться там и общается. =)


        1. Puskoi
          11.09.2018 21:44

          Пара вопросов к самому посту:
          1 — Применяете ли сами этот скрипт\программу\метод, или как оно правильно называется?
          2 — Если да, то со сколькими интересными людьми уже общались?


          1. magisterbes Автор
            11.09.2018 22:49

            Я прошарил собственных подписчиков, коих тыщи 4 т., подписчиков друга, коих 5 т. и стал иметь в виду тещ товарищей, которые показались мне интересными.


    1. mad_celt
      12.09.2018 13:31

      Да вы прям мой основной аккаунт описали.
      Создан три года назад, я девушка.
      Фотографий нет вообще.
      Репосты правда не люблю делать, поэтому они просто очень редко.
      Авторский контент — только фотки на аватарке (и из около 20 только две реальные фотки) и немножко постов.
      Друзей очень мало, и все странные =)


      1. rt001
        12.09.2018 15:37

        Профиль создан недавно = месяц-два назад
        Но главное условие — Вы не стучитесь к нему в друзья )))
        И еще одно важное отличие — у ботов их скромный набор фоток часто добавлен в одну и ту же минуту и обычно в день создания профиля. У живого человека редко выполняется такое условие.


  1. Alex_ME
    10.09.2018 23:08

    Но унылые личности свою ленту особо не читают, а ботам это вообще не надо. Тем более это не надо массовым собирателям подписчиков и звездам.

    Хм, у меня вообще лента настроена так, что ее нет, и никакие бесчисленные репосты голых баб, фоточки в осенней листве или что там еще я не вижу. Видимо, я бот.


    1. magisterbes Автор
      11.09.2018 10:11

      Видимо, вы не так инересны как аккаунт ВК.


  1. Closius
    10.09.2018 23:35
    -1

    Я думал люди на хабре уже давно не сидят в вк…


    1. zerg59
      11.09.2018 06:39
      -1

      В силу разных причин часть круга общения находится в вк. Общение все в паре чатиков. Стена и список друзей вполне ботообразные ;-).


    1. sergarcada
      11.09.2018 09:04
      +3

      О, да. А в одноклассниках только пенсионеры. А ФБ только для регистрации в играх.
      Как примитивно…


      1. Eugene_D
        11.09.2018 12:18

        Примитивно, но в моём случае почти правда :) Одноклассники из моих знакомых есть только у мам и тёщ коллег, в ВК я практически никакой активности не веду, а ФБ — для быстрых авторизаций


        1. masv
          11.09.2018 20:05

          Поддержу. Плюсануть прав не хватает.


    1. Acuna
      11.09.2018 09:57

      Есть музыка, которой на Яндекс.Музыке даже маленькой толики нет (P. S. Не «репчег»). Про зарубежные ресурсы и вовсе молчу.


  1. 0o0
    11.09.2018 00:55
    +1

    Какая оригинальная почти скрытая реклама клапанов сливных бачков, но нет.

    ps: конец_сарказму


  1. kloppspb
    11.09.2018 01:38

    Если вам в друзья стучится кто-то, а вы с первого взгляда не можете понять это вообще нормальный человек или хрен знает кто

    … я задам ему один простой вопрос: «с какой целью?». И, ЧСХ, 100% после этого исчезают. Потому что люди, которым действительно интересно о чём-то пообщаться, сразу сообщают зачем и почему.

    Впрочем, есть и второй критерий: тупо глянуть в его ленту. Если там нет общих интересов — давай, до свидания.


  1. Tantacula
    11.09.2018 01:59

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


    1. magisterbes Автор
      11.09.2018 10:06

      Ну… Тут я подумал, что окружение важнее, чем собственно наполненность страницы человека. С самой страницы можно факторов набрать, но и бота под это подстроить легко. А вот перелопатить все окружение бота это более энергозатратно.


  1. Bolotnikoff
    11.09.2018 07:01
    +8

    Преклоняюсь перед талантом автора рекламировать сливные бачки. дальше не читал


    1. magisterbes Автор
      11.09.2018 10:10
      +1

      Надеюсь, вы купили?


    1. holy_desman
      12.09.2018 20:29
      +1

      Сеошник уренгойского сайта завтра отчитываться пойдёт. Рост органического трафика 10 млн процентов. Я тоже кликнул, кстати.


  1. anti4ek
    11.09.2018 08:43

    Такой метод способен отсечь большинство ботов и всех адекватных людей.


    1. magisterbes Автор
      11.09.2018 10:08

      Адекватность реально существующих людей это понятие субъективное. По-моим представлениям, адекватных не отсекает. А так-то, конечно, самые адекватные вообще в соцсетях не сидят.


      1. anti4ek
        11.09.2018 13:52

        По моим наблюдениям, адекватные используют соцсети как способ регистрации на ресурсах и контакта с различными людьми (с которыми этот способ контакта предпочтительнее по разным причинам).
        Соответственно, в профиле и ленте творится непонятная фигня, весьма схожая с профилями ботов.


        1. magisterbes Автор
          11.09.2018 13:57

          Безусловно. Но у всех разный субъективный опыт и разные представления об адекватности.


  1. p_fox
    11.09.2018 08:51
    +2

    "у него должно быть при этом больше 50 существующих друзей..."
    У нормального человека не может быть такого количества друзей.


    1. Wolframium13
      11.09.2018 09:15
      +1

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


    1. xakep2011
      11.09.2018 22:56

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


      1. p_fox
        12.09.2018 08:29

        А каким боком "друзья по-английски" к статье о русском ВК?


        1. xakep2011
          12.09.2018 09:01

          Таким, что калька «друзья» так и осталась с тех времён, когда ВК передрали интерфейс с Фейсбука. И прочно прижилась во всех остальных сервисах.


  1. Areso
    11.09.2018 10:16
    +1

    А я вообще страничку свою перевел в приватный режим, в т.ч. и от друзей. Ибо какая-то мутная фигня идёт, лучше бы ее вообще выпилить, но музыку жалко)


    1. Eugene_D
      11.09.2018 12:22

      Лайфхак — плейлист музыки ВК можно вытащить, а потом конвертировать в плейлист Deezer, Youtube, Soundcloud, Spotify и проч проч проч


      1. Mogwaika
        11.09.2018 12:50

        Там же куча оригинального всего, чего или на ютубах нет или не пропустит…


        1. Eugene_D
          11.09.2018 12:55

          Есть такое, но какую-то часть всё же вытащить возможность


        1. kreo_OL
          11.09.2018 14:36

          Можно выкачать прямо файлами и залить куданибудь)


      1. webxaser
        12.09.2018 02:15

        плейлист музыки ВК можно вытащить
        Не подскажите как, если треков там >10К? По одному скачивать — горячка всё-таки.


        1. magisterbes Автор
          12.09.2018 08:02

          Написать скрипт в селениуме, который бы шел по странице и все качал с нее?


    1. Arty_Fact
      11.09.2018 12:55

      Жаль вот от товарища майора в приватный режим нельзя перевести.


      1. masv
        11.09.2018 20:21

        Всё что можно сделать — почистить страничку, сидеть в ридонли, не лайкать, не репостить. Скачивать медиа на винт.


  1. Myxer
    11.09.2018 13:34

    По ID ИМХО самый важный критерий. Ведь ID выдаются в хронологическом порядке. Адекватные регистрации были до 200млн. Потом еще 100 млн люди создавали твинков и страдали херней. После 400млн поток реальных новорегов превратился в тончайший ручеёк, вероятность наткнуться на который весьма мала.
    Конечно изредка ботоводами/рекламщиками искпользуют ся относительно старые акки (ID 300-400kk) или взломанные, но это опять же редкость и выявляется сложно даже по другим критериям.


    1. magisterbes Автор
      11.09.2018 13:34

      Да. Но и без него классификатор сильно лучше подброса монетки.


  1. rt001
    11.09.2018 14:49

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

    Не знаю, возможно я не встречал качественных ботов, но чаще всего у новоиспеченных ботов, которые стучатся в друзья
    1. Видно в ленте, что за последние несколько дней/часов они подружились с десятком людей
    2. Все имеющиеся фотографии добавлены в одину и ту же минуту или кратчайшие сроки.
    3. Ничего не пишут первыми, просто вдруг им захотелось с тобой подружиться… с чего это вдруг? (во всяком случае предпочитаю сначала пообщаться, а потом уже стучаться к кому-то в друзья, если, конечно, я не был заранее знаком с этим человеком)
    4. Ряд других косвенных признаков


  1. Salamandear
    11.09.2018 17:40
    -1

    Отличная тема для анализа абитуриентов в ВУЗ после ЕГЭ)


  1. iListo
    11.09.2018 18:29

    Я почистил стену ВК, скрыл 30 близких друзей и иногда читаю ленты пабликов. (Спорт, IT)…
    Я попаду в раздел «бот», это и хорошо =)


    1. holy_desman
      12.09.2018 20:33
      +1

      Стоит ещё рекламу иногда постить для убедительности.