排名是非常高频的需求,通常伴随着某种决策行为,比如投资行为,比赛投注行为,商品选购,等等。排名的对象五花八门,理财产品,参赛队伍,商品,网页,视频,等等。排名就是为这些对象产生一个有序的列表,可以先为对象产生一个评分,然后基于评分产生有序列表,也可以不产生评分直接产生最终的有序列表。
排名问题形式简答,但解答却可能不简单,为具体场景设计合适的排名方法,是一个比较困难的问题。
梅西法的思路是队伍的评分需要反应两只队伍对局时获胜方的优势:
r i − r j = y k r_i - r_j = y_k ri−rj=yk
其中 r i , r j r_i,r_j ri,rj 为待求解的队伍的评分(未知数), y k y_k yk 表示表示一场比赛中获胜方取得的优势,也就得分差值。n 支队伍总共进行了 m 场比赛,产生一个包含 n 个未知评分由 m 个线性方程组成的线性方程组,记为:
X r = y Xr = y Xr=y
其中 X 为稀疏矩阵,每一场比赛对应矩阵的一行,对应行中位置 i 的元素值为 1, 位置 j 的元素值为 -1, 其余元素为 0. y 为比赛得分的差值组成的列向量。
由于 X 矩阵比较稀疏,梅西发现经过调整得到方程组:
X T X r = X T y X^TXr = X^Ty XTXr=XTy
M = X T X , p = X T y M = X^TX,p=X^Ty M=XTX,p=XTy
M r = p Mr = p Mr=p
M 是比 X 稠密的矩阵,求解更为有利,并且M的元素也具有比较明确的物理含义:对角元素 M i i M_{ii} Mii含义是队伍 i 总共进行的比赛的场次,非对角元素 M i j M_{ij} Mij的含义是队伍i和队伍j对阵场数的相反数。 p i p_i pi的含义是队伍i参加的所有比赛的分差之和。
M的各行元素之和为零,rank(M) < n, M r = p Mr = p Mr=p 的解不唯一,梅西法处理方式是以全 1 行替换M中的任意一行,并将p中对应行元素设置为零,要求评分总和为零。经过调整后的方程记为:
M ‾ r = p ‾ \overline{M}r = \overline{p} Mr=p
求解此方程得出梅西评分向量 r r r。
科利法采用获胜率作为队伍的评分,并将获胜率 r i = w i t i r_i = \frac{w_i}{t_i} ri=tiwi 改进为 r i = 1 + w i 2 + t i r_i = \frac{1+w_i}{2+t_i} ri=2+ti1+wi,其中 w i w_i wi为队伍 i 获胜的次数, t i t_i ti 为参与的总比赛次数。
w i = w i − l i 2 + w i + l i 2 w_i = \frac{w_i - l_i}{2} + \frac{w_i + l_i}{2} wi=2wi−li+2wi+li
= w i − l i 2 + t ) i 2 = \frac{w_i - l_i}{2} + \frac{t)_i}{2} =2wi−li+2t)i
= w i − l i 2 + ∑ j = 1 t i 1 2 = \frac{w_i - l_i}{2} + \sum_{j=1}^{t_i}\frac{1}{2} =2wi−li+j=1∑ti21
≈ w i − l i 2 + ∑ j = 1 t i r j \approx \frac{w_i - l_i}{2} + \sum_{j=1}^{t_i}r_j ≈2wi−li+j=1∑tirj
r i = 1 + w i 2 + t i = 1 + ( w i − l i ) / 2 + ∑ j r j 2 + t i r_i = \frac{1 + w_i}{2 + t_i}= \frac{1 + (w_i - l_i)/2 + \sum_j r_j}{2 + t_i} ri=2+ti1+wi=2+ti1+(wi−li)/2+∑jrj
以上等式采用矩阵表示,得到科利矩阵 C C C :
C i j = { 2 + t i i == j − n i j i ≠ j C_{ij}= \begin{cases} 2 + t_i& \text{i == j}\\ -n_{ij}& i\neq j \end{cases} Cij={2+ti−niji == ji=j
其中 t i t_i ti 表示队伍 i 所进行的比赛总场数, n i j n_{ij} nij表示对于i和j对阵的场数。
右向量 b i = 1 + 1 2 ( w i − l i ) b_i = 1 + \frac{1}{2}(w_i-l_i) bi=1+21(wi−li)
其中 w i w_i wi表示队伍 i 累积获胜的场数。 l i l_i li 表示队伍 i 累积输掉的比赛场数。
求解: C r = b Cr = b Cr=b 得到科利评分向量 r r r.
基纳法的出发点是队伍的实力和队伍得到的评分的应该满足以下关系:
统计数据 a i j a_{ij} aij 衡量队伍 i 对阵队伍 j 的对阵表现情况。
队伍 i 相比于队伍 j 的相对实力定义为统计数据与对手 j 的评分乘积: s i j = a i j r j s_{ij} = a_{ij}r_j sij=aijrj
队伍 i 绝对定义为所有对手相对实力只和: s i = ∑ j = 1 m s i j = ∑ j = 1 m a i j r j s_i = \sum_{j=1}^ms_{ij} = \sum_{j=1}^ma_{ij}r_j si=j=1∑msij=j=1∑maijrj
由基纳法的出发点2得出方程: A r = λ r Ar = \lambda r Ar=λr,求解基纳方程得出基纳评分 r r r
埃洛评分出发点是队伍评分确定之后,改变其评分的因素应当是队伍的当前的表现,优于或差于其平均表现的程度:
r ( n e w ) = r ( o l d ) + K ( S − μ ) r_{(new)} = r_{(old)} + K(S - \mu) r(new)=r(old)+K(S−μ)
埃洛评分的更新公式为:
S i j = { 1 i 击败 j 0.5 i 战平 j 0 j 击败 i S_{ij}= \begin{cases} 1& \text{i 击败 j}\\ 0.5 & i战平j \\ 0 & j击败i \end{cases} Sij=⎩ ⎨ ⎧10.50i 击败 ji战平jj击败i
μ i j = L ( d i j / 400 ) = 1 1 + e − d i j / 400 , d i j = r i ( o l d ) − r j ( o l d ) \mu_{ij} = L(d_{ij}/400) = \frac{1}{1 + e^{-d_{ij}/400}},d_{ij} = r_{i(old)} - r_{j(old)} μij=L(dij/400)=1+e−dij/4001,dij=ri(old)−rj(old)
r i ( n e w ) = r i ( o l d ) + K ( S i j − μ i j ) r_{i(new)} = r_{i(old)}+ K(S_{ij} - \mu_{ij}) ri(new)=ri(old)+K(Sij−μij)
r j ( n e w ) = r j ( o l d ) + + K ( S j i − μ j i ) r_{j(new)} = r_{j(old)} + + K(S_{ji} - \mu_{ji}) rj(new)=rj(old)++K(Sji−μji)
马尔科夫法的基本思想是投票,计算步骤为:
比赛统计数据笔记为:
a i j = { j与i对阵获取的分数(攻击角度的描述) i与j对阵失去的分数(防守角度的描述) a_{ij}= \begin{cases} \text{j与i对阵获取的分数(攻击角度的描述)}\\ \text{i与j对阵失去的分数(防守角度的描述)} \end{cases} aij={j与i对阵获取的分数(攻击角度的描述)i与j对阵失去的分数(防守角度的描述)
给定一组队伍的防守评分 { d 1 , d 2 , . . . , d m } \{d_1, d_2,...,d_m\} {d1,d2,...,dm},以及比赛统计数据 a i j a_{ij} aij,队伍 j 的攻击评分定义为:
o j = a 1 j d 1 + a 2 j d 2 + . . . + a 1 m d m o_j = \frac{a_{1j}}{d_1}+\frac{a_{2j}}{d_2}+ ... + \frac{a_{1m}}{d_m} oj=d1a1j+d2a2j+...+dma1m
给定一组攻击评分 { o 1 , o 2 , . . . , o m } \{o_1,o_2,...,o_m\} {o1,o2,...,om} 以及比赛统计数据 a i j a_{ij} aij,定义队伍 i 的防守评分为 :
d i = a i 1 o i 1 + a i 2 o i 2 + . . . + a i m o i m d_i = \frac{a_{i1}}{o_{i1}} +\frac{a_{i2}}{o_{i2}} + ... + \frac{a_{im}}{o_{im}} di=oi1ai1+oi2ai2+...+oimaim
综合队伍的攻击评分和防守评分,得到OD总评分 r i = o i / d i r_i = o_i / d_i ri=oi/di
m i n Q ∣ ∣ Q T D Q − R ^ ∣ ∣ , s t . Q e = e , e T Q = e T , q i j ∈ { i , j } min_{Q}||Q^TDQ - \hat{R}||,st. Qe = e, e^TQ = e^T,q_{ij}\in\{i,j\} minQ∣∣QTDQ−R^∣∣,st.Qe=e,eTQ=eT,qij∈{i,j},其中Q为排列矩阵,D为队伍-队伍数据矩阵,包含了成对的比较数据。
m i n e T x = 0 f ( x ) = m i n e T x = 0 ∣ ∣ K − R ( x ) ∣ ∣ 2 = m i n e T x = 0 ∣ ∣ K − ( x e T − e x T ) ∣ ∣ 2 min_{e^Tx = 0}f(x) = min_{e^Tx = 0}||K - R(x)||^2 = min_{e^Tx = 0}||K - (xe^T - ex^T)||^2 mineTx=0f(x)=mineTx=0∣∣K−R(x)∣∣2=mineTx=0∣∣K−(xeT−exT)∣∣2
x = K e / n x = Ke/n x=Ke/n
排名聚合的目的是通过某种方式降多个排名列表进行融合,产生一个单一的新的更好的排名列表:
确定众多排名方法中哪个最优是吧非常困难的,难点在于最优的标准。稍容易回答的问题是两个排名算法的差异:
二分图对比:定性展示排名列表的差异
肯德尔测度 τ \tau τ
斯皮尔曼加权测度 ρ \rho ρ
对于一个聚合列表 μ \mu μ,如果将其中任意一对对象加以交换,都不会使任一输入列表 l i l_i li 和 μ \mu μ 之间的肯德尔度量 τ \tau τ 之和降低,则称 μ \mu μ为局部凯梅尼最优。
输入数据较小的变动带来输出数据较大的变化,则称该方法是敏感的。反之则称方法不敏感或则鲁棒的。鲁棒性常作为机器学习模型的训练目标。
研究发现科利、梅西评分法是比较鲁棒的排名方法,马尔科夫是比较敏感的。