[求教] 如何优雅处理社交系统的评论权重? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
fox0001
V2EX    程序员

[求教] 如何优雅处理社交系统的评论权重?

  •  
  •   fox0001 2022-12-21 12:12:17 +08:00 2044 次点击
    这是一个创建于 1025 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1 背景

    公司做了个含有社交属性的平台,其中涉及对帖子的评论的排序问题。评论的排序权重计算公式如下:

    • 评论的排序权重 = 时间权重 + 点赞权重 + 其它权重
    • 时间权重 = 100 / (评论创建时间的小时数 - 当前服务器时间的小时数)
    • 点赞权重 = 近 1 天点赞数 x 5 + 2~3 天点赞数 x 3 + 4~7 天点赞数 x 2 + 8 天以上点赞数
    • 其它权重,跟“点赞权重”类似,只是根据不同的操作数据来计算

    就是“时间权重”和“点赞权重”都基于当前时间来计算,“时间权重”每小时变化一次,“点赞权重”每天变化一次。随着社交数据的膨胀,需要重算的历史数据也增多。

    2 问题

    如何减少无必要的计算?调整“评论的排序权重”的计算公式,还是制定相应的策略做?

    3 目前的想法

    总体来看,不会实时计算评论权重,而是建立异步任务去计算评论的权重并保存。查询评论时,直接根据评论的权重排序。

    基于此想法,目前的方案如下:

    1. 按此需求计算评论权重。当帖子有新增评论,或者相关评论有新操作,则重算该帖子所有评论的权重。

    2. “评论的排序权重”目前是对历史数据的权重做减法。重新设计一个计算公式,不动历史数据,只针对新评论或者有新操作的评论的权重做加法。

    3. 其实评论的排序,已有相关的研究或方案,例如“威尔逊置信区间法”。需要时间去理解。

    第 1 条附言    2022-12-21 17:54:25 +08:00
    - Reddit 的排名算法原理
    https://www.oschina.net/translate/how-reddit-ranking-algorithms-work?cmp

    这个文章分别讲解了 Reddit 的 Story (即 Feed )和 评论 的排序。都是采用跟时间无关的计算方法,即不用修改历史数据的排序得分。
    3 条回复    2022-12-21 20:44:15 +08:00
    xiaojj
        1
    xiaojj  
       2022-12-21 13:35:58 +08:00   3
    fox0001
        2
    fox0001  
    OP
       2022-12-21 15:58:00 +08:00 via Android
    @xiaojj #1 谢谢!虽然不能“抄作业”,但有启发意义
    yemoluo
        3
    yemoluo  
       2022-12-21 20:44:15 +08:00
    最好的作业是哔哩哔哩的源码吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1429 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 16:45 PVG 00:45 LAX 09:45 JFK 12:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86