dollar
@dollar
Делай добро и бросай его в воду.

Какую справедливую формулу можно использовать для вычисления истинной симпатии (лайки) к ответу на Тостере?

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

Ведь минусовать на Тостере нельзя. Так что время ответа связано с количеством лайков в любом случае.

Более поздним ответам приходится конкурировать с первыми, уже обросшими лайками, ответами. Конечно, годному ответу подняться можно, но только если разница во времени не велика. Для наглядности откройте вопрос годовалой давности без решения, можно даже с множеством подписок, и попробуйте дать реально хороший вдумчивый ответ по сравнению с имеющимися. У первого ответа, предположим, 3 лайка. У вашего ответа дай бог появится 1 - и всё.

Усугубляет ситуацию конформизм и лень. То есть даже если человек зашел в популярный вопрос, в котором уже есть все 10 всевозможных ответов (и больше не предвидится), то он прочитает первые два ответа, у которых соответственно 17 и 14 лайков, а другие ответы с 5 и ниже лайками читать не будет (вероятно). Причем, первые два может даже лайнуть, что формально означает то, что они лучше остальных, хотя пользователь даже не сравнил.

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

Что за формула это может быть? Как её вывести?

Нюансы
- Пользователей мы не считаем абсолютно разумными. Всегда есть шанс, что лайк достанется чуть ли ни случайно. Но статистически всё же проявляется разумная симпатия. Т.е. люди не полностью рандомны, иначе формула достаточно простая будет.
- В симпатию входит не только оценка правильности ответа, а симпатия в широком смысле, то есть это и эмоции по стилю, оформлению и всякое такое. Нам не нужно знать, что туда входит, нам нужно лишь понять реальную (объективную) оценку по формуле, а не номинальную на основе счетчика нажатий на кнопку нравится, что бы сама кнопка ни значила.
- Самое важное: мы исключаем читерство. Ведь в теории накрутить лайки очень легко. Но это бред. Так что исходим из того, что никто в здравом уме этим заниматься не будет. Так что имеющиеся лайки принимаем за чистую монету.
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
lxsmkv
@lxsmkv
Test automation engineer
Никакую. Все выводы из наблюдаемого поведения - субьективны. Реальность из субьективного восприятия получить невозможно. Какой метод рассчета Вы бы ни применили - вы получите субьективную оценку. Т.е. такую которая будет нравится Вам. Но никак не будет отражать реальную суть вещей.

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

Вот Вам еще один мысленный эксперимент. Представьте себе вы поймете как писать ответ так, чтобы он был отмечен лучшим. Будут ли данные по такой схеме ответы действительно лучшими или они станут просто собирать максимальное количество лайков? А если есть схема по которой можно дать действительно лучший ответ значит мы открыли универсальный способ познания. Нет? Значит остается только второй вариант. Получится просто ответ с большим количеством субьективной поддержки со стороны читателей. Это только ухудшит ситуацию, люди будут писать ответы ради одобрения окружающих. Вопрос уйдет на второй план. Платформа погибнет.

Вот Вам пример из другой области. На литературных порталах можно прочитать разнообразные, порой полярные отзывы о книге. Есть ли математический метод который скажет, стоит мне читать эту книгу или нет? Способ один - почитать и узнать. Какую бы вероятностную уверенность ни выдал рекомендательный алгоритм в том, что мне эта книга понравится, она мне может не понравиться. И наоборот.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
sim3x
@sim3x
https://www.reddit.com/r/OutOfTheLoop/comments/4dl...
https://medium.com/hacking-and-gonzo/how-reddit-ra...

Тк справедливости не существует
А без четких дефиниций за данным слово чаще всего скрывается обман большинства в пользу определенной группы особ

А вот max/min и нормализация (не уверен в данном термине) - реально существуют, предсказуемы и их можно протестировать

google: reddit ranking algorithm
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Beg your pardon, captain, но Вы разве пишете ответ для получения лайков? Я вот - нет и мне обычно поуху поднялся мой ответ или не поднялся. Приятно, конечно, когда видишь, что людям нравится, но когда не нравится - меня это не напрягает от слова совсем.
Ответ написан
@orbit070
Нужно будет в первую очередь собрать статистику по времени появления каждого лайка с момента ответа, но насколько мне известно время лайка тут нельзя посмотреть. Хотя если попросить админов может дадут эти данные. Если есть время появления лайков, то исходя из этого дальше плясать, например, присвоив лайкам коэффициенты, на которые стоит их умножать: то есть если допустим нам статистика показала, что в течение первого часа ответы получают больше лайков например в 2 раза, чем за все остальное время, то каждый лайк считаем как 1, в то время как все лайки спустя час считаем как 1*2, чтобы уравнять неравные условия. Но это тривиальный пример для демонстрации идеи уравнивания лайков, на деле нужно больше множителей и тщательно исследовать различные промежутки времени. Помимо этого, огромное значение имеет день недели и время, когда был задан вопрос. В те же выходные дни тухляк.

Касательно симпатий по стилю и т.д - тут тоже очень сложно, потому что надо для начала проанализировать все и правильно классифицировать все стили, что не так просто, но распознавать эти стили еще сложнее. Так же вероятность лайков возрастает в случае, если просмотров у вопроса много. А количество просмотров зависит в первую очередь от тега, к которому относится вопрос, но не менее значимый момент это заголовок вопроса - чем более он кликбейтный, "новичковый" и "водяной"(типа с чего начать учить х), тем больше по нему переходов, ведь кликбейт дает интерес, а остальное элементарно увеличивает число людей, способных дать ответ. Ну и желающих пошутить тоже.
Это так только первое что в голову пришло, на деле уйма факторов, которые вы под одну формулу не подгоните на мой взгляд.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Попробую расписать наиболее понятно:
1. Без лайков - конкурируют все, т.к. их ещё мало, но с неравной вероятностью: чем позже ответ получен, тем он ниже в списке и у него меньше шансов (что его прочитают).
2. После любого лайка - этот ответ поднимается в самый верх и начинает конкурировать со следующими 2-мя стоящими под ним (по времени постинга).
3. Как только собирается кластер (1-3 ответа с сильным отрывом от других) - остальным - почти без шансов.

Затем:
1. Если человек, задавший вопрос, понимает тему, он прочитает все и выберет решением 1 (реже 2) ответ ИЗ ВСЕХ!
2. Если не понимает, то решением становится "всплывший" кластер (с максимальным кол-вом лайков).

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

Дальше от пика - меньше балл.
Ближе - больше балл.

Вот и вся формула.
Ответ написан
Комментировать
@fsduiwe
Проще просто перемешивать ответы и не показывать лайки до момента закрытия вопроса, как только вопрос закрыт, то станет видно истинный ответ
Либо до момента пока пользователь не проголосует, ну а если он не залогинен то можно показывать все как есть

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

ФаКторОв очень много и этот ответ может выползти наверх несмотря на то что находится внизу
Ответ написан
@posters
Вопрос в том, по какой формуле можно посчитать реальную симпатию к вопросу, учитывая вышеописанные факторы?

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

Войдите, чтобы написать ответ

Похожие вопросы