使用深度人工神经网络能帮助解决搜索问题,这个领域被称为神经搜索。本书将介绍用在搜索引擎中的神经网络的组成、工作方式和应用实践。
神经搜索
神经搜索 (neural search)是“神经信息检索”(neural information retrieval)一词的一种不太学术的表达形式。“神经信息搜索”一词最早出现在2016年SIGIR大会的一个研讨会上,该研讨会重点讨论深度神经网络在信息检索领域的应用。
你可能会好奇:既然已经拥有了很好的网络搜索引擎,并且我们经常能够利用它们找到所需要的东西,那为什么还需要神经搜索呢?
深度神经网络有以下优点。
2 参见Kurt Hornik、Maxwell Stinchcombe和Halbert White的文章“Multilayer Feedforward Networks Are Universal Approximators”,刊载于 Neural Networks ,1989年第2卷、第5期,第359~366页。
这听起来可能有点抽象,所以让我们来看看这些功能如何帮助搜索工程师和(或)用户。在使用搜索引擎时,我们只考虑主要的难点。你很可能会遇到如下问题。
上述这些问题很常见,解决办法也多种多样。令人兴奋的是,如果信息筛选得当,深度神经网络可以在上述所有情况下发挥作用。
在深度学习算法的帮助下,搜索引擎能够完成如下任务。
3 可能是作者的俏皮话,谷歌搜索引擎能实现,但你不是谷歌搜索引擎,所以要通过本书掌握通过文字搜索图像的方法。——译者注
如果你曾经设计、实现或配置过搜索引擎,那么你肯定遇到过这样一个问题:如何获得适合手中数据的解决方案。深度学习有助于为这些问题提供解决方案,使这些解决方案准确地基于数据本身,而非固定的规则或算法。
搜索结果的质量对最终用户来说至关重要。搜索引擎必须保证匹配到的结果是用户最需要的信息。合理排序的搜索结果可以让用户更简单、更快地找到所需结果,这就是为什么我们一再强调 相关结果 这个话题。在实际生活中,这会产生巨大的影响。深度神经网络可以根据用户查询历史或搜索引擎内容,自动调整用户的查询内容。
如今,人们已经习惯了使用网络搜索引擎来搜索图像。例如,在谷歌搜索引擎上搜索“pictures of angry lions”,就能得到相关性很强的图片。在深度学习出现之前,这些图像必须先使用元数据(metadata,关于数据的数据)描述其内容,然后才能放入搜索引擎。而这些元数据通常必须人工输入。而由于深度神经网络可以抽象出图像的表示,用于表示图像中的内容,因此不需要人工干预就可以将图像描述放入搜索引擎中。
因为在网络搜索这样的场景(搜索互联网上的所有网站)中,用户可能来自世界各地,所以最好能够允许用户通过母语进行搜索。此外,即便用户搜索时使用的是英语,搜索引擎也可以根据用户的个人资料,以用户的母语返回搜索结果。这是技术查询的常见情景,因为很多内容是用英语生成的。深度神经网络的一个有趣的应用被称为 神经机器翻译 ,这是一组通过深度神经网络将一段文本从源语言翻译成目标语言的技术。
同样令人兴奋的是,利用深度神经网络可以改变搜索引擎向用户返回相关信息的方式。最常见的情况是,搜索引擎在响应搜索查询时给出搜索结果列表。深度学习技术可以让搜索引擎只返回一条结果,而该结果能够提供用户需要的所有信息 4 , 5 。这将避免用户为了获得所需的所有知识而不得不查看每个结果。我们甚至可以将这些想法聚合起来,构建一个搜索引擎,为来自世界各地的用户无缝提供他们所需要的单个文本和图像,而非一系列搜索结果。
4 参见Christina Lioma等人的文章“Deep Learning Relevance: Creating Relevant Information (As Opposed to Retrieving It)”。
5 该论文提出了一种信息检索配置,该配置下信息检索系统不检索现有相关信息,而是通过循环神经网络学习现有相关信息后生成一个新的、相关的合成文档。通过几个随机的查询,显示这个合成文档相关性排序最高。这就是作者所说的“只返回一条结果,而该结果能够提供用户需要的所有信息”。——译者注
这些都是 神经搜索 应用的案例。可以想象,神经搜索有潜力彻底改变我们如今的工作方式和使用搜索引擎的方式。
计算机帮助人们获取所需信息的方法有很多。虽然神经网络在过去一直被讨论,但直到最近才变得如此流行,这是因为研究人员已经发现如何使它们比从前更有效。例如,21世纪初,功能更强大的计算机所提供的帮助是一个关键进展。为了充分发挥深度神经网络的所有潜力,对计算机科学感兴趣的人士,尤其是自然语言处理、计算机视觉和信息检索等领域的人士,将需要了解这种人工神经网络在实践中是如何工作的。
本书是为那些有兴趣利用深度学习构建智能搜索引擎的人准备的。这并不意味着你一定要构建下一个谷歌搜索引擎,只是意味着你可以利用在本书中学到的知识为你的公司设计并实现一个高效的搜索引擎,或者扩展你的知识库,将深度学习技术应用到可能包括网络搜索引擎的大型项目中。在这里,我们的目标是丰富你关于搜索引擎和深度学习的技能,因为这些技能在许多情况下很有用。例如: