Как реализовать персонализированный рейтинг кормов? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть приложение, которое собирает различный спортивный контент (новостные статьи, видео, обсуждения от пользователей, твиты), и в настоящее время я работаю над тем, чтобы оно отображало соответствующий контент пользователям.В каждом сообщении есть кнопка «Мне нравится», поэтому я использую ее для определения популярности.Я использую алгоритм Reddit, чтобы отсортировать его по популярности, а также по времени.Однако моя проблема в том, что я хочу сделать его более персонализированным для каждого пользователя.Каждый пользователь должен видеть больше контента в зависимости от того, что им нравится.У меня есть несколько факторов, которые я измеряю: - Сколько из каждого контента они смотрят / нажимают?Пример: 60% видео и 40% статей - Какие команды / игроки им нравятся?Если новость о команде, которая им нравится, ее следует взвесить более тяжело - какой вид спорта им нравится больше?Пользователи могут следить за несколькими видами спорта

То, что я сейчас делаю: для каждого из перечисленных выше факторов я увеличу рейтинг популярности на X статьи.Пример: пользователь любит видео 70%, чем другой контент.Я увеличу счет видео на 70%.

Я смотрю, есть ли лучшие способы сделать это?Мне сказали, что машинное обучение было бы хорошим способом, но я хотел посмотреть, есть ли альтернативы.

1 Ответ

0 голосов
/ 04 июня 2018

Похоже, что вы делаете, это отличное место, чтобы начать с персонализации ваших пользовательских каналов.

Ранжирование на основе метрик популярности (лайки, комментарии и т. Д.), Времени ожидания, а в вашем случае тип контента является основой алгоритма EdgeRank, который использовался Facebook.

Есть многометрик, которые вы можете применить, чтобы попытаться повысить заинтересованность.Что-то пользователю понравилось сообщение из команды x, y раз, так что повышайте активность в фиде по log (x), если публикуете, если оно от y, повышайте активность, если оно новее, повышайте активность, если оно популярно и т. Д. Вы можете начать видеть, что эти EdgeRankалгоритмы могут быть немного громоздкими, довольно быстро, чем больше метрик вы отслеживаете.Также все гиперпараметры, которые вы устанавливаете, имеют тенденцию быть фиксированными для каждого пользователя, что не приведет к идеальному алгоритму ранжирования для каждого пользователя.Вот где техника машинного обучения может вступить в игру.

Основной класс алгоритмов, которые имеют дело с такого рода вещами, часто называют обучением ранжированию и могут быть на высоком уровне обобщены на 3 категории.Методы совместной фильтрации, методы на основе контента и гибридные методы (смесь первых двух)

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

Немного саморекламы: я написал пару постов в блоге, в которых некоторые из них могут показаться вам интересными.

https://getstream.io/blog/instagram-discovery-engine-tutorial/ https://getstream.io/blog/beyond-edgerank-personalized-news-feeds/

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

...