大数据 互联网大规模数据挖掘与分布式处理 第二版
作 者: (美)莱斯科夫(Jure Leskovec)拉贾拉曼(Anand Rajaraman)厄尔曼(Jeffrey David Ullman)
出版时间:2015
内容简介
本书由斯坦福大学“Web挖掘”课程的内容总结而成,主要关注极大规模数据的挖掘。主要内容包括分布式文件系统、相似性搜索、搜索引擎技术、频繁项集挖掘、聚类算法、广告管理及推荐系统。其中相关章节有对应的习题,以巩固所讲解的内容。读者更可以从网上获取相关拓展材料。
目录
第1 章 数据挖掘基本概念 1
1.1 数据挖掘的定义 1
1.1.1 统计建模 1
1.1.2 机器学习 1
1.1.3 建模的计算方法 2
1.1.4 数据汇总 2
1.1.5 特征抽取 3
1.2 数据挖掘的统计限制 4
1.2.1 整体情报预警 4
1.2.2 邦弗朗尼原理 4
1.2.3 邦弗朗尼原理的一个例子 5
1.2.4 习题 6
1.3 相关知识 6
1.3.1 词语在文档中的重要性 6
1.3.2 哈希函数 7
1.3.3 索引 8
1.3.4 二级存储器 9
1.3.5 自然对数的底e 10
1.3.6 幂定律 11
1.3.7 习题 12
1.4 本书概要 13
1.5 小结 14
1.6 参考文献 15
第2 章 MapReduce及新软件栈 16
2.1 分布式文件系统 17
2.1.1 计算节点的物理结构 17
2.1.2 大规模文件系统的结构 18
2.2 MapReduce 19
2.2.1 Map 任务 20
2.2.2 按键分组 20
2.2.3 Reduce 任务 21
2.2.4 组合器 21
2.2.5 MapReduce 的执行细节 22
2.2.6 节点失效的处理 23
2.2.7 习题 23
2.3 使用MapReduce 的算法 23
2.3.1 基于MapReduce 的矩阵—向量
乘法实现 24
2.3.2 向量v 无法放入内存时的处理 24
2.3.3 关系代数运算 25
2.3.4 基于MapReduce 的选择运算 27
2.3.5 基于MapReduce 的投影运算 27
2.3.6 基于MapReduce 的并、交和差运算 28
2.3.7 基于MapReduce 的自然连接运算 28
2.3.8 基于MapReduce 的分组和聚合运算 29
2.3.9 矩阵乘法 29
2.3.10 基于单步MapReduce 的矩阵乘法 30
2.3.11 习题 31
2.4 MapReduce 的扩展 31
2.4.1 工作流系统 32
2.4.2 MapReduce 的递归扩展版本 33
2.4.3 Pregel 系统 35
2.4.4 习题 35
2.5 通信开销模型 36
2.5.1 任务网络的通信开销 36
2.5.2 时钟时间 37
2.5.3 多路连接 38
2.5.4 习题 41
2.6 MapReduce 复杂性理论 41
2.6.1 Reducer 规模及复制率 41
2.6.2 一个例子:相似性连接 42
2.6.3 MapReduce 问题的一个图模型 44
2.6.4 映射模式 45
2.6.5 并非所有输入都存在时的处理 46
2.6.6 复制率的下界 46
2.6.7 案例分析:矩阵乘法 48
2.6.8 习题 51
2.7 小结 51
2.8 参考文献 53
第3 章 相似项发现 55
3.1 近邻搜索的应用 55
3.1.1 集合的Jaccard 相似度 55
3.1.2 文档的相似度 56
3.1.3 协同过滤——一个集合相似问题 57
3.1.4 习题 58
3.2 文档的shingling 58
3.2.1 k-shingle 58
3.2.2 shingle 大小的选择 59
3.2.3 对shingle 进行哈希 59
3.2.4 基于词的shingle 60
3.2.5 习题 60
3.3 保持相似度的集合摘要表示 61
3.3.1 集合的矩阵表示 61
3.3.2 最小哈希 62
3.3.3 最小哈希及Jaccard 相似度 62
3.3.4 最小哈希签名 63
3.3.5 最小哈希签名的计算 63
3.3.6 习题 66
3.4 文档的局部敏感哈希算法 67
3.4.1 面向最小哈希签名的LSH 67
3.4.2 行条化策略的分析 68
3.4.3 上述技术的综合 69
3.4.4 习题 70
3.5 距离测度 70
3.5.1 距离测度的定义 71
3.5.2 欧氏距离 71
3.5.3 Jaccard 距离 72
3.5.4 余弦距离72
3.5.5 编辑距离 73
3.5.6 海明距离 74
3.5.7 习题 74
3.6 局部敏感函数理论 75
3.6.1 局部敏感函数 76
3.6.2 面向Jaccard 距离的局部敏感函数族 77
3.6.3 局部敏感函数族的放大处理 77
3.6.4 习题 79
3.7 面向其他距离测度的LSH 函数族 80
3.7.1 面向海明距离的LSH 函数族 80
3.7.2 随机超平面和余弦距离 80
3.7.3 梗概 81
3.7.4 面向欧氏距离的LSH 函数族 82
3.7.5 面向欧氏空间的更多LSH函数族 83
3.7.6 习题 83
3.8 LSH 函数的应用 84
3.8.1 实体关联 84
3.8.2 一个实体关联的例子 85
3.8.3 记录匹配的验证 86
3.8.4 指纹匹配 87
3.8.5 适用于指纹匹配的LSH函数族 87
3.8.6 相似新闻报道检测 88
3.8.7 习题 89
3.9 面向高相似度的方法 90
3.9.1 相等项发现 90
3.9.2 集合的字符串表示方法 91
3.9.3 基于长度的过滤 91
3.9.4 前缀索引 92
3.9.5 位置信息的使用 93
3.9.6 使用位置和长度信息的索引 94
3.9.7 习题 96
3.10 小结 97
3.11 参考文献 98
第4 章 数据流挖掘 100
4.1 流数据模型 100
4.1.1 一个数据流管理系统 100
4.1.2 流数据源的例子 101
4.1.3 流查询 102
4.1.4 流处理中的若干问题 103
4.2 流当中的数据抽样 103
4.2.1 一个富于启发性的例子 104
4.2.2 代表性样本的获取 104
4.2.3 一般的抽样问题 105
4.2.4 样本规模的变化 105
4.2.5 习题 106
4.3 流过滤 106
4.3.1 一个例子 106
4.3.2 布隆过滤器 107
4.3.3 布隆过滤方法的分析 107
4.3.4 习题108
4.4 流中独立元素的数目统计 109
4.4.1 独立元素计数问题 109
4.4.2 FM 算法 109
4.4.3 组合估计 110
4.4.4 空间需求 111
4.4.5 习题 111
4.5 矩估计 111
4.5.1 矩定义 111
4.5.2 二阶矩估计的AMS 算法 112
4.5.3 AMS 算法有效的原因 113
4.5.4 更高阶矩的估计 113
4.5.5 无限流的处理 114
4.5.6 习题 115
4.6 窗口内的计数问题 116
4.6.1 精确计数的开销 116
4.6.2 DGIM 算法 116
4.6.3 DGIM 算法的存储需求 118
4.6.4 DGIM 算法中的查询应答 118
4.6.5 DGIM 条件的保持 119
4.6.6 降低错误率 120
4.6.7 窗口内计数问题的扩展 120
4.6.8 习题 121
4.7 衰减窗口 121
4.7.1 最常见元素问题 121
4.7.2 衰减窗口的定义 122
4.7.3 最流行元素的发现 123
4.8 小结 123
4.9 参考文献 124
第5 章 链接分析 126
5.1 PageRank 126
5.1.1 早期的搜索引擎及词项作弊 126
5.1.2 PageRank 的定义 128
5.1.3 Web 结构 130
5.1.4 避免终止点 132
5.1.5 采集器陷阱及“抽税”法 134
5.1.6 PageRank 在搜索引擎中的使用 136
5.1.7 习题 136
5.2 PageRank 的快速计算 137
5.2.1 转移矩阵的表示 137
5.2.2 基于MapReduce 的PageRank迭代计算 138
5.2.3 结果向量合并时的组合器使用 139
5.2.4 转移矩阵中块的表示 140
5.2.5 其他高效的PageRank 迭代方法 141
5.2.6 习题 142
5.3 面向主题的PageRank 142
5.3.1 动机 142
5.3.2 有偏