Hello_Motty

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

4. 索引压缩

  对于海量网页数据,建立倒排索引需要消耗大量磁盘空间,尤其是一些常见词会有大量倒排索引被读入,影响响应速度,而压缩可以减少索引占用磁盘资源,并减少磁盘读写数据量,加快对用户查询响应速度。

  • 搜索引擎索引压缩包括对词典的压缩和对倒排列表的压缩。
  • 针对倒排列表的压缩分为有损压缩和无损压缩。有损压缩只在部分场景使用,无损压缩应用较多。
  • 一元编码和二进制编码是所有倒排列表压缩算法的基本构件,不论具体压缩算法如何,最终通过这两种编码进行落实。
    • 一员编码:使用x-1个1和末尾数字0表示整数。如5表示为11110,3表示为110.
    • 二进制编码:与正常二进制存储相同,但要设置比特宽度。
  • 常用的压缩算法:Elias Gamma和Elias Delta算法,Golomb和Rice算法,变长字节算法,SimpleX算法,PForDelta算法,在实际使用过程中会使用混合算法获得更好压缩效果。
    • Elias Gamma算法举例:x = 2^e + d, 对于待压缩数字9,e = 3,d = 1, 最后e+1采用一元编码 为1110,d采用比特宽度为3的二进制编码为001,所以拼接为1110:001。
    • Elias Delta算法举例:和Elias Gamma类似,不过要对e+1再进行一次分解因子e和d,则对于9则为110:00:001。
    • Golomb和Rice都通过除法方式获取分解的因子:因子1 = (x-1)/b , 因子2=(x-1)%b。Golomb中b为编码数组序列中的平均值乘以0.69,Rice为小于编码数组序列中位数的最大2的整数次幂。
    • 变长字节算法:相当于把原来的数变成一个128进制的数进行压缩。将一个字节的第一位设为判定比特后面的7位设为存储比特,如果判断比特为0则认为是压缩编码的最后一位。举几个例子
    • simpleX系列算法:常用的有Simple16, relate10, Simple9。以Simple9为例,利用4字节作为压缩单位,将32个比特划分为两部分,前四个作为管理数据存储区,后28个作为压缩数据存储区。可将28字节以9种方式划分。编码时对数据进行判断是否能在单个存储为内存储,如果大于存储位则换存储方式,解码时只要读取是那种方式然后读取其中数据即可。存储区如图所示
    • PForDelta:解压速度最快,性能大幅度超过其他算法,一次性可解压多个数据。解压时需要两次遍历,在此不贴出方法,建议找原书细看。
  • 文档ID重排序通过文档聚类并重拍文档ID编号来获得较高的索引压缩率。
  • 静态索引裁剪是一种有损压缩算法,通过抛弃一部分不重要的索引项来获得较好的压缩效果。

5.检索模型与搜索排序

  • 检索模型是搜索引擎排序的的理论基础,用来计算网页和用户查询的相似性。框架如下
  • 几种常用的检索模型包括:布尔模型、向量空间模型、概率模型(二元独立模型、BM25模型、BM25F模型)、语言模型及机器学习排序算法。
    • 布尔模型数学基础为集合论,相似性通过文档和查询词的集合来表示,通过布尔运算判定。只能确定有和无,不能按相关性输出结果。
    • 向量空间模型:以单词作为特征计算其权重,将文档看做n维特征向量计算查询和文档向量的余弦相似性。对长文档有抑制,长文档单词权重较低。数学基础为n维空间两向量之间的夹角,夹角越小,说明越相似。特征值权重为TF-IDF法。
    • 二元独立模型(BIM):假设:文档在特征进行表示时以出现和不出现划分,文档中单词之间在文档的分布概率不依赖于其他词出现概率。对文档相关性条件概率进行计算,将各概率累乘并取对数。此为BM25模型基础。
    • BM25模型:考虑了查询中权重和单词在文档中的权值后再二元独立模型基础上提出。计算公式如下:fi表示单词在文档中词频,qfi表示查询词在查询中的词频,K、k1、k2均为经验参数,b为调节因子通常为0.75,avdl表示文档平均长度,dl表示文件长度。k1一般设定为1.2,k2针对查询词进行调整通常为1-1000,因为查询往往较短所以需要根据重要程度将差异放大。BM25考虑IDF因子、文档长度因子、文档词频和查询词频。
    • 语言模型方法:为每个文档建立一个语言模型,判断由文档生成用户查询的可能性有多大,按照这种生成概率由低到高排序。有时查询词没出现在文档中导致语言模型检索方法失效(数据稀疏问题)。可采用数据平滑的方式解决数据稀疏问题,即将出现过的单词的分布概率分配给没出现过的单词。计算公式如下
    • 机器学习排序:人工标注训练数据->文档特征抽取->学习分类函数->在实际搜索中采用机器学习模型。图示如下:
  • 目前大部分商业搜索引擎采用概率模型作为相关性排序模型,而BM25则是目前效果最好的概率检索模型。
  • 精确率和召回率是评价检索系统的常用指标,而对于搜索引擎来说,精确率尤为重要。
    • 精确率为本次搜索结果中相关文档所占的比例;召回率是指搜索结果中相关文档占整个结合中所有相关文档的比例。
    • P@10指标:关注搜索结果排名最靠前文档的结果质量,用于评估在搜索结果排名最靠前的头10个文档有多大比例是相关的。
    • MAP(Mean Average Precision):平均准确率衡量标准。

6. 链接分析

  网页重要性是不同于网页内容对排序的另一个影响方面,与内容相似性共同拟合出相似性评分。

  • 绝大部分链接分析算法建立在随机游走模型和子集传播模型基础上。
    • 直接跳转:通过网页内链接访问页面。
    • 远程跳转:在浏览器中输入网址访问页面。
    • 随机游走模型:对直接跳转和远程跳转两种用户浏览行为进行抽象的概念模型。
    • 子集传播模型:把互联网网页分为两个甚至多个子集,其中某个子集具有特殊性质,从这个子集出发对根据这个特殊子集内网页和其他网页的连接关系按照一定方式将权值传递到其他网页。
    • 链接分析算法之间的关系。
  • PageRank 和 HITS算法是最重要且基础的两种链接分析算法,很多链接分析算法是对这两种方法的改进。
    • PageRank算法假设网页的入链越多,则该网页越重要;指向页面A的入链质量不同,质量高的页面会通过链接向其他页面传递更多的权重,质量越高的页面指向页面A,页面A越重要。网页通过链接关系构建起Web图,初始阶段所有页面设置相同PageRank值,随着每轮计算进行,PageRank不断更新。页面权值等于各入链权值之和,页面出链权值为页面权值平均分配。
    • HITS算法(Hypertext Induced Topic Selection):Authority页面是指某领域高质量网页,Hub网页指包含指向高质量Authoriry页面链接的网页。
      • 算法基本假设:一个好的Authority页面会被很多好的Hub页面指向,一个好的Hub页面会指向很多好的Authority页面。根据此假设推导出Hub页面和Authority页面的相互增强关系。
      • 计算过程:将查询提交,从返回结果中提取排名靠前网页得到初始网页合集(Root Set),在根集基础上HITS苏凡对网页集合进行扩充,凡是与根集内网页有直接连接关系的网页扩充进入扩展网页集合。HITS算法在扩展及河内寻找好的Hub网页和Authoriy页面。设置H权值和A权值,Hub网页权值为指向它的各A页面H权值的和,Authority页面权值为它所指向Hub页面A值合集。
      • 存在问题:计算效率低,主题漂移问题,易被作弊者操纵结果。
    • HITS算法和PageRank比较:
      • HITS请求相关,PageRank请求无关。
      • HITS算法需要接收查询后计算,效率低,PageRank在线直接使用结果。
      • HITS适合部署在客户端,PageRank适合部署在服务端。
      • HITS更适合处理具体的用户查询,PageRank适合处理宽泛用户查询。
      • HITS算法不稳定,PageRank算法稳定。
  • SALSA算法是目前效果最好的链接分析算法之一, 其融合了HTIS算法与查询相关的特点,以及PageRank算法的随机游走模型。
    • 以HITS算法方式获取扩展网页合集,然后转换为无向二分图;在处理链接关系阶段采用随机游走模型方式,计算Authority权值。计算公式中Aj为链接图中节点个数,B(i)为节点入链个数,E(j)链接图中入链个数,Authority子集合节点总数。
  • 主题敏感PageRank是对PageRank算法的改进, 可以应用于个性化搜索中。
    • 离线的分离主体PageRank数值计算,将各主题网页分为S和T分类,S中为高质量网页具有较高权值,T中根据相关度具有较低权值。一个网页在各分类中进行权值计算后,会生成一个主题相关PageRank向量。
    • 在线利用算好的主题PageRank来评估网页和用户查询的相似度,按照相似度排序提供给用户结果。查询现在查询分类其中进行分类计算查询隶属于各类的概率,然后将查询的概率向量和网页PageRank向量点乘获得最后两者间相关性,最后按从高到低排序输出。
  • Hilltop算法除了可以用来改善搜索系统的精确性,还可以用来当做网页反作弊的技术手段。思路是从海量网页中按一定规则选择出一定量的专家页面并做索引,根据用户查询主题从专家页面子集中找出部分相关性最强的专家页面,并计算相似性然后根据目标页面和专家页面链接关系对目标页面排序。最后整合专家页面和得分较高的目标页面作为搜索结果返回给用户。

    

  • 其他改进算法:智能游走模型(Intellligent Surfer Model)、偏执游走模型(Biased Surfer Model)、PHITS算法(Probability Analogy of HITS)、BFS(Backward Forward Step)算法。
posted on 2017-09-18 11:18  Hello_Motty  阅读(424)  评论(0编辑  收藏  举报