Searching the Web (Arvind Arasu etc.)
1. 概述
2000年,23%网页每天更新,.com域内网页40%每天更新。网页生存半衰期是10天。描述方法可用Poisson过程。
28%的网页构成强连通核心,22%处于核心的上游,22%处于核心的下游,其他的部分无法互联。
2. 抓取
优先抓高质量网页。综合三者:按需要(和query匹配度),按热度(链入度),按区域(比如.com优先)
做法:先抓K个网页,后续使用队列缓存待抓取url和质量分。
在stanford内网所有网页上试验,目标是快速获取高质量网页,质量策略PageRank>backlink>breadth>random。
循环抓取同时度量网页新鲜度(age),优先抓取较快更新的网页,过慢或过快更新优先级都不高。更新越快越频繁抓取。
3. 存储
分布式存储,增删改查功能,支持随机读(在线查询)和顺序读(离线索引)。
分布式存储:hash分桶
批量跟新(一月一批量写),部分更新(部分site)
主副本设计:利于读写分离
url规范化,生成id和签名(checksum/crc)
4. 索引
多个索引库:链接库(决定网页质量),文本库(决定查询匹配度),定制库(site包含关系)
倒排索引:标题和加粗的term权重更高
词典:所有term
增量构建
索引格式需谨慎设计
分布式索引:doc划分(单机失败易恢复,负载分摊均匀,较理想),term划分
doc划分方法下:分发器把网页分发给索引器,排序后生成临时索引,然后合并临时索引写硬盘并生成词典
实际经验:对正排表选择适中的buffer,使用并行流水线(loading, processing, flushing)
适时全局计算统计量(比如idf)并写入索引:本地聚合,能适合放入内存时发给统计器
总结:扩展性很重要
5. 排序和链接分析
现代搜索引擎的必要性:
大量的网页,大量低质量、低相关性网页
网页缺少正式编辑和属性描述
网页链接结构对评估网页质量很有利:PageRank和HITS算法
PageRank:随机冲浪模型,缓解非连通情况引入随机访问。收敛性在实际中不是瓶颈(约100次迭代足够@Google)
HITS:Hub节点和Authority节点
其他:聚合社区;通过结构(比如cocitation)发现相似网页;利用相邻网页类别做网页分类
未来:结合用户点击数据;语义分析(LSI:Latent Semantic Indexing)
6. 总结
多媒体信息带来的挑战