推荐结果生成采用最常用的TOP-N方法,为用户推荐评分最高的前N个项目。主要流程如下:输入项目i,获取用户u的评分结果矩阵,将评分结果按从大到小的顺序排序,取前N个项目,输出项目推荐列表。常用的评价指标包括准确率、召回率、覆盖率和流行度。
(一)准确率
准确率(Precision)是用户在推荐列表中实际选择的节目数占推荐节目总数的比例。准确率表示的是推荐结果是否准确。公式如下:
其中,表示对用户u推荐的N个项目的集合,表示用户在测试集上喜欢的项目的集合。
通常来说,准确率越高,代表推荐效果越好。准确率确实是一个很好很直观的评价指标,但有时候准确率高并不能代表一个算法就好。在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量很少,一般只有千分之几,如果用准确率进行评价,即使全部预测成负类(不点击),准确率也能够达到99%以上。但这样的准确率显然是没有意义的。因此,单纯靠准确率来评价一个算法模型是远远不够科学全面的。
(二)召回率
召回率(Recall)是用户在推荐列表中实际选择的项目数占用户在测试集中选择的项目总数的比例。召回率是对准确率的一种补充,表示推荐的结果是否足够全面,是否能尽可能多地覆盖到用户观看的项目。召回率的公式如下:
其中,表示对用户u推荐的N个项目的集合,表示用户在测试集上喜欢的项目的集合。一般来说,召回率越高表示推荐的结果越全面。
召回率和准确率在理想状况下都是越高越好,然而准确率和召回率在实际的推荐结果评价中很难保证都有较高的结果。如果算法模型的目的是覆盖更多的项目,那算法就更大胆,也就更有可能预测错误,在这种情况下召回率较高的同时会损失掉一定的准确率;如果算法模型只对较为确定的项目做出预测,那么预测的准确率会很高,虽然预测结果更精准,但是相应地也会损失掉一定的召回率。(www.daowen.com)
(三)覆盖率
覆盖率(Coverage)的含义是所有被推荐的项目占总项目数的比例,也就是计算在资源库中有多少项目被算法纳入了推荐。具体计算方法如公式(27)所示:
覆盖率的大小反映了推荐算法对所有项目的应用能力,覆盖率越高,说明推荐算法能够将越多的项目推荐给用户。相反,覆盖率越低说明算法在无法充分利用资源库中的项目进行推荐,只是将头部项目推送给所有用户。
对于一个推荐系统而言,理论上讲覆盖率越高越好。例如在商品推荐中,每个商品供应商都希望自己的产品在推荐列表之中,因此一个好的个性化推荐系统不仅要有较高的用户满意度,还要有较高的覆盖率。
(四)流行度
项目的流行度(Popularity)的含义为项目评分的用户占总用户数的比值。在评价推荐结果的流行度时,通常使用所有节目流行度的加权平均值来代表推荐结果的流行度。具体计算方式如公式(28)所示:
其中,n为一组推荐项目集合的项目数。表示项目i的评分人数,R表示数据集的总人数。
流行度越高代表推荐的项目越热门,流行度越低代表推荐结果越冷门。流行度也可以衍生为新颖度,含义是为用户推荐的项目是否能给用户带来惊喜,是否是用户从前没有发现的项目。因为越冷门的项目越有可能令用户觉得新颖,因此一般来说流行度的值不宜过高。过高的流行度表示算法只是将最热门的项目推荐给用户,没能发掘用户之间的偏好差异,也没有充分推荐资源库中大量的长尾资源。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。