基本概念
信息检索(Information Retrieval)
是从信息资源集合获得与信息需求相关的信息资源的活动
搜索可以基于全文或其他基于内容的索引
Web搜索引擎是最常见的IR应用程序
信息检索应用例子的共同特征:
- 给定需求或者是对象,从信息库中找出与之最匹配的信息或对象
- 数据格式是无固定结构的自由文本(谷歌搜索)或者结构化数据(京东商品)
- 通常涉及信息的获取、存储、组织和访问
从信息规模上分类,信息检索可以分为:
- 个人信息检索:个人相关信息的组织、整理、搜索等;包括桌面搜索、个人信息管理、个人数字记忆等
- 企业级信息检索:在企业内容文档的组织、管理、搜索等;企业级信息检索是内容管理的重要组成部分
- Web信息检索:在超大规模数据集上的检索
IR不仅仅是搜索,IR系统也不仅仅是搜索引擎
- 例1:返回与信息检索相关的网页 -> 搜索引擎(Search Engine,SE)
- 例2:民宿与酒店的区别是什么?-> 问答系统(Question Answering,QA)
- 例3:返回Mac的各种型号、配置、价格等 -> 信息抽取(Information Extraction,IE)
- 例4:使用Google Reader订阅新闻,并获取推荐 -> 信息过滤、信息推荐
单个查询的评价指标-召回率(Recall) = 检出的相关文档数/相关文档数,也称为查全率
单个查询的评价指标-准确率(Precision) = 检出的相关文档数/检出文档数,也称为查准率
例子:某池塘有1400条鲤鱼,300只虾,300只鳖
现在以捕鲤鱼为目的
撒一大网,逮着了700条鲤鱼,200只虾,100只鳖
召回率recall = 700 / 1400 = 50%
正确率precision = 700 / (700 + 200 + 100) = 70%
基本架构

- 前端模块
- Query 分析模块:负责计算意图/词权重/同义词和 Query 改写等
- 取得 Query 分析结果后,发送请求到各索引中进行结果召回 包括关键词召回、向量召回等 通常还会在这个阶段完成低级别特征的计算和粗排
- 将上述结果进行高阶特征生成和重排序(精排),排序后对结果再做一些处理逻辑后返回给前端