陕西十一选五玩法
010-82092128 English

集团概况

加入我们

联系我们
【AI之美】系列五浅谈搜索引擎

互联网?#31995;?#25628;索引擎很多,有通用的网页搜索,也有针对不同领域的垂直搜索,2C、2B、用户产品、商业产品等等。对于一个IT系统来说,搜索功能也是标配功能之一。搜索引擎的主要任务比?#31995;?#19968;,就是“搜索?#20445;?#20174;大量数据中找到想要的数据。但这个任务并不简单:数据量大,用户真正想要的是什么,他的需求如何表达,怎么找到相关的数据,都是需要考虑的问题。

搜索引擎经过多年的发展,大致上经历了分类目录、文本检索、连接分析、场景化这几个大的发展阶段,各方面技术?#21152;?#20102;比较成型的体系,主要包括数据获取、数据分析、检索、需求分析、数据展现等几个模块。本文将从技术角度,为大家解读搜索引擎的主要技术原理及其涉及人工智能的部分。

1. 搜索引擎的技术原理

搜索引擎面对的数据多种多样,主要有文字内容、图像内容、音?#30340;?#23481;、视?#30340;?#23481;,但技术流程大致相同,如图1所示。

1.png

1搜索引擎技术流程

整个流程分成离线和在线两部分,离线部分进行大规模数据处理,包含数据获取、数据分析、数据索引。在线部分满足用户实时的检索请求,包含需求表达、需求分析、高?#37117;?#32034;、基础检索、结果展现。我们以网页搜索为例,对这个流程做一个梳理:

1) 数据获取

数据来源主要包括网?#31995;目?#25918;数据、自有数据、特定数据等几类。对于网?#31995;目?#25918;数据,可以使用爬虫技术自动抓取。网络爬虫的逻辑其实很朴素,就是先选择一些网页作为种子,因为网页和网页之间有超?#35835;?#25509;,从这批种子开始,顺着超?#35835;?#25509;一?#25918;?#19979;去。但是其中的挑战还是很多的,比如种子如何选取,网页打开的很慢甚?#38142;?#19981;开?#27604;?#20309;保证爬取的速度,很多网页没有被超?#35835;?#25509;指向?#27604;?#20309;发现他们,循?#25918;?#21462;怎么办,被爬取的网页内容变化了怎么办等等,再加上硬件和带宽的要求,情况还是比较复杂的。

自有数据是企业自己的数据,?#27573;?#26159;可知的。特定数据主要是有特殊需求的数据或者定性抓取的数据,往往需要定制化处理。这两类数据相对于开放数据来讲,情况简化了很多。

2) 数据分析

系统把数据存下来之后,就是加工处理?#26041;冢?#21253;括内容解析、去噪、链接分析、作弊分析、数据分类、打标签、挖掘关键词等。其中任?#25105;?#20010;话题,都可以作为一个?#36739;?#21435;研究。比如链接分析的原理就是利用网页之间的指向关系,分析每个网页的重要程度,基本假设是被指向越多的网页就越重要,?#27604;?#22312;工程实践中会有很多?#26234;?#20917;,链接有站内的,有?#23601;?#30340;,链接源的质量有高有低,链接文本的表达,如何识别带有其他意图而故意制造的链接,链接关系会经常变化等。

3) 数据索引

接下来的步骤就是与在线环境的衔接,在线搜索对性能要求还是很高的,一般是在毫秒到秒级响应。这个?#26041;?#23601;是对这些数据做预处理,处理成可以供在线系统使用的倒排索引格式。正排索引是文档到词的?#25104;洌?#20498;排索引是词到文档的?#25104;洌?#25152;以在搜索一个词的时候,可以直接定位到包含?#20040;?#30340;文档有哪些。对于不同的数据类型,索引结构是不一样的,比如空间数据要使用n叉树、R树等。

离线部分主要包含这三个?#26041;冢?#21508;系统会根据自己的需求有增减。

4) 需求表达

需求表达是在线部分的第一步,这个?#26041;?#30340;主要问题是交互设计。主流倾向是尽量简化用户输入,输入越简单,对系统的智能化要求就越高,简化到极致不需要输入时,?#32479;?#20102;推荐系统。即便是推荐系统,他的隐含输入项还有时间、地点、ip、浏览器、历史记录等很多信息,这些信息对系统的帮助?#27973;?#22823;,因为用户是带着需求来的,但是他不一定知道如何表达自己的需求,系统想办法获取更多的参考信息,综合分析用户输入的背后需求。

5) 需求分析

需求分析是搜索引擎的核心?#26041;?#20043;一,也是?#27973;?#20855;有挑战性的一个?#26041;凇?#29992;户的输入?#27973;?#31616;单,系统要从中分析出用户背后的意图,再将这个意图落地成系统能够使用的?#38382;健!?#24847;图”的表示方法很多,有分类、关键词、向量化、结构化等等。这些方法一般是综合使用的,因为单一的表示方式信息量太少。这里有一个更根本的问题,即人的“意图?#27604;?#20309;用符号来表征,符号能不能表征人大脑中的“意图?#20445;?#22312;以后的文章中我们会详细的?#33268;邸?/p>

6) 在线检索

在线检索模块首先加载数据索引,接收需求分析的结果,负责从海里数据里命中满足需求的数据,然后汇总结果,统一整理,生成计算结果返回给用户。这里消耗的硬件资源会比较多,有的系统还会使用GPU做数据处理,对性能要求也比较高,要达到毫秒级、不超过秒级的响应时间。在实?#20160;?#32626;时,要平衡cpu、内存、硬盘、带宽等硬件资源,通常会部署两套环?#24120;?#20316;为备份或者测试使用。

7) 结果展现

结果展现是最后一个?#26041;?#20102;,在应用层拼装数据展示给用户,但这个?#26041;?#30452;接影响用户体验,跟需求表达环境相对应,主要问题是交互的设计。

2. 搜索引擎与人工智能

搜索引擎的任务是一边理解用户的需求,另一边理解数据的含义,然后两者做匹配。用户是带着需求来的,这个需求隐藏在用户头脑中,表现出来的就是在系统中的几个简单操作步骤,系统要尽量从简单的输入还原出其背后的需求。同样数据的表?#20013;问?#34429;然多种多样,但其抽象含义隐藏在这些表现之后,系统也要从这些表现中还原出抽象含义。这个过程完全符合人工智能的特点。所以不仅AI技术发挥的空间?#27973;?#22823;,笔者认为搜索引擎本身就是一项人工智能技术,其中的每个?#26041;?#37117;需要AI技术的深入应用。

我们以需求分析为例,介绍下其中的AI技术(图2)。

2.png


图2需求分析中的 AI 技术

用户的输入是五花八门的,涉及的领域也是?#27973;?#30340;多。有的输入?#27973;?#31616;单,比如“incoPat”是有明?#20998;?#21521;的,这种就比较?#20040;?#29702;,最典型的意图是寻址,但还有可能是找他的介绍,找他的历史发展,找他的新闻等等。这时大数据就要发挥作用了,我们可以分析这个用户以前都关心什么,最近这?#38382;?#38388;什么话题最热门,其他人都在关心什么,最近什么内容产生的最多,把这些信息综合起来,可以为每?#20013;?#27714;赋予一个概率,争取在第一页把可能性最高的数据展现给用户。

如果输入的内容复杂一些,比如“incoPat是什么时候成立的?#20445;?#24847;图?#27973;?#26126;确,但理解这句话对计算机来讲并非?#36164;隆?#27604;如“incPcat的成立时间?#20445;?#36825;两句话的意思是一样的,对这里问题,我们上篇中介绍的知识图谱比较擅长,因为成立时间是实体的一个属性,可以直接给出答案。如果输入的再复杂一些,内容更长一些,挑战就会更大,?#27604;?#21487;以简化成我们介绍过的话题模型,也能得到一些结果,但噪音会比较大。

如果输入是图片等多媒体信息,比较重要的?#27973;?#21462;特征,然后做特征之间的匹配。限于篇幅这里就不展开介绍了。

3. 搜索引擎的展望

我们说“智能”的一个比较重要的体现是?#20174;?#24212;该是整体化的、场景化的,“搜索”是一个动作,虽然很专,但难免限制其价值发挥。笔者认为搜索引擎的未来发展会更偏专业化?#32479;?#26223;化。从给出内容,到给出答案,到给出解决方案,再到一套服务,在这个发展过程中,搜索引擎的概念已经扩大了。

从技术角度讲,可以说搜索引擎是incoPat的核心功能之一,后面的文章中,我们会详细介绍incoPat作为可信好用的全球专利检索运营平台,如何做到专业化、场景化的搜索,如何打通各?#20013;问?#30340;输入,如何提升用户的使用体验。

 

微信扫一扫 关注我们

陕西十一选五玩法
江苏快3技巧稳赚方法 双色球预测专家汇总 排列三骗局 体彩大乐透有规律吗 足球概率教你稳赚不赔 幸运pk10快艇在线直播 彩红时时彩计划软件苹果系统 北京pk拾开奖结果 2019年中国女篮决赛 北京pk拾稳赚技巧