注:该文的所有概念可以在http://en.wikipedia.org/wiki/Information_retrieval中看到详解。 本文要讲的不再是能够为用户推荐怎样的item了,主要的焦点在于评测推荐过程中该推荐系统推荐的准确性高不高,适不适合使用该种推荐引擎进行推荐。所以接下来我们会讲到准确率、召回率、淘汰率等等概念。 这 些概念一般会用在搜索引擎的结果统计当中,想象一下如下情景:用户搜索“推荐引擎 算法”时,搜索引擎会给出百万级别的数据相关数据(其中可能会包括汽车引擎等无关文档),但是这百万数据都是我们想要的吗?当然不是我们想要的是有关推荐 引擎各种算法介绍的文档,所以准确率可以定义为:我们想要的文档出现在搜索引擎搜索结果中的文档的数量/搜索引擎搜索出来的文档的总数量,想必一看这个定 义大家肯定不能一下子明白是什么意思,通俗地讲:就是我们只关心搜索引擎搜出来的一大堆东西里面我们想要的那些文档的比例,(哎,还是很拗口,再不理解就 多看几遍多想几遍)。那么召回率又是什么意思。还以上面情景为例,我们想要的那些文档搜索引擎很有可能搜不出来,即我们想要的文档竟然没有出现在搜索引擎 的结果里,这时候我们就需要对搜索引擎进行错误评估了,也就是这里的召回率,它可以定义为:我们想要的文档出现在搜索引擎搜索结果中的文档的数量/我们想 要的文档的总数量。接下来就是淘汰率,它可以定义为:搜索引擎搜索结果中除去出现在结果中的我们想要的文档剩下的文档数量/所有文档除去我们想要文档的总 数量。说了这么多,自己都有点晕了,看个图吧。
这 里我们假设A+C是我们想要的那些文档,A+B是搜索引擎搜索关键字搜出来的文档,D呢就是躺在搜索引擎坟墓里的那些见不到阳光的那些文档。所以A就是我 们想要的文档出现在在搜索引擎结果文档中的那么一部分,即搜索引擎结果和我们想要的文档的一个交集。所以准确率=A/(A+B),召回率=A /(A+C),淘汰率=B/(B+D).到这里是不是很清楚了,如果还不清楚那我就没话说了。好了,那如何来评测该搜索引擎的检索结果的有效性呢?当然就 是让A这块区域变得足够大,所以这里又引出另外一个概念F-measure,它的值可以用来评测搜索引擎的有效性高低,该值可定义为:2准确率召回率 /(准确率+召回率),但其实F-measure并不是简单的F-measure,严格意义上来讲它应该是Fn-measure,这里的n它是一个大于0 的值,通俗讲就是权重,如果n>1则最终结果偏向于准确率,如果0<n<1则最终结果偏向于召回率,所以Fn-measure= (1+n2)(准确率召回率)/(n2*准确率+召回率),当n=1时刚好就是F-measure。 讲了这么多和推荐引擎无关的东西就是为了先熟悉这几个概念,因为在推荐引擎中这些概念还是有相当作用的,它们也可以用来对推荐结果进行评测。 一般情况下,对于一个用户未曾选择或评论的item,推荐引擎推荐的结果有4种,即系统推荐给用户且用户很like,系统推荐给用户但用户hate,用户like但系统没有推荐给用户,用户hate且系统也没有推荐。如下图:
这 里用户喜欢的item有A和B,不喜欢的item有C和D,使用推荐系统向该用户推荐后结果为A和C,所以该推荐的准确率=A/(A+B),召回率=A /(A+C),淘汰率=B/(B+D)。所以求系统中所有用户的准确率和召回率的平均值我们就可以使用Fn-measure来评估该推荐引擎的效率了。