алгоритм ранжирования

задняя часть алгоритм машинное обучение Hacker News

Машинное обучение используется для создания роботов ранжирования и выдачи рекомендаций по ранжированию контента. Затухание времени t, t^2, оценка пользователя, рекомендация VIP-пользователя, рекомендация эксперта (взвешенная оценка пользователя, каждый пользователь имеет разный вес), сегментация слов, тема, оценка машинного обучения информационной энтропии, рекомендация редактора.
Стандартом оценки алгоритма является индекс операции: скорость сбора пользователей, например скорость, скорость оценки, скорость пересылки, время просмотра и время открытия.

Справочная статья:
www.cricode.com/2374.html

Какой алгоритм будет использовать Geek Toutiao для ранжирования в будущем?

Ответ таков: ранжирование на основе голосов пользователей! Алгоритм имеет широкий спектр приложений в области интеллектуального анализа данных.

Существует множество алгоритмов ранжирования на основе голосов пользователей.Давайте сначала представим различные алгоритмы ранжирования на основе голосов пользователей и, наконец, дадим алгоритм ранжирования, который может использовать Geek Toutiao.

Алгоритм ранжирования 1: вкусный алгоритм

Алгоритм Delicious — самый простой и интуитивно понятный алгоритм ранжирования голосования пользователей: он ранжируется по «количеству избранного за последние 60 минут» (то есть по кнопке «Нравится» в Geek Toutiao).Статистика один раз.

Преимущество этого алгоритма в том, что он относительно прост, легок в развертывании и довольно быстро обновляется контент; недостаток в том, что изменения ранжирования происходят недостаточно плавно, и контент, ранжировавшийся час назад, часто падает на втором часу.

Алгоритм ранжирования 2: Алгоритм Hacker News

Алгоритм Hacker News, разработанный и реализованный Полом Грэмом (известен автор книги «Хакеры и художники»), подсчитывает рейтинг каждой статьи для ранжирования.

Рассчитывается следующим образом:

" С с или е " знак равно п - 1 ( Т + 2 ) грамм " role="презентация">"Оценка"=P−1(T+2)G " С с или е " знак равно п - 1 ( Т + 2 ) грамм

в,
P — это количество голосов, которое есть у поста, минус 1, чтобы игнорировать голос автора.
T представляет собой время, прошедшее с момента публикации сообщения (в часах), плюс 2, чтобы последнее сообщение не приводило к слишком маленькому знаменателю (причина выбора 2 может заключаться в том, что среднее время, необходимое для появления исходной статьи на других сайтах). сайтов до репоста в Hacker News — два часа).
G означает «сила гравитации» — сила, снижающая рейтинг постов. Значение по умолчанию — 1,8.
Таким образом, есть три основных фактора, определяющих рейтинг статьи: количество голосов P, время T с момента публикации и коэффициент гравитации G. Среди них G можно соответствующим образом скорректировать в реализации для получения идеального эмпирического значения, тем самым обеспечив точность алгоритма рекомендации!

Алгоритм Hacker News характеризуется тем, что пользователи могут голосовать только за, но не против! Hacker News не подходит для некоторых сайтов, которым нужны положительные и отрицательные отзывы.

Этот алгоритм немного похож на то, как работает Geek Toutiao? Не волнуйся, просто посмотри вниз.

Подробное введение:Алгоритм хакерских новостей

Алгоритм 3: Алгоритм Reddit

Как следует из названия, этот алгоритм был предложен американским сайтом социальных новостей Reddit. Алгоритм более сложен, чем алгоритм Hacker News, и поддерживает положительное и отрицательное голосование. Алгоритм учитывает следующие факторы:

1) Сколько лет посту t
2) Разница между положительными и отрицательными голосами x
3) Направление голосования y: y — символическая переменная, указывающая на общее мнение о статье: если большинство голосов «за», то y равно +1, если голосов большинство, то y равно -1, если голоса за и голоса против равны, y равно 0
4) Степень одобрения поста z: z указывает количество голосов против неодобрения. Если количество голосов «за» меньше или равно количеству голосов «против», то z равно 1.
Сочетая четыре вышеуказанных фактора, алгоритм Reddit кажется более разумным и надежным, чем алгоритм Hacker News! Однако продолжайте читать!

Подробное введение:Алгоритм Reddit

Алгоритм 4: Алгоритм переполнения стека

Все кажутся знакомыми, когда вы видите это имя? Это знаменитый веб-сайт Stack Overflow, крупнейшее в мире сообщество программистов, занимающихся вопросами и ответами.

Роль алгоритма Stack Overflow заключается в том, чтобы выяснить самые горячие проблемы в определенный период времени, то есть какие проблемы наиболее волнуют и обсуждают. Алгоритм в основном учитывает следующие факторы:

Qviews (просмотры вопроса)
Qscore (оценка вопроса) и Qanswers (количество ответов)
Ascores
Qage (время с момента публикации вопроса) и Qupdated (время с момента последнего ответа)
Алгоритм переполнения стека — это алгоритм, специально разработанный для ранжирования горячих проблем. Окончательный рейтинг пропорционален вовлеченности (Qviews и Qanswers) и качеству (Qscore и Ascores) и обратно пропорционален времени (Qage и Qupdated).

Подробное введение:Алгоритм переполнения стека

Алгоритм 5: закон охлаждения Ньютона

«Закон Ньютона об охлаждении» очень просто описать одним предложением: скорость охлаждения объекта пропорциональна разнице температур между его текущей температурой и комнатной температурой.

Основная идея заключается в следующем:

Представим себе «горячее ранжирование текста» как процесс «естественного охлаждения», тогда устанавливаются следующие моменты:

(1) В любое время все статьи на веб-сайте имеют «текущую температуру», и статья с самой высокой температурой занимает первое место.
(2) Если пользователь голосует за статью, температура статьи повышается на один градус.
(3) Температура всех предметов постепенно «охлаждается» с течением времени.
Далее нам нужно абстрагировать три приведенных выше предложения в математическую модель, а затем получить алгоритм ранжирования закона охлаждения Ньютона.

Подробное введение:Закон охлаждения Ньютона

Алгоритм 6: Интервал Уилсона (математика идет, вы готовы?)

Алгоритм интервального ранжирования Уилсона — это алгоритм ранжирования, полностью основанный на вероятностной статистике. Алгоритм основан на следующих предположениях:

(1) Голосование каждого пользователя является независимым событием.
(2) У пользователя есть только два варианта: проголосовать за или против.
(3) Если общее количество голосов равно n, а количество голосов «за» равно k, то доля p голосов «за» равна k/n.
Основываясь на приведенных выше предположениях, шаги для получения алгоритма интервального ранжирования Уилсона следующие:

Первый шаг — вычислить «хороший рейтинг» (т. е. долю положительных голосов) для каждого элемента.
Второй шаг – рассчитать доверительный интервал (с вероятностью 95%) для каждой «хорошей оценки».
Третий шаг — ранжирование по нижней границе доверительного интервала. Чем выше значение, тем выше рейтинг.
Это объясняется тем, что ширина доверительного интервала связана с количеством выборок. Например, у A 8 голосов «за» и 2 голоса «против», у B 80 голосов «за» и 20 голосов «против». Оба пункта имеют 80 % голосов, но доверительный интервал B (предположим, [75 %, 85 %]) будет намного уже, чем A (предположим, [70 %, 90 %]), поэтому доверительный интервал B. Нижний предел (75 %) будет быть больше, чем A (70%), поэтому B должен ранжироваться перед A.

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

Алгоритм ранжирования «Интервал Уилсона» решает проблему слишком малого количества голосов, что приводит к ненадежным результатам.

Подробное введение:Алгоритм интервального ранжирования Уилсона

Алгоритм 7: байесовское среднее

В статье 10 основных алгоритмов, которые должен знать каждый программист, и их пояснения мы представили байесовскую вероятность.

"Интервал Уилсона" может решить проблему слишком малого количества голосов, что приводит к ненадежным результатам. Например, если проголосуют только 2 человека, более низкое значение "интервала Уилсона" значительно уменьшит долю голосов "за". Хотя это и обеспечивает доверие к рейтингу, это создает еще одну проблему: на вершине рейтинга всегда находятся проекты с наибольшим количеством голосов, новые проекты или непопулярные проекты, трудно выделиться, и рейтинг может упасть. позади надолго..

Алгоритм сортировки байесовского среднего учитывает следующие факторы:

1) C, масштаб расширения избирателя, является самоопределяемой константой, которая связана с общим количеством пользователей всего веб-сайта, и 2) может быть равна среднему количеству голосов за элемент.
3) n, текущее количество голосующих за проект.
4) x, стоимость каждого голоса за этот пункт.
5) m, общий средний балл, то есть среднее арифметическое всех голосов на всем сайте.
Этот алгоритм называется «байесовское среднее«(Байесовское среднее). Потому что это опирается на»Байесовский вывод(Байесовский Вывод) идея: так как вы не знаете результат голосования, сначала оцените значение, а затем постоянно корректируйте его новой информацией, приближая его к правильному значению.

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

Следовательно, этот метод может дать некоторым проектам с меньшим количеством голосов относительно справедливый рейтинг.

Подробно: байесовское усреднение

Что ж, было введено несколько известных алгоритмов ранжирования, основанных на голосовании пользователей.Вышеуказанные алгоритмы кажутся более надежными, чем другие, и их сложнее использовать, чем другой!

Возвращаясь к заголовку этой статьи, если бы вам нужно было реализовать этот алгоритм ранжирования, какой бы вы использовали? Какой алгоритм ранжирования использует Geek Toutiao?

Согласно моей ограниченной системе знаний, метод ранжирования Geek Toutiao, вероятно, является конкретным применением алгоритма переполнения стека.

В сочетании с алгоритмом, представленным в этой статье, следующие мои мысли о дизайне и реализации продуктов Geek Toutiao Проходящие мастера смеялись!
Во-первых: используйте алгоритм переполнения стека для ранжирования рекомендаций и внесите соответствующие изменения и упрощения в соответствии со своими характеристиками.

Есть две основные причины:

1) На первый взгляд, основными факторами алгоритма Geek Toutiao являются время выпуска, количество одобрений пользователей, количество комментариев и количество кликов (весьма вероятно, что Geek Toutiao также учитывает количество кликов). , что не точно).

2) Алгоритм переполнения стека относительно прост и легко настраивается. На самом деле простые алгоритмы часто позволяют добиться наилучших результатов — это так называемый путь к простоте!

Если вам интересно, вы можете прочитать эту статью:Доктор Амит Сингх, создатель Google Akka 47, испытайте простоту дороги!

Во-вторых: почему вечнозеленый заголовок не установлен кнопки «Шаг»?

Это связано с тем, что если добавить кнопку возражения, результаты ранжирования сразу же станут неконтролируемыми, а эффект сразу же ухудшится. Основная причина в том, что не исключено, что некоторые спекулянты будут использовать гик-заголовки в качестве канала для направления трафика (или просто для развлечения, просто наступить на него), раз есть читерство, например намеренное наступление на чужие статьи, например самостоятельно, проблема станет хлопотной, а эффект рекомендации будет сложно гарантировать. Когда кнопка возражения удалена, проблема становится намного проще. По поводу накрутки, интересующиеся могут прочитать эту статью: Сияние не обязательно золото - поговорим о проблеме накрутки поисковых систем (Search Engine Anti-SPAM)

В-третьих: Geek Toutiao может открыть привилегию администратора, и администратор может вручную поместить статью в начало, чтобы результаты алгоритма ранжирования должным образом контролировались людьми, а не полностью автоматизированы. Машины в нынешних условиях не могут полностью заменить людей, особенно когда речь идет о редактировании контента.

В-четвертых: если позволяют человеческие и материальные ресурсы, машинное обучение может быть применено к ранжированию для создания более интеллектуального алгоритма ранжирования.

Представьте себе такой сценарий: 50 статей отправляются на утверждение за три минуты одновременно (на самом деле это должно быть возможно, так как у Geektoutiao целых 30 редакторов). Если предположить, что подобные данные и данные комментариев не генерируются в течение нескольких минут, то алгоритм может сортировать только по времени, и эффект определенно неудовлетворителен.
Возможное решение: Согласно предыдущим данным заголовков компьютерщиков, статистике некоторых популярных тем, ключевым словам и другой информации, создать математическую модель. Когда одновременно поступает большое количество новых статей, новые статьи сначала сегментируются, а затем в соответствии с этой математической моделью каждая статья оценивается и ранжируется в соответствии с оценкой. Конечно, можно учитывать источник статьи.За надежные источники статьи можно поставить более высокую оценку, например: Bole.com, CSDN, Kuaike.com (это это шутка) и так далее.