Попробую расписать наиболее понятно:
1. Без лайков - конкурируют все, т.к. их ещё мало, но с неравной вероятностью: чем позже ответ получен, тем он ниже в списке и у него меньше шансов (что его прочитают).
2. После любого лайка - этот ответ поднимается в самый верх и начинает конкурировать со следующими 2-мя стоящими под ним (по времени постинга).
3. Как только собирается кластер (1-3 ответа с сильным отрывом от других) - остальным - почти без шансов.
Затем:
1. Если человек, задавший вопрос, понимает тему, он прочитает все и выберет решением 1 (реже 2) ответ ИЗ ВСЕХ!
2. Если не понимает, то решением становится "всплывший" кластер (с максимальным кол-вом лайков).
Исходя из этого алгоритма (процесса), нужно брать среднее время продолжительности чтения (T1) после открытия страницы с вопросом (и ухода со страницы без лайка) и среднее время продолжительности чтения до установки первых 2-х лайков (также, после открытия страницы с вопросом) разными людьми (T2).
Затем взять среднее от этих 2-х средних: (T1+T2)/2
И получим интервальный временной пик, при чтении первых двух ответов.
Дальше - по кол-ву символов (по ответам-лидерам) высчитываем среднюю скорость чтения и, апроксимируя, высчитываем("выравниваем") время на лайк для каждого ответа (с первого и находящихся ниже).
У теперь у нас есть 2 коэф.:
T - время чтения при адекватном лайке на 1-ый и 2-ой ответы вместе (среднее там было)
S - скорость чтения (кол-во символов за единицу времени) при адекватном лайке
При лайке на нижестоящие - мы домножаем на время, чтобы нормировать к пику адекватного лайка.
Дальше от пика - меньше балл.
Ближе - больше балл.
Вот и вся формула.