Старожилы, наверное, и не вспомнят, но в конце 2017-го года в обсуждениях в интернете была распространена мысль о том, что в трендах YouTube часто встречаются «накрученные» видео.
Поэтому накануне нового 2018-го года я написал утилиту для сбора информации о видео, которые попали в тренды. Для каждого видео запрашивается название, список тегов, дата создания, а так же ведется история изменений лаков/дизлайков/просмотров. Разработку вел на TypeScript для NodeJS, сам код выложен на GitHub.
Как итог, сейчас есть возможность строить красивые графики:
Так же есть возможность строить графики изменения трендов по ключевым словам. Всего за 2018-й год была собрана информация по 29271 видео. Сбор статистики ведется и сейчас.
Общий принцип работы
- Раз в 5 минут берется актуальный список трендов.
- Для каждого нового видео сохраняется основная информация (название, список тегов, дата создания)
- На основании названия и тегов каждому видео ставится в соответствие облако ключевых слов.
- По расписанию запрашивается информация о лайках/дизлайках/просмотрах по каждому из видео. Статистика собирается в течение двух дней, первое время запросы идут с интервалом раз в 2 минуты, далее интервал увеличивается. Если есть подозрение на накрутку, то интервал опять устанавливается в 2 минуты.
Если график изменения количества лайков/дизлайков на каком-то из участков представляет собой прямую линию, то сохраняются только первое и последнее значение на этом участке. Это сделано для уменьшения объема БД. Сейчас в таблице со статистикой всего 6908449 записей, на диске таблица занимает 458 мб.
Принцип работы автоматического определения накруток
Для себя задачу сформулировал следующим образом: нужно отмечать видео, у которых на графике изменения лайков/дизлайков есть «лесенка». Ступеньки у этой самой лесенки определяются на основе трех соседних замеров статистики. Учитывается угол между двумя прямыми: одна прямая проводится между первым и вторым замером, вторая — между вторым и третьим, а так же длины отрезков. Так же отмечаются графики, у которых есть много мелких неровностей.
Пример подозрительного графика:
Все параметры алгоритма определялись мной вручную и проверялись на уже собранных на тот момент видео и в течение года в этот алгоритм вносились изменения. Поэтому серьезно относиться к таким результатам для каждого отдельного видео, наверное, не стоит. В свое оправдание могу сказать, что при изменении параметров запускался пересчет для всех уже собранных видео, поэтому ко всем видео применялся один и тот же алгоритм.
В целом, нельзя по одному (или нескольким) графикам изменения лайков/дизлайков сказать, была ли накрутка. Любые подозрительные перепады можно объяснить работой CQRS или вспышками на Солнце. Да, один график плавный, другой ступенчатый, но, возможно у всех видео время от времени случайным образом встречается подобное поведение? Именно поэтому для составления общей картины собиралась информация со всех видео которые попали в тренды.
Статистика по нактруткам
За 2018-й год алгоритм показал следующие результаты:
Подозрение на накрутку лайков: 180 видео (0.32% от общего числа видео)
Подозрение на накрутку дизлайков: 1303 видео (4.45% от общего числа видео)
Видео с подозрительными графиками лайков немного, однако так было не всегда: в первый месяц 2018-го года зарегистрировано 96 таких видео (более 50% от всех подозрительных по лайкам за год). Однако уже в феврале таких видео стало гораздо меньше, всего 8.
Здесь, наверное стоит опять обратиться к старожилам, которые могут вспомнить (или не вспомнить) событие, которое произошло 10 января 2018-го года, когда YouTube заблокировал множество каналов. Со своей стороны могу сказать, что среди заблокированных были и и те, по которым моя утилита успела собрать информацию. График по одному из удаленных видео:
Если предположить, что накрутки действительно были, то складывается впечатление, что в YouTube провели большую работу и сейчас встретить в трендах подозрительное по лайкам видео можно далеко не каждый день (а те что встречаются, чаще выглядят как случайность или ошибка). С другой стороны такой перепад в накрутках можно объяснить тем, что, в отличии от дизлайков, не имеет смысла накручивать лайки у видео, которые уже попали в тренды.
И еще немного статистики. В среднем, попавшие в тренды видео набирают 21479 лайков и 2863 дизлака.
Подозрение на накрутку лайков: 15502 / 4250
Подозрение на накрутку дизлайков: 16868 / 22087
Таким образом, если смотреть по результату, то от накрутки лайков пользы нет никакой, в то время как повысить процент дизлайков вполне возможно.
Подозрительные по дизлайкам графики встречаются неравномерно. Например на канале Евгения Ройзмана из 21 попавших в тренды видео более половины отмечаются алгоритмом как накрученные по дизлайкам.
По поводу графика из заголовка этой статьи. Если предположить, что есть набор аккаунтов в размере 5-10 тысяч, которым сначала дали команду ставить дизлайки, а затем не дожидаясь окончания работы на том же наборе дали команду ставить лайки, то, наверное, можно получить похожий график.
Самый странный график, который мне встречался:
Буду благодарен, если кто предложит объяснение, какого лешего тут происходит. К слову, можно заметить, что по этому графику статистика собиралась почти неделю, а не два дня.
Принцип работы алгоритма измерения популярности ключевых слов
Как уже сказал, по каждому видео сохраняется название и набор тегов. Далее название и каждый из тегов разбивается на отдельные слова, они прогоняются через стеммер и сохраняются как облако ключевых слов для видео.
Имея на руках информацию о том, когда видео попало в тренды и когда из трендов вышло, а так же наборы слов для видео, можно по каждому из ключевых слов составить график изменения популярности. В настоящий момент график изменения тредов ключевых слов строиться по суткам. В качестве меры используется общее время (в часах), которое все видео с данным ключевым словом находились в трендах.
Пример: в трендах было только два видео, соответствующие ключевому слову. Одно видео продержалось 5 часов в трендах, другое — 10 часов. Тогда популярность ключевого слова устанавливается равной 10 + 5 = 15.
Примеры графиков популярности по ключевым словам
По тому алгоритму, который писал выше, самым резонансным и наиболее заметным событием 2018-го года стало не выборы и даже не футбол, а трагедия в Кемерово:
В отличие от всех остальных событий, трагедия в Кемерово повлияла на всех, и видео по данному происшествию вытеснили из трендов все остальные.
Ну и немного политики:
Как пощупать
Посмотреть графики и поиграться с тредами можно здесь.
Сейчас система работает на Amazon Cloud, используются две инстанции:
- t2.micro — веб сервер
- t3.small — сервер с MySQL. На этом же сервере выполняются утилиты для сбора статистики.
Возможно, в случае нагрузки первым упадет веб сервер, при этом второй сервер продолжит собирать статистику. Это я к тому, что не нужно удивляться, если все перестанет работать.
Саму базу по состоянию на 23.01.2019 можно скачать по ссылке.
Так же в свое время написал два плагина для chrome и filrefox. Сейчас единственная польза: прямо на списке тредов YouTube можно увидеть количество лайков/дизлайков для каждого видео.
Автор: Владимир