当前课程知识点:互联网大规模数据分析技术 >  第八章 推荐系统 >  第24讲 信息过滤评价体系 >  第24讲 信息过滤评价体系

返回《互联网大规模数据分析技术》慕课在线视频课程列表

第24讲 信息过滤评价体系在线视频

返回《互联网大规模数据分析技术》慕课在线视频列表

第24讲 信息过滤评价体系课程教案、知识点、字幕

欢迎来到

互联网大规模数据分析技术

的课堂

我是今天的主讲教师李琳

来自武汉理工大学

今天我们开始第24讲

信息过滤评价体系

在这一讲当中

我们会给大家介绍

Relevance Judgments

也就是相关度的评价

以及两个评价指标

Precision Recall

我们也叫精度和召回率

最后

我们看一下针对多个查询词

我们如何来计算平均精度

你们已经学习了

信息检索这门课程

学习完之后你们了解了这样一个

开源Lucene平台的使用

你想着我能不能快速的

搭建自己的信息检索系统呢

这个时候

假设一个老板

带了他的侄子Sergey

他说我已经建立了一个

很好的搜索引擎系统

比你的要好

这个时候你会怎么做呢

哦 比我的要好

那我就去试一些查询词对不对

我会想到那我就试一些查询词吧

看看你的搜索引擎

到底能给我一些什么样的结果

这个时候你还会问

那么你在建立索引的时候

究竟花了多长时间呢

你还会说

当我进行查询的时候

最快的查询速度是多少

也许你会关心这样一些指标

同时你会说他是不是推荐了

相关的产品和我的网页呢

所有的这些方面

都是关于搜索引擎好的方面

实际上它对于搜索引擎的质量

究竟怎么来衡量呢

这个我们还需要一些定性的分析

同时当搜索引擎

反馈了相关的结果给用户之后

你还会评价这个相关度

究竟是在什么样的程度上

你是简单的评价相关还是不相关

还是像买商品一样用五分制呢

这个评价

能不能由其他的指标来完成呢

比如说,click

当你把这些结果

展示给用户的时候

用户用了,点没点呢

点得多

说明你这个答案是比较准确的

如果没有点

说明你找到答案还有问题

对于推荐系统的搜索来说

当你把商品推荐给用户的时候

用户看完之后有没有买呢

叫buy after using

the search engine

或者是用户用了你这个搜索之后

已经买了很多商品

产生了很大的利润

当你用户用到这个搜索

买到了自己心仪的商品以后

还会不会再来购买呢

叫做Repeat visitors

所以关于这个相关性

商品的相关性

搜索结果的相关性

实际上并不是很好来进行评价的

我们要刨除很多复杂的因素

考虑一些简单的情况

也就是说

为了很客观的去评价你的搜索

你的推荐是不是比较合理

我们需要一个benchmark

你提出了PageRank算法

我提出了Cosine算法

他提出了别的算法

这样一些算法究竟谁好谁坏

我们要在一个公共的数据集上

去进行测试

这些公共的数据集

不但要有文档

还有一些公共的查询词

已经被大家进行了认可

并且关于答案

就是关于这个商品和这个网页

是不是相关

Relevant or Nonrelevant

已经有专家给出了答案

用你的搜索引擎

用你的推荐系统给出的答案

和我专家给出的答案能否匹配

这样的三个要素

来构成比较客观的来评价

一个搜索一个推荐的主要的元素

我们来看一下benchmark

所包含的一些内容

我们要有查询词

我们要有商品或者是网页

我们还要有人来对些商品和网页

进行评价

我有一个查询词

这个网页这个商品相不相关

相关就是1,不相关就是0

大家想想

如果我让你做5万个查询词

给你500万个网页

人能够评完么

在很短的时间内

是很难的评测完毕的

所以这样一种方式

来进行这样一个判断

也就是来生成这样一个判断的话

太花时间了

如果一个评判只花人的2.5秒钟

我们需要1011秒

如果来花钱的话

我要花300万

所以这样的

用人工去评价所有的查询词

和所有的文档

显然是一种不合适的方法

能不能用这种crowd-sourcing

类似于众筹的方式呢

这种的方式能够降低人力的成本

在互联网上

我可以邀请一些朋友来帮我实现

当然这个问题

我们不在这门课的讨论当中

我们这门课

假设的是这样一些评价已经有了

这可能是学者、专家

和相关的学术人员

花了很大的精力

形成的这样一个公测数据集

对于传统的信息检索的文本

我们是有比较多的

这样的公测数据集

但是对于Web

实际上我们这样的公测数据集

并不是很多

我们来看一下

有哪些公测的数据集呢

主要我们以TREC这样一个为例

TREC当中

我们有多少个查询呢,两百个

我们有多少个文档呢,74万个

仅仅这样的数据集的收集

就已经非常的不易了

同时我们在分类聚类当中

还会经常用到Reuters

这个数据集

大家可以看一下

它有21000多个文档

有672个查询词

相对来说要小一些

这是我们目前

已经公开的一些公测的数据集

大家可以去下载和使用

来对比和分析你的推荐

和搜索算法的性能

怎么来衡量相关还是不相关

100个答案当中有5个相关

100个答案当中有10相关

那么怎么来衡量呢

在这里面的我们今天主要讨论

精度和召回率这两个指标

当然,这种指标只是考虑了个数

并没有去考虑顺序

在这里面我们的相关性的评价

主要是考虑针对用户的信息需求

但是这个用户信息需求

实际上并不等于查询词

前面我们总是做查询词的匹配

但是我们把用户的信息需求

翻译成查询词之后

并不是能够完整的去表达

所以在这个里面

我们这种基于公测数据的

基于精度和召回率的判别

也只是尽量的

去做一个主观的判别

那我们来看一下

精度是怎么来算的

假设我们的计算

只考虑相关和不相关

那我们怎么来算呢

我返回了这么多个结果

在这么多个结果当中

有tp个和专家的结果是一致的

有fp个相关的结果

专家的评价是不一致的

专家认为你不相关

那么精度就是tp/(tp + fp)

也就是我返回的结果

和专家的评价匹配的个数

这叫精度

中文叫做精度或者也叫准确率

这个是什么呢

召回率,什么意思呢

大家可以看到

我返回了tp个

和专家的评论是一致的

但我们还有fn个没有返回

但是它也是相关的

也就是说

你只是找到一部分没有找到全部

如何来衡量这个指标呢

tp/(tp + fn)

这两个指标当中分子都是tp

也就是返回的个数

和专家的判别相关度匹配的个数

分母一个是由返回的个数组成

一个是由整个答案集组成的

这个就叫做召回率

这是关于召回率和精度的计算

通过这样的表格我们很容易算出

一个检索算法精度

和召回率的这样一个数值

同时我们考虑到

输入查询词并不是一个而是多个

所以我们要对多个查询词

它的精度做一个平均

所以得到了这个

Mean Average Precision

这样一个方法(NDCG)

它考虑到用户评价的等级

在我们这个课程当中并不做介绍

大家可以去查看相关的资料

获得更详细的信息

我们来看一下精度

这样一个计算当中

实际上由于返回的结果太多了

大家注意一下

在我们精度计算当中

分母是返回的所有结果

那搜索引擎返回1000个结果

难道分母用1000吗

大家注意一下我们在搜索当中

主要关注的是Top K

也就是说我只想知道

前干个结果它的精度如何

这个K我们一般取10

所以我们再这样一个例子来看

绿色代表我返回的结果

和专家的评价是一致的

红色代表不一致

那么Precision@3是什么意思呢

在前三个当中

有多少个和专家的评价是一致的

2个绿色,所有是2/3

那我们再看一下

Precision@4是前四个当中

有几个和专家的评价是一致的呢

两个绿色,2/4

再看一下Precision@5

那么在前五个当中

有哪些是和专家的评价一致的呢

我们有三个

所以说Precision@5是3/5

依照这样的计算方法

我们也可以去算召回率

就是分母变了

这么我们来看一下

在这样一个计算当中

我们根据不同的K

能算不同的Precision

也就是大家

在读阅一些论文的时候

发现作者在报告实验数据的时候

会用Precision@3、Precision@5

Precision@10这样的不同的K值

来综合的评价他的算法

也就是说尽可能去

全面的评价一个算法的性能

Precision 和Recall的

这样一个图

大家可以看到

我们的横坐标代表Recall

纵坐标代表Precision

当你把所有的结果

正确的结果都返回给用户的时候

必须要返回大量的结果

在大量的结果当中

去尽可能包含所有的答案

这个时候Precision

它显然就低了

在Precision越来越高的时候

也就是说我返回的个数越少

我可能命中的

因为分母变小了

我可能Precision就高了

但是Recall就会减少

所以Precision和Recall

是呈这样一个反向关系

刚才我们计算了Precision@K

在不同的K的情况下

我们如何来计算Precision的值

接下来我们看一下

我们如何算一个平均的精度呢

也就是说我们有不同的查询词

不同的查询词

平均都得到一个Precision@K

这些Precision@1@2@3@4

怎么来求一个综合的平均呢

这就是我们的Mean Average

Precision across multiple

queries/rankings

还是刚才这个例子

Precision@1是1/1

Precision@3是2/3

Precision@5是3/5

绿色仍然代表和专家的评价

匹配的程度

所以是1/1+2/3+3/5

有几个这样的k呢

一个两个三个

所以是取一个平均

最终我们得到的Precision的值

是0.76

我们把这样一个0.76

叫做Mean Average Precision

简称MAP

接下来我们再看一个例子

在这个例子当中

我们用黑色代表相关的文档

也就是

专家认为这些文档是相关的

在某种排序算法

所生成的排序当中

我们得到Precision@1是1.0

Precision@3是0.5

我们依次都算出来了

一直算到

1、2、3、4、5、6、7、8、9、10

也就是K=10

我们采用第二种排序算法

得到这样一个排序的过程

我们可以算出

Precision 和Recall,也是K=10

这10个我们把每一个类加起来

1.0加0.67加0.75,加起来

这个时候为什么我们去除以6呢

因为我们匹配的是123456

我们只匹配了6个

所以我们考虑Precision的时候

只考虑匹配的Precision

并不考虑不匹配的位置的

Precision

大家注意一下

在计算过程当中

一定是考虑

符合专家评判时候的精度

同样这个也是一样的

只考虑这几个

所以两种算法

我们算出来

一个是0.78,一个是0.52

显然

这两种算法经过MAP的对比分析

0.78是比较好的

我们也可以说

这种排序算法的性能

在MAP指标下显示的比较好

这个例子同样

也是5个查询词

方法是一样的

我们把对应的五个位置找出来

它是5所以这个地方除以的是5

但是对第二个排序算法

我只找到了几个呢

我只找到了三个

所以把这三个单词

把这三个Precision取出来

我们得到的是0.44

这是两个查询词

这是两个查询词所产生Ranking

怎么来求平均呢

这个时候求平均也是

0.62加上0.44

去除以2等于0.53

所以在这两个例子当中

大家注意一下

当我们求MAP的时候

一定考虑的是

符合答案的文档所在的位置

它们的Precision

它们的精度是多少

接下来我们对MAP做一个总结

在这里我们可以看到

If a relevant document

never gets retrieved

we assume the precision

corresponding to

that relevant doc to be zero

也就是说如果一个相关的文档

没有作为结果被返回

对于这个文档来说

我们的精度就是零

我们没有很好的去预测它

MAP是一个比较

macro-averaging

each query counts equally

也就是说

在我们计算MAP的时候

大家看一下

每一个query

在计算平均值的时候

考虑的是同样的权重

并没有给它说

哪个query更重要的

哪个query不重要

是求的加权平均

所以这些问题

大家可以在后续的评价指标当中

去做一些改进

也可能在最近的研究过程当中

我们也有一些新的评价指标

比如说对于Web Search

搜索引擎这样的检索应用

MAP这样的指标合适吗

所以这些问题都可以

大家作为大家课后的一些思考

或者查阅一些文件

来获取更详细的资料

那最后我们看一下

实际上我们前面多次提到了搜索

返回相关的结果给用户

推荐系统是做什么呢

也是返回用户可能感兴趣的东西

将要买的东西

这两种Web服务都有相似的情况

它们的共同点是在什么

都是把不相关的物品过滤掉

在大量的数据当中

把相关的物品返回给用户

所以在我们的推荐系统当中

我们也可以用

Precision和Recall

这样的指标

也就是我们前面所介绍的

当然在我们推荐系统当中

还有关于具体的

值得这样一个误差的计算

因为有时候推荐系统

它可能是预测这个打分

5分、6分还是7分

所以在这个里面

也许有的推荐系统

会采用RMSE这样一种指标

当然具体是用MAP

用Precision、用Recall

还是用RMSE来衡量你的算法

这个取决于大家面临不同的数据

所采用的方法

大家在看论文的时候

也会看到很多论文

把这四种指标都列了出来

以便于全面地去评价

一个推荐系统、一个搜索引擎

这就是今天这节课的主要内容

感谢同学们的观看

互联网大规模数据分析技术课程列表:

第一章 大数据与数据挖掘概述

-第1讲 大数据与数据挖掘概述

--第1讲 大数据与数据挖掘概述

第二章 关联规则

-第2讲 频繁项集和关联规则的基本概念

--第2讲 频繁项集和关联规则的基本概念

-第3讲 Apriori算法

--第3讲 Apriori算法

-第4讲 Apriori算法的改进与兴趣度度量

--第4讲 Apriori算法的改进与兴趣度度量

第三章 分类算法

-第5讲 分类的基本概念

--第5讲 分类的基本概念

-第6讲 决策树

--第6讲 决策树

-第7讲 简单贝叶斯分类

--第7讲 简单贝叶斯分类

第四章 聚类算法

-第8讲 聚类的基本概念

--第8讲 聚类的基本概念

-第9讲 K-Means & K-Medoids Clustering

--第9讲 K-Means & K-Medoids Clustering

-第四章 聚类算法--习题

第五章 大数据平台与技术

-第10讲 大数据处理平台Hadoop

--第10讲 大数据处理平台Hadoop

-第11讲 MapReduce编程

--第11讲 MapReduce编程

-第12讲 大数据处理平台Spark

--第12讲 大数据处理平台Spark

-第13讲 NoSQL数据库

--第13讲 NoSQL数据库

第六章 信息检索

-第14讲 Web信息检索简介

--第14讲 Web信息检索简介

-第15讲 信息检索之倒排索引

--第15讲 信息检索之倒排索引

-第16讲 信息检索之TFIDF

--Video

-第17讲 信息检索之相似度排序

--第16讲 信息检索之TFIDF

第七章 Web链接分析

-第18讲 Web搜索之链接分析

--第18讲 Web搜索之链接分析

-第19讲 Web搜索之PageRank

--第19讲 Web搜索之PageRank

-第20讲 Lucene信息检索平台

--第20讲 Lucene信息检索平台

-第七章 Web链接分析--习题

第八章 推荐系统

-第21讲 推荐系统简介

--第21讲 推荐系统简介

-第22讲 推荐系统之协同过滤

--第22讲 推荐系统之协同过滤

-第23讲 Mahout数据挖掘平台

--第23讲 Mahout数据挖掘平台

-第24讲 信息过滤评价体系

--第24讲 信息过滤评价体系

-第八章 推荐系统--习题一

-第八章 推荐系统--习题二

自我提升练习

-综合编程题

第24讲 信息过滤评价体系笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。