智能信息检索
最近发现微软关于搜索引擎和信息检索技术的一个课程:《智能信息检索》,虽然这个课程的比较早,技术上比较落后了,但是很多的基础检索、搜索引擎的想法仍然不过时。这篇博文用于记录一些重点内容,详细课程可以去看raw video。
1 search engine overview——system,algorithms and challenges
搜索引擎主要流程如上图,从下到上主要有:
- Web-Crawler抓取网页。现有的网页总数超万亿,所以需要决定抓取哪些网页,并多长时间来更新网页(网页会有自己的更新与变动),特别是搜索公司只存快照(为了检索速度快,不可能对比所有网页的最新版本)+多服务器备份(防丢失以及多地服务时更快)。
- page parser找超链接,并决定抽取网页的什么信息。
- index build倒排索引。正排文档是指一个文档里面包含什么词。而倒排文档:这些词在哪些文档里面(对应用户用query去搜索时往往用短词)。用倒排的好处是搜索不用完全遍历,可以快速得到结果。值得注意的是,倒排里面应该存尽可能多的信息,这样可以方便对文档本身和query都做足够的数据分析。
- caching存总是搜的query的热门结果。这种对高频的处理能加快响应速度。
- ranking排序返回给用户。Ranking最大的问题的如何衡量“相关性”,最简单的有tf-idf,bm25等等。返回的结果只做topk,并不是排序所有的结果。
搜索引擎神话:
- 1人们会被训练。即用户偏向使用容易被检索的query。
- 2搜索无魔力。需要持续优化和发展。
- 3大部分的网页并不会被检索到。
- 4不容易转到另一个搜索系统,除非性能特别突出。
- 5除了检索,搜索里面还设计到数据管理机器学习等等。
- 6炫技不是王者,需要把简单做到极致。
- 7学术和工业存在gap 。
- 8任何领域都可以做搜索。
- 9下一代搜索引擎是什么?还不知道,用户会给出答案。
搜索引擎有效的假设:
- 1用户知道自己要找什么
- 2找的东西可以被关键词表达
- 3有文档存在是可以满足用户需求
- 4文档中是包含检索的关键词
- 5关键词足够好,可以把好坏区分开来
- 6文档通过topk可以被排序出来
2 evaluation in information retrieval
主要介绍主流的检索指标:
- 普通常用,Precision & Recall,F1。
- 排序价值不一样,P@K,PR Curve,AP,MAP。
- 只需要一个结果就行(导航类),RR,MRR。
- 把最好的排到最前面就越好,NDCG。
- 多样性:和话题有关alpha-nDCG,IA。
- 其他:RBP,ERR,GAP。
3 machine learning for web search
上图是搜索中常用的技术,从下到上逐渐抽象。
- 第一层主要是一些基础的技术如分类、聚类、LTR、链接分析、相似度学习等等。
- 第二层可以利用第一层的基础技术去做一些复杂的事情,如query意图理解,匹配,排序,索引,反欺诈,日志挖掘等等。
- 第三层是进一步的应用,如各种搜索,问答等等。
主要在第二层技术展开:
- Query Understanding。主要针对用户的query做三件事情,Query Reformulation:纠错。Query Classification:同义转换。Query Segmentation:切分。
- Documen