Как постоянно фильтровать интересные данные для пользователя? - PullRequest
2 голосов
/ 25 сентября 2010

Возьмите пример сайта вопросов / ответов со слайд-шоу «Обзор», на котором будет отображаться одна страница вопросов / ответов за раз. Пользователь нажимает кнопку «Далее», и ему представляется новый вопрос / ответ.

Мне нужно решить, какие страницы следует возвращать каждый раз, когда пользователь нажимает кнопку «Далее». Некоторые вещи, которые я не хочу, и причины, по которым:

  • Отображение «новейших» вопросов в порядке убывания:

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

  • Отображение «наиболее активных» вопросов, судя по множеству предложенных ответов / комментариев:

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

  • Показаны вопросы «низкой активности», судя по небольшому количеству ответов / комментариев:

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

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

Существуют ли общие практики для этого или какие-либо идеи о том, как это можно сделать?

Спасибо!

Edit:

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

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

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

1 Ответ

1 голос
/ 23 октября 2010

На мой взгляд, вы затрагиваете два интересных вопроса:

  1. Как определить, что публикация интересна пользователю: здесь вы можете взять взвешенную комбинацию различных факторов, которые могут повысить интерес к сообщению. Количество активности, насколько свежа запись, если у вас есть способ узнать, что элемент соответствует интересам пользователей и т. Д. И т. Д. Вы можете выбрать вес на основе интуиции и посмотреть, насколько хорошо результат соответствует вашим ожиданиям. Если у вас есть время и желание, вы можете собрать данные о том, насколько хорошо ваши пользователи реагируют на записи, и попытаться определить оптимальный вес для каждого фактора, используя методы машинного обучения.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...