推荐系统离线评估指标
1 评分预测指标
符号定义:对于测试集中的一个用户u和物品i,令 r u i r_{ui} rui是用户u对物品i的实际评分,而 r ^ u i \hat r_{ui} r^ui是推荐算法给出的预测评分
1.1 均方根误差(Root Mean Squared Error,RMSE)
R M S E = ∑ u , i ∈ T ( r u i − r ^ u i ) 2 ∣ T ∣ \mathrm{RMSE}=\frac{\sqrt{\sum_{u, i \in T}\left(r_{u i}-\hat{r}_{u i}\right)^{2}}}{|T|} RMSE=∣T∣∑u,i∈T(rui−r^ui)2
1.2 平均绝对误差(Mean Absolute Error,MAE)
M A E = ∑ u , i ∈ T ∣ r u i − r ^ u i ∣ ∣ T ∣ \mathrm{MAE}=\frac{\sum_{u, i \in T}\left|r_{u i}-\hat{r}_{u i}\right|}{|T|} MAE=∣T∣∑u,i∈T∣rui−r^ui∣
2 TopN推荐
符号定义: R ( u ) R(u) R(u)代表根据用户在训练集上的行为给用户做出的推荐列表, T ( u ) T(u) T(u)代表用户在测试集上的行为列表。
2.1 精确度(Precision)
Precision = ∑ u ∈ U ∣ R ( u ) ∩ T ( u ) ∣ ∑ u ∈ U ∣ R ( u ) ∣ \text { Precision }=\frac{\sum_{u \in U}|R(u) \cap T(u)|}{\sum_{u \in U}|R(u)|} Precision =∑u∈U∣R(u)∣∑u∈U∣R(u)∩T(u)∣
很明显,这个公式的含义是推荐列表与测试集的行为集合的交集,即推荐准确的数量,除以推荐列表的总数,通俗讲就是推荐的准确率。
2.2 召回率(Recall)
Recall = ∑ u ∈ U ∣ R ( u ) ∩ T ( u ) ∣ ∑ u ∈ U ∣ T ( u ) ∣ \text { Recall }=\frac{\sum_{u \in U}|R(u) \cap T(u)|}{\sum_{u \in U}|T(u)|} Recall =∑u∈U∣T(u)∣∑u∈U∣R(u)∩T(u)∣
与上面的精确度不同的是,这个公式里的分母换成了 T ( u ) T(u) T(u),这个公式表示我们准确推荐的数目与用户接下来的行为总数目的比值,一定程度上表示了对推荐潜力的挖掘程度。
2.3 F1值
F 1 = 2 × precision × recall precision + recall F 1=\frac{2 \times \text { precision } \times \text { recall }}{\text { precision }+\text { recall }} F1= precision + recall 2× precision × recall
F 1 F1 F1值表示精确性和召回的结合。
2.4 覆盖率(Coverage)
Coverage = ∣ U u ∈ U R ( u ) ∣ ∣ I ∣ \text { Coverage }=\frac{\mid U_{u \in \mathrm{U}} R(u) \mid}{|I|} Coverage =∣I∣∣Uu∈UR(u)∣
覆盖率表示推荐系统能够推荐出来的物品占总物品集合的比例,它描述一个推荐系统对物品长尾的发掘能力。