XML地图 黑帽SEO培训为广大SEO爱好者提供免费SEO教程,致力于SEO优化、SEO服务
首页 > SEO培训 » 搜索引擎算法:SALSA算法

搜索引擎算法:SALSA算法

2018-10-11T12:22:20 | 人围观 | 关键词:搜索引擎算法:SALSA算法--SEO培训


  SALSA算法
 

  上一小节介绍了PageRank算法和HITS算法之间的异同之处,SALSA算法的初衷希望能够结合两者的主要特点,既可以利用HITS算法与查询相关的特点,也可以采纳PageRank的随机游走模型,这是SALSA算法提出的背景。由此可见,SALSA算法融合了PageRank和HITS算法的基本思想,从实际效果来说,很多实验数据表明,SALSA的搜索效果也都优于前两个算法,是目前效果最好的链接分析算法之一。
 

  从整体计算流程来说,可以将SALSA划分为两个大的阶段:首先是确定计算对象集合的阶段,这一阶段与HITS算法基本相同;第2个阶段是链接关系传播过程,在这一阶段则采纳了随机游走模型。
 

  6.5.1 确定计算对象集合
 

  PageRank的计算对象是互联网所有网页,SALSA算法与此不同,在本阶段,其与HITS算法思路大致相同,也是先得到扩展网页集合,之后将网页关系转换为方向二分图形式。
 

  扩展网页集合
 

  SALSA算法在接收到用户查询请求后,利用现有搜索引擎或者检索系统,获得一批与用户查询在内容上高度相关的网页,以此作为根集。并在此基础上,将与根集内网页有直接链接关系的网页纳入,形成扩展网页集合(参考图6-15)。之后会在扩展网页集合内根据一定的链接分析方法获得最终搜索结果排名。
 

  [图片]
 

  转换为无向二分图
 

  在获得了扩展网页集合之后,SALSA根据集合内的网页链接关系,将网页集合转换为一个二分图。即将网页划分到两个子集合中,一个子集合是Hub集合,另一个子集合是Authority集合。划分网页节点属于哪个集合,则根据如下规则。
 

  · 如果一个网页包含出链,这些出链指向扩展网页集合内其他节点,则这个网页可被归入Hub集合。
 

  · 如果一个网页包含扩展网页集合内其他节点指向的入链,则可被归入Authority集合。
 

  由以上规则可以看出,如果某个网页同时包含入链和出链,则可以同时归入两个集合。同时,Hub集合内网页的出链组成了二分图内的边,根据以上法则,将扩展网页集合转换为二分图。
 

  图6-15和图6-16给出了一个示例,说明了这个转换过程。假设扩展网页集合如图6-15所示,由6个网页构成,其链接关系如图所示,同时为了便于说明,每个网页给予一个唯一编号。图6-16则是将图6-15中的网页集合转换为二分图的结果。以网页6为例,因为其有出链指向网页节点3和网页节点5,所以可以放入Hub集合,也因为编号为1、3、10的网页节点有链接指向网页节点6,所以也可以放入Authority集合中。网页节点6的两个出链保留,作为二分图的边,但是这里需要注意的是,在转换为二分图后,原先的有向边不再保留方向,转换为无向边,而HITS算法仍然保留为有向边,这点与SALSA略有不同。
 

  [图片]图6-16 二分图
 

  到这一步骤为止,除了SALSA算法将扩展网页集合转换为无向二分图,而HITS仍然是有向二分图外,其他步骤和流程,SALSA算法与HITS算法完全相同,因此,SALSA算法保证是与用户查询相关的链接分析算法。
 

  6.5.2 链接关系传播
 

  在链接关系传播阶段,SALSA算法放弃了HITS算法的Hub节点和Authority节点相互增强的假设,转而采纳PageRank的随机游走模型。
 

  链接关系传播概念模型
 

  如图6-16所示,假设存在某个浏览者,从某个子集合中随机选择一个节点出发(为方便说明,图中所示为从Hub子集合的节点1出发,实际计算往往是从Authority子集合出发的),如果节点包含多条边,则以相等概率随机选择一条边,从Hub子集合跳到Authority集合内节点,图中所示为由节点1转移到节点3之后从Authority子集合再次跳回Hub子集合,即由节点3跳到节点6。如此不断在两个子集之间转移,形成了SALSA自身的链接关系传播模式。
 

  尽管看上去与PageRank的链接传播模式不同,但其实两者是一样的,关键点在于:其从某个节点跳到另外一个节点的时候,如果包含多个可供选择的链接,则以等概率随机选择一条路径,即在权值传播过程中,权值是被所有链接平均分配的。而HITS算法不同,HITS算法属于权值广播模式,即将节点本身的权值完全传播给有链接指向的节点,并不根据链接多少进行分配。
 

  SALSA的上述权值传播模型与HITS模型关注重点不同,HITS模型关注的是Hub和Authority之间的节点相互增强关系,而SALSA实际上关注的是Hub-Hub及AuthorityAuthority之间的节点关系,而另一个子集合节点只是充当中转桥梁的作用。所以,上述权值传播模型可以转化为两个相似的子模型,即Hub节点关系图和Authority节点关系图。
 

  Authority节点关系图
 

  图6-17是由6-16的二分图转化成的Authority节点关系图,Hub节点关系图与此类似,两者转化过程是相似的,我们以Authority节点关系图为例来看如何从二分图转化为节点关系图。
 

  [图片]图6-17 Authority节点关系图
 

  这里需要注意的是:Authority集合内从某个节点i转移到另一个节点j的概率,与从节点j转移到节点i的概率是不同的,即非对称的,所以转换后的Authority节点关系图是个有向图,以此来表示其转移概率之间的差异。
 

  对于图6-17这个Authority节点关系图来说,图中包含的节点就是二分图中属于Authority子集合的节点,关键在于节点之间的边如何建立及节点之间转移概率如何计算。
 

  节点关系图中边的建立
 

  之所以在Authority节点图中,节点3有边指向节点5,是因为在二分图中,由节点3通过Hub子集合的节点6中转,可以通达节点5,所以两者之间有边建立。
 

  这里需要注意的是:在二分图中,对于Authority集合内的某个节点来说,一定可以通过Hub子集合的节点中转后再次返回本身,所以一定包含一条指向自身的有向边。节点1因为只有中转节点2使得其返回Authority子集合中的自身节点,所以只有指向自身的一条边,和其他节点没有边联系,所以例子中的Authority节点关系图由两个连通子图构成,一个只有节点1,另外一个连通子图由剩余几个节点构成。
 

  节点之间的转移概率
 

  至于为何Authority节点关系图中,节点3到节点5的转移概率为0.25,是因为前面介绍过,SALSA的权值传播模型遵循随机游走模型。在图6-16的二分图中,从节点3转移到节点5的过程中,节点3有两条边可做选择来跳转到Hub子集合,所以每条边的选择概率为1/2,可以选择其中一条边到达节点6,同样,从节点6跳回到Authority子集合时,节点6也有两条边可选,选中每条边的概率为1/2。所以从节点3出发,经由节点6跳转到节点5的概率为两条边权值的乘积,即为1/4。
 

  对于指向自身的有向边,其权重计算过程是类似的,我们仍然以节点3为例,指向自身的有向边代表从Authority子集合中的节点3出发,经由Hub子集合的节点再次返回节点3的概率。从图6-16的二分图可以看出,完成这个过程有两条路径可走,一条是从节点3到节点1返回;另外一条是从节点3经由节点6后返回;每一条路径的概率与上面所述计算方法一样,因为两条路径各自的概率为0.25,所以节点3返回自身的概率为两条路径概率之和,即为0.5。图中其他边的转移概率计算方式也是类此。
 

  建立好Authority节点关系图后,即可在图上利用随机游走模型来计算每个节点的Authority权值。在实际计算过程中,SALSA将搜索结果排序问题进一步转换为求Authority节点矩阵的主秩问题,矩阵的主秩即为每个节点的相应Authority得分,按照Authority得分由高到低排列,即可得到最终的搜索排序结果。
 

  6.5.3 Authority权值计算
 

  经过数学推导,可以得出SALSA与求矩阵主秩等价的Authority权值计算公式。图6-18中的示意图表明了SALSA算法中某个网页节点的Authority权值是如何计算的。如图右上角公式所示,决定某个网页i的Authority权值涉及4个因子。
 

  [图片]图6-18 SALSA节点权值计算公式
 

  · Authority子集合中包含的节点总数│A│。其实这个因子对于Authority集合中任意节点来说都是相同的,所以对于最终的根据节点Authority权值进行的排序没有影响,只是起到保证权值得分在0到1之间,能够以概率形式表示权值的作用。
 

  · 网页i所在连通图中包含的节点个数│Aj│。网页所在的连通图包含的节点个数越多,则网页的Authority权值越大。
 

  · 网页i所在连通图中包含的入链总数│Ej│。网页所在的连通图包含的入链总数越少,则网页的Authority权值越大。
 

  · 网页i的入链个数│Bi│。节点入链越多,则Authority权值越大,这个因子是唯一一个和节点本身属性相关的。由此可见,SALSA权值计算和节点入链个数成正比。
 

  之前图6-17的“Authority节点关系图”由两个连通子图组成,一个由唯一的节点1构成,另外一个由节点3、5、6 3个节点构成,两个连通子图在图6-18中也被分别圈出。
 

  我们以节点3为例,看其对应的4个计算因素取值。
 

  · Authority子集共包括4个节点。
 

  · 节点3所在连通图包含3个节点。
 

  · 节点3所在连通图共有6个入链。
 

  · 节点3的入链个数为2。
 

  所以,节点3的Authority权值为:(3/4)×(2/6)=0.25。其他节点权值的计算过程与此类似。SALSA根据节点的Authority权值由高到低排序输出,即为搜索结果。
 

  由上述权值计算公式可以推出:如果整个Authority子集合所有节点形成一个完整的连通图,那么在计算Authority权值的过程中,对于任意两个节点,4个因子中除了节点入链个数外,其他3个因子总是相同的,即只有入链个数起作用,此时,SALSA算法退化为根据节点入链个数决定排序顺序的算法。
 

  从SALSA计算Authority得分过程中可看出,SALSA算法不需要像HITS算法一样进行不断的迭代计算,所以从计算效率角度看要快于HITS算法。另外,SALSA算法解决了HITS算法的计算结果主题漂移问题,所以搜索质量也优于HITS算法。SALSA算法是目前效果最好的链接算法之一。
 

相关内容推荐:

Top