【问题标题】:How to implement personalized feed ranking?如何实现个性化的Feed排名?
【发布时间】:2018-11-12 19:04:42
【问题描述】:

我有一个聚合各种体育内容(新闻文章、视频、用户讨论、推文)的应用程序,我目前正在努力让它向用户显示相关内容。每个帖子都有一个赞按钮,所以我用它来确定什么是受欢迎的。我正在使用 reddit 算法对其受欢迎程度进行排序,但也考虑到时间因素。但是,我的问题是我想让每个用户更加个性化。每个用户都应该根据自己的喜好查看更多内容。我有几个要衡量的因素: - 他们观看/点击的每个内容有多少?例如:60% 的视频和 40% 的文章 - 他们喜欢什么球队/球员?如果新闻是关于他们喜欢的球队的,那么应该更重 - 他们更喜欢什么运动?用户可以关注多项运动

我目前在做什么: 对于上面列出的每个因素,我会将一篇文章的受欢迎程度分数提高 X。例如:用户喜欢视频的比例比其他内容高 70%。我会将视频的分数提高 70%。

我正在寻找是否有更好的方法来做到这一点?有人告诉我机器学习将是一个好方法,但我想看看是否有任何替代方案。

【问题讨论】:

    标签: ranking feed


    【解决方案1】:

    听起来您的工作是开始个性化用户供稿的好地方。

    基于流行度指标(喜欢、cmets 等)、新近度以及内容类型的排名是 Facebook 过去使用的 EdgeRank 算法的基础。

    您可以应用许多指标来尝试提高参与度。某物 用户喜欢来自团队 x 的帖子,y 次,因此如果帖子来自 y,则通过 log(x) 提升 feed 中的活动,如果它是新的,则提升活动,如果它很受欢迎,则提升活动等等......你可以开始看到这些 EdgeRank 算法您跟踪的指标越多,可能会很快变得有点笨拙。此外,您设置的所有超参数往往对每个用户都是固定的,这最终不会为每个用户提供理想的排名算法。这就是机器学习技术可以发挥作用的地方。

    处理这类事情的主要算法类通常被称为学习排名,并且可以在较高的层次上概括为 3 类。协同过滤技术、基于内容的技术和混合技术(前两者的混合)

    如果您的提要很可能会频繁更新新项目,我会看看基于内容的方法。通常,这些算法会围绕参与度指标进行优化,例如用户点击、查看、评论或喜欢他们的提要中的活动的可能性。

    一点自我推销:我写了几篇博客文章,其中涵盖了一些您可能会觉得有趣的内容。

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

    这可能需要承担很多工作,因此您还可以看看使用第 3 方服务,例如 Stream(免责声明,我在那里工作),它可以帮助开发人员构建可扩展的个性化提要。

    【讨论】:

    • 感谢您的回答巴拉兹。我已经研究过使用 Stream 作为我的提要。使用您的开源框架github.com/tschellenbach/Stream-Framework,我无法根据自己的评分功能自定义排名。这是使用开源框架无法做到的事情吗?
    • 嗨,亚当,不幸的是,我不相信自定义排名已融入我们的开源框架。绝对可以通过执行类似于让用户最近 1000 次活动并根据您的排名指标在阅读时间上重新排名他们的方法来添加它。不过,我们确实为我们的增长计划提供自定义排名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2021-09-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多