基于用户投票的排名算法

合集下载

推荐系统排名算法初探

推荐系统排名算法初探

推荐系统排名算法初探推荐系统是指根据用户的历史行为数据,预测用户可能感兴趣的物品或服务,并向用户推荐。

而推荐系统中的排名算法,是指根据用户的行为数据以及物品的属性信息,对推荐结果进行排序,以便将最相关、最合适的物品展示在用户最容易看到的位置。

在这篇文章中,我们将初探推荐系统中常用的排名算法,包括基于内容的排名算法和协同过滤算法。

首先,基于内容的排名算法是一种根据物品自身属性信息,为用户推荐最相似的物品的算法。

这种算法基于物品的属性,如关键词、标签、描述等,计算不同物品之间的相似度,并根据用户的历史行为数据给出推荐结果。

其中,最常用的基于内容的排名算法之一是TF-IDF算法。

TF-IDF算法通过计算文本中的关键词的重要性,来衡量不同文本之间的相关性,从而为用户推荐最相关的内容。

另一种常用的排名算法是协同过滤算法,这种算法基于用户与用户之间或物品与物品之间的相似度,将用户的行为数据进行模型化,从而为用户推荐最可能感兴趣的物品。

协同过滤算法分为基于用户的协同过滤和基于物品的协同过滤两种。

基于用户的协同过滤是根据用户对物品的评分数据,计算不同用户之间的相似度,从而为用户推荐相似兴趣的用户喜欢的物品。

而基于物品的协同过滤则是根据物品之间的相似度,推测用户对某个物品的评分,进而进行推荐。

除了基于内容和协同过滤算法,还有一些其它常用的排名算法,如矩阵分解算法、逻辑回归算法、神经网络算法等。

这些算法通过不同的方式对用户行为数据进行建模和分析,从而不断优化推荐系统的排名效果。

在实际应用中,推荐系统通常会综合应用多种排名算法,以提高推荐结果的准确性和覆盖度。

总的来说,推荐系统中的排名算法是推荐系统的关键技术之一,直接影响用户的体验和系统的效果。

通过不断尝试和优化不同的排名算法,可以提高推荐系统的效果,并为用户提供更加个性化、精准的推荐服务。

对于推荐系统的开发者和研究者来说,深入研究各种排名算法,并根据不同的场景选择合适的算法,将是提升推荐系统性能的关键之一。

PageRank算法

PageRank算法

PageRank算法1. PageRank算法概述PageRank,即⽹页排名,⼜称⽹页级别、Google左側排名或佩奇排名。

是Google创始⼈拉⾥·佩奇和谢尔盖·布林于1997年构建早期的搜索系统原型时提出的链接分析算法,⾃从Google在商业上获得空前的成功后,该算法也成为其他搜索引擎和学术界⼗分关注的计算模型。

眼下许多重要的链接分析算法都是在PageRank算法基础上衍⽣出来的。

PageRank是Google⽤于⽤来标识⽹页的等级/重要性的⼀种⽅法,是Google⽤来衡量⼀个站点的好坏的唯⼀标准。

在揉合了诸如Title标识和Keywords标识等全部其他因素之后,Google通过PageRank来调整结果,使那些更具“等级/重要性”的⽹页在搜索结果中另站点排名获得提升,从⽽提⾼搜索结果的相关性和质量。

其级别从0到10级,10级为满分。

PR值越⾼说明该⽹页越受欢迎(越重要)。

⽐如:⼀个PR值为1的站点表明这个站点不太具有流⾏度,⽽PR值为7到10则表明这个站点很受欢迎(或者说极其重要)。

⼀般PR值达到4,就算是⼀个不错的站点了。

Google把⾃⼰的站点的PR值定到10,这说明Google这个站点是很受欢迎的,也能够说这个站点很重要。

2. 从⼊链数量到 PageRank在PageRank提出之前,已经有研究者提出利⽤⽹页的⼊链数量来进⾏链接分析计算,这样的⼊链⽅法如果⼀个⽹页的⼊链越多,则该⽹页越重要。

早期的⾮常多搜索引擎也採纳了⼊链数量作为链接分析⽅法,对于搜索引擎效果提升也有较明显的效果。

PageRank除了考虑到⼊链数量的影响,还參考了⽹页质量因素,两者相结合获得了更好的⽹页重要性评价标准。

对于某个互联⽹⽹页A来说,该⽹页PageRank的计算基于下⾯两个基本如果:数量如果:在Web图模型中,如果⼀个页⾯节点接收到的其它⽹页指向的⼊链数量越多,那么这个页⾯越重要。

电子投票系统的设计与实现

电子投票系统的设计与实现

电子投票系统的设计与实现随着科技的不断发展,传统的纸质投票方式逐渐被电子投票系统所取代。

电子投票系统的设计与实现是一个复杂而关键的过程,需要充分考虑安全性、可靠性和用户友好性等因素。

本文将介绍电子投票系统的设计原则、功能需求以及技术实现。

一、设计原则1. 安全性:电子投票系统必须确保选民投票的机密性、完整性和不可抵赖性。

系统应采用强大的加密算法来保护用户的隐私信息,并使用数字签名技术来防止选票被篡改。

2. 可靠性:电子投票系统在投票过程中应确保系统的稳定性和可用性。

系统应具备容错能力,能够在出现故障时自动切换至备份系统,以保证投票数据的完整性和准确性。

3. 用户友好性:电子投票系统应简单易用且符合人性化设计原则,以便选民能够轻松地理解和使用系统。

系统界面应简洁明了,提供清晰的指引和操作步骤,确保选民能够顺利完成投票过程。

4. 透明度:电子投票系统的设计应具备可追溯性和审核性。

系统应记录每一次投票的相关信息,并能够对投票过程进行审计和验证,以保证投票结果的真实性和公正性。

二、功能需求1. 用户认证:电子投票系统应提供有效的用户认证机制,确保只有合法选民才能参与投票。

系统可以采用多种认证方式,如生物特征识别、身份证验证或手机号验证等。

2. 投票过程:选民进入系统后,应能够选择投票对象,并进行确认。

系统应在选民投票后生成唯一的票据,并进行保存和备份,以便后续审核和验证。

3. 投票结果统计:电子投票系统应能够自动生成投票结果统计数据,并及时显示投票进度和结果。

系统可以提供多种形式的投票结果报告,如图表或表格,方便相关人员进行分析和决策。

4. 数据管理:系统应具备高效的数据库管理能力,能够对投票数据进行存储、查询和更新。

系统还应具备数据备份和恢复机制,以保证投票数据的安全性和可靠性。

5. 投票安全性:为保障投票的安全性,电子投票系统应采用确保指定的数字证书机制以验证导员的身份。

以及确保选民投票后的选票安全、准确的机制。

基于用户预测的推荐算法研究

基于用户预测的推荐算法研究
电脑编程技巧与维护
基于用户预测 的推荐 算法研 究
于奕 L ( 1 . 湘潭大学 ,长沙 4 1 1 1 0 5;2 . 湖南生物机电职业技术学 院 长沙 4 1 1 1 0 5 ) 摘 要 :B 2 C只是一个过渡性的商业模式 ,未来 电子 商务真正模式是 C 2 B 。推荐 系统是在 电子商务 平台上常见的一
是什 么新鲜 事 ,网购 以其便 捷性 、丰富性 等优 点深 入人 心 。 然 而 . 目前 的 网购 是 建 立 在 传 统 的 生 产 零 售 体 系 之 上 的 . 电 子 商务 只是 用 互 联 网 的手 段 把 零 售 的效 率 提 升 了 。 目前 电 子 商 务 主 流 都 是 B 2 C f B u s i n e s s t o C u s t o me r企 业 对 客 户) 。C 2 B( 即C u s t o m e r t o B u s i n e s s 客 户 对 企 业 )模 式 最 早 是 阿 里 巴 巴集 团 总 参 谋 长 曾 鸣 提 出 来 的 。 在 C 2 B模 式 中 .消 费 者 的需 求 是 提 前 确 定 的 ,这 样 就 能 精 确 生 产 , 提 高 供 应 链 效 率 ,减 少 库 存 。 实 现 C 2 B模 式 最 大 的难 点 是 确 定 消 费 者 的 需 求 。 目前 ,市 面 上 最 普 遍 的做 法 是 先 列 出 多 款 产 品 请 消 费 者 根 据 喜 好 进 行 投 票 ,最 后 选 出 得 票 高 的 产 品进 行 生 产 。 而 提 出根 据 推 荐 算 法 得 出 客 户 的需 求 ,将 可 能 是 一 个 新 的 方 式 来
Ke y wo r d s :El e c t on r i c c o mme c e; r Re c o mme n dபைடு நூலகம்a t i o n s y s t e m; p r e d i c t i o n Us e r N e e d; P e r s o n li a z e d; C o l l a b o r a t i o n p l a f t o r m

知乎推广运营:知乎排序规则

知乎推广运营:知乎排序规则

知乎推广运营:知乎排序规则我记得自己刚开始玩知乎的时候,还是在大一,那时候只知道知乎是一个问答类型的平台,并不知道知乎有那么多的道道,然而在和知乎平台的不断摩擦碰撞当中,也发现了知乎同时也是一个很好的营销引流平台,知乎上会有来自各行各业的社会精英,只要提出问题,就会有人帮忙解答。

大家还可以将好的答案好的经验分享出去,进行二次传播。

但是,你知道吗?同样是在知乎平台发表回答,有的人却得不到想要的效果,然而有的回答却获得高赞高转发,甚至可以达到精准引流的效果。

这是因为在知乎上发表的回答,也是有排序算法的。

那么,这篇文章就带大家了解一下知乎的排名规则,掌握这些规则可以让你的效果翻倍。

一、知乎平台喜欢推荐什么样的回答?1.直击问题,对所提问题作出真面、具体、详细、清晰的解答方式。

2.不超纲超限。

回答在所提问题的限定范围之内。

3.提供有逻辑及完整论据的回答,也就是有参考依据。

4.利用专业知识和系统获取的信息,而不是孤证和个人经历。

二、如何提升知乎的排名?1.遵守平台排序规则不管是知乎、抖音还是微博平台,他们都有自己的排序算法机制,尤其是知乎新上线的算法机制:威尔逊算法。

它的主要特点是:动态排序和专注领域。

(1).动态排序知乎的答案排序是动态的,按照用户的投票进行排序,包括赞同、反对、感谢、评论以及收藏。

例如:将一个回答展示给知乎用户观看并通过投票,通过用户的赞同票和反对票得到一个反映内容质量的评分。

如果投票的人数较少时,可以根据已经获得的票数估计这个回答的内容质量,投票的人越多估算结果越接近真实分。

除用户投票之外,感谢、收藏、评论也对回答的排名有着很大的影响。

因此,想要你的回答获得更靠前的排名话,我们也可以在回答中添加一些引导字眼,如:“请点赞、评论”等等。

(2).专注领域——账号权重影响排名除动态排序之外,知乎还增加了账号的权重。

没有人可以做到十全十美,因为我们每个人的擅长领域各有不同,所以在我们回答问题的时候最好专注于自己的领域。

百度排名规则

百度排名规则

百度排名规则1、点击周期。

以前是关键词点击次数超于前二十名,24小时之后给予第一的排名。

假如一个指数1000的关键词,排在第一位,大概每天的点击量是300,那么就需要点击超过300,24小时之后给予第一的排名。

现在算法已经不是了,需要增加一个关键词点击数考核周期,每一天都有这样的流量,才会给你不错的排名。

而这个周期有多长呢?不同关键词的排名周期是不一样的,不同行业的关键词周期也是不一样的。

这样,24小时快速提升关键词点击软件已经不好用了。

2、页面浏览比率。

页面的浏览比率值等于独立访客(UV)比页面浏览数(PV),一个独立客户访问一个页面跳出,属于很低的页面浏览比率。

而当网站的独立访客访问越多的页面是给予的排名越好。

而不单单是网站有流量就可以给予排名。

这一点,从一些淘宝客网站,单页面网站受到惩罚可以看出,而刷流量来提高排名的作弊手法已经不好用了。

3、网站跳出率和停留时间的综合因素。

一般seoer会认为,网站跳出率高,是不好的。

真的是这样的吗?例如:当网民搜索,优化,进入搜索结果网站。

该网站很好的解决网民的需求,直接就跳出网站。

这样也是合情合理的。

也许会有seoer有这样的疑问?这样的话,不是网站的页面浏览比率很低了吗?的确是的。

所以增添了网页停留时间两者的综合因素。

同样是搜索在成都哪些景点是免费的例子。

如果该网页很好的解答用户疑问,那么平均读完该文章是一分钟。

如果不能满足,那就是三秒钟跳出。

还可以在文章下面增添相关文章。

4、需求性对比。

当一个用户去搜索一个关键词,点击进去的第一个结果,没有找到用户想要的内容,那么用户就会,关掉页面,用户点击了几个结果后没有找到,就更换搜索词。

所以搜索引擎也会把这个计算下去,会进行了一个对比。

当用户点击了第9个时,第9个刚好满足了他想要的内容,搜索引擎对比需求性,来进行排名微调。

网站排名基本法则一、点击规则:我们进入百度站长平台可以的【搜索关键词】页面,可以发现,出现关键词展现量和点击量,我可以肯定的得出一个结论,当我们搜索某一个关键词,当一个页面点击量过高的时候,是非常容易参与良好的排名。

基于中位数的用户信誉度排名算法

BAO Li n, NI U Ju n- y u, ZHUANG Fa ng
( S o f t wa r e S c h o o l , F u d a n U n i v e r s i t y , S h a n g h a i 2 0 1 2 0 3 , C h i n a ) [ A b s t r a c t ]F o r t h e p r o b l e m t h a t t h e r e c o mme n d a t i o n s y s t e m i s v u l n e r a b l e t o t h e i mp a c t o f S p a mme r a t t a c k , w h i c h l e a d s t o t h e i n a c c u r a c y
d a t a c a n g e t a b e t t e r R o o t Me a n S q u a r e E r r o r ( R MS E ) v a l u e o n s V D + + .
o f t h e i f n a l i t e m r a t i n g , t h i s p a p e r p r o p o s e s a u s e r r e p u t a t i o n r a n k i n g a l g o r i t h m b a s e d o n m e d i a n . T h e a l g o r i t h m r e a d j u s t s t h e w e i g h t o f
r e p u t a t i o n , t h e n i t e r a t e s u n t i l c o n v e r g e n c e t o a d j u s t t h e u s e r r e p u t a t i o n a n d i f n a l r a t i n g . O p e r a t i o n r e s u l t o f m u l t i p l e r e a l d a t a s e t s s h o ws t h a t

知乎平台科普文本的传播特征及传播优化建议

知乎平台科普文本的传播特征及传播优化建议作者:王莹任乐毅来源:《公关世界》2024年第11期摘要:新媒体时代背景下,科学传播进入了新阶段。

知乎平台是目前我国最大的网络科普问答平台之一,值得就知乎平台科普文本的传播特征及传播优化建议开展分析。

本文从信源、信息、传播渠道、受传者4个方面分析了科普文本的传播特征,并针对知乎平台科普文本传播中存在的问题提出传播优化建议。

期望在多种举措下,可以利用知乎平台助力科普事业的发展。

关键词:知乎平台;科普文本;传播特征引言新媒体中提及的“新”是一个相对的概念,媒介技术随着时代的变革也在不停地演进。

媒介技术的变革赋予了新媒体具有即时性、开放性、交互性的特点,也使得在新媒体中的信息传播特征有了变化。

自我国网络问答平台诞生以来,百度知道、新浪爱问、知乎等平台不断发展壮大。

知乎是一个以国外网络问答社区Quora为原型的国内网络问答平台,用户在该平台可以提出问题和回答问题。

知乎的创立初衷是做出一个帮助大家组织和分享“知识经验”的互联网产品[1],其中“知识经验”的内涵包含了科学知识。

知乎于2010年12月上线,上线后的两年时间采用会员邀请制,并不对外开放注册。

知乎平台于2013年3月开放注册,因其注重知识传播的趣味性和用户体验,在短时间内吸引了大批学生用户使用。

在开放注册后的不到一年时间,注册用户由40万升至400万。

数据显示,2022年的平均月活跃用户达到1.01亿人,平均每月付费订阅会员有980万人[2]。

梳理出知乎平台科普文本的传播特征及传播优化建议,可以帮助我们更好地理解科学传播,有助于科学知识的传播者传播科学知识,有助于消除传播者与传播对象之间对科学理解的鸿沟,为提升全民科学素养提供参考。

要对科普文本进行研究,需要先阐明什么是文本。

美国解释学家乔治·格雷西亚对文本做出如下解释:文本的定义中有五点值得注意,即“文本是印刷符号”“文本是有意义的符号”“文本是符号的意义”“作者或释义者正在书写或者正在言语的文本”“文本是话语或者印刷而成的符号,且与特殊意义相联系”[3]。

搜索引擎关键词排序规则

一、特征词库的类别的建立与更新众所周知,百度有特征词库,通过特征词库,可以对用户查询序列,进行判断。

例如:当用户搜索“天龙八部在线观看” 、“射雕英雄传在线观看” 、“鹿鼎记在线观看” 、“电视剧在线观看”时,由于这些待挖掘序列中的“天龙八部” 、“射雕英雄传” 、“鹿鼎记” 、“电视剧” 在需求特征词库中属于视频类需求的特征词,并且“在线观看” 这一关键词与上述视频类需求的特征词的共现频次达到一定阈值(共现阈值)时,根据关键词“在线观看” ,提取关键词“在线观看” 与视频需求类别的映射关系,并根据映射关系来建立或更新需求特征词库。

二、对词条的分类首先对查询序列进行切词处理获得切分后的词条,再通过诸如对词条进行语义分析或根据词条在需求特征词库中进行匹配查询等方式,来获得所述候选需求类别。

例如:用户的查询序列为“土豆上的热门影视剧” 时,通过对其进行切词处理,得到“土豆/热门/ 影视剧” ,由于影视剧一词具有明显的需求类别,诸如视频、下载、图片、演员介绍,再通过诸如对词条进行语义分析或根据所述词条在需求特征词库中进行匹配查询等方式,来获得候选需求类别。

当挖掘序列相对应的分类结果的用户累计点击次数超过预设点击阈值时,基于所述分类结果所对应的需求类别,提取待挖掘序列与需求类别的映射关系,并根据映射关系来建立或更新需求特征词库,例如,当待挖掘序列为“日本地震” 时,根据该待挖掘序列对应的分类结果,如视频类搜索结果、新闻类搜索结果、图片类搜索结果,若视频类搜索结果对应的用户累计点击次数为300,新闻类搜索结果对应的用户累计点击次数为25000,图片类搜索结果对应的用户累计点击次数为700,预设点击阈值为10000 时,将待挖掘序列对应的分类结果的用户累计点击次数与预设点击阈值进行比较,并根据高于所述预设点击阈值的分类结果所对应的需求类别,即新闻需求类别,提取该待挖掘序列与新闻需求类别间的所述映射关系,并根据映射关系来建立或更新需求特征词库。

业主大会电子投票系统要求-2024标准

业主大会电子投票系统要求1范围本文件规定了业主大会电子投票系统的术语和定义、基本要求、用户管理、投票设置、投票界面、投票计数、通知、数据分析、安全和保护技术内容。

本文件适用于业主大会电子投票系统。

2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。

其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

GB/T35273信息安全技术个人信息安全规范3术语和定义下列术语和定义适用于本文件。

3.1业主大会owners'meeting指一个由房屋业主组成的会议,旨在就共同拥有的房屋或建筑物的管理、运行、维护和维修等事宜进行讨论和决策。

3.2电子投票electronic voting指一种通过计算机和网络技术实现的投票方式,选民可以在特定网站或投票终端上进行投票,借助数字技术实现选票投入、计票、统计和公示的过程。

它相对于传统的纸质选票,具有快捷、高效、精确、安全等特点。

4基本要求4.1.1可通过微信等小程序方式进行投票。

4.1.2线上投票时间应与业主大会起止时间同步。

4.1.3小程序投票成功后,应生成一张可下载保存的电子凭证。

4.1.4线上电子投票应由公证处进行电子数据保全公证。

4.1.5涉及到个人信息的选择,安全性应符合GB/T35273的要求。

4.1.6应向公证处提交业主名册。

4.1.7业主登录平台,注册账号,可通过多种方式完成身份认证。

4.1.8认证通过后,进入投票页面,业主可查看投票资料,可对需表决的议题进行选择。

4.1.9业主提交投票结果后,投票信息经过加密后脱敏存储。

4.1.10投票过程中,所有数据不可修改。

5用户管理5.1用户注册与登录5.1.1用户管理模块应提供用户注册和登录功能,以允许业主在系统中创建和管理自己的账户。

5.1.2用户注册过程应具有一定的验证机制,以确保注册的用户信息的准确性和合法性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于用户投票的排名算法(一):Delicious和Hacker News 互联网的出现,意味着"信息大爆炸"。 用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题。

各种各样的排名算法,是目前过滤信息的主要手段之一。对信息进行排名,意味着将信息按照重要性依次排列,并且及时进行更新。排列的依据,可以基于信息本身的特征,也可以基于用户的投票,即让用户决定,什么样的信息可以排在第一位。 下面,我将整理和分析一些基于用户投票的排名算法,打算分成四个部分连载,今天是第一篇。 一、Delicious 最直觉、最简单的算法,莫过于按照单位时间内用户的投票数进行排名。得票最多的项目,自然就排在第一位。 旧版的Delicious,有一个"热门书签排行榜",就是这样统计出来的。 它按照"过去 60 分钟内被收藏的次数"进行排名。每过 60 分钟,就统计一次。 这个算法的优点是比较简单、容易部署、内容更新相当快;缺点是排名变化不够平滑,前一个小时还排在前列的内容,往往第二个小时就一落千丈。 二、Hacker News Hacker News是一个网络社区,可以张贴链接,或者讨论某个主题。

每个帖子前面有一个向上的三角形,如果你觉得这个内容很好,就点击一下,投上一票。根据得票数,系统自动统计出热门文章排行榜。但是,并非得票最多的文章排在第一位,还要考虑时间因素,新文章应该比旧文章更容易得到好的排名。 Hacker News 使用 Paul Graham 开发的 Arc 语言编写,源码可以从arclanguage.org下载。它的排名算法是这样实现的:

将上面的代码还原为数学公式: 其中, P 表示帖子的得票数,减去 1 是为了忽略发帖人的投票。 T 表示距离发帖的时间(单位为小时),加上 2 是为了防止最新的帖子导致分母过小(之所以选择2,可能是因为从原始文章出现在其他网站,到转贴至 Hacker News,平均需要两个小时)。 G 表示"重力因子"(gravityth power),即将帖子排名往下拉的力量,默认值为1.8,后文会详细讨论这个值。 从这个公式来看,决定帖子排名有三个因素: 第一个因素是得票数P。 在其他条件不变的情况下,得票越多,排名越高。 从上图可以看到,有三个同时发表的帖子,得票分别为 200 票、60票和 30 票(减 1 后为 199、59和 29),分别以黄色、紫色和蓝色表示。在任一个时间点上,都是黄色曲线在最上方,蓝色曲线在最下方。 如果你不想让"高票帖子"与"低票帖子"的差距过大,可以在得票数上加一个小于 1 的指数,比如(P-1)^0.8。 第二个因素是距离发帖的时间T。 在其他条件不变的情况下,越是新发表的帖子,排名越高。或者说,一个帖子的排名,会随着时间不断下降。 从前一张图可以看到,经过 24 小时之后,所有帖子的得分基本上都小于1,这意味着它们都将跌到排行榜的末尾,保证了排名前列的都将是较新的内容。 第三个因素是重力因子G。 它的数值大小决定了排名随时间下降的速度。 从上图可以看到,三根曲线的其他参数都一样,G的值分别为1.5、1.8和2.0。G值越大,曲线越陡峭,排名下降得越快,意味着排行榜的更新速度越快。 知道了算法的构成,就可以调整参数的值,以适用你自己的应用程序。 [参考文献] * How Hacker News ranking algorithm works * How to Build a Popularity Algorithm You can be Proud of

基于用户投票的排名算法(二):Reddit Hacker News 排名算法的特点是用户只能投赞成票,但是很多网站还允许用户投反对票。就是说,除了好评以外,你还可以给某篇文章差评。 Reddit是美国最大的网上社区,它的每个帖子前面都有向上和向下的箭头,分别表示"赞成"和"反对"。用户点击进行投票,Reddit根据投票结果,计算出最新的"热点文章排行榜"。 怎样才能将赞成票和反对票结合起来,计算出一段时间内最受欢迎的文章呢?如果文章A有 100 张赞成票、5张反对票,文章B有 1000 张赞成票、950张反对票,谁应该排在前面呢? Reddit的程序是开源的,使用 Python 语言编写。排名算法的代码大致如下: 这段代码考虑了这样几个因素: (1)帖子的新旧程度t t = 发贴时间 - 2005 年 12 月 8 日7:46:43 t 的单位为秒,用unix时间戳计算。不难看出,一旦帖子发表,t就是固定值,不会随时间改变,而且帖子越新,t值越大。至于 2005 年 12 月 8 日,应该是Reddit成立的时间。 (2)赞成票与反对票的差x x = 赞成票 - 反对票 (3)投票方向y

y 是一个符号变量,表示对文章的总体看法。如果赞成票居多,y就是 +1;如果反对票居多,y就是-1;如果赞成票和反对票相等,y就是0。 (4)帖子的受肯定程度z z 表示赞成票超过反对票的数量。如果赞成票少于或等于反对票,那么z就等于1。 结合以上几个变量,Reddit的最终得分计算公式如下:

这个公式可以分成两个部分来讨论: (一)

这个部分表示,赞成票超过反对票的数量越多,得分越高。 需要注意的是,这里用的是以 10 为底的对数,意味着z=10可以得到 1 分,z=100可以得到 2 分。也就是说,前 10 个投票人与后 90 个投票人(乃至再后面 900 个投票人)的权重是一样的,即如果一个帖子特别受到欢迎,那么越到后面投赞成票,对得分越不会产生影响。 当反对票超过或等于赞成票,z=1,因此这个部分等于0,也就是不产生得分。 (二) 这个部分表示,t越大,得分越高,即新帖子的得分会高于老帖子。它起到自动将老帖子的排名往下拉的作用。 分母的 45000 秒,等于 12.5 个小时,也就是说,后一天的帖子会比前一天的帖子多得 2 分。结合前一部分,可以得到结论,如果前一天的帖子在第二天还想保持原先的排名,在这一天里面,它得到的净赞成票必须增加 100 倍。 y 的作用是用来产生正分和负分。当赞成票超过反对票时,得分为正;当赞成票少于反对票时,得分为负;当两者相等,得分为0。这就保证了得到大量净赞成票的文章,会排在前列;得到大量净反对票的文章,会排在最后。 (三) 这种算法的一个问题是,对于那些有争议的文章(赞成票和反对票非常接近),它们不可能排到前列。假定同一时间有两个帖子发表,文章A有 1 张赞成票(发帖人投的)、0张反对票,文章B有 1000 张赞成票、1000张反对票,那么A的排名会高于B,这显然不合理。 结论就是,Reddit的排名,基本上由发帖时间决定,超级受欢迎的文章会排在最前面,一般性受欢迎的文章、有争议的文章都不会很靠前。这决定了Reddit是一个符合大众口味的社区,不是一个很激进、可以展示少数派想法的地方。 [参考资料] * How Reddit ranking algorithms work

基于用户投票的排名算法(三):Stack Overflow Reddit排名算法的特点是,用户可以投赞成票,也可以投反对票。也就是说,除了时间因素以外,只要考虑两个变量就够了。 但是,还有一些特定用途的网站,必须考虑更多的因素。世界排名第一的程序员问答社区Stack Overflow,就是这样一个网站。

你在上面提出各种关于编程的问题,等待别人回答。访问者可以对你的问题进行投票(赞成票或反对票),表示这个问题是不是有价值。

一旦有人回答了你的问题,其他人也可以对这个回答投票(赞成票或反对票)。根据投票结果,系统自动找出最佳回答。 排名算法的作用是,找出某段时间内的热点问题,即哪些问题最被关注、得到了最多的讨论。 在 Stack Overflow 的页面上,每个问题前面有三个数字,分别表示问题的得分、回答的数目和该问题的浏览次数。以这些变量为基础,就可以设计算法了。

创始人之一的 Jeff Atwood,曾经在几年前,公布过排名得分的计算公式。 写成php 代码,就是下面这样: 各个算法变量的含义如下: (1)Qviews(问题的浏览次数)

某个问题的浏览次数越多,就代表越受关注,得分也就越高。这里使用了以 10 为底的对数,用意是当访问量越来越大,它对得分的影响将不断变小。 (2)Qscore(问题得分)和Qanswers(回答的数量)

首先,Qscore(问题得分)= 赞成票-反对票。如果某个问题越受到好评,排名自然应该越靠前。 Qanswers表示回答的数量,代表有多少人参与这个问题。这个值越大,得分将成倍放大。这里需要注意的是,如果无人回答,Qanswers就等于0,这时Qscore再高也没用,意味着再好的问题,也必须有人回答,否则进不了热点问题排行榜。 (3)Ascores(回答得分)

一般来说,"回答"比"问题"更有意义。这一项的得分越高,就代表回答的质量越高。 但是我感觉,简单加总的设计还不够全面。这里有两个问题。首先,一个正确的回答胜过一百个无用的回答,但是,简单加总会导致,1个得分为 100 的回答与 100 个得分为 1 的回答,总得分相同。其次,由于得分会出现负值,因此那些特别差的回答,会拉低正确回答的得分。 (4)Qage(距离问题发表的时间)和Qupdated(距离最后一个回答的时间)

改写一下,可以看得更清楚: Qage和Qupdated的单位都是秒。如果一个问题的存在时间越久,或者距离上一次回答的时间越久,Qage和Qupdated的值就相应增大。 也就是说,随着时间流逝,这两个值都会越变越大,导致分母增大,因此总得分会越来越小。 (5)总结

相关文档
最新文档