链接分析算法之:SALSA算法

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

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

1. 确定计算对象集合

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

        扩充网页集合

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

        转换为无向二分图

        在获得了“扩充网页集合”之后,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的两个出链保留,作为二分图的边,

                  1.jpg

                                             图6-15 扩充网页集合示例

 

        但是这里需要注意的是,在转换为二分图后,原先的有向边不再保留方向,转换为无向边,而HITS算法仍然保留为有向边,这点与SALSA略有不同。

                       2.jpg

                                                 图6-16   二分图

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

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以及Authority-Authority之间的节点关系,而另外一个子集合节点只是充当中转桥梁的作用。所以,上述权值传播模型可以转化为两个相似的子模型,即Hub节点关系图和Authority节点关系图。

 

Authority节点关系图

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

                          3.jpg

                                                                  图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得分由高到低排列,即可得到最终的搜索排序结果。

3. Authority权值计算

4.jpg

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

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

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

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

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

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

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

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

Authority子集共包括4个节点;

节点3所在连通图包含3个节点;

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

节点3的入链个数为2;

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

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

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

转自:http://blog.csdn.net/hguisu/article/details/8016916

原创文章,作者:s19930811,如若转载,请注明出处:http://www.178linux.com/2720

(0)
上一篇 2015-07-20 23:00
下一篇 2015-07-21 21:53

相关推荐

  • Hadoop Hive sql语法详解

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需 要的内容,这套SQL 简称Hive SQL,使不熟悉mapredu…

    Linux干货 2015-04-13
  • Hadoop HDFS分布式文件系统设计要点与架构

    Hadoop简介:一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件…

    Linux干货 2015-04-13
  • Storm集群安装详解

    storm有两种操作模式: 本地模式和远程模式。 本地模式:你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来;  远端模式:你提交的topology会在一个集群的机器上执行。 本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章…

    Linux干货 2015-04-04
  • 谷歌三大核心技术(一)The Google File System中文版

    摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。 虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础的,不管现在还是…

    Linux干货 2015-04-13
  • Hadoop Hive与Hbase整合+thrift

    1.  简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive与HBas…

    Linux干货 2015-04-13
  • 免费翻墙 [精]

    本人在hostus上买了一个国外的vps,花了一上午把Google给做好,可以访问g.abcdocker.com进行搜索,因为是使用nginx代理进行翻墙。网上的文章也很乱,很不好整理。 可以可以使用g.abcdocker.com上Google查阅资料。(无法观看视频) www.abcdocker.com

    2017-06-17