《searching the web》学习笔记
第一次读搜索引擎方面的文章,读的似懂非懂,先记录下来,以后再细看。
摘要: 本文简要概括当前搜索引擎的设计。介绍一般的网络搜索引擎结构(architecture)后依次详细介绍搜索引擎每个部分的主要技术,包括crawling, 网页存储(local web page storage),indexing,以及如何利用网页间的链接特性。
第一节:介绍
面对海量的互联网网页和信息,输入关键词(query)得到希望的结果是互联网用户所需要的,这就需要设计网络搜索引擎。一般的搜索引擎使用信息检索(IR, Information Retrieval)技术,但是他是对应于规模小的,连续(coherent)的集合的搜索技术,对于互联网并不完全适用,为此需要引入新的技术。
互联网的特点:(1) 海量数据、变化快、规模不断增大;(2)分布存储;(3) 网页间有超链接(蝴蝶结结构)
- Crawlers的主要任务是从初始网页集出发遍历全部的网页(理论上的全部),直到资源耗尽。Crawl时根据访问更多的站点,或者是访问特定的站点等目标而有不同的策略。
- Indexer 的主要任务是抽取每个页面的全部字(word),并记录字出现的URL和在页面中的位置,还需要根据文档、结构、功能等创建不同的索引(index)。
- Query Engine 的主要任务是接收和补全用户的查询(query),它依赖于index和repository。
第二节:Crawling web pages 网页爬虫
2.1. Page selection
- What is importance of page? Interest Driven / Popularity Driven / Location Driven
- How a crawler operates? Crawl & Stop / Crawl & Stop with threshold
- How a crawler guesses good pages to visit? (choose the next URLs to visit) Reference to 1.1.
2.2. Page refresh (如何更新页面)
Uniform refresh policy > Proportional refresh policy
Should consider freshness and age
- Fresh strategy: 向下的抛物线模型
- Open issues: crawlers与网站交互 & 并行crawl & crawl如何获取需要填表单或取得数据
第三节:storage
3.1. Challenges: 需要考虑的因素
- Scalability: 考虑大信息量
- Dual access mode: Random access for end-user, Streaming access for indexer and analysis modules.
- Large bulk updates: 顾名思义
- Obsolete pages: How to detect and remove obsolete pages.
3.2. Design a distributed web repository: 需要考虑节点的结构,节点间的通信,及更新方式
- Page distribution policy: uniform/hash
- Physical page organization methods
- Update strategy: (Batch mode + shadowing)/ (steady mode + in place)
3.3. Open issues:
- Indexer不仅仅通过网址,也考虑含的图片、视频等信息
- Streaming order
第四节:indexing
Indexing: link index | text index | utility index | etc.
4.1. Structure of an inverted index
The inverted list for a term is a sorted list of locations where the term appears in the collections, in which location means page identifier + position + payload field(occurrences+).
4.2. Challenges
Web scale: 创建和重建过程需要用的资源和时间
存储结构与结果表现的平衡.
4.3. Index partitioning
Local inverted file: 每个节点分管一部分互不相交的pages
Global inverted file: 每个节点分管一部分terms
4.4. WebBase Text-indexing system
Distributors + indexers + query servers
两种技巧减少系统开销:
Avoid explicit I/O for statistics: local to statisticians in memory
Local aggregation: aggregation in nodes à statisticians
第五节: Ranking and Link Analysis
网页搜索和普通文本搜索的区别: 网页搜索数据量大、 网页间关联。本节中介绍如何利用网页间关系给出更准确的搜索结果。
5.1. PageRank
Citation ranking: 被指向的次数(越多说明越重要)
PageRank: 在citation rank的基础上还要考虑指向该页面的页面本身的重要程度(递归)。求解rank可以归结为求一个矩阵的特征值1的特征向量,也可以迭代求解。
上面的PageRank是以全部pages组成强连通图为前提的,在海量的pages中这个条件常常不满足,如可能会出现等级沉没(rank sink)和等级泄露(rank leak)发生,此时迭代式要做相应的变化。
实践中需要解决的问题:迭代要收敛 & 收敛要快。(排序结果会更早的出现)
5.2. HITS (Hypertext Induced Topic Search)
计算每个页面的全局等级(global rank),根据查询内容出的等级(query dependent ranking techinique),等级包含authority + hub score.
Authority表述的是与query相关的程度的page,而hub score可能指向更多authorities的page。交互迭代的过程。
求authority和hub score可以归结为求一个矩阵和其转置矩阵的特征向量问题,也可以用迭代法。
5.3. Others
Identifying communities + Finding related pages + Classification and Resource Compilation
5.4. Future Directions
- 如何利用其他信息,如查询记录,浏览记录等;
- 开发更健全的文档分析技术,并利用到web中这些有链接的文档查询中
第六节:总结
根据用户的极少的搜索关键词,从海量的网页中,快速准确地返回查询结果。
执行步骤:Crawlers分析网页,Query Engine返回相关网页,Ranking Module对返回结果排序。
名词解释:
1. Crawls:爬虫跟踪pages,返回URLs,并把跟踪到的pages发送到page repository,直到资源耗尽。
有些爬虫可能是访问尽可能多的sites,而不去考虑隐藏很深的pages
有些爬虫可能是集中访问同一个域中的pages,如government
2. Crawl control model:确定哪些URLs继续跟踪,哪些可以忽略。
3. Indexer model: 抓取页面中所有文字,并记录每个文字出现的页面,形成lookup table.
还要生成结构索引。
数据量&变化速度&页面的相关links
4. Collection analysis module
5. Utility index: 有collection analysis module 创建,可以由网页包含的图片个数、宽度这些信息检索pages
6. Query engine:接受和补全用户的query
7. inverse document frequency(IDF):逆向文件频率,是词语i普遍重要性的度量。某一特定词语的IDF,可以由文件总数除以包含该词语的文件数目,再将得到的商取对数得到。
term frequency(TF): 词频,指一个词语i在文件j中出现的次数。通常被正规化,以防止它偏向长的文件。
IS(P)[ij]: TF[ij]*IDF[i], Interest Driven
参考 http://hi.baidu.com/sowhatliu/blog/item/aa0a8817d701b70fc93d6db6.html
8. Backlink count: 导入链接数,指向该链接的hyperlink数。
IB(P): Popularity Driven
IL(P): Location Driven
翻译:
Information Retrieval (IR):信息检索
Coherent: 一致的
Scalable: 可扩展的
Updateable: 可更新的
Discriminating ability: 辨别能力
Poisson process: 泊松过程,一个累积随机事件发生次数的最基本的独立增量过程。
Bow-tie: 蝴蝶结
and vice versa: 反之亦然
schematically: 大致、示意地、粗略地
crawler:爬虫
grist:谷物、有利的武器
retrieve: 检索
repository: 仓库,资源库
coverage: 误差
bias: 误差
be biased to: 偏重于
leave out: 忽略
lookup table: 查找表
pose a difficulty: 构成难题
less common: 更鲜为人知的
scenario: 方案
hierarchy: 层次结构
bibliometrics: 文献计量学
threshold: 阀值,界点
up-to-date:最新的
obsolete: 陈旧的、过时的
analogous: 相似的
fluctuation: 波动
periodically: 周期性地
scenario: 情景
ad hoc: 特设、为此
scalability: 可测量的
dual: 双重的
bulk: 大容量
advantageous:有好处的
batch-mode: 批处理方式
on the downside: 从不利的方法讲
space compaction:
checksum: 校验和
cyclic redundancy check: 循环冗余度校验
give rise to: 导致、形成
adjacency: 邻接物
retrieve: 检索
accommodate: 适应
lexicon:字典
resilience:恢复力
tradeoff:折中、权衡
facilitate: 协助、促进
disseminate: 扩散、传播
mutually: 互相地
replication: 重复实验、重现
throughput:吞吐量
concurrently:并发地
overhead: 系统开销
adverse: 敌对的,相反的
spamming: 非所要信息,垃圾邮件 /
aperiodic: 非规则的
rank sink: 等级沉没
rank leak: 等级泄露
decay: 衰减
dictate: 规定
gravitate: 倾向于
scarecely: 几乎不
exotic: 奇异的
mundane:平凡的
baipartite: 双向的
trawl:拖网
co-citation:共被引
hustle: 急速活动
heuristic: 启发式的,试探性的.