㈠ Hits的算法
HITS,网页分析,算法,搜索引擎
HITS 算法是由康奈尔大学( Cornell University ) 的JonKleinberg 博士于1998 年首先提出的,HITS 的英文全称为Hyperlink - Inced Topic Search,为IBM公司阿尔马登研究中心( IBM Almaden Research Center) 的名为“CLEVER”的研究项目中的一部分。
具体解释:
一个网页重要性的分析的算法,根据一个网页的入度(指向此网页的超链接)和出度(从此网页指向别的网页)来衡量网页的重要性。其最直观的意义是如果一个网页的重要性很高,则他所指向的网页的重要性也高。一个重要的网页被另一个网页所指,则表明指向它的网页重要性也会高。指向别的网页定义为Hub值,被指向定义为Authority值。
通常HITS算法是作用在一定范围的,比如一个以程序开发为主题的网页,指向另一个以程序开发为主题的网页,则另一个网页的重要性就可能比较高,但是指向另一个购物类的网页则不一定。
在限定范围之后根据网页的出度和入度建立一个矩阵,通过矩阵的迭代运算和定义收敛的阈值不断对两个向量Authority和Hub值进行更新直至收敛。
理解HITS算法是Web结构挖掘中最具有权威性和使用最广泛的算法。HITS算法通过两个评价权值——内容权威度(Authority)和链接权威度(Hub)来对网页质量进行评估。其基本思想是利用页面之间的引用链来挖掘隐含在其中的有用信息(如权威性),具有计算简单且效率高的特点。HITS算法认为对每一个网页应该将其内容权威度和链接权威度分开来考虑,在对网页内容权威度做出评价的基础上再对页面的链接权威度进行评价,然后给出该页面的综合评价。内容权威度与网页自身直接提供内容信息的质量相关,被越多网页所引用的网页,其内容权威度越高;链接权威度与网页提供的超链接页面的质量相关,引用越多高质量页面的网页,其链接权威度越高。
首先,它完全将网页的内容或文本排除在外,仅考虑网页之间的链接结构来分析页面的权威性,这与现实网络中的权威页面相比,其不科学性显而易见。然而HITS算法也有其明显的不足。
因为权威页面必须针对某一主题或关键词而言。某一页面对一确定主题的具有较大权威性的页面并不意味在其他与其无关的主题方面同样具有权威性。其次一个页面对另一页面的引用有多种情况,其中包含了一页面对另一页面的认可,但除此之外也有其他目的链接,如为了导航或为了付费广告。就HITS算法的思想与实现过程做了细致的研究与概括。而HITS算法在实现过程中均没有考虑以上情况.导致了结果与目标的差距。
对HITS算法的第二个不足,即非正常目的的引用.在HITS算法看来,也误认为是正常引用,导致实际结果与目标的出入。针对前面第一种不足,就有相关的学者提出了一种利用超链文字及其周围文字与关键字相匹配而计算超链权值的方法,并引入系数对周围文字和超链文字进行权值的相对控制,很好地将页面文本信息引入到HITS算法,提高了算法的可靠性,并在现实中取得了很好的效果。
后来,经过不断的改进。HITS算法又引入了时间参数,即利用对一链接引用的时间长短来评价是否为正常引用。因为非正常链接其引用时间肯定不会很长(如交换链接、广告链接),相反,如果一页面对另一页面的链接时间较长,则必然反映此页面就是用户的寻找页面。即目标页面或至少是正常引用。
如设定访问时间少于1分钟者为非正常引用。如果设定时间阀值,则可以将非正常引用的链接在HITS算法的实现过程中筛选出来。另外可构造时间访问函数,控制权威页面的相对大小。如随访问时间的增大而其权威性也逐渐非线性增大.这样可为HITS算法的权威页面提供更合理、更科学的解释。
㈡ HITS算法的Hits算法
HITS (Hyperlink – Inced Topic Search) 算法是利用HubPAuthority的搜索方法,
具体算法如下:
将查询q提交给基于关键字查询的检索系统,从返回结果页面的集合中取前n个网页(如n=200),作为根集合(root set),记为S,则S满足:
1.S中的网页数量较少
2.S中的网页是与查询q相关的网页
3.S中的网页包含较多的权威(Authority)网页
通过向S 中加入被S 引用的网页和引用S 的网页,将S 扩展成一个更大的集合T. 以T 中的Hub 网页为顶点集V1 ,以权威网页为顶点集V2 。
V1 中的网页到V2 中的网页的超链接为边集E ,形成一个二分有向图. 对V1 中的任一个顶点v ,用h ( v) 表示网页v 的Hub 值,且h ( v)收敛;对V2 中的顶点u ,用a ( u) 表示网页的Authority 值。
开始时h ( v) = a ( u) = 1 ,对u 执行I 操作,修改它的a ( u) ,对v执行O操作,修改它的h ( v) ,然后规范化a ( u),h ( v) ,如此不断的重复计算下面的I操作和O操作,直到a ( u),h(v)收敛 。
其中I操作:a ( u) = Σh ( v) ;O 操作: h ( v) = Σa ( u) 。每次迭代对a ( u) 、h ( v) 进行规范化处理: a ( u) = a ( u)/Σ[ a ( q) ]2 ; h ( v) = h ( v)/Σ[ h ( q) ]2 。 HITS算法伪代码 如下:
1G:= set of pages
2for eachpagepinGdo
3p.auth = 1 //p.auth is the authority score of the pagep
4p.hub = 1 //p.hub is the hub score of the pagep
5functionHubsAndAuthorities(G)
6forstepfrom1tokdo// run the algorithm for k steps
7 norm = 0
8for eachpagepinGdo// update all authority values first
9p.auth = 0
10for eachpageqinp.incomingNeighborsdo//p.incomingNeighborsis the set of pages that link top
11p.auth +=q.hub
12 norm += square(p.auth) // calculate the sum of the squared auth values to normalise
13 norm = sqrt(norm)
14for eachpagepinGdo// update the auth scores
15p.auth =p.auth / norm // normalise the auth values
16 norm = 0
17for eachpagepinGdo// then update all hub values
18p.hub =
019for eachpagerinp.outgoingNeighborsdo//p.outgoingNeighborsis the set of pages thatplinks to
20p.hub +=r.auth
21 norm += square(p.hub) // calculate the sum of the squared hub values to normalise
22 norm = sqrt(norm)
23for eachpagepinGdo// then update all hub values
24p.hub =p.hub / norm // normalise the hub values
㈢ hits算法:在网上找了几个关于hits的java实现算法,算法的输入都是一个方阵,请问不是方阵的如何实现
k相当于你用来记录每次运算的进度的,k不断的增长的过程,就是假设你用手算一个一个运算的过程。你写两个矩阵A是3*3的,B是3*3的,两个矩阵相乘,你看看是不是你手算的过程和这个程序的步骤是一致的。如果不是方阵假设A是2*3.B是3*2那么k还是原来的东西。只不过,2用i来循环,3用j来循环,for (int i = 0; i < len; i++)中的len=2. for (int j = 0; j < len; j++)中的len=3而已了。k=2因为C=A*B是2*2的。不明白你再问O(∩_∩)O
㈣ HITS算法的英文全称
Hypertext-Inced Topic Search
㈤ HITS算法的具体解释
按照HITS算法,用户输入关键词后,算法对返回的匹配页面计算两种值,一种是枢纽值(Hub Scores),另一种是权威值(Authority Scores),这两种值是互相依存、互相影响的。所谓枢纽值,指的是页面上所有导出链接指向页面的权威值之和。权威值是指所有导入链接所在的页面中枢纽之和。
一个网页重要性的分析的算法。
通常HITS算法是作用在一定范围的,比如一个以程序开发为主题网页,指向另一个以程序开发为主题的网页,则另一个网页的重要性就可能比较高,但是指向另一个购物类的网页则不一定。
在限定范围之后根据网页的出度和入度建立一个矩阵,通过矩阵的迭代运算和定义收敛的阈值不断对两个向量Authority和Hub值进行更新直至收敛。
㈥ hits算法为什么归一化
您好,为了空间的考虑,我们在存储Web图的时候,一般都是用的邻接矩阵表示。
经过分析发现,一个页面的权威值,其实是指向它的页面的中心值之和;一个页面的中心值,是它指向的页面的权威值的过程。这是一个相互加强的过程。
为什么要归一化。主要原因是消除不同维度数据之间的差异,还以加快训练算法的收敛速度。包括去除量纲不一致的缺陷,时间序列不平稳。
㈦ 为什么hits算法是与用户输入的查询请求密切相关的
Hub页面(枢纽页面)和Authority页面(权威页面)是HITS算法最基本的两个定义。
所谓“Authority”页面,是指与某个领域或者某个话题相关的高质量网页,比如搜索引擎领域,Google和网络首页即该领域的高质量网页,比如视频领域,优酷和薯仔首页即该领域的高质量网页。
所谓“Hub”页面,指的是包含了很多指向高质量“Authority”页面链接的网页,比如hao123首页可以认为是一个典型的高质量“Hub”网页。
图1给出了一个“Hub”页面实例,这个网页是斯坦福大学计算语言学研究组维护的页面,这个网页收集了与统计自然语言处理相关的高质量资源,包括一些着名的开源软件包及语料库等,并通过链接的方式指向这些资源页面。这个页面可以认为是“自然语言处理”这个领域的“Hub”页面,相应的,被这个页面指向的资源页面,大部分是高质量的“Authority”页面。
㈧ HITS算法的算法由来
HITS的算法由来
HITS 算法是由康奈尔大学( Cornell University ) 的Jon Kleinberg 博士于1997 年首先提出的,为IBM
公司阿尔马登研究中心( IBM Almaden Research Center) 的名为“CLEVER”的研究项目中的一部分。
HITS
(Hyperlink – Inced Topic Search) 算法是利用HubPAuthority的搜索方法,
具体算法如下:
将查询q提交给基于关键字查询的检索系统,从返回结果页面的集合中取前n个网页(如n=200),作为根集合(root set),记为S,则S满足:
S中的网页数量较少
S中的网页是与查询q相关的网页
S中的网页包含较多的权威(Authority)网页
通过向S 中加入被S 引用的网页和引用S 的网页,将S 扩展成一个更大的集合T. 以T 中的Hub 网页为顶点集V1 ,以权威网页为顶点集V2 。
V1 中的网页到V2 中的网页的超链接为边集E ,形成一个二分有向图. 对V1 中的任一个顶点v ,用h ( v) 表示网页v 的Hub 值,且h ( v)收敛;对V2 中的顶点u ,用a ( u) 表示网页的Authority 值。
开始时h ( v) = a ( u) = 1 ,对u 执行I 操作,修改它的a ( u) ,对v执行O操作,修改它的h ( v) ,然后规范化a ( u),h ( v) ,如此不断的重复计算下面的I操作和O操作,直到a ( u),h(v)收敛 。
其中I操作:a ( u) = Σh ( v) ;O 操作: h ( v) = Σa ( u) 。每次迭代对a ( u) 、h ( v) 进行规范化处理: a ( u) = a ( u)/Σ[ a ( q) ]2 ;h ( v) = h ( v)/Σ[ h ( q) ]2 。
㈨ 求问:HITS算法的实现代码!!C语言,或者JAVA都可以!
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,如:�
(1) 不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。�
(2) 通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。�
(3) 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频/视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。�
(4) 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。�
为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫(general�purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。�
1 聚焦爬虫工作原理及关键技术概述�
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件,如图1(a)流程图所示。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,如图1(b)所示。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。�
相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:�
(1) 对抓取目标的描述或定义;�
(2) 对网页或数据的分析与过滤;�
(3) 对URL的搜索策略。�
抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。�
2 抓取目标描述�
现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。�
基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为:�
(1) 预先给定的初始抓取种子样本;�
(2) 预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;�
(3) 通过用户行为确定的抓取目标样例,分为:�
a) 用户浏览过程中显示标注的抓取样本;�
b) 通过用户日志挖掘得到访问模式及相关样本。�
其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。�
现有的聚焦爬虫对抓取目标的描述或定义可以分为基于目标网页特征,基于目标数据模式和基于领域概念三种。�
基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。具体的方法根据种子样本的获取方式可以分为:(1)预先给定的初始抓取种子样本;(2)预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;(3)通过用户行为确定的抓取目标样例。其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。�
-----------------------------------------------------------
2 爬虫技术研究综述
基于目标数据模式的爬虫针对的是网页上的数据,所抓取的数据一般要符合一定的模式,或者可以转化或映射为目标数据模式。�
另一种描述方式是建立目标领域的本体或词典,用于从语义角度分析不同特征在某一主题中的重要程度。�
3 网页搜索策略�
网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。�
3.1 广度优先搜索策略�
广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。�
3.2 最佳优先搜索策略�
最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点。将在第4节中结合网页分析算法作具体的讨论。研究表明,这样的闭环调整可以将无关网页数量降低30%~90%。�
4 网页分析算法�
网页分析算法可以归纳为基于网络拓扑、基于网页内容和基于用户访问行为三种类型。�
4.1 基于网络拓扑的分析算法�
基于网页之间的链接,通过已知的网页或数据,来对与其有直接或间接链接关系的对象(可以是网页或网站等)作出评价的算法。又分为网页粒度、网站粒度和网页块粒度这三种。�
4.1.1 网页(Webpage)粒度的分析算法�
PageRank和HITS算法是最常见的链接分析算法,两者都是通过对网页间链接度的递归和规范化计算,得到每个网页的重要度评价。PageRank算法虽然考虑了用户访问行为的随机性和Sink网页的存在,但忽略了绝大多数用户访问时带有目的性,即网页和链接与查询主题的相关性。针对这个问题,HITS算法提出了两个关键的概念:权威型网页(authority)和中心型网页(hub)。�
基于链接的抓取的问题是相关页面主题团之间的隧道现象,即很多在抓取路径上偏离主题的网页也指向目标网页,局部评价策略中断了在当前路径上的抓取行为。文献[21]提出了一种基于反向链接(BackLink)的分层式上下文模型(Context Model),用于描述指向目标网页一定物理跳数半径内的网页拓扑图的中心Layer0为目标网页,将网页依据指向目标网页的物理跳数进行层次划分,从外层网页指向内层网页的链接称为反向链接。�
4.1.2 网站粒度的分析算法�
网站粒度的资源发现和管理策略也比网页粒度的更简单有效。网站粒度的爬虫抓取的关键之处在于站点的划分和站点等级(SiteRank)的计算。SiteRank的计算方法与PageRank类似,但是需要对网站之间的链接作一定程度抽象,并在一定的模型下计算链接的权重。�
网站划分情况分为按域名划分和按IP地址划分两种。文献[18]讨论了在分布式情况下,通过对同一个域名下不同主机、服务器的IP地址进行站点划分,构造站点图,利用类似PageRank的方法评价SiteRank。同时,根据不同文件在各个站点上的分布情况,构造文档图,结合SiteRank分布式计算得到DocRank。文献[18]证明,利用分布式的SiteRank计算,不仅大大降低了单机站点的算法代价,而且克服了单独站点对整个网络覆盖率有限的缺点。附带的一个优点是,常见PageRank 造假难以对SiteRank进行欺骗。�
4.1.3 网页块粒度的分析算法�
在一个页面中,往往含有多个指向其他页面的链接,这些链接中只有一部分是指向主题相关网页的,或根据网页的链接锚文本表明其具有较高重要性。但是,在PageRank和HITS算法中,没有对这些链接作区分,因此常常给网页分析带来广告等噪声链接的干扰。在网页块级别(Block�level)进行链接分析的算法的基本思想是通过VIPS网页分割算法将网页分为不同的网页块(page block),然后对这些网页块建立page�to�block和block�to�page的链接矩阵,�分别记为Z和X。于是,在page�to�page图上的网页块级别的PageRank为�W�p=X×Z;�在block�to�block图上的BlockRank为�W�b=Z×X。�已经有人实现了块级别的PageRank和HITS算法,并通过实验证明,效率和准确率都比传统的对应算法要好。�
4.2 基于网页内容的网页分析算法�
基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。网页的内容从原来的以超文本为主,发展到后来动态页面(或称为Hidden Web)数据为主,后者的数据量约为直接可见页面数据(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒体数据、Web Service等各种网络资源形式也日益丰富。因此,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。本节根据网页数据形式的不同,将基于网页内容的分析算法,归纳以下三类:第一种针对以文本和超链接为主的无结构或结构很简单的网页;第二种针对从结构化的数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;第三种针对的数据界于第一和第二类数据之间,具有较好的结构,显示遵循一定模式或风格,且可以直接访问
base set
基本集
基础集合
base基数
在HITS 算法中,对每个文档都要计算两个值:权威值(authority)与中心值(hub)。开始时,由用户发出查询,HITS 算法使用一个基于文本的搜索引擎,得到许多被返回的页面,构成根集合(root set)R。把根集合中的页面所指向的页面都包括进来,再把指向根集合中的页面的页面也包括进来,这样就扩充成了基础集合(base set)T.