有趣的 Elo 积分系统

我们的 视频质量评估系统 可以通过众包的形式为一组视频进行主观质量打分。如果想评估两个视频编解码器的编码效果,并确定哪个编解码器更优,则可以采用我们的系统来完成。

众包成对打分法

我们会利用不同的编解码器对相同的视频源进行编码,并得到两个视频:A(编解码器 A 的编码视频),B(编解码器 B 的编码视频)。在评估的过程中,我们的系统会隐藏编解码器的信息,并要求众包用户对两个视频的效果进行评估,以选取效果好的视频。具体的打分如下图所示:

其中各选项对应的得分如下:

选项 5分制打分 百分制打分
A 特好 1 0~19
A 较好 2 20~39
差不多 3 40~59
B 较好 4 60~79
B 特好 5 80~100

对于每一个视频,我们都会邀请至少 10 个众包用户进行打分,我们会过滤不置信的打分并对剩余的打分进行 MOS 计算,然后将结果转换为百分制的打分([1,5][1,5]->[0,100][0,100])。例如,如果有5对视频,我们可能会得到如下的打分:

1
MOS_Scores = [61, 55, 54, 65, 15] 

根据实践,我们不能采用平均分的方式对两个编解码器效果进行评估,否则可能会存在偏差。以如上的打分为例,其平均打分为:μMOS_Scores=50\mu_{MOS\_Scores}=50,但是我们不能说两个编解码器的效果是一致的。因为 B 对于 A 而言,其 GSB(Good/Same/Bad)分布为:40%/40%/20%。因此,对于我们的评估系统而言,我们一般用 GSB 的分布,而不是一个单一的分数来确定哪个编解码器更好。

Chatbot Arena

但是,事情发生了一些有趣的变化。

最近在阅读一篇大语言模型评估的综述论文——A Survey on Evaluation of Large Language Models,该论文中提到了由 LMSYS Org 发布的 Chatbot Arena 平台,Chatbot Arena 是一个基于 Elo 打分的大语言模型的基准平台(Chatbot Arena: Benchmarking LLMs in the Wild with Elo Ratings)。

Chatbot Arena 平台通过众包的形式,采用匿名、随机的方式对不同的 LLMs(Large Language Models) 进行打分,然后基于国际象棋等竞技游戏中广泛使用的 Elo 积分系统对 LLMs 进行 Elo 积分计算,最终通过 Elo 积分对 LLMs 进行排序以确定 LLMs 的排名。

Chatbot Arena 每次会随机选择两个不同的大语言模型和用户聊天,并让用户在匿名的情况下判定哪款大模型产品的表现更好一些。

在得到用户的匿名打分之后,Chatbot Arena 通过计算 Elo 算法来获得 LLMs 的 Elo 积分。

我们可以在 chatbot-arena-leaderboard 页面 获取当前 Chatbot Arena 平台的 LLMs 的榜单。

Elo rating

Elo 的历史

Elo 不是缩写,而是根据 Elo 评分系统的发明者、美国物理学教授 Arpad Elo 的姓氏来命名的一个评分机制。Elo 评分机制的目的是为了更加公平的评估像如国际象棋这类竞技比赛的选手的水平。

在 Elo 以前,国际象棋选手排名体系已经有两套系统

  • 欧洲的 Ingo 等级积分系统
  • 美国象棋协会(USCF)的 Harkness 等级积分系统

虽然说 Harkness 系统相对公平,但是在某些情况下会产生许多不准确的评分。为了解决这个问题,Elo 教授代表 USCF 设计了一个更完善的新系统。1960 年,USCF 正式采用 Elo 评级系统;1970 年,国际棋联正式采用 Elo 评级系统。目前,许多国际象棋组织和网站也使用 Elo 系统来对玩家进行评分[1]

Elo 的数学原理

每个选手的 Elo 评分由一个数字表示,该数字反映了该选手在之前评分游戏中的成绩。每场比赛之后,选手的评分都会根据比赛结果进行调整。根据经验,一名得分比对手高 100 分的选手预计将赢得八场比赛中的五场(64%),一个拥有 200 分优势的选手大概会赢得四场比赛中的三场(75%)。

Elo 在解释选手对战情况时,分为两个部分[2]

  • 1.根据战力差来计算对战胜率情况,多少分差对应多少胜率。
  • 2.选手完成对局后实际获得的积分增长。

Elo 预期胜率

在竞技比赛中,强手未必总是胜过弱手,即使在其最好的状态时,仍然可能会犯错并输掉比赛。实际上,任何一名选手的比赛表现都应该符合正态分布:

f(x)=12πσe(xμ)22σ2f(x) = \frac{1}{\sqrt{2\pi}\sigma}e^{\frac{-(x-\mu)^2}{2\sigma^2}}

其中,μ\mu 代表选手实力的平均水平,σ\sigma 代表实力的稳定性。

对于两个选手而言:

  • 选手A,平均表现 1800 分,但是发挥不稳定,其波动分值为 200 分左
  • 选手B,平均表现 2000 分,并且发挥很稳定,其波动分值在 100 左右

那么,他们的表现应符合如下的两个正态分布:

在这种情况下,那么在 1850 分处,B 能战胜 A 的条件为:A 得 1850 时,B 的表现分高于 1850。也就是:

PB:win(1850)=PA(1850)PB(>1850)P_{B:win}(1850) = P_{A}(1850) * P_{B}(>1850)

而像 1850 这样的点有无数个:

所以 B 能战胜 A 的最终概率,是这无数个点下,B 战胜 A 的概率的和,也就是一个积分运算:

P(D)=12+0D12πσex22σ2dxP(D) = \frac{1}{2} + \int_{0}^{D}{\frac{1}{\sqrt{2\pi}\sigma}e^{\frac{-x^2}{2\sigma^2}}dx}

其中,DD 为两名选手的分差。

利用最小二乘法,可以得到与 P(D)P(D) 函数趋向相近的另一个函数,也是我们实际应用时更常用的函数:

P(D)=11+10D400P(D) = \frac{1}{1 + 10^{\frac{D}{400}}}

即当选手 A 与选手 B 的分差(A-B)为 DD 时,选手 A 对选手 B 的期望胜率为 P(D)P(D),则 P(D)P(D)DD 之间的变化关系如下图:

Elo 积分迭代

我们如何确定选手的 Elo 积分到底是多少呢?

Elo 的做法是:通过选手与不同分数选手的大量比赛结果,对选手的 Elo 分数进行不断修正,直到选手的分数收敛到其相应的真实水平。

Elo 的积分迭代公式如下:

Rn=Ro+K(WP(D))R_n = R_o + K * (W - P(D))

其中:

  • RnR_n 是选手比赛结束后的新的 Elo 积分
  • RoR_o 是选手比赛前的 Elo 积分
  • KK 是一个加成系数,由选手当前的分值水平决定,分值越高 KK 越小
  • WW 是选手的实际对局结果得分,赢得 1 分,输得 0 分,平局得 0.5 分
  • P(D)P(D) 是选手的预期胜率

比赛结束后,选手的积分增加与分差 DD 之间的变化趋势如下图:

由此可知:

  • 如果选手战胜比自己低 800 分的选手后,因为此时 P(D)100%P(D) \approx 100\%,因此,即便选手获胜也基本不得分。
  • 如果选手战胜比自己高 800 分的选手后,因为此时 P(D)0%P(D) \approx 0\%,因此,如果选手获胜,则可以得到 32 分。

对于 Elo 积分系统而言,该系统的特点是:选手之间的水平差距决定了他们能赢多少分或输多少分。

Elo 分高得多的选手有望获胜,因此他们在与得分低得多的选手的比赛中获胜不会得到很多分数,同时,他们的对手也没有因为失败而损失大量的分数。

反之,Elo 分较低的选手获胜时,则该选手会获得更多的 Elo 分数,其对手也会受到对应的比较多的扣分。

这看起来是多么的合理。

Elo 在视频质量打分中的应用

Elo 的特点

Elo 具备如下的特点[3]

  • 离散性:Elo 积分的计算不需要太多的信息,只需要知道三个要素即可对积分进行迭代:选手赛前积分,对手赛前积分,比赛结果。
  • 具备收敛过程:Elo 积分在达到合理之前存在一个收敛过程,比如一个 2000 分水平的玩家在玩小号时,其遇到的对手大概率都是从 1200 分开始的,这时候 Elo 分无法精确的反应他的真实实力。为了获取该玩家的真实水平,需要一个过程,也就是 Elo 积分的收敛过程。
  • 对所有比赛一视同仁:Elo 分只会根据同一评分体系下的积分进行迭代,积分增长情况和赛事重要性无关。
  • 与比赛顺序有一定关系:比赛顺序可能会对 Elo 积分的变化有一定影响。但是,因为选手的表现是成正太分布,再加上 Elo 积分的收敛特性,因此,在经过多轮比赛之后,Elo 的积分最终会趋向一个比较合理的分值。

Elo 如何评估编解码器的水平

正因为 Elo 有如上的特点,我们认为在对比评估两个编解码器时,可以使用 Elo 积分来进行编解码器的排位。每一个视频的打分都可以被视为一次比赛,而随着评估视频的数量增加,最终的 Elo 积分也会不断收敛至一个合理的水平,进而可以比较准确的来衡量编解码器的优劣。

对于编解码器 A、B 的如下 MOS 分:

1
MOS_Scores = [61, 55, 54, 65, 15] 

如果初始得分均为 1500,则我们可以得到最终的 Elo 得分如下:

  • A:1490
  • B:1510

可以使用 elo.py 脚本 对 100 个评估视频的 MOS 得分 进行 Elo 积分迭代,其 Elo 积分的迭代如下图所示:

从图上可知:对于 Elo 而言,确实需要一定的收敛周期。如果评估视频样本量不够,比如只有 38 个,那么很有可能就会得到错误的结论。

另外,对于视频评估而言,我们认为,给定两个编码器赋以相同的初始分(假定两个编解码器效果一致)更为合理。

视频顺序对 Elo 的影响

如前所述,初始分数有可能会对 Elo 带来影响,但是因为 Elo 的收敛特性,当视频样本足够多的时候,视频顺序不会影响最终的 Elo 得分。

为此,我们对视频顺序进行了随机排序,然后再来计算 Elo 得分。我们发现,视频顺序变换后,并没有影响最终的结论。

参考文献


  1. Elo Rating System ↩︎

  2. Elo Rating System ↩︎

  3. 通俗讲义:匹配系统核心 “ELO”积分揭秘 ↩︎

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2020-2024 wangwei
  • 本站访问人数: | 本站浏览次数:

请我喝杯咖啡吧~