高校投票系统计票计分算法的改进探索和实践

2021-12-02 01:22陈锦繁秦斌刘佳敏
现代计算机 2021年28期
关键词:计分票数计票

陈锦繁,秦斌,刘佳敏

(深圳大学信息中心,深圳 518060)

0 引言

随着信息技术的普及推广,生活中各种“互联网+”应用层出不穷,通过手机或电脑轻松点外卖、打车或买菜,已深入人心。投票系统大概是互联网应用最早的成功范例之一,利用在线网络和移动互联网的优势,既提高投票便利性,也能保证投票私密性。最重要的是,在线投票解决了线下手工计票的冗长繁琐,高效可靠的算法还能保证投票结果的准确度和可信度。因此,计票和计分算法的优劣将决定投票系统的成败。

1 测评系统概述

自2015年起,深圳大学正式上线了“校内服务单位满意度网上测评系统”(以下简称深大测评系统),每年组织一次全校师生员工网上测评,对全校所有管理部门、教辅部门和服务单位的服务满意度进行投票。参与被投票的测评单位约50个,测评评价分非常满意(100分)、满意(80分)、基本满意(60分)、不满意(50分)和不了解(不计分)等5个计分级别。投票人按教师、本科生、研究生、非学历教育学生、毕业校友和校企员工等分成不同类别,根据测评单位服务内容和服务对象不同,每个投票用户类别给每个测评单位的计票权重也不一样。

由于各测评单位和投票用户类别的权重可能会随时调整,个别投票用户类别甚至取消权重即投票计无效,因此在投票活动截止日停止投票后,统一进行计票运算。根据各单位收获的评价票数和投票人权重,再通过加权计分即排名规则核算得分,得到服务满意度的年度排名。

2 计票环节优化

根据历年的投票情况,教师、本科生和研究生等3类用户的投票占了绝大多数。因此,为了方便阐述计票和计分流程,本文中涉及到的计票规则和计分规则两个环节的算法都忽略了非在校师生因素,只保留教师、本科生和研究生3个在校师生类别。以图书馆和离退办为例,图书馆服务对象囊括全校师生和校外读者,各类人员都有评价权,考虑到学校本科生数量较多,因此教师、本科生和研究生权重比定为3:4:3;离退办的服务对象以临近离退和已离退教师为主,工作内容和学生关系不大,因此服务对象只有教师。

按照传统的用户依次计票累计办法,公式(1)为各测评单位得票数规则示意。Pn(n=1~4即含P1、P2、P3、P4)分别是非常满意、满意、基本满意和不满意等4个评价得票数,而“不了解”票计无效,不参与计票和计分;Wi是被测评单位对应第i个用户的权重,根据用户类别不同,分别为Wt教师权重、Ws本科生权重和Wy研究生权重;Pn i(n=1~4)是第i个用户选择的评价票。2020年度刚刚结束的测评活动中,合计约2万在校师生参与了投票,每用户分别投给50家被测评单位,则实际需统计的加权票数100万张。通过投票人和被测评单位的双循环,很容易实现票数统计,流程图如图1左侧一人一票模式(简称A模式)。

图1 一人一票A模式和按用户类别B模式计票流程对比图

一人一票模式优点是运算逻辑清晰,在即投即计的网上投票系统中是最常用的。深大测评系统不是即投即计,而且投票计票数据量较大。因此,这种计票模式应用到本案例中,虚线框内流程循环频次达100万次,势必严重消耗系统资源,完成计票统计的时间漫长。

深大测评系统在实际应用中是投票截止后统一进行计票计分,因此一人一票模式并非必要。投票人分为教职工、本科生、研究生等3个不同权重的投票用户类别,改进的思路是按照用户类别预先统计各被测评单位票数,依次计入被测评单位。

公式(2)为改进后计票算法规则。Pn(n=1~4即含P1、P2、P3、P4)分别是非常满意、满意、基本满意和不满意等4个评价得票数;W t、W s、W y分别为教师权重、本科生权重和研究生权重;Pt n、Ps n、P y n分别为4个评价的教师总票数、本科生总票数和研究生总票数。公式(2)的流程如图1的按用户类别模式(简称B模式)所示。票池数据先进行按用户类别的小计汇总,增加了“将人转化为类别”的运算步骤,即使再增加量级如10万甚至100万的票数,这个数据整理初始化的运算时间也是极少的,更加凸显改进效果。表1为图书馆和离退办的按用户类别统计的原始票数据。

表1 图书馆和离退办原始投票统计表

优化后的结果,从图1的虚线框内B模式双循环中的唱票计票运算频次为150次,相比A模式循环频次降幅超99.98%,大大节约了运算耗时。在一台普通终端电脑上运行测评系统计票环节程序,对优化前后的计票进行粗略计时:A模式27秒,B模式快于1秒(约0.8秒)。对比见图2所示。

图2 计票环节优化前后运算时长对比图

3 计分环节优化

在计票过程中完成“唱票”,各被测评单位均得到非常满意、满意、基本满意和不满意等4个级别评价票数(如表1所示),接下来就是计分排名算法问题,深大测评系统的计分要求跟电影点评网类似。电影爱好者喜欢访问的电影点评网有IMDb(internet movie database)、烂番茄(rotten tomatoes)、豆瓣电影(douban)等,他们都提供用户投票打分排名功能。国内的豆瓣电影网常被影迷们津津乐道,具有相当的知名度。根据网上可查询到的数据,豆瓣电影评分规则采用了常见的加权百分比算法,规则简单明了。

D1、D2、D3、D4、D5分别是对应1星、2星、3星、4星、5星的分值;P1、P2、P3、P4、P5分别是上述5个星值的投票数。豆瓣电影被誉为国内最大的青年影迷聚集地,拥有庞大用户群,评分规则真实反映每一位打分影迷的喜好。深大测评系统第一年上线时同样采用了类似的加权百分比算法,计分基本规则如公式(4)。

S1、S2、S3、S4对应非常满意、满意、基本满意和不满意等4个评价等级权重分数(不了解票计无效,不参与评分),分别是100分、80分、60分和50分;P1、P2、P3、P4分别是上述4个评价票数,即公式(1)、(2)被测评单位加权票数Pn。加权百分比算法逻辑清晰,得分运算也非常高效,但是这样的得分排名是否真实反映各测评单位的优劣呢?!

由于各测评单位的服务受众不尽相同,比如图书馆服务对象涵盖全校师生,离退办的服务对象则较窄,前者投票人数必然远远超过后者。2020年图书馆投票数约2万票,去除“不了解”票后得有效评价票Ptsy为14979张;离退办原始票Ptsy为447张,但根据师生权重只计教师票实则为148张,约占图书馆票数1%。图书馆按公式(4)加权百分比得分87.2,离退办按公式(4)算得88.2分。离退办评价票偏少,加大了偶然因素影响。对于图书馆而言,服务满意的师生可能投票参与度不高,但服务受众广难免百密一疏,不满意票自然少不了,因此“有功劳也有苦劳”的图书馆得分Q的排名似乎有点欠说服力。

表2 图书馆和离退办加权票和加权百分比得分表

电影评分也是同样道理:一部热门商业大片有超十万影迷投票,而一部小众影片可能获得区区几百投票。为了更准确衡量热门冷门影片的好坏,最理想的办法是让同样数量影迷观影并打分,但现实中这是无法做到的。因此,从计分算法入手,能否设法为冷门影片合理增加一些票数呢?贝叶斯算法可以提供一些思路。贝叶斯算法的推导始于条件概率:在事件B发生的前提下事件A发生的概率,数学上用P(A|B)来表示。

P(A)称为事件A的先验概率;P(B)称为事件B的先验概率;P(B|A)是事件A发生后事件B的观测样本统计概率,也称为似然性概率;P(A|B)就是我们想要的事件A条件概率,也称后验概率;公式中的P(B|A)/P(B)可看成一个整体,称为可能性函数,这是一个调整因子,使得预估概率更接近真实概率。通俗地说,贝叶斯公式是根据已有经验和知识先得到先验概率,然后在观测样本和数据不断积累的情况下调整这个概率,最终得到最科学最精准的事件发生概率。全球最知名的电影点评网莫过于IMDb,基于庞大的用户群和投票数,它的排名得到业界的公认,投票计分规则来源于贝叶斯算法。

IMDb评分算法规则见公式(6)。R是用普通的方法计算出的平均分;v是投票人数;m是进入IMDb排名前250需要的最小票数;C是目前所有电影的平均得分。IMDb考虑了所有可能影响的因子、基于普通方法计算出来的平均分、投票人数和目前所有电影的平均分。算法的关键点就是m,人为地给冷门影片增加基础票数,避免了过热和过冷问题。借鉴IMDb评分方法,深大测评系统也引入最小票数概念,为各测评单位均增加一个基础票数,避免冷票仓单位出现“几张满意票就插队领先”或“几张不满意票就拖后腿”的现象。

Q是按公式(4)加权百分比算法得分;P1、P2、P3、P4是公式(4)各评价等级票数;m是基础票数,按总投票数1%;C是所有单位得分Q的平均值。因此,深大测评系统采用了以公式(4)为评分基准、公式(7)为评分修正的计分规则。归根结底,此计分规则同样引入了贝叶斯推断思想,在不知道结果之前,先预设一个值,通过越来越多的数据加以修正,目的仍是最大程度反映广大师生意志,得到最真实的投票结果。

2020年度50个被测评单位,师生总投票数20000,则基础票数m值为200;加权百分比评分Q后得到C值为85。如图3所示,左侧为全体50个测评单位的得分分布图,其中Q曲线为加权百分比得分分布近似曲线,分布于70~95区间;S曲线为引入基础票数m的得分分布,位于76~94区间;曲线下方50个色块分别对应50个测评单位在各得分区的分布情况;m取值200让S曲线基本接近正态分布理想状态,一定程度上降低了冷门单位少数票的拉分效果,尽可能实现了服务数量和质量的真实排名体现。按照改进后的算法,因图书馆票数多受基础票数m影响较小,最终得分仍为87.2;离退办“拉分效果”被弱化,最终得分86.4,因此图书馆排名在离退办前头(见表3)。

图3 全体测评单位得分S分布图

表3 2020年测评单位排名统计表(部分)

4 其他优化和总结

深大测评系统使用的数据库是SQL server 2008R2,具执行大规模在线事务处理能力,是一个全面的数据管理和业务智能平台,为关键业务应用提供可扩展性、数据仓库、安全、高级分析和报表支持。优化运行环境,还可以从数据库入手,考虑使用视图和存储过程。视图可以通过抽取不同数据表的数据项生成,具有逻辑数据独立性的特点。从视图的特点和技术上说,对性能貌似并无提升,但从系统优化的角度,可以有效精简数据操作语句,同时保护数据表的直接读写,视图是有意义的。另外,SQL server的存储过程是一个预编译过程,把测评系统计票和计分环节中的数据处理语句写入存储过程,数据库不必每次执行它时都要分析和编译它,避免了处理语句在网络中传输然后再解释的低效率问题。

本文是应用程序开发过程中的改进优化的有益实践:计票环节着重提升运算效率和性能,计分环节追求公平合理最大化。深大测评系统采用贝叶斯平均算法思路弱化极端投票影响,其他计票策略还有很多:比如非师生权重因素、本单位人员不能给本测评单位投票、单点异常投票、恶意投票告警、智能识别拉票等约束和控制功能。上述因素本文未提及,各种策略在以后运行中会根据实际需求和变化进行不断调整调优。深圳大学校内单位服务满意度网上测评系统已运行6年,以科学精准、客观真实的测评数据为提升校内服务水平和学校信息化应用建设贡献了一份力量。

猜你喜欢
计分票数计票
多级计分测验中基于残差统计量的被试拟合研究*
基于类别水平的多级计分认知诊断Q矩阵修正:相对拟合统计量视角*
高级教师评审倾力一线教师
逻辑思维
夺宝园
中国戏剧家协会第七届理事会理事选举计票人名单
中国戏剧家协会第七届主席、副主席选举计票人名单
美国现在的选举投票方式比以往任何时候都脆弱