Вычисляем контент, который в будущем станет вирусным

В данной статье будет описан только общий алгоритм на примере Facebook. Однако такой же подход можно использовать повсюду.

Задача


На основе существующего контента (за последние 30 дней) на данной странице Facebook определить какие записи потенциально будут более популярными.

Теория


Первый, и пожалуй ключевой вопрос с которым я столкнулся — «Что такое популярность поста и как её расчитать?».

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

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

Дело в том что прирост лайков у записай не линейный. И чем дольше пост опубликован тем менее его лайкают. И нам нужно учитывать этот спад активности.

Формула для расчета получается следующая:

R = likes / (time^β)
Где β — наш коэффициент затухания. Его можно вычислить по формуле:
β = 1 / τ
Где τ — время в течении которого прирост лайков уменьшился в e раз.

Реализация


Нам понадобится:


Алгоритм следующий:


Используя такой подход мы можем определить те записи, которые с наибольшей вероятностью в будущем будут вызывать больше интереса. При расчетах мы берём во внимание как дату публикации записи так и активность аудитории, что позволяет получить наиболее точные результаты.
@Kozack
20.12.2016 19:25 UTC
Первоисточник