购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

我们将利用信息检索库Apache Lucene和深度学习库Deeplearning4j,在用Java编写的开源软件上运行我们的神经搜索示例。但是,为了确保本书中介绍的技术能够应用于不同的技术场景,我们将尽可能多地关注基本原理而不是它的具体实现。编写本书时,Deeplearning4j是企业中广泛使用的深度学习框架,是Eclipse Foundation的一部分。由于与Apache Spark等流行的大数据框架集成,它的采用率较高。本书的完整源代码可以在Manning网站的本书页面和本书的GitHub官方页面找到。当然,还存在其他深度学习框架,例如TensorFlow(来自谷歌公司)在Python社区和研究社区中很流行。因为几乎每天都有新的工具发明出来,所以我决定着重介绍一个相对容易使用的深度学习框架,它可以很容易地与Lucene集成,而Lucene是JVM中使用最广泛的搜索库之一。

在规划本书内容的时候,我决定以一种难度递增的方式来呈现各个章节,所以每一章都用一种广为人知的算法,教授神经网络在特定搜索问题上的应用。本书将关注前沿的深度学习算法,但无法覆盖所有的内容。本书的目的是提供良好的基础,即便一周后就出现了一种新的、更好的基于神经网络的算法,这一基础也将很容易拓展到新算法中。借助深度神经网络,我们希望改进相关性、查询理解、图像搜索、机器翻译和文档推荐。如果你对这些都不了解,也不要担心,本书将介绍一些不使用深度学习技术就可以完成的任务,然后说明深度学习何时以及如何提供帮助。

本书第一部分概述神经网络如何帮助改进搜索引擎。该部分将介绍神经网络的一个应用,即通过生成同义词来帮助搜索引擎构建同一查询的多个版本。第二部分将主要研究基于深度学习的技术,以使搜索查询更具表现力。这种改进了的表现能力将使查询与用户的意图更加相符,从而使搜索引擎返回更好(相关性更强)的结果。第三部分将研究更复杂的问题,比如跨语言搜索和图像搜索,最后讨论神经搜索系统性能方面的问题。

在此过程中,我们也会停下来思考应用神经搜索的准确率,以及如何度量最终结果。如果没有数据来不断地证明我们所认为的好的东西,我们就不会走得太远。我们需要度量在有与没有神奇的神经网络的情况下,我们的系统有多好。

本章从搜索引擎试图解决的问题和这些问题的常用解决方案开始,介绍关于在搜索引擎中分析、接收和检索文本的基础知识,因此你将了解查询如何影响搜索结果,以及如何解决优先返回相关结果的问题。我们还将揭示常见搜索技术中固有的一些缺点,进而讨论深度学习在搜索环境中能起什么作用。然后,本章将研究深度学习可以帮助解决哪些任务,以及它在搜索领域的应用有哪些实际意义。这将有助于你了解神经搜索在现实场景中能带来什么,不能带来什么。 SHuVrUmFj3JBRWdzxtqFUnTX3CsTa8YDxA/ZIZr89HlubZjVK8nhZtyawRqm5vbk

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开