1、DCG
例子: 文章库内有4个文章 d1d_1d1、d2d_2d2、d3d_3d3、d4d_4d4。针对查询Q,每个文档的打分分别为:d1=0分d_1=0分d1=0分、d2=1分d_2=1分d2=1分、d3=2分d_3=2分d3=2分、d4=2分d_4=2分d4=2分。
查询Q在系统S中返回的结果顺序为: d3d_3d3、d2d_2d2、d4d_4d4、d1d_1d1。
解:DCG公式为:DCGRF=∑scoreilog2(1+ranki)DCG_{RF}=\sum \frac{score_i}{log_2{(1+rank_i)}}DCGRF=∑log2(1+ranki)scorei
查询的顺序与分数为:d3(2分)d_3(2分)d3(2分)、d2(1分)d_2(1分)d2(1分)、d4(2分)d_4(2分)d4(2分)、d1(0分)d_1(0分)d1(0分)
所以 DCGRF=2log22+1log23+2log24+0log25=4.584DCG_{RF}=\frac{2}{log_2{2}} + \frac{1}{log_2{3}} + \frac{2}{log_2{4}} + \frac{0}{log_2{5}} = 4.584DCGRF=log222+log231+log242+log250=4.584
2、NDCG
例子(同上): 文章库内有4个文章 d1d_1d1、d2d_2d2、d3d_3d3、d4d_4d4。针对查询Q,每个文档的打分分别为:d1=0分d_1=0分d1=0分、d2=1分d_2=1分d2=1分、d3=2分d_3=2分d3=2分、d4=2分d_4=2分d4=2分。
查询Q在系统S中返回的结果顺序为: d3d_3d3、d2d_2d2、d4d_4d4、d1d_1d1。
解:NDCG公式为:NDCG=DCGRFIDCGNDCG=\frac{DCG_{RF}}{IDCG}NDCG=IDCGDCGRF
DCG公式为 DCGRF=∑scoreilog2(1+ranki)DCG_{RF}=\sum \frac{score_i}{log_2{(1+rank_i)}}DCGRF=∑log2(1+ranki)scorei
IDCG为Grund Truth即最理想的查询结果: IDCG=∑GTilog2(1+ranki)IDCG=\sum \frac{GT_i}{log_2{(1+rank_i)}}IDCG=∑log2(1+ranki)GTi
查询的顺序与分数为:d3(2分)d_3(2分)d3(2分)、d2(1分)d_2(1分)d2(1分)、d4(2分)d_4(2分)d4(2分)、d1(0分)d_1(0分)d1(0分)
所以 DCGRF=2log22+1log23+2log24+0log25=4.584DCG_{RF}=\frac{2}{log_2{2}} + \frac{1}{log_2{3}} + \frac{2}{log_2{4}} + \frac{0}{log_2{5}} = 4.584DCGRF=log222+log231+log242+log250=4.584
IDCG=2log22+2log23+1log24+0log25=7.170IDCG=\frac{2}{log_2{2}} + \frac{2}{log_2{3}} + \frac{1}{log_2{4}} + \frac{0}{log_2{5}} = 7.170IDCG=log222+log232+log241+log250=7.170
综上: NDCG=DCGRFIDCG=4.5847.170=0.639NDCG=\frac{DCG_{RF}}{IDCG}=\frac{4.584}{7.170}=0.639NDCG=IDCGDCGRF=7.1704.584=0.639
3、ROC与AUC

TP: 模型预测的正类是对的
FN: 模型预测的负类是错的
FP: 模型预测的正类是错的
TN: 模型预测的负类是对的

A为Ground-Truth B为predict
正确率 Accuracy=TP+FNTP+TN+FP+FN=U−A∩B+A∩BUAccuracy=\frac{TP+FN}{TP+TN+FP+FN}=\frac{U-A\cap{B}+A\cap{B}}{U}Accuracy=TP+TN+FP+FNTP+FN=UU−A∩B+A∩B
召回率 Recall=TPTP+FN=A∩BARecall=\frac{TP}{TP+FN}=\frac{A\cap{B}}{A}Recall=TP+FNTP=AA∩B
精准度 Precision=TPTP+FP=A∩BBPrecision=\frac{TP}{TP+FP}=\frac{A\cap{B}}{B}Precision=TP+FPTP=BA∩B
F1=21Precision+1Recall=2∗Precision∗RecallPrecision+RecallF1=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}} = \frac{2*Precision*Recall}{Precision+Recall}F1=Precision1+Recall12=Precision+Recall2∗Precision∗Recall
(F1为 Recall和Precision的调和平均数)
假阳率(ROC曲线X轴) FPR=FPFP+TNFPR=\frac{FP}{FP+TN}FPR=FP+TNFP
真阳率(ROC曲线Y轴 ==召回率) TPR=TPTP+FNTPR=\frac{TP}{TP+FN}TPR=TP+FNTP
AUC就是曲线右下部分面积。
4、BM25
BM25公式 Score(Q,d)=∑inWi∗R(Qi,d)Score(Q, d)=\sum_{i}^{n} W_i * R(Q_i,d)Score(Q,d)=∑inWi∗R(Qi,d)
其中: Q是Query。QiQ_iQi 表示语素(切词后的语素,与词典库对应。如Q=保定驴肉火烧哪家强? Q0Q_0Q0=保定,Q1Q_1Q1=驴肉)。WiW_iWi表示: 语素QiQ_iQi的权重,通常与TF-IDF排序成正相关。
5、AP
平均正确率(Average Precision, AP):对不同召回率点上的正确率进行平均。
1) 未插值的AP:
某个查询Q共有6个相关结果,某系统排序返回了5篇相关文档,其位置分别是第1,第2,第5,第10,第20位,则AP=(1/1+2/2+3/5+4/10+5/20+0)/6。
2) 插值的AP:
只对返回的相关文档进行计算的AP, AP=(1/1+2/2+3/5+4/10+5/20)/5,倾向那些快速返回结果的系统,没有考虑召回率。
不考虑召回率情况下,单个查询评价指标还有:
(1)Precision@N:在第N个位置上的正确率,对于搜索引擎,考虑到大部分作者只关注前一、两页的结果,P@10,P@20对大规模搜索引擎非常有效
(2)NDCG
(3)Bpref:Binary preference,2005年首次引入到TREC的Terabyte任务中。