Откуда берутся, например, математические алгоритмы ранжирования Reddit? - PullRequest
6 голосов
/ 04 июля 2011

недавно я изучал алгоритм Reddit для определения того, что делает публикацию «горячей» темой и какой контент подходит для домашней страницы reddit.

статья, которую я читал, здесь: http://amix.dk/blog/post/19588

Я заметил, что у них есть математические логорифмы и они создали какую-то математическую функцию для определения актуальности / актуальности поста.

В используемых формулах откуда берутся все математические компоненты и как они знают, как их использовать?

спасибо!

- Бакз

РЕДАКТИРОВАТЬ: просто чтобы уточнить, я только что закончил среднюю школу и извиниться, если ответ на этот вопрос кажется довольно очевидным. еще раз спасибо!

Ответы [ 2 ]

22 голосов
/ 04 июля 2011

Я займусь первой формулой «горячих» постов.Формулы, как это происходит от требований.Дизайнеры Reddit подумали о том, чего хотят достичь, и разработали соответствующие формулы.Я не могу сказать вам точно, какие требования они имели в виду, но я могу взглянуть на реализацию и предположить, что им нужна система такого типа:

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

  2. Если две истории одинаково стары, одна с большим количеством голосов должна быть выше.(Таким образом, должен быть вклад голосов.)

  3. Чем больше голосов получает история, тем дольше она должна оставаться на вершине рейтинга.

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

  5. Истории с большим количеством отрицательных голосов, чемГолоса не должны появляться в рейтинге вообще.

Теперь давайте посмотрим на формулу: log z + yt / 45000 и посмотрим, какон удовлетворяет этим требованиям.

  1. Если число голосов не меняется, то z , y и t все без изменений.Таким образом, оценка не изменилась.Это удовлетворяет требованию (1).

  2. Если два этажа имеют одинаковый возраст, то они имеют одинаковое значение для t .Но тот, у кого больше голосов, имеет более высокое значение z , и, поскольку лог является монотонным, он имеет более высокий балл.Это удовлетворяет требованию (2).

  3. Чем больше голосов в истории, тем выше ее z , тем дольше она будет продолжаться до другой истории с более высоким t может превзойти это.Это удовлетворяет требованию (3).

  4. Логарифм - это функция, которая растет медленнее с увеличением (, посмотрите на ее график ).Поэтому истории нужно все больше и больше откликов, чтобы идти в ногу с новыми историями.Это удовлетворяет требованию (4).

  5. Если в истории больше отрицательных голосов, чем отрицательных, то z = 1 и y = −1, поэтомуоценка отрицательная.Это удовлетворяет требованию (5).

Константа 45 000 - это масштабный коэффициент, который приводит в равновесие число голосов и возраст.В дне 86 400 секунд, поэтому t увеличивается на эту сумму каждый день.Деление t на 45 000 дает 1,92, что означает, что относительная новизна за один день составляет 10 1,92 = 83 голоса, а относительная новизна за два дня - примерно 7 000 голосов.

2 голосов
/ 04 июля 2011

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

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

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

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

...