HITS — 给网页同时打两个分:权威页 + 索引页
是什么
HITS(Hyperlink-Induced Topic Search)是一套给网页打两个分的算法:一个分叫 authority(权威分),一个分叫 hub(索引分)。日常类比:
- authority = 某领域的”专家本人”——比如『相对论』话题里的爱因斯坦个人主页
- hub = 某领域的”好导航页”——把所有相关专家页都列出来的一个目录
HITS 的关键洞见:这两个分相互定义。一个页面是好 hub,因为它指向了很多好 authority;一个页面是好 authority,因为它被很多好 hub 指向。两边像照镜子,互相校准。
1998 年 Cornell 教授 Jon Kleinberg 在 SODA 投了早期版,1999 年 JACM 上发表完整版。和同期的 PageRank(1998)并称链接分析两大流派。
为什么重要
不理解 HITS,下面这些事都没法解释:
- 为什么 1998-1999 是搜索引擎的分水岭——之前靠”关键词出现次数”排序,被垃圾页面刷爆;之后转向”看链接结构”
- 为什么后来 Google 的 PageRank 赢了,但 HITS 的”双向迭代”思想没死,反而活在今天的图神经网络(GNN)和推荐系统里
- 为什么”权威”和”导航”该分两个分而不是一个分——很多场景下两者根本不是同一批节点
- 为什么学术圈里”高引论文”(authority)和”好综述”(hub)是两种不同贡献
核心要点
HITS 算法分四步:
-
拿种子集(root set):用关键词从普通搜索引擎拿前 200 个页面。这一步借力关键词搜索,HITS 自己不做文本匹配。
-
扩展成基集(base set):把 root set 里每个页面的入链和出链页都拉进来。这样从 200 个膨胀到几千个,但仍然是和查询相关的小图。
-
迭代两个分数:每个页面 p 有 hub 分 h(p) 和 authority 分 a(p)。规则是:
- a(p) = 所有指向 p 的页面的 h 分之和(被好 hub 指 → 你是好 authority)
- h(p) = 所有 p 指向的页面的 a 分之和(你指了好 authority → 你是好 hub)
- 两组分数交替更新,每轮归一化(除以总和),跑几十轮就收敛
-
取主特征向量:数学上看,第 3 步是矩阵的”幂法”。用 A 表示链接矩阵(A[i,j]=1 表示 i 指向 j),算下来 a 是
A^T A的主特征向量、h 是A A^T的主特征向量。
整个过程针对每个查询单独跑——这是和 PageRank 最根本的区别。
实践案例
案例 1:搜”机器学习”会浮出谁
跑 HITS 在”machine learning”的小图上:
- 高 authority:Andrew Ng 的 CS229 课程页、scikit-learn 文档、PyTorch 官网——内容本体
- 高 hub:awesome-machine-learning(GitHub 上的精选列表)、Reddit 的 r/MachineLearning 月度推荐贴——把好内容串起来的导航页
注意:hub 和 authority 几乎不重叠。这正是 HITS 的价值——用一个分(PageRank)把这两类节点压扁就丢失了信息。
案例 2:手算一个三页面小图
三个页面 A、B、C,链接关系:A → C,B → C,C → A。
初始 a = h = (1, 1, 1),跑一轮:
- a(C) 收到 A 和 B 的 h,所以 a(C) = h(A)+h(B) = 2;a(A) 收到 C 的 h = 1;a(B) = 0
- h(A) = a(C) = 1(A 指向 C);h(B) = a(C) = 1;h(C) = a(A) = 1
继续迭代几轮,C 在 authority 上稳定胜出,A 和 B 在 hub 上并列。这就是双向特征向量在小图上的样子。
案例 3:HITS 思想在现代的化身
- 学术评价:Eigenfactor 算法给期刊打分,思路就是 PageRank+HITS 的混合
- GNN 消息传递:每个节点既”发”自己的特征给邻居(hub 行为)也”收”邻居的特征(authority 行为),多轮聚合到收敛
- 推荐系统冷启动:用户-商品二部图,用户分(hub)和商品分(authority)交替更新——直接把 HITS 搬过来
- 影响力建模:Twitter 早期的”大 V 识别”里,转推者(hub)和被转推者(authority)就是天然的 HITS 结构
案例 4:HITS 与 PageRank 同图对比
同一个 100 节点的小图(一个学术领域),分别跑两套算法:
| 维度 | HITS | PageRank |
|---|---|---|
| 输出分数 | 每节点两个分(h 和 a) | 每节点一个分 |
| 计算时机 | 查询时(小图) | 离线(全图) |
| 收敛对象 | A^T A 和 A A^T 主特征向量 | 转移矩阵主特征向量 |
| 抗操纵 | 弱(小图易被互链拉爆) | 较强(阻尼系数 + 全网视角) |
| 工程代价 | 每查询百毫秒到秒 | 离线一次,查询时 O(1) 查表 |
读到这里就明白:算法本身没有谁更对,是工程约束决定了谁能上线。
踩过的坑
-
TKC 效应(Tightly-Knit Community):一小群页面互相链接,分数会一起冲到顶,挤走真正的权威。比如几个垃圾博客互相引用,HITS 会把它们误判成”领域专家”。后来 SALSA(2000)用随机游走修正这个问题。
-
主题漂移(topic drift):base set 扩展时把强势但不相关的页面拉进来——比如查”jaguar 美洲豹”,扩展后 base set 里全是 Jaguar 汽车官网。Yahoo!、维基百科首页等”大节点”会污染结果。
-
查询时实时算:HITS 必须每次查询都跑特征向量。1999 年的硬件下,这意味着百毫秒到秒级延迟——商业搜索引擎吃不消。这是 PageRank(离线算一次全网)在工程上胜出的关键。
-
对操纵脆弱:建几百个假 hub 全部指向你的目标页,authority 分立刻拉高。PageRank 用阻尼系数和全局视角部分缓解;HITS 在小图上对这种攻击几乎没招。
适用 vs 不适用场景
适用:
- 主题特定的小图链接分析(领域内文献、特定话题的博客圈)
- 二部图打分(用户-商品、读者-作者,天然 hub/authority 分离)
- 需要”内容方”和”导航方”分别识别的场景
不适用:
- 全网 Web 搜索(贵 + 易污染)→ 用 PageRank
- 节点之间没有明确”指向”关系的网络(比如纯无向社交图)
- 极稀疏图(迭代收敛到 trivial 解)
历史小故事(可跳过)
- 1997-1998:Kleinberg 在 IBM Almaden 访问时做出 HITS,IBM 起项目叫 CLEVER,目标是干掉关键词搜索
- 1998:HITS 早版投 SODA;同年 Brin 和 Page 发 PageRank、成立 Google。两套算法同年同月对外,思路对偶
- 1999:HITS 完整版上 JACM;IBM 一度认为 CLEVER 会赢
- 2000-2002:Google 用 PageRank 商业化大获成功;CLEVER 项目低调收尾。HITS 输在工程而不是算法
- 2010s+:双向迭代思想在 GNN(图神经网络)、知识图谱嵌入里复活——这次是 HITS 的孙辈
学到什么
- 同一时刻可以有两套对偶的好答案——PageRank 单分全图,HITS 双分子图,谁也不能说更”对”
- 算法漂亮 ≠ 工程胜出——HITS 数学优雅但每查询都要算,PageRank 粗暴离线但能扩展
- 递归互定义是图分析的基本招式——hub 和 authority 互相支持,本质就是矩阵的幂法
- 思想会以变形回来——HITS 死在搜索,活在 GNN
- 拆分一个标量为两个标量是设计算法的常用招——不是所有节点都同时是”内容”和”导航”,强行压成一个分会丢信息
回看:为什么 PageRank 赢了 HITS
很多人以为是算法优劣分胜负,其实四点工程因素:
- 离线 vs 在线:PageRank 一次算完全网,查询时只查表;HITS 每查询都得跑特征向量
- 数据规模:PageRank 越大越稳;HITS 在小图上易被互链小圈子拉偏
- 可解释性:单分容易给广告主、给运营解释;双分难讲清楚
- 抗作弊:早期 HITS 链接农场(link farm)就能击垮,PageRank 用阻尼系数抵御
但反过来在今天的 GNN 和推荐系统里,HITS 的”双向迭代”思想几乎是默认起点——因为这些场景里每查询重算是允许的,而 hub/authority 分离恰好契合二部图、知识图谱的结构。
延伸阅读
- 论文 PDF:Kleinberg 1999 — Authoritative Sources(19 页,前 6 页足够入门)
- 教程视频:Stanford CS246 — Link Analysis: HITS and PageRank(Jure Leskovec 讲解,含小图手算)
- 修补版本:Lempel & Moran, SALSA 2000(用随机游走解决 TKC)
- pagerank-1998 —— 同期的全图单分数对手,工程上的胜利者
- linear-algebra-essentials —— 特征向量与幂法是 HITS 的数学骨架
关联
- pagerank-1998 —— 双胞胎对手;理解链接分析必须把这两篇放一起看
- graph-neural-networks —— 现代图深度学习里的消息传递就是 HITS 双向迭代的连续化版
- recommendation-systems —— 二部图打分场景天然适合 HITS 的 hub/authority 分离
反向链接
- pagerank-1998 —— PageRank — 用随机游走给整个网络的页面打分
- trustrank-2004 —— TrustRank — 用一小撮可信种子把整张 Web 的信誉算出来