文章目录
- Web图
- 链接模型
- 随机游走模型
- 子集传播模型
- 链接分析算法
- PageRank算法
- 链接陷阱
- HITS算法
- Hub页面和Authority页面
- 相互增强关系
- HITS算法
- SALSA算法
- 确定对象集合
- 转换为无向二分图
- 链接关系传播
- 主题敏感PageRank
- 分类主题PageRank计算
- 在线相似度计算
- Hilltop算法
- 专家页面搜索
- 目标页面排序
- 参考文献
Web图是对互联网的一种抽象,我们把每个网页看做点,网页之间的超链接看成线,那么整个互联网构成的点线连接图就是Web图。其中A->B是A的出链,D->A是A的入链。
互联网在上网时,往往浏览网页的时候是顺着网页链接浏览的。随机游走模型就是针对浏览网页的用户建立创建的抽象概念模型。
随机游走模型的假设是:当某一个时刻1的时候,用户在浏览网页A,在浏览完之后,其会等概率的选择网页A的出链进行点击,跳转浏览界面,这个过程称之为直接跳转。之后会不断的迭代这个过程,不断的在界面中跳转。假设的Web图中没有该用户感兴趣的界面之后,用户就会在浏览器中输入另外一个网址直接到达该网页,这个行为称之为远程跳转。随机游走模型其是也就是一个对直接跳转和远程跳转两种浏览行为进行抽象的概念模型。
子集传播模型是从诸多链接分析分析算法中抽象出来的概念模型。其基本思想是在做算法设计的时候,把互联网网页按照一定规则划分,分为两个甚至多个子集合。其中某个子集是具有特殊性质的,其会被赋予一个初值,之后根据这个特殊子集合和其他网页的链接关系,按照一定的方式将权值传递给到其它网页。
PageRank是谷歌提出的一种链接分析算法。在其提出之前,有很多研究者提出利用网页的入链数量来进行链接分析计算,其假设某个网页的入链越多,这个网页越重要。而PageRank在入链数量之上还参考了网页质量因素。其基于这两个因素提出了以下两个假设:
- 数量假设:如果一个页面节点接收到其他网页指向的入链数量越多,这个网页越重要
- 质量假设:越是质量高的页面指向页面,页面越重要
利用上面的两个假设,PageRank算法刚开始赋予每个网页相同的重要性得分,通过迭代递归计算来更新每个页面的PageRank得分,直到得分稳定。
而在每一轮的更新计算中,每个页面将其当前的PageRank值平均分配给本页面包含的出链上,这样每个连接会获得相应的权值,之后和当前的PageRank值相加就可。
如果在新一轮的PageRank计算之后,发现总体而言,页面节点的PageRank值基本问题,不再发生较大变化,即可结束此次PageRank计算。
链接陷阱
但是PageRank算法并不是万能的,对于某些特殊的链接结构,按照PageRank算法计算会导致问题,比如下面的Web图:
对于网页B和C来说,其只吸收外面传入的PageRank分值,但是不往外面传,最终导致网页B、网页C的权值非常高。这就是链接陷阱。
而远程跳转时解决链接陷阱的通用方式,其在网页向外传递分值的时候,不限于向出链所指网页传递,也可以以一定的概率向任意其他网页跳转。
Hub页面和Authority页面
- Authority页面:指与某个领域或者某个话题相关的高质量网页
- Hub页面:指的是包含了很多指向高质量Authority页面链接的网页
HITS算的的目的就是在海量的网页中找到和用户查询主题相关的高质量Authority和Hub页面。
相互增强关系
HITS算法基于下面两个假设:
- 假设1:一个好的Authority页面会被很多好的Hub页面指向
- 假设2:一个好的Hub页面会指向很多好的Authority页面
基于以上的两个基本假设可以推导出Hub页面和Authority页面之间的相互增强关系。一个网页的Hub质量越高,其链接指向的页面的Authority质量越好;反之一样。通过这样相互增强关系不断迭代计算,就可以找出哪些页面时高质量的Hub页面,哪些时高质量的Authority页面。
HITS算法
HITS算法和用户输入的查询请求密切相关,其后续的计算步骤都是在接收到用户的查询之后展开的,即是和查询相关的链接分析算法。
HITS算法接收到用户查询之后,将查询提交给某个现有的搜索引擎,并在返回的搜索结果中提取排名靠前的网页,得到一组和用户查询相关度较高的初始网页集合,其叫做根集。
之后,在根集的基础上,HITS算法对网页集合进行扩充。其根据以下规则:凡是与根集内网页有直接链接指向关系的网页都被扩充进来,无论是有链接指向根集内页面还是根集内页面有链接指向的页面,都被扩充进来,形成扩展网页集合。
对于扩展网页集合的每个页面都设立两个权值,分别指定其Hub值和Authority值。之后利用上面提到的两个基本假设,以及相互增强关系等原则进行多轮迭代计算,每轮迭代计算更新每个页面的两个权值,直到权值稳定不再发生明显变化为止。下图中表示某个网页的Authority值,表示某个网页的Hub值。在每一轮迭代中的Authority值即为所有指向网页的Hub权值之和;同样的对于Hub值也是一样。直到每个网页都获得了更新,则表示一轮迭代计算完成。
SALSA算法的初衷是希望能够结合两者的主要特点,既可以利用HITS算法与查询相关的特点,也可以采纳PageRank的随机游走模型。其大致分为两个阶段:
- 首先是确定计算对象集合的阶段,这一阶段和HITS算法基本相同
- 第二阶段是链接关系传播过程,这个过程则是采用随机游走模型
确定对象集合
SALSA算法会先得到扩展网页集合,之后将网页关系转换为二分图的形式。其在接收用户查询之后利用现有搜索引擎或者检索系统,获得一批和用户查询在内容上高度相关的网页,以此为根集。并再次基础上,将与根集内网页有直接链接关系的网页纳入,形成扩展网络集合。
转换为无向二分图
SALAS根据集合内的网页链接关系,将网页集合转换为一个二分图。这个过程会把网页划分到两个子集合中,一个子集合是Hub集合,另外一个子集是Authority集合,划分基于如下规则:
- 如果一个网页包含出链,这些出链指向扩展网页集合内其他节点,则这个网页被归入Hub集合
- 如果一个网页包含扩展网页集合内其他节点指向的入链,则可被归入Authority集合
这样来说一个网页就可能有多种身份,比如网页C就既属于Hub集合,也属于Authority集合
链接关系传播
在链接传播模型中,假设会有某个用户从某个子集中随机选择一个结点出发,如果这个节点包含多个边,则以等概率随机选择一条边,从一个集合跳转到另外一个集合,或者再从另外的集合跳回来,不断的重复在集合中跳转。最终形成SALSA自身的链接关系传播模式。
虽然看起来和PageRank的传播模型不一样,但是关键点都一样:其从某个节点跳到另外一个节点的时候,如果包含多个可供选择的链接,则以等概率随机选择一条路径。
而对于Hub-Authority模型来说,SALSA更加关注和之间的节点关系,另外一个子集合节点只是充当中转桥梁的作用。下面是由上面二分图转换成的Authority节点关系图,其中权值分配按照平均分配的归结进行分配。以网页C为例,在上面二分图中处于A集合出发,有四条路可走:C-C、C-C、C-D、C-E,每一个的概率都可以看成0.25。
建立好Authority节点关系图之后,就可以利用随机游走模型来计算每个节点的Authority的权值。在实际计算的过程中SALSA将搜索结果排序问题进一步转换为求Authority节点矩阵的主秩问题,矩阵的主秩即为每个节点的相应的Authority得分,按照Authority得分由高到低排列。下面是SALSA与求矩阵主秩等价的Authority权值计算公式:
- Aj :联通图中节点的个数,这里节点肯定有个指向自己的连接线
- A:Authority子集合中节点个数
- B(i):节点入链个数
- E(j):联通图中入链的个数
主题敏感的PageRank是PageRank算法的改进版本,其大多用于个性化搜索。其主要由两个步骤组成:
- 离线的分类主题PageRank数值计算
- 在线利用算法的主题PageRank分值来评估网页和用户查询的相似度
分类主题PageRank计算
主题敏感PageRank会定义16个大的主题分类,涵盖科技、娱乐、商业等为主题类型。其会依次计算该类别的PageRank分值。在计算某个类别的PageRank分值时,会把所有网页划分为两个集合,一个集合是人工精选的高质量网页,被称为集合S;其他的网页王如另外一个集合,称之为集合T。
假设一个网页在集合S里面,那么在商业分类计算结束后该网页会获得PageRank分值为0.5,在科技和娱乐分别获得0.1和0.05的分值。这样其就获得这个PageRank分类向量。每个值都表示这个网页属于这个类别的概率。
在线相似度计算
在这一步,收索系统会首先利用用户查询分类器对查询进行分类,计算用户查询隶属于定义好的各个类别的概率是多少。在进行用户查询分类计算的同时,搜索系统读取索引,找出包含用户查询的所有网页,并获得上一步计算的网页的PageRank值,这两个的乘积就是某网页和用户查询词的相似度。假设一个网页A属于(科技、商业、娱乐)类别的概率是(0.3,0.2,0.3),查询词CSDN属于(科技、商业、娱乐)类别的概率是(0.5,0.2,0.1),那么查询词CSDN和网页A的相似度为。
Hilltop算法融合了HITS和PageRank两个算法的基本思想。一方面Hilltop是与用户查询请求相关的链接分析算法,吸收了HITS算法根据用户查询获得高质量相关网页子集的思想,利用子集传播模型;另一方面,在权值传播的过程中,Hilltop算法也采纳了PageRank的基本直到思想,会通过页面入链的数量和质量来确定搜索结果的排序权重。
非从属组织页面和专家页面时Hilltop算法的两个重要定义。Hilltop算法会将互联网页面划分为这两类子集合,最重要的子集合时由专家页面构成的互联网页面子集,不在这个集合的页面被称为目标页面集合。
注:
非从属组织页面:如果两个页面不属于从属网站,则为非从属组织页面。而对于主机的网络号或者主域名相同那么就被认为是从属网站。
专家页面:是和某个主题高度相关的高质量页面,同时也需要满足这些页面的链接所指向的页面相互之间都是非从属组织页面。
Hilltop算法会首先从海量的互联网网页中通过一定的规则筛选出专家页面子集合,并单独为这个页面建立索引。之后在接收到用户发出的某个查询请求时,首先根据用户查询的主题,从专家页面子集合中找出部分相关性最强的专家页面,并对每个专家页面计算相关性得分,然后根据目标页面和这些专家页面的链接关系来对目标页面进行排序。最后返回排序结果的TopK返回给用户。
专家页面搜索
Hilltop算法筛选出过百万的网页作为专家页面集合,其需要满足以下两个条件:
- 页面至少包含K个出链
- K个出链指向的所有页面相互之间的关系符合非从属组织页面的要求
这两个条件只是基本条件,还可以设置其他条件来控制专家页面集合的规模。
根据以上条件筛选出专家页面后,就可以对专家页面单独建立索引。这个过程会对网页标题、H1标签文件和URL锚文字这三个网页关键片段建立索引。
而在用户接收到用户查询之后,假设查询包含了多个单词,其就会根据以下三类信息进行打分:
- 关键片段查询词的数量
- 关键片段本身的类型信息决定其权值,标题、H1、锚文字权值由高到低
- 用户查询和关键片段的不匹配率,就是关键片段中查询词没出现的频率
目标页面排序
Hilltop算法包含一个基本假设:认为一个目标页面如果是满足用户查询的高质量搜索结果,其充分必要条件是该目标页面有高质量专家页面链接指向。
Hilltop在本阶段是基于专家页面和目标页面之间的链接关系来进行,在此基础上,将专家页面的得分传递给有链接关系的目标页面。而传递分值的前提是页面需要满足以下两点要求:
- 至少需要两个专家页面有链接指向目标页面,而且这两个专家页面不能是从属组织页面
- 专家页面和所指向的目标页面也不能是从属组织页面
而计算其中某个专家页面传递给目标页面权值计算如下:
- 找到专家页面中能够支配目标页面的关键片段集合S
- 统计S中包含用户查询词的关键片段个数T,T越大权值越大
- 专家页面传递给目标页面的分值为:,E为专家页面本身在第一阶段计算得到的相关得分,b为2步骤计算的分值
[1] 这就是搜索引擎