搜索算法在互联网公司最大的用户就是搭建搜索引擎
优采云 发布时间: 2021-05-02 18:03搜索算法在互联网公司最大的用户就是搭建搜索引擎
在机器学习方面,您必须具有许多关联,例如最近的热门人工智能,击败李世石的AlphaGo,甚至是经典的机器电影,例如《黑客帝国》或《公共敌人》。
但是实际上,尽管目前机器学习已被广泛使用,但是在主要的互联网公司中,最重要的应用场景并没有太大变化。基本上,它延续了过去搜索,推荐和广告的三个技巧。今天,让我们谈谈大型的一键搜索。 Internet公司中搜索算法的最大用户是构建搜索引擎,而搜索引擎几乎是主要Internet公司的标准配置。无论是电子商务,社区软件还是社交软件,搜索引擎都是密不可分的。百度是三大英美烟草公司中的一员,凭借其高质量的中文搜索引擎,百度已成为中国最大的互联网公司之一。
尽管搜索引擎非常重要,并且与我们的生活紧密相关,但即使是互联网从业人员,对其搜索引擎的原理和结构也知之甚少。在了解特定的搜索算法之前,让我们先熟悉一下搜索引擎的结构。让我们看一下GitHub中那些一手实施搜索引擎的大人物所做的事情。
这是搜索引擎架构的简化版本,请原谅我的灵魂绘画风格。
搜索引擎的功能主要分为两部分,第一部分是与爬虫相关的,第二部分是搜索和排序。我们将把这两个部分分开并分别介绍。
首先是采集器部分,即上图中左侧的部分。
在某些地方,爬网程序也称为蜘蛛程序,它们实质上是自动访问Internet的程序。众所周知,Internet上有数以万计的网页,手动逐个采集它们是不现实的。因此,采集器是一种替代人类浏览Internet的程序。每当找到新的网站时,它将抓取网站的内容并将其存储。
这里有一个问题。采集器如何知道Internet上网站的地址?
它主要依靠网站之间的联系。例如,A 网站中的内容具有指向B 网站的链接,然后在对A 网站进行爬网之后,爬网程序将遵循该内容,以对B 网站进行爬网。如果B 网站指向许多其他网站,则抓取工具会依次访问它们。内容中存储的链接就像蜘蛛丝一样,链接着各种网页,而爬虫就像蜘蛛一样,在内部移动。
我们每天看到的网站的内容非常丰富,包括文本,图片,视频和其他多媒体。但是我们都知道今天的网站基于HTML,HTML是超文本标记语言。例如,当我打开百度并显示网页的源代码时,将显示以下内容:
也就是说,在爬虫程序的眼中,所有网页都是文本,甚至图片或视频也只是HTML形式的标签或链接。我们还可以看到这段文本很乱,人眼很难看到其中的信息。当然,此类文本不能直接使用,并且需要进行文本处理。
此处的处理主要包括两个步骤。第一步是清理HTML标签,仅保留关键文本信息。此步骤之后,文本的内容将被大大压缩。例如,如果取消了百度首页的标签,那么剩下的唯一项目应该是“点击百度,立即知道”,以及搜索栏下方几篇文章的标题文章。
文本处理的第一步相对简单。 Python具有非常成熟的HTML分析工具,第二步要复杂得多。当我们得到网页的文本时,下一步就是提取网页的关键词并将其处理为索引进行存储。
一个句子足以描述,但是在实践中并不容易。对于中文,需要提取关键词,并且首先需要分词。例如“百度”,这四个词实际上暗示着“百度”和“百度”。如果不进行分词,仅当用户输入四个单词“百度”时搜索百度的网页显然是不合理的。但是中文和英文是不同的,单词和单词之间没有空格,因此需要文本算法来进行单词分割。目前,这个问题是通过机器学习实现的,目前还没有完美的解决方案。
获得文本分割结果后,将仅保留一些关键词进行存储。当存储时,除了网页的前向信息-关键词之外,还存储网页的关键词的反向信息。在存储中心中,根据关键词采集网页。每个关键词将对应于网站的列表,并且收录此关键词的所有网站将存储在此列表中。这样,当用户搜索关键词时,他们可以根据关键词直接找到相应的网站。
如图所示,在搜索引擎中,北京和大学是两个关键词,对应于收录该关键词的一系列网站。假设以前的系统中没有北京大学的官方网站,并且该网站最近被某个爬虫抓到了。由于北京大学的官方网站上有北京大学关键词,因此在存储时,系统会将北京大学的网站添加到与北京大学关键词相对应的列表中。这样,无论我们搜索北京还是大学,我们都可以回想起北京大学网站。
当然,无论我们搜索北京还是大学,都有很多被召回的内容,并且我们可能无法返回北京大学。当我们搜索北京大学时,搜索引擎将同时调用北京和大学的两个关键词 网站,然后进行交集。选择同时收录北京和大学的网站,然后返回,以便您可以返回北京大学的官方网站。
除采集器外,搜索引擎的另一个重要部分是用户端服务,这是体系*敏*感*词*的正确部分。
了解存储中心的原理后,整个过程实际上非常清楚。简而言之,只完成了两项操作,一项是召回,另一项是排序。
回顾名称的含义是使用用户输入的关键词到存储中心查找与这些关键词相对应的搜索结果。然后将这些结果相交,以找到匹配度最高的内容。
因为存储的数据量很大,所以要处理的内容很多,并且对系统性能的要求也很高(用户的耐心性有限)。因此,在召回阶段,不可能非常仔细地处理它。是以粗粒度筛选出基本满足要求的内容。
尽管每次我们去百度时,它都会告诉我们已经搜索了数百万个或更多的结果,但是实际上,通过粗略排序实际上只能检索到一到两千个结果。由于存在粗糙的划船,因此也存在精细的划船。实际上,不难理解,经过粗略分类后,数据已从数千万减少到一千或两千。
接下来要做的是进一步对2000条数据进行排序。排序通常有多个主要依据。首先当然是匹配度。如果返回的网站与用户的请求不匹配,则显然会损害用户体验,甚至导致用户流失。因此,无论使用哪种搜索引擎,质量始终是第一位的。每个引擎的后续基础都不同。某些网站可能会更关注收入,因此将网站采集更多的钱放在首位,而某些网站会更加重视权威并提高知名度,或者更正式网站坚持到顶部。经过一系列调整和过滤,结果将真正返回给用户。
这时,介绍了整个搜索引擎的结构。仅从体系结构的角度来看,该系统并不复杂。在电子商务网站中,比这更复杂的系统比比皆是。但是,由于搜索引擎是Internet的入口,因此它们承载着巨大的流量并具有极高的性能要求,从而使整个系统进行了大量优化,而实际系统则更加复杂和困难。
除了困难之外,如果我们仔细分析这种结构,我们实际上会发现一些有趣的东西。例如,有时我会怀疑,为什么百度是第一个也是最好的中文搜索引擎?
后来,我得知李彦宏最初来自北京大学图书馆。当我查看搜索引擎和索引的结构时,它与图书馆管理完全不同吗?
在搜索引擎出现之前,还根据类别,关键字和作者对图书馆的书籍进行分类和存储。这样,在搜索时可以快速找到相应的书籍。这种思想的计算机在出现之前已经非常成熟。如果我们改变概念,则将Internet上的网页视为书籍,将网页的标题视为书籍的标题,并将文本中的关键字作为书籍的关键字,然后搜索网页技术和图书搜索实际上在思想上是相同的。因此,在图书馆学生李艳红(Li Yanhong)毕业后,他想到学习计算机后就将图书检索技术应用到Internet世界中。
一个人的成就似乎取决于个人奋斗的历史进程。