1 / 126

Web 检索

Web 检索. 信息检索研究室 秦兵. 提纲. Web 检索历史 Web 检索系统结构 信息采集系统 网页与处理系统 链接分析算法. The World Wide Web. 1989 年,伯纳斯 · 李在日内瓦欧洲离子物理研究所( CERN )开发计算机远程控制时首次提出了 Web 概念,并在 1990 年圣诞节前推出了第一个浏览器。 接下来的几年中,他设计出 HTTP 、 URL 和 HTML 的规范,使网络能够为普通大众所应用 Ted Nelson 在 1965 年提出了超文本的概念 .

aure
Download Presentation

Web 检索

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web 检索 信息检索研究室 秦兵

  2. 提纲 • Web检索历史 • Web检索系统结构 • 信息采集系统 • 网页与处理系统 • 链接分析算法

  3. The World Wide Web • 1989年,伯纳斯·李在日内瓦欧洲离子物理研究所(CERN)开发计算机远程控制时首次提出了Web概念,并在1990年圣诞节前推出了第一个浏览器。 • 接下来的几年中,他设计出HTTP、URL和HTML的规范,使网络能够为普通大众所应用 • Ted Nelson 在1965年提出了超文本的概念. • 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议 • 超文本标注语言(HTML)

  4. Web Search 历史 • 1993, 早期的 web robots (spiders) 用于收集 URL: • Wanderer • ALIWEB (Archie-Like Index of the WEB) • WWW Worm (indexed URL’s and titles for regex search) • 1994, Stanford 博士生 David Filo and Jerry Yang 开发手工划分主题层次的雅虎网站.

  5. Web Search 历史(cont) • 1994年初,WebCrawler是互联网上第一个支持搜索文件全部文字的全文搜索引擎,在它之前,用户只能通过URL和摘要搜索,摘要一般来自人工评论或程序自动取正文的前100个字 • Lycos(Carnegie Mellon University Center for Machine Translation Announces Lycos )是搜索引擎史上又一个重要的进步。除了相关性排序外,Lycos还提供了前缀匹配和字符相近限制,Lycos第一个在搜索结果中使用了网页自动摘要,而最大的优势还是它远胜过其它搜索引擎的数据量 • DEC的AltaVista 是一个迟到者,1995年12月才登场亮相.AltaVista是第一个支持自然语言搜索的搜索引擎,AltaVista是第一个实现高级搜索语法的搜索引擎(如AND, OR, NOT等)

  6. Web Search 近期历史 • 1995年博士生Larry Page开始学习搜索引擎设计,于1997年9月15日注册了google.com的域名,1997年底,开始提供Demo。1999年2月,Google完成了从Alpha版到Beta版的蜕变。Google公司则把1998年9月27日认作自己的生日 • Google在Pagerank、动态摘要、网页快照、多文档格式支持、地图股票词典寻人等集成搜索、多语言支持、用户界面等功能上的革新,象Altavista一样,再一次永远改变了搜索引擎的定义 • 主要的进步在于应用链接分析根据权威性对部分结果排序

  7. Web Search 近期历史 • 北大天网 是国家“九五”重点科技攻关项目“中文编码和分布式中英文信息发现”的研究成果,由北大计算机系网络与分布式系统研究室开发,于1997年10月29日正式在CERNET上提供服务 • 2000年1月,超链分析专利发明人、前Infoseek资深工程师李彦宏与好友徐勇(加州伯克利分校博士)在北京中关村创立了百度(Baidu)公司 • 2001年8月发布Baidu.com搜索引擎Beta版(此前Baidu只为其它门户网站搜狐新浪Tom等提供搜索引擎) • 2001年10月22日正式发布Baidu搜索引擎。Baidu虽然只提供中文搜索,但目前收录中文网页超过9000万,可能是最大的的中文数据库

  8. Web Challenges for IR • 数据的分布性:文档散落在数以百万计的不同服务器上,没有预先定义的拓扑结构相连。 • 不稳定的数据高比例:许多文档迅速地添加或删除 (e.g. dead links). • 大规模:网络数据量的指数增长,由此引发了一系列难以处理的规模问题。 • 无结构和冗余信息:每个HTML页面没有统一的结构, 许多网络数据是重复的,将近 30% 的重复网页. • 数据的质量: 许多内容没有经过编辑处理,数据可能是错误的,无效的。错误来源有录入错误,语法错误,OCR错误等。 • 异构数据:多媒体数据(images, video, VRML), 语言,字符集等.

  9. Number of Web Servers

  10. Number of Web Pages

  11. 从用户输入查询词到得到检索结果这短短的几秒钟内发生了什么事情呢? • 网页爬行下来 • 预处理:网页去重,正文提取,分词等 • 建立索引 • 接受用户请求,检索词串的处理,查询重构 • 找到满足要求的列表 • 根据连接和文本中的词进行排序输出

  12. Web搜索引擎系统组成 • Web搜索引擎系统可以被分成以下四个大的子系统: • Web数据采集系统 • 网页预处理系统 • 索引检索系统 • 检索结果排序系统

  13. Web搜索引擎体系结构 • 小型的搜索引擎系统一般是集中式的结构 • 系统实现简单,花费的资源比较少 • 自身处理能力比较弱,能支持同时访问用户数量也比较小 • 很多搜索引擎采用了升级Web数据采集系统硬件的方法 • 使用大型机和并行机作为采集系统的硬件使采集能力提高 • 升级硬件的方法扩展性有限,性价比也不高 • 用网络连接多台微机组成一个分布式的机群系统提供的分布式网络服务 • 现代网络服务的体系结构已经由集中式向分布式转变

  14. 分布式结构:主次结构

  15. 分布式结构:对等结构

  16. Web信息采集

  17. Spiders (Robots/Bots/Crawlers) • 从一个URL根集开始搜索. • 根据这些网页的链接寻找另外的网页. • 将遇到的所有新的网页建立索引. • 也允许直接索引用户提交的网页.

  18. Web信息采集系统的作用 • 一个 web crawler( spider, or robot) 获取网络资源到本地机器上 • 存储的本地资源用于: • Web 检索 • 镜像资源 • HTML 确认, link 确认, 发现新信息, …

  19. Web信息采集系统的作用(续) • 信息查全率,评价搜索引擎好坏的一个重要指标 • Google号称采集30亿网页 • Baidu号称采集10亿网页 • 最主要的作用 • 采集网上的信息 • 网页,文本,ppt, doc ,音乐,图片 • 及时更新信息 • 增加新出现的链接 • 删除死链接

  20. Web信息采集当前研究方向 • 基于整个Web的信息采集(Scalable Web Crawling) • 增量式Web信息采集 (Incremental Web Crawling ) • 基于主题的Web信息采集(Focused Web Crawling ) • 基于用户个性化的Web信息采集(Customized Web Crawling ) • 基于Agent的信息采集(Agent Based Web Crawling ) • 迁移的信息采集(Relocatable Web Crawling ) • 基于元搜索的信息采集(Metasearch Web Crawling) 实际的采集器往往是几种采集技术的结合

  21. 基于整个Web的信息采集 • 传统的采集方式 • 作为门户搜索引擎和大型的Web服务提供商的数据收集部分 • 是指从一些种子URL扩充到整个Web的信息采集 • 优点 • 采集数据广,采集速度快,适用于广泛主题的搜索 • 缺点 • 采集数据乱,数据利用率低,页面失效率高,采集周期长 • 目前在实际应用中占较为主流的地位 • 典型代表:Google Crawler, 百度

  22. 增量式Web信息采集 • 在页面刷新时,只需要采集新产生的或者已经发生变化的页面,而对于没有变化的页面不进行采集 • 预测变化的策略: • 基于统计的方法:观察网站的平均变化周期 • 基于数据建模的方法:通过网页中变化估计模型和参数 • 优点 • 极大地减小数据采集量进而极大地减小采集时空开销 。 • 缺点 • 增加了一定的判别开销。 • 典型代表: Google Crawler, WebFountain。

  23. 有统计资料表明 • 随机选择270个站点,132个.com站点,78个.edu站点,30个.net站点和30个.gov站点 • 下载72000个页面,40%的.com每天变化,.net和.org变化适中,.edu和.gov变化最为缓慢 • 需要为更新较快的页面提高刷新率

  24. 主题Web信息采集 • 选择性的搜寻那些与预先定义好的主题集相关页面进行采集 • 给定特定的种子URL • 目前是研究热点,垂直搜索 • 优点 • 采集页面更加有针对性,采集效率更高。 • 缺点 • 采集速度较慢,判别相关性带来较大的开销。 • 典型代表:Focused Crwaler -- IIT&IBM • 采集系统首先保存一个经典的主题分类 • 每个主题分类都保存若干个内容样本

  25. 用户个性化Web信息采集 • 轻量级的信息采集 • 不同的用户对一个搜索引擎提交同一个检索词,他们期望的返回结果是不同的 • 通过用户兴趣制导或与用户交互等灵活手段来采集信息 • 优点 • 灵活、小巧、针对性强。 • 缺点 • 实用性和有效性还有待提高。 • 典型代表:SPHINX

  26. 基于Agent的信息采集 • 智能Agent系统是指一种处于一定环境下包装的计算机系统 • 它除了具有自治性、社会能力、反应能力和自发行为 • 还具有一般人类所有的知识、信念、意图和承诺等心智状态,这使得智能Agent系统具有人类的社会智能 • 将Agent技术用于采集,像人一样感知用户的兴趣变化,使得采集有更强的灵活性、适应性和自主性 • 典型代表:InfoSpiders ,Letizia

  27. 迁移的Web信息采集 • 将自己上载到它所要采集的服务器中,在当地进行采集,并将采集结果压缩后,回传到本地 • 优点 • 大量的节省了Web资源,大量的剪裁工作将在被采集对象的服务器上完成 • 缺点 • 不被采集对象所信任 • 解决:信任机制,半迁移 • 典型代表:SPHINX

  28. 元搜索Web信息采集 • 元搜索引擎是这样一种搜索引擎系统,对用户提交的查询请求通过多个领域或门户搜索引擎搜索,并将结果整合后以统一的界面提交个用户 • 信息采集部分在元搜索引擎中有相当的退化 • 典型代表: • 美国Binghamton大学 :对数据选择问题进行了研究 • 美国华盛顿大学:实验发现大多数搜索引擎对于同一个查询要求返回的结果很不相同,重叠率很低。单一搜索引擎会错过许多相关网页

  29. Crawler基本思想

  30. 不同IR系统的资源性质 • 事先存在、范围明确、固定不变的文档集合 例如,全唐诗,全宋诗,古典哲学著作,… • 部分存在,定期更新的文档集合 例如,生物医学周刊,《计算机学报》,CDAL,… • 随时间推移逐渐失效的流数据(Streaming data) 例如,沪市股票新闻,国际期货行情,… • 分布的,特有(proprietary)信息 例如,联合数据库,CALIS,… • 分布的,链接的,公开可访问的文档 例如,Web 不同类型有不同的技术需求

  31. 网页分布的若干特点 • 网页:内容(C),物理存在(P),IP地址(A), url(L) • 存在有大量内容相同,但物理上不同的,url不同,IP地址不同的网页  镜像,拷贝 • 同一篇(物理)网页可能被多个url指向 • 例如,ir.hit.edu.cn 和 www.ir-lab.org • 一个url可能对应多个IP地址,从而多个物理的网页(尽管此时内容大都是相同) • 例如,一些大门户网站采用的负载分配技术(http://www.google.com也是一个例子)

  32. Web有向图 <href …> <href …> <href …> <href …> <href …> <href …> <href …> 网页为节点 HTML链接引用为有向边

  33. 系统框图

  34. 单个采集线程个工作过程 • 将url解析成host和file。 • 例如:url: http://www.zjs.com.cn/asp/customercenter/center_home.asp • host: www.zjs.com.cn • file: /asp/customercenter/center_home.asp • 根据host(www.zjs.com.cn)做DNS解析 • 创建一个socket,用于网络通信 • 把创建的socket编号和DNS解析得到的网络地址作为参数传递给connect()函数,进行本地服务器和远程网页服务器的连接操作

  35. 单个采集线程个工作过程(续) • 在本地服务器缓冲区中组装http请求。 • 用write()函数将组装好的http头发给网页服务器。 • 调用read()函数读从网页服务器返回的网页数据 • 当read()函数返回的字节数是0的时候,说明网页已经下载完毕。 • 调用close()函数终止与网页服务器的连接。 • 将网页保存到本地服务器

  36. 先广搜索算法 The basic crawling algorithm is as follows: Create an empty URL queue Add user-supplied seed URLs to the tail of the queue Using the HTTP HEAD request, retrieve the HTTP headers for the resource at the head of the queue If the resource is found, hasn’t been visited previously, and meets all crawling criteria, then: Retrieve the resource using an HTTP GET request Extract URLs from the resource. For each URL: Decide if the URL should be added to the URL queue. If so, add the URL to the tail of the URL queue Store the headers and resource in the collection store Record the URL in the visited URL list Repeat from Step 2 until the queue is empty, then stop.

  37. 搜索策略 Breadth-first Search

  38. 搜索策略 (cont) Depth-first Search

  39. 算法1:Web Graph-Search PROCEDURE SPIDER1(G) Let ROOT := any URL from G Initialize STACK <stack data structure> Let STACK := push(ROOT, STACK) Initialize COLLECTION <big file of URL-page pairs> While STACK is not empty, URLcurr := pop(STACK) PAGE := look-up(URLcurr) STORE(<URLcurr, PAGE>, COLLECTION) For every URLiin PAGE, push(URLi, STACK) Return COLLECTION

  40. 算法1存在的问题 • 如果web graph有回路 • 算法将无法停止 • 遇到汇聚的结构 • 网页在集合中是重复的 • 无效的增大索引 • 重复的信息成为用户是负担 • Crawl 完整吗? • 算法1只能爬行到由根结点网页连接的子图 • Web不是强连通的

  41. A Correct Spidering Algorithm PROCEDURE SPIDER2(G) Let ROOT := any URL from G Initialize STACK <stack data structure> Let STACK := push(ROOT, STACK) Initialize COLLECTION <big file of URL-page pairs> While STACK is not empty, | Do URLcurr := pop(STACK) | Until URLcurr is not in COLLECTION PAGE := look-up(URLcurr) STORE(<URLcurr, PAGE>, COLLECTION) For every URLiin PAGE, push(URLi, STACK) Return COLLECTION

  42. A More Efficient Correct Algorithm PROCEDURE SPIDER3(G) Let ROOT := any URL from G Initialize STACK <stack data structure> Let STACK := push(ROOT, STACK) Initialize COLLECTION <big file of URL-page pairs> | Initialize VISITED <big hash-table> While STACK is not empty, | Do URLcurr := pop(STACK) | Until URLcurr is not in VISITED | insert-hash(URLcurr, VISITED) PAGE := look-up(URLcurr) STORE(<URLcurr, PAGE>, COLLECTION) For every URLiin PAGE, push(URLi, STACK) Return COLLECTION

  43. A More Complete Correct Algorithm PROCEDURE SPIDER4(G, {SEEDS}) | Initialize COLLECTION <big file of URL-page pairs> | Initialize VISITED <big hash-table> | For every ROOT in SEEDS | Initialize STACK <stack data structure> | Let STACK := push(ROOT, STACK) While STACK is not empty, Do URLcurr := pop(STACK) Until URLcurr is not in VISITED insert-hash(URLcurr, VISITED) PAGE := look-up(URLcurr) STORE(<URLcurr, PAGE>, COLLECTION) For every URLiin PAGE, push(URLi, STACK) Return COLLECTION

  44. 一种Crawler的体系结构

  45. 大规模爬取器的一种结构图

  46. DNS resolver

  47. DNS缓存,预取和解析 • 如果不采取措施,DNS地址解析会成为一个重要的瓶颈 • 局域网中,DNS服务器通常较小,对付几百个工作站的常规操作没问题,但一个crawler产生的压力大很多 • 同时从一个服务器抓许多网页也可以使DNS的cache能力发挥出来 • 搜索引擎中可以设计一个专用的DNS模块,含有 • 用于地址解析的DNS client(和本模块的DNS缓存服务器打交道) • 缓存server • 预取client

  48. 高效地址解析的定制client • 一般系统(例如UNIX)提供的DNS client没有考虑cralwer的需求,带来两个问题: • 以gethostbyname()为基础,它不能并发; • 不会考虑在多个DNS server之间分配负载。 • 因此一个custom client很必要。 • 专门对付多个请求的并发处理 • 容许一次发出多个解析请求 • 协助在多个DNS server之间做负载分配(例如根据掌握的URL进行适当调度)

  49. DNS缓存服务器 • 大缓存容量,跨DNS系统的刷新保持内容 • Internet的DNS系统会定期刷新,交换更新的域名和IP的信息。 • 普通的DNS cache一般应该尊重上级DNS服务器带来的域名“过期”的信息,但用于爬取网页的DNS cache不一定如此,以减小开销(让缓存中有些过期的无所谓,但也要注意安排适时刷新) • 映射尽量放在内存,可以考虑用一台专门的服务器

  50. 预取client • 为了减少等待查找涉及新主机的地址的时间:尽早将主机名投给DNS系统 • 步骤 • 分析刚得到的网页 • 从HREF属性中提取主机名(不是完整的URL) • 向缓存服务器提交DNS解析请求 • 结果放到DNS cache中(后面可能有用,也可能用不上) • 通常用UDP实现 • 非连接,基于包的通信协议,不保证包的投递 • 用不着等待解析的完成

More Related