全球性的搜索引擎Google,看似简单的搜索框背后隐藏的是极其复杂的系统架构和搜索算法,其中排序(以下统称Ranking)的架构和算法更是关键部分。Google正是通过PageRank算法深刻改变搜索排序而一举击败众多竞争对手。本文将介绍有关搜索引擎排序的相关技术内容。
Ranking是搜索引擎的核心技术,本文以搜索引擎的Ranking技术为切入点,从搜索引擎架构、检索模型、机器学习算法、点击模型、搜索效果评估等方面将达观数据在搜索引擎Ranking的构建与优化过程中的一些实践经验与大家做分享。
通常在线搜索引擎要求实时响应(毫秒级)用户的搜索请求,使得在线对每个文档进行基于模型的Ranking复杂计算不太现实,因而搜索的过程被分成两个阶段。
第一阶段,是使用相对简单的常用检索模型对用户query从索引中快速检索出Top-k候选结果集。常用检索模型主要有向量空间模型(Vector Space Model)、布尔模型(Boolean Model)、概率检索模型BM25等,通常Top-k的候选集选取还结合离线计算质量分高的文档以排除掉文本相关但质量分太低的文档;
第二阶段,则使用计算相对复杂的机器学习排序模型对Top-k候选结果集进行精确的重排序,因为Top-K的候选结果集数据量级一般不会很大,这一步计算可控。
图1:一个经典的搜索引擎排序架构
Ranking模型的训练数据主要由query、文档以及query与文档的相关度组成,相关度可以标记成好、不好两个级别或细粒度更高的Perfect、Excellent、Good、Fair、Bad五个级别。
训练数据主要有两种获取方式:方式一是由搜索评测人员标记query与每个文档的相关度进行手工的评测整理;方式二是通过自动分析搜索点击日志生成。显然,对于大规模机器学习排序模型的训练数据人工标注的成本过高,而且人工也无法对模型进行相对实时的更新。我们(www.datagrand.com)主要通过方式二生成训练数据,自动分析搜索点击日志,分析用户在同一个搜索session内对query的各种变换、对搜索结果中不同位置的文档的点击行为以及后继的筛选、翻页等行为,综合计算出一个可以标记训练数据的搜索满意度得分。
我们的搜索实践表明,通过分析搜索点击日志可以实现模型训练数据的自动生成和实时更新,同时也可以达到比较满意的搜索效果。
来源: http://www.infoq.com/cn/articles/a-search-engine-scheduling-architecture-for-reference