Анализ трендов российского YouTube за 2018 год

    Старожилы, наверное, и не вспомнят, но в конце 2017-го года в обсуждениях в интернете была распространена мысль о том, что в трендах YouTube часто встречаются «накрученные» видео.


    Поэтому накануне нового 2018-го года я написал утилиту для сбора информации о видео, которые попали в тренды. Для каждого видео запрашивается название, список тегов, дата создания, а так же ведется история изменений лаков/дизлайков/просмотров. Разработку вел на TypeScript для NodeJS, сам код выложен на GitHub.


    Как итог, сейчас есть возможность строить красивые графики:
    График изменения количества лайков и дизлайков


    Так же есть возможность строить графики изменения трендов по ключевым словам. Всего за 2018-й год была собрана информация по 29271 видео. Сбор статистики ведется и сейчас.



    Общий принцип работы


    1. Раз в 5 минут берется актуальный список трендов.
    2. Для каждого нового видео сохраняется основная информация (название, список тегов, дата создания)
    3. На основании названия и тегов каждому видео ставится в соответствие облако ключевых слов.
    4. По расписанию запрашивается информация о лайках/дизлайках/просмотрах по каждому из видео. Статистика собирается в течение двух дней, первое время запросы идут с интервалом раз в 2 минуты, далее интервал увеличивается. Если есть подозрение на накрутку, то интервал опять устанавливается в 2 минуты.

    Если график изменения количества лайков/дизлайков на каком-то из участков представляет собой прямую линию, то сохраняются только первое и последнее значение на этом участке. Это сделано для уменьшения объема БД. Сейчас в таблице со статистикой всего 6908449 записей, на диске таблица занимает 458 мб.


    Принцип работы автоматического определения накруток


    Для себя задачу сформулировал следующим образом: нужно отмечать видео, у которых на графике изменения лайков/дизлайков есть «лесенка». Ступеньки у этой самой лесенки определяются на основе трех соседних замеров статистики. Учитывается угол между двумя прямыми: одна прямая проводится между первым и вторым замером, вторая — между вторым и третьим, а так же длины отрезков. Так же отмечаются графики, у которых есть много мелких неровностей.


    Пример подозрительного графика:

    Пример подозрительного графика


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


    В целом, нельзя по одному (или нескольким) графикам изменения лайков/дизлайков сказать, была ли накрутка. Любые подозрительные перепады можно объяснить работой CQRS или вспышками на Солнце. Да, один график плавный, другой ступенчатый, но, возможно у всех видео время от времени случайным образом встречается подобное поведение? Именно поэтому для составления общей картины собиралась информация со всех видео которые попали в тренды.


    Статистика по накруткам


    За 2018-й год алгоритм показал следующие результаты:
    Подозрение на накрутку лайков: 180 видео (0.32% от общего числа видео)
    Подозрение на накрутку дизлайков: 1303 видео (4.45% от общего числа видео)


    Видео с подозрительными графиками лайков немного, однако так было не всегда: в первый месяц 2018-го года зарегистрировано 96 таких видео (более 50% от всех подозрительных по лайкам за год). Однако уже в феврале таких видео стало гораздо меньше, всего 8.


    Здесь, наверное стоит опять обратиться к старожилам, которые могут вспомнить (или не вспомнить) событие, которое произошло 10 января 2018-го года, когда YouTube заблокировал множество каналов. Со своей стороны могу сказать, что среди заблокированных были и и те, по которым моя утилита успела собрать информацию. График по одному из удаленных видео:

    image


    Если предположить, что накрутки действительно были, то складывается впечатление, что в YouTube провели большую работу и сейчас встретить в трендах подозрительное по лайкам видео можно далеко не каждый день (а те что встречаются, чаще выглядят как случайность или ошибка). С другой стороны такой перепад в накрутках можно объяснить тем, что, в отличии от дизлайков, не имеет смысла накручивать лайки у видео, которые уже попали в тренды.


    И еще немного статистики. В среднем, попавшие в тренды видео набирают 21479 лайков и 2863 дизлака.
    Подозрение на накрутку лайков: 15502 / 4250
    Подозрение на накрутку дизлайков: 16868 / 22087
    Таким образом, если смотреть по результату, то от накрутки лайков пользы нет никакой, в то время как повысить процент дизлайков вполне возможно.


    Подозрительные по дизлайкам графики встречаются неравномерно. Например на канале Евгения Ройзмана из 21 попавших в тренды видео более половины отмечаются алгоритмом как накрученные по дизлайкам.


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


    Самый странный график, который мне встречался:

    image
    Буду благодарен, если кто предложит объяснение, какого лешего тут происходит. К слову, можно заметить, что по этому графику статистика собиралась почти неделю, а не два дня.


    Принцип работы алгоритма измерения популярности ключевых слов


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


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


    Пример: в трендах было только два видео, соответствующие ключевому слову. Одно видео продержалось 5 часов в трендах, другое — 10 часов. Тогда популярность ключевого слова устанавливается равной 10 + 5 = 15.


    Примеры графиков популярности по ключевым словам


    По тому алгоритму, который писал выше, самым резонансным и наиболее заметным событием 2018-го года стало не выборы и даже не футбол, а трагедия в Кемерово:

    график трендов: Кемерово, выборы, футбол


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


    Ну и немного политики:

    image


    Как пощупать


    Посмотреть графики и поиграться с трендами можно здесь.


    Сейчас система работает на Amazon Cloud, используются две инстанции:

    • t2.micro — веб сервер
    • t3.small — сервер с MySQL. На этом же сервере выполняются утилиты для сбора статистики.

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

    Саму базу по состоянию на 23.01.2019 можно скачать по ссылке.


    Так же в свое время написал два плагина для chrome и filrefox. Сейчас единственная польза: прямо на списке трендов YouTube можно увидеть количество лайков/дизлайков для каждого видео.

    Поделиться публикацией

    Комментарии 33

      +1

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

        0
        Промахнулся по кнопке и ответил ниже.
        0
        Когда вводишь ID видео, которого нет в базе — выдает ошибку Cannot read property 'videoId' of null
          0
          Спасибо, обращу внимание на подобные вещи. По-моему мне даже как-то об этом писали, но совсем из головы вылетело.
          +1
          Количество комментариев и количество просмотров так же сохраняется при каждом замере.
          По просмотрам — графики просмотров очень часто выглядят как лесенки, по ним сложно ориентироваться. Похоже, что это особенность самого YouTube. Иногда в комментариях можно встретить возмущения по поводу, что заморозили просмотры. Думаю, что никто их специально не замораживает, просто просмотры подсчитываются с задержкой.
          Так же была идея искать одинаковые комментарии, но пока до этого руки не дошли.
            +1

            Спасибо, за ответ и проделанную работу) Надо будет поиграться с данными)

              0
              Выводятся с задержкой. Как подсчитывать с задержкой не очень понятно.
              А вот выводится могут — банальный кэш. И вот тут по идее должно быть достаточно просто это все сгладить, считая что каждый скачек — это просто обновление кэша, а между скачками параметры растут равномерно.
              +1
              Часто наблюдаю «замороженный» счетчик лайков/дизлайков на видео ФБК. Кто знает, как это достигается? Как на графике это выглядит, как «полочка»?
                +1
                скорее всего срабатывает защита от накруток
                +1
                Было бы интересно на Хабре посмотреть статистику прироста лайков/дизлайков, особенно по статьям и комментариям к ним, в которых поднимаются острые проблемы и особенно общественно значимые.
                  0
                  Самый странный график

                  Явная равномерная накрутка, алгоритм для накрутки лайков применился к накрутке дизлайков, а начальная точка дизлайкой просто была ниже изначально.
                    +4
                    Дело не в равномерности. А в потере голосов в ноль.
                    Скорее всего ботами накрутили, а потом их стали постепенно банить, что и приводило к потере голосов.
                      0
                      Да, странно, что оба графика со временем ушли в 0. Если предположить, что боты наставили лайков/дизлайков и после этого начали друг с другом соревноваться кто меньше (или их просто начали банить), то похожий график можно получить.

                      Но ведь, маловероятно, что видео из трендов вообще никто из настоящих людей не оценил. Как понимаю, нет возможности сбросить оценку видео у обычного пользователя.
                        0
                        такое вполне возможно. были же ситуации когда азиатские видео выводились в топы в русском ютубе
                          0
                          Кстати, если взять например вот это видео. Запись статистики у него обрывается на 21 января с 5300 дизлайками. Но если вычесть все спайки накруток, то получится примерно 2000 дизлайков, сколько и есть на данный момент у видео на Ютубе. Получается, что ботов накруток действительно банят со временем и голоса возвращаются.
                      0
                      так бы шли вровень до конца. Отклонение линии лайков также выражено настоящими лайками, которые ставят живые люди
                        0
                        Очень интересно, спасибо большое за труды. Не хватает возможности кол-во комментариев вывести на график.
                        Также, возможно, не помешало бы отмасштабировать кол-во просмотров для наглядности — просмотров всегда на значительно больше оценок, поэтому графики оценок всегда будут выглядеть как сравнительно ровная линия на фоне просмотров.

                        Буду благодарен, если кто предложит объяснение, какого лешего тут происходит. К слову, можно заметить, что по этому графику статистика собиралась почти неделю, а не два дня.

                        Когда ютуб замечает подозрительную автоматизированную активность, они начинают чистить оценки и статистику от накруток (у того видео ещё и десятки-сотни тысяч просмотров убирали, кстати). В комментариях люди также жалуются на то что нельзя поставить дизлайк — видимо в какой-то момент ютуб просто заморозил оценки.

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

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

                                Сам алгоритм определения накруток слишком примитивный. Не получилось найти статью, в которой бы решалась подобная задача.
                            +6
                            С учётом быстро растущей популярности Youtube и его сопутствующего превращения в телевизор, очень приятно видеть сторонние инструменты, позволяющие хоть немного увидеть что происходит за кулисами.

                            От себя добавлю, что возможно, вам стоит рассмотреть какой-либо вариант сотрудничества с разработчиками Metabot'а (он же kremlebot.rip) — их скрипт подсвечивает комментарии от участников, с высокой вероятностью являющихся 15-ти рублёвыми троллями.
                            Может получиться интересное сочетание.

                            Вот пример работы Метабота в комментариях под популярным видео на тему упомянутой в посте «Зимней вишни» в Кемерово:

                            Метабот: комментарии кремлеботов на Ютюб
                              0
                              Да, анализировать комментарии — это очень хорошая идея.
                              С накрутками сам YouTube более-менее умеет бороться. Но вот комментарии, по-моему, они не чистят.
                              0
                              Анализировать динамику лайков/дизлайков определенного видео, без соответствующего анализа медиа-контекста в том же временном ряду не совсем корректно.

                                +1
                                График показывает общее число лайков дизлайков? Если да, то почему они иногда пропадают? Ютуб чистит накрутки?
                                  0
                                  Подскажите, пожалуйста, как парсили странички с видео? Не принимали ли вас за большое количество запросов за «робота»)
                                    0
                                    Данные запрашиваются через Google API. Ограничение на количество запросов в месяц есть, но оно очень большое и для этих задач его хватает с головой.
                                    0
                                    А как быть с теми видео, когда блогер xxx начинает критиковать блогера yyy, после чего аудитория блогера xxx совершает набег на канал yyy и ставит ему мегатонны дизлайков?
                                      0
                                      Думаю, в какой-то степени это можно считать накруткой.
                                        0
                                        Даже если много людей пойдет ставить оценки, то этот процесс будет растянут по времени и в результате должно получиться нормальное распределение. Все равно график должен получиться более-менее плавный.

                                        Сложно представить, что, скажем, 1000 человек вдруг бросит все свои дела и синхронно за две минуты наставит кучу дизлайков.
                                        0
                                        А как должно работать браузерное расширение? Иконка на тулбаре появилась, но по клику ничего не происходит и что должно происходить тоже непонятно.
                                          0
                                          На странице трендов YouTube под каждым видео должен появиться блок, который отображает количество лайков/дизлайков видео. Так же отмечаются подозрительные видео.
                                          0

                                          Тренд Ютуба. Бессмысленный и беспощадный. Но функционал полезный.

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

                                          Самое читаемое