书籍详情
深度学习搜索引擎开发(Java实现)
作者:[意] 托马索·泰奥菲利(Tommaso Teofili) 著,李军,天舒 译
出版社:人民邮电出版社
出版时间:2020-10-01
ISBN:9787115547262
定价:¥79.00
购买这本书可以去
内容简介
本书是市面上少见的将搜索与深度学习相结合的书,讨论了使用(深度)神经网络来帮助建立有效的搜索引擎的方法。阅读本书无须具备开发搜索引擎的背景,也不需要具备有关机器学习或深度学习的预备知识,因为本书将介绍所有相关的基础知识和实用技巧。书中研究了搜索引擎的几个组成部分,不仅针对它们的工作方式提供了一些见解,还为在不同环境中使用神经网络提供了指导。读完本书,你将深入理解搜索引擎面临的主要挑战、这些挑战的常见解决方法以及深度学习所能提供的帮助。你将清晰地理解几种深度学习技术以及它们在搜索环境中的适用范围,并深入了解Lucene和Deeplearning4j库。书中示例代码用Java编写。
作者简介
托马索·泰奥菲利(Tommaso Teofili)Red Hat公司高级软件工程师,曾担任Adobe公司软件工程师,对开源和人工智能充满热情。他是Apache软件基金会的成员,参与了许多项目,涉及信息检索、自然语言处理和分布式计算等主题。【译者简介】李军电子科技大学计算机应用技术硕士,《IDA Pro代码破解揭密》合作译者,现从事电力系统自动化工作。天舒曾就读于四川大学电气工程及自动化专业,英国曼彻斯特大学电力系统工程硕士,现从事电力系统自动化工作。
目录
第 一部分 当搜索遇上深度学习
第 1章 神经搜索 2
1.1 神经网络及深度学习 3
1.2 什么是机器学习 5
1.3 深度学习能为搜索做什么 7
1.4 学习深度学习的路线图 9
1.5 检索有用的信息 10
1.5.1 文本、词素、词项和搜索基础 11
1.5.2 相关性优先 18
1.5.3 经典检索模型 19
1.5.4 精确率与召回率 20
1.6 未解决的问题 20
1.7 打开搜索引擎的黑盒子 21
1.8 利用深度学习解决问题 22
1.9 索引与神经元 26
1.10 神经网络训练 26
1.11 神经搜索的前景 28
1.12 总结 29
第 2章 生成同义词 30
2.1 同义词扩展介绍 31
2.1.1 为什么要使用同义词 32
2.1.2 基于词汇表的同义词匹配 33
2.2 语境的重要性 42
2.3 前馈神经网络 43
2.3.1 前馈神经网络如何工作:权重和激活函数 44
2.3.2 简述反向传播 45
2.4 使用word2vec 46
2.4.1 在Deeplearning4j中设置word2vec 53
2.4.2 基于word2vec的同义词扩展 54
2.5 评价和比较 57
2.6 用于生产系统时的考虑 58
2.7 总结 61
第二部分 将神经网络用于搜索引擎
第3章 从纯检索到文本生成 64
3.1 信息需求与查询:弥补差距 65
3.1.1 生成可选查询 65
3.1.2 数据准备 67
3.1.3 生成数据的小结 73
3.2 学习序列 73
3.3 循环神经网络 75
3.3.1 循环神经网络内部结构和动态 77
3.3.2 长期依赖 80
3.3.3 LSTM网络 81
3.4 用于无监督文本生成的LSTM网络 81
3.5 从无监督文本生成到监督文本生成 92
3.6 生产系统的考虑因素 95
3.7 总结 96
第4章 更灵敏的查询建议 97
4.1 生成查询建议 98
4.1.1 编写查询时的建议 98
4.1.2 基于字典的建议算法 99
4.2 Lucene Lookup API 99
4.3 分析后的建议算法 102
4.4 使用语言模型 108
4.5 基于内容的建议算法 111
4.6 神经语言模型 112
4.7 基于字符的神经语言建议模型 114
4.8 调优LSTM 语言模型 117
4.9 使用词嵌入使建议多样化 125
4.10 总结 127
第5章 用词嵌入对搜索结果排序 128
5.1 排序的重要性 128
5.2 检索模型 130
5.2.1 TF-IDF与向量空间模型 132
5.2.2 在Lucene中对文档进行排序 134
5.2.3 概率模型 137
5.3 神经信息检索 138
5.4 从单词到文档向量 139
5.5 评价和比较 144
5.6 总结 149
第6章 用于排序和推荐的文档嵌入 150
6.1 从词嵌入到文档嵌入 150
6.2 在排序中使用段向量 154
6.3 文档嵌入及相关内容 157
6.3.1 搜索、推荐和相关内容 157
6.3.2 使用高频词项查找相似内容 159
6.3.3 使用段向量检索相似内容 166
6.3.4 从编码器-解码器模型用向量检索相似内容 169
6.4 总结 170
第三部分 延伸
第7章 跨语言搜索 172
7.1 为讲多种语言的用户提供服务 172
7.1.1 翻译文档与查询 174
7.1.2 跨语言搜索 175
7.1.3 在Lucene上进行多语言查询 176
7.2 统计机器翻译 178
7.2.1 对齐 180
7.2.2 基于短语的翻译 181
7.3 使用并行语料库 181
7.4 神经机器翻译 184
7.4.1 编码器-解码器模型 184
7.4.2 DL4J中用于机器翻译的编码器-解码器 187
7.5 多语言的单词和文档嵌入 194
7.6 总结 199
第8章 基于内容的图像搜索 200
8.1 图像内容和搜索 201
8.2 回顾:基于文本的图像检索 203
8.3 理解图像 204
8.3.1 图像表示 206
8.3.2 特征提取 208
8.4 图像表示的深度学习 215
8.4.1 卷积神经网络 216
8.4.2 图像搜索 224
8.4.3 局部敏感散列 228
8.5 处理未标记的图像 231
8.6 总结 235
第9章 性能一瞥 236
9.1 深度学习的性能与约定 237
9.2 索引和神经元协同工作 251
9.3 使用数据流 254
9.4 总结 259
展望未来 260
第 1章 神经搜索 2
1.1 神经网络及深度学习 3
1.2 什么是机器学习 5
1.3 深度学习能为搜索做什么 7
1.4 学习深度学习的路线图 9
1.5 检索有用的信息 10
1.5.1 文本、词素、词项和搜索基础 11
1.5.2 相关性优先 18
1.5.3 经典检索模型 19
1.5.4 精确率与召回率 20
1.6 未解决的问题 20
1.7 打开搜索引擎的黑盒子 21
1.8 利用深度学习解决问题 22
1.9 索引与神经元 26
1.10 神经网络训练 26
1.11 神经搜索的前景 28
1.12 总结 29
第 2章 生成同义词 30
2.1 同义词扩展介绍 31
2.1.1 为什么要使用同义词 32
2.1.2 基于词汇表的同义词匹配 33
2.2 语境的重要性 42
2.3 前馈神经网络 43
2.3.1 前馈神经网络如何工作:权重和激活函数 44
2.3.2 简述反向传播 45
2.4 使用word2vec 46
2.4.1 在Deeplearning4j中设置word2vec 53
2.4.2 基于word2vec的同义词扩展 54
2.5 评价和比较 57
2.6 用于生产系统时的考虑 58
2.7 总结 61
第二部分 将神经网络用于搜索引擎
第3章 从纯检索到文本生成 64
3.1 信息需求与查询:弥补差距 65
3.1.1 生成可选查询 65
3.1.2 数据准备 67
3.1.3 生成数据的小结 73
3.2 学习序列 73
3.3 循环神经网络 75
3.3.1 循环神经网络内部结构和动态 77
3.3.2 长期依赖 80
3.3.3 LSTM网络 81
3.4 用于无监督文本生成的LSTM网络 81
3.5 从无监督文本生成到监督文本生成 92
3.6 生产系统的考虑因素 95
3.7 总结 96
第4章 更灵敏的查询建议 97
4.1 生成查询建议 98
4.1.1 编写查询时的建议 98
4.1.2 基于字典的建议算法 99
4.2 Lucene Lookup API 99
4.3 分析后的建议算法 102
4.4 使用语言模型 108
4.5 基于内容的建议算法 111
4.6 神经语言模型 112
4.7 基于字符的神经语言建议模型 114
4.8 调优LSTM 语言模型 117
4.9 使用词嵌入使建议多样化 125
4.10 总结 127
第5章 用词嵌入对搜索结果排序 128
5.1 排序的重要性 128
5.2 检索模型 130
5.2.1 TF-IDF与向量空间模型 132
5.2.2 在Lucene中对文档进行排序 134
5.2.3 概率模型 137
5.3 神经信息检索 138
5.4 从单词到文档向量 139
5.5 评价和比较 144
5.6 总结 149
第6章 用于排序和推荐的文档嵌入 150
6.1 从词嵌入到文档嵌入 150
6.2 在排序中使用段向量 154
6.3 文档嵌入及相关内容 157
6.3.1 搜索、推荐和相关内容 157
6.3.2 使用高频词项查找相似内容 159
6.3.3 使用段向量检索相似内容 166
6.3.4 从编码器-解码器模型用向量检索相似内容 169
6.4 总结 170
第三部分 延伸
第7章 跨语言搜索 172
7.1 为讲多种语言的用户提供服务 172
7.1.1 翻译文档与查询 174
7.1.2 跨语言搜索 175
7.1.3 在Lucene上进行多语言查询 176
7.2 统计机器翻译 178
7.2.1 对齐 180
7.2.2 基于短语的翻译 181
7.3 使用并行语料库 181
7.4 神经机器翻译 184
7.4.1 编码器-解码器模型 184
7.4.2 DL4J中用于机器翻译的编码器-解码器 187
7.5 多语言的单词和文档嵌入 194
7.6 总结 199
第8章 基于内容的图像搜索 200
8.1 图像内容和搜索 201
8.2 回顾:基于文本的图像检索 203
8.3 理解图像 204
8.3.1 图像表示 206
8.3.2 特征提取 208
8.4 图像表示的深度学习 215
8.4.1 卷积神经网络 216
8.4.2 图像搜索 224
8.4.3 局部敏感散列 228
8.5 处理未标记的图像 231
8.6 总结 235
第9章 性能一瞥 236
9.1 深度学习的性能与约定 237
9.2 索引和神经元协同工作 251
9.3 使用数据流 254
9.4 总结 259
展望未来 260
猜您喜欢