融合动态权重与抗刷机制的网文评分系统——基于优书网、IMDB与Reddit的混合算法实践

✨ Yumuing 博客

🚀 探索技术的每一个角落,解码世界的每一种可能!

💌 如果你对 AI 充满好奇,欢迎关注博主,订阅专栏,让我们一起开启这段奇妙的旅程!

在这里插入图片描述

以权威用户为核心,时间衰减为尺度,社区互动为杠杆」的评分体系,实现:

📌 动态防刷:实时监控异常点赞,自动降权可疑评价

📌 智能冷启动:新书享3个月权重保护期,新用户默认60%权威值

📌 时空平衡:3年半衰期机制+Reddit热榜公式,兼顾经典与时效性

评分计算公式

S = ∑ i = 1 n ( w i ⋅ s i ) + C ⋅ μ ∑ i = 1 n w i + C S = \frac{\sum_{i=1}^{n} (w_i \cdot s_i)+C\cdot \mu}{\sum_{i=1}^{n} w_i+C} S=i=1nwi+Ci=1n(wisi)+Cμ

其中:

  • S S S:最终综合评分

  • s i s_i si:第i条评价的原始评分(1-5星)

  • w i w_i wi:第i条评价的综合权重

  • μ \mu μ:所有书籍的基准平均分(动态计算),采用以评分人数为权重的优书网原始加权平均评分,经计算,该分数为:5.269

  • C C C:平滑强度系数

    推荐值取平均评论数的50%,为小样本添加该值对应数量的平均评价
    注:女频若是普遍高于男频,则采用男女频分类排行,再重新赋值,混合排行

权重计算模型

w i = ( A i ⋅ T i ⋅ V i ) w_i = (A_i \cdot T_i \cdot V_i) wi=(AiTiVi)

评价者权重计算

A i = log ⁡ ( 1 + h a h a v g ) 1 + log ⁡ ( 1 + h a h a v g ) ⋅ s i g m o i d ( h a − h a v g h s t d ) A_i =\frac {\log(1 + \frac{h_a}{h_{avg}})}{1+\log(1 + \frac{h_a}{h_{avg}}) } \cdot sigmoid(\frac{h_a - h_{avg}}{h_{std}}) Ai=1+log(1+havgha)log(1+havgha)sigmoid(hstdhahavg)

其中:

  • h a h_a ha:评价者历史评论总赞同数
  • h a v g h_{avg} havg:平台用户历史赞同数平均值
  • h s t d h_{std} hstd:平台用户历史赞同数标准差

设计原理:

  • 使用自然对数 e \mathrm{e} e压缩防止头部用户主导
  • Sigmoid函数实现平滑过渡,当用户权威值超过均值1个标准差时获得0.73权重,2个标准差时达0.88

时间衰减因子

T i = e − λ ⋅ Δ t T_i = e^{-\lambda \cdot \Delta t} Ti=eλΔt

其中:

  • Δ t \Delta t Δt:当前时间与评价时间的差值(以月为单位)
  • λ \lambda λ:衰减系数

示例效果:推荐值为0.02,半衰期为3年

  • 1月前评价:0.98
  • 1年前评价:0.79
  • 3年前评价:0.56

社区反馈权重

V i = 1 2 ( v i v m a x + v i v i + v q ) V_i =\frac{1}{2}(\sqrt{\frac{v_i}{v_{max}}} + \frac{v_i}{v_i + v_{q}}) Vi=21(vmaxvi +vi+vqvi)

其中:

  • v i v_i vi:该评价被赞同数
  • v m a x v_{max} vmax:当前书籍的最高单条评价赞同数
  • v q v_q vq:抗噪调节参数(推荐取10)

设计原理:

  • 第一项保证头部评价的显著性
  • 第二项防止零赞同评价被完全忽视

算法说明

  1. 动态适应性:

    1. 每小时自动更新 h a v g h_{avg} havg h s t d h_{std} hstd
    2. 每天更新 v m a x v_{max} vmax
    3. 每月重新计算所有 Δ t \Delta t Δt
  2. 鲁棒性保障:

    设置权重下限 w m i n = 0.2 w_{min}=0.2 wmin=0.2防止过度衰减

    对刷赞行为设置 v i v_i vi上限(如当日突增超均值3σ,则动态降低到该书评计算得出社区权重的20%)

  3. 冷启动方案:

    新用户默认 A i = 0.6 A_i=0.6 Ai=0.6

    新书籍首月时间递减参数 λ \lambda λ降为0.01,三个月后改为0.02

    起始平均分 μ \mu μ选取优书网所有书籍加权平均 μ = ∑ i = 1 n 该书籍评价人数 所有评价人数 ⋅ 该书籍评分 ∑ i = 1 n 该书籍评价人数 所有评价人数 \mu=\frac{\sum_{i=1}^{n}\frac{该书籍评价人数}{所有评价人数} \cdot 该书籍评分}{\sum_{i=1}^{n}\frac{该书籍评价人数}{所有评价人数}} μ=i=1n所有评价人数该书籍评价人数i=1n所有评价人数该书籍评价人数该书籍评分

最终分数映射

N x = N max ⁡ − N min ⁡ O max ⁡ − O min ⁡ × ( O x − O min ⁡ ) + N min ⁡ N_{x}=\frac{N_{\max}-N_{\min}}{O_{\max}-O_{\min}}\times(O_{x}-O_{\min})+N_{\min}\quad Nx=OmaxOminNmaxNmin×(OxOmin)+Nmin

其中:

  • N m a x = 10 N_{max}=10 Nmax=10
  • N m i n = 1 N_{min}=1 Nmin=1
  • O m a x = 5 O_{max}=5 Omax=5
  • O m i n = 1 O_{min}=1 Omin=1

即: N x = 9 4 × ( O x − 1 ) + 1 N_{x}=\frac{9}{4}\times(O_{x}-1)+1 Nx=49×(Ox1)+1

注:保留两位小数,少于二十人评分建议不显示

点赞和点踩说明

  • 点赞和踩都得花费签到得到的代币,最终显示赞值(负值显示为0,保留值)为: 点赞量 − 点踩量 点赞量-点踩量 点赞量点踩量
  • 首页书评排名算法:Reddit 排名算法

算法说明

s c o r e = l o g 10 ( z ) + ( y ⋅ t 45000 ) score= log_{10}(z) + (\frac {y \cdot t} {45000}) score=log10(z)+(45000yt)

其中:

  • t = 发帖时间 - 2005年12月8日7:46:43

    Reddit用发帖时间与成立时间的差值来表示t,单位为秒。帖子越新,t值越大,得分就越高。因此,最新的帖子相对较旧的帖子有更高的排名优先权。

  • x = 赞成票 - 反对票

    这个值反映了帖子总体的支持度。显然,赞成票多于反对票的帖子更容易排在前列。

  • y = +1 或 -1

    如果赞成票多于反对票,y取+1,反之则取-1,代表帖子是否整体受欢迎。

  • z = |赞成票 - 反对票|

    受欢迎程度反映了投票差的绝对值,即z越大,表示帖子越受欢迎或越被厌恶。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/75507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Golang打包jar应用

文章目录 背景Go 的 go:embed 功能介绍与打包 JAR 文件示例1. go:embed 基础介绍基本特性基本语法 2. 嵌入 JAR 文件示例项目结构代码实现 3. 高级用法:嵌入多个文件或目录4. 使用注意事项5. 实际应用场景6. 完整示例:运行嵌入的JAR 背景 想把自己的一个…

前端大屏可视化项目 局部全屏(指定盒子全屏)

需求是这样的&#xff0c;我用的项目是vue admin 项目 现在需要在做大屏项目 不希望显示除了大屏的其他东西 于是想了这个办法 至于大屏适配问题 请看我文章 底部的代码直接复制就可以运行 vue2 px转rem 大屏适配方案 postcss-pxtorem-CSDN博客 <template><div …

《2025蓝桥杯C++B组:D:产值调整》

**作者的个人gitee**​​ 作者的算法讲解主页▶️ 每日一言&#xff1a;“泪眼问花花不语&#xff0c;乱红飞过秋千去&#x1f338;&#x1f338;” 题目 二.解题策略 本题比较简单&#xff0c;我的思路是写三个函数分别计算黄金白银铜一次新产值&#xff0c;通过k次循环即可获…

[VTK] 四元素实现旋转平移

VTK 实现旋转&#xff0c;有四元数的方案&#xff0c;也有 vtkTransform 的方案&#xff1b;主要示例代码如下&#xff1a; //构造旋转四元数vtkQuaterniond rotation;rotation.SetRotationAngleAndAxis(vtkMath::RadiansFromDegrees(90.0),0.0, 1.0, 0.0);//构造旋转点四元数v…

华为hcie证书的有效期怎么判断?

在ICT行业&#xff0c;华为HCIE证书堪称含金量极高的“敲门砖”&#xff0c;拥有它往往意味着在职场上更上一层楼。然而&#xff0c;很多人在辛苦考取HCIE证书后&#xff0c;却对其有效期相关事宜一知半解。今天&#xff0c;咱们就来好好唠唠华为HCIE证书的有效期怎么判断这个关…

【精品PPT】2025固态电池知识体系及最佳实践PPT合集(36份).zip

精品推荐&#xff0c;2025固态电池知识体系及最佳实践PPT合集&#xff0c;共36份。供大家学习参考。 1、中科院化学所郭玉国研究员&#xff1a;固态金属锂电池及其关键材料.pdf 2、中科院物理所-李泓固态电池.pdf 3、全固态电池技术研究进展.pdf 4、全固态电池生产工艺.pdf 5、…

MySQL 中为产品添加灵活的自定义属性(如 color/size)

方案 1&#xff1a;EAV 模型&#xff08;最灵活但较复杂&#xff09; 适合需要无限扩展自定义属性的场景 -- 产品表 CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100),price DECIMAL(10,2) );-- 属性名表 CREATE TABLE attributes (id INT PRIMA…

CSPM认证对项目论证的范式革新:从合规审查到价值创造的战略跃迁

引言 在数字化转型浪潮中&#xff0c;全球企业每年因项目论证缺陷导致的损失高达1.7万亿美元&#xff08;Gartner 2023&#xff09;。CSPM&#xff08;Certified Strategic Project Manager&#xff09;认证体系通过结构化方法论&#xff0c;将传统的项目可行性评估升级为战略…

CLIP中的Zero-Shot Learning原理

CLIP&#xff08;Contrastive Language-Image Pretraining&#xff09;是一种由OpenAI提出的多模态模型&#xff0c;它通过对比学习的方式同时学习图像和文本的表示&#xff0c;并且能在多种任务中进行零样本学习&#xff08;Zero-Shot Learning&#xff09;。CLIP模型的核心创…

spring mvc 中 RestTemplate 全面详解及示例

RestTemplate 全面详解及示例 1. RestTemplate 简介 定义&#xff1a;Spring 提供的同步 HTTP 客户端&#xff0c;支持多种 HTTP 方法&#xff08;GET/POST/PUT/DELETE 等&#xff09;&#xff0c;用于调用 RESTful API。核心特性&#xff1a; 支持请求头、请求体、URI 参数的…

北大:LLM在NL2SQL中任务分解

&#x1f4d6;标题&#xff1a;LearNAT: Learning NL2SQL with AST-guided Task Decomposition for Large Language Models &#x1f310;来源&#xff1a;arXiv, 2504.02327 &#x1f31f;摘要 &#x1f538;自然语言到SQL&#xff08;NL2SQL&#xff09;已成为实现与数据库…

STM32LL库编程系列第八讲——ADC模数转换

系列文章目录 往期文章 STM32LL库编程系列第一讲——Delay精准延时函数&#xff08;详细&#xff0c;适合新手&#xff09; STM32LL库编程系列第二讲——蓝牙USART串口通信&#xff08;步骤详细、原理清晰&#xff09; STM32LL库编程系列第三讲——USARTDMA通信 STM32LL库编程…

网络5 TCP/IP 虚拟机桥接模式、NAT、仅主机模式

TCP/IP模型 用于局域网和广域网&#xff1b;多个协议&#xff1b;每一层呼叫下一层&#xff1b;四层&#xff1b;通用标准 TCP/IP模型 OSI七层模型 应用层 应用层 表示层 会话层 传输层 传输层 网络层 网络层 链路层 数据链路层 物理层 链路层&#xff1a;传数据帧&#xff0…

【C语言】预处理(下)(C语言完结篇)

一、#和## 1、#运算符 这里的#是一个运算符&#xff0c;整个运算符会将宏的参数转换为字符串字面量&#xff0c;它仅可以出现在带参数的宏的替换列表中&#xff0c;我们可以将其理解为字符串化。 我们先看下面的一段代码&#xff1a; 第二个printf中是由两个字符串组成的&am…

【高性能缓存Redis_中间件】一、快速上手redis缓存中间件

一、铺垫 在当今的软件开发领域&#xff0c;消息队列扮演着至关重要的角色。它能够帮助我们实现系统的异步处理、流量削峰以及系统解耦等功能&#xff0c;从而提升系统的性能和可维护性。Redis 作为一款高性能的键值对数据库&#xff0c;不仅提供了丰富的数据结构&#xff0c;…

Java如何获取文件的编码格式?

Java获取文件的编码格式 在计算机中&#xff0c;文件编码是指将文件内容转换成二进制形式以便存储和传输的过程。常见的文件编码格式包括UTF-8、GBK等。不同的编码使用不同的字符集和字节序列&#xff0c;因此在读取文件时需要正确地确定文件的编码格式 Java提供了多种方式以获…

客户端负载均衡与服务器端负载均衡详解

客户端负载均衡与服务器端负载均衡详解 1. 客户端负载均衡&#xff08;Client-Side Load Balancing&#xff09; 核心概念 定义&#xff1a;负载均衡逻辑在客户端实现&#xff0c;客户端主动选择目标服务实例。典型场景&#xff1a;微服务内部调用&#xff08;如Spring Cloud…

Quartus II的IP核调用及仿真测试

目录 第一章 什么是IP核&#xff1f;第二章 什么是LPM&#xff1f;第一节 设置LPM_COUNTER模块参数第二节 仿真 第三章 什么是PLL&#xff1f;第一节 设置ALTPLL&#xff08;嵌入式锁相环&#xff09;模块参数第二节 仿真 第四章 什么是RAM&#xff1f;第一节 RAM_1PORT的调用第…

各地物价和生活成本 东欧篇

东欧地区的物价差异相对较大&#xff0c;一些国家的物价较高&#xff0c;而另一些国家则相对便宜。这些差异主要受当地经济发展水平、工资水平、旅游业发展以及国际关系等因素影响。以下是一些典型的东欧国家&#xff0c;按物价高低进行分类&#xff1a; &#x1f30d; 物价较高…

改进神经风格迁移

改进神经风格迁移&#xff08;Neural Style Transfer, NST&#xff09;可以从多个方向入手&#xff0c;包括模型结构优化、损失函数设计、计算效率提升、应用场景扩展等。以下是一些关键的改进方向及具体方法&#xff1a; 1. 模型结构优化 &#xff08;1&#xff09;轻量化网络…