本书由斯坦福大学“Web 挖掘”课程的内容总结而成,主要关注极大规模数据的挖掘。主要内容包括分布式文件系统、相似性搜索、搜索引擎技术、频繁项集挖掘、聚类算法、广告管理及推荐系统、社会网络图挖掘和大规模机器学习等。其中每一章节有对应的习题,以巩固所讲解的内容。读者更可以从网上获取相关拓展材料。
作者简介
编辑Jure Leskovec斯坦福大学计算机科学系助理教授,研究方向是大型社交和信息网络的数据挖掘。他的研究成果获得了很多奖项,如Microsoft Research Faculty Fellowship、Alfred P. Sloan Fellowship和Okawa Foundation Fellowship,还获得了很多最佳论文奖,同时也被《纽约时报》《华尔街日报》《华盛顿邮报》《麻省理工科技评论》《连线》、NBC、BBC等流行的社会媒体刊载。他还创建了斯坦福网络分析平台Anand Rajaraman数据库和Web技术领域权威,创业投资基金Cambrian联合创始人,斯坦福大学计算机科学系助理教授。Rajaraman的职业生涯非常成功:1996年创办Junglee公司,两年后被亚马逊以2.5亿美元收购,Rajaraman被聘为亚马逊技术总监,推动亚马逊从一个零售商转型为零售平台;2000年与人合创Cambrian,孵化出几个后来被谷歌收购的公司;2005年创办Kosmix公司并任CEO,该公司于2011年被沃尔玛集团收购,Rajaraman被聘为沃尔玛负责全球电子商务业务的高级副总裁。Rajaraman生于印度,在斯坦福大学获得计算机科学硕士和博士学位。求学期间与人合著的一篇论文荣列近20年来被引用次数最多的论文之一。Jeffrey David Ullman美国国家工程院院士,计算机科学家。早年在贝尔实验室工作,之后任教于普林斯顿大学,十年后加入斯坦福大学直至退休,一生的科研、著书和育人成果卓著。他是ACM会员,曾获SIGMOD创新奖、高德纳奖、冯诺依曼奖等多项科研大奖;他是“龙书”《编译原理》、数据库名著《数据库系统实现》等多部经典著作的合著者;麾下多名学生成为了数据库领域的专家,其中最有名的当属谷歌创始人Sergey Brin;本书第二作者也是他的得意弟子。Ullman目前任Gradiance公司CEO。
目录
编辑第1章 数据挖掘基本概念 11.1 数据挖掘的定义 11.1.1 统计建模 11.1.2 机器学习 11.1.3 建模的计算方法 21.1.4 数据汇总 21.1.5 特征抽取 31.2 数据挖掘的统计限制 41.2.1 整体情报预警 41.2.2 邦弗朗尼原理 41.2.3 邦弗朗尼原理的一个例子 51.2.4 习题 61.3 相关知识 61.3.1 词语在文档中的重要性 61.3.2 哈希函数 71.3.3 索引 81.3.4 二级存储器 91.3.5 自然对数的底e 101.3.6 幂定律 111.3.7 习题 121.4 本书概要 131.5 小结 141.6 参考文献 15第2章 MapReduce及新软件栈 162.1 分布式文件系统 172.1.1 计算节点的物理结构 172.1.2 大规模文件系统的结构 182.2 MapReduce 192.2.1 Map任务 202.2.2 按键分组 202.2.3 Reduce任务 212.2.4 组合器 212.2.5 MapReduce的执行细节 222.2.6 节点失效的处理 232.2.7 习题 232.3 使用MapReduce的算法 232.3.1 基于MapReduce的矩阵—向量乘法实现 242.3.2 向量v无法放入内存时的处理 242.3.3 关系代数运算 252.3.4 基于MapReduce的选择运算272.3.5 基于MapReduce的投影运算272.3.6 基于MapReduce的并、交和差运算 282.3.7 基于MapReduce的自然连接运算 282.3.8 基于MapReduce的分组和聚合运算 292.3.9 矩阵乘法 292.3.10 基于单步MapReduce的矩阵乘法 302.3.11 习题 312.4 MapReduce的扩展 312.4.1 工作流系统 322.4.2 MapReduce的递归扩展版本.332.4.3 Pregel系统 352.4.4 习题 352.5 通信开销模型 362.5.1 任务网络的通信开销 362.5.2 时钟时间 372.5.3 多路连接 382.5.4 习题 412.6 MapReduce复杂性理论 412.6.1 Reducer规模及复制率 412.6.2 一个例子:相似性连接 422.6.3 MapReduce问题的一个图模型 442.6.4 映射模式 452.6.5 并非所有输入都存在时的处理 462.6.6 复制率的下界 462.6.7 案例分析:矩阵乘法 482.6.8 习题 512.7 小结 512.8 参考文献 53第3章 相似项发现 553.1 近邻搜索的应用 553.1.1 集合的Jaccard相似度 553.1.2 文档的相似度 563.1.3 协同过滤——一个集合相似问题 573.1.4 习题 583.2 文档的shingling 583.2.1 k-shingle 583.2.2 shingle大小的选择 593.2.3 对shingle进行哈希 593.2.4 基于词的shingle 603.2.5 习题 603.3 保持相似度的集合摘要表示 613.3.1 集合的矩阵表示 613.3.2 最小哈希 623.3.3 最小哈希及Jaccard相似度 623.3.4 最小哈希签名 633.3.5 最小哈希签名的计算 633.3.6 习题 663.4 文档的局部敏感哈希算法 673.4.1 面向最小哈希签名的LSH 673.4.2 行条化策略的分析 683.4.3 上述技术的综合 693.4.4 习题 703.5 距离测度 703.5.1 距离测度的定义 713.5.2 欧氏距离 713.5.3 Jaccard距离 723.5.4 余弦距离 723.5.5 编辑距离 733.5.6 海明距离 743.5.7 习题 743.6 局部敏感函数理论 753.6.1 局部敏感函数 763.6.2 面向Jaccard距离的局部敏感函数族 773.6.3 局部敏感函数族的放大处理.773.6.4 习题 793.7 面向其他距离测度的LSH函数族 803.7.1 面向海明距离的LSH函数族 803.7.2 随机超平面和余弦距离 803.7.3 梗概 813.7.4 面向欧氏距离的LSH函数族 823.7.5 面向欧氏空间的更多LSH函数族 833.7.6 习题 833.8 LSH 函数的应用 843.8.1 实体关联 843.8.2 一个实体关联的例子 853.8.3 记录匹配的验证 863.8.4 指纹匹配 873.8.5 适用于指纹匹配的LSH函数族 873.8.6 相似新闻报道检测 883.8.7 习题 893.9 面向高相似度的方法 903.9.1 相等项发现 903.9.2 集合的字符串表示方法 913.9.3 基于长度的过滤 913.9.4 前缀索引 923.9.5 位置信息的使用 933.9.6 使用位置和长度信息的索引.943.9.7 习题 963.10 小结 973.11 参考文献 98第4章 数据流挖掘 1004.1 流数据模型 1004.1.1 一个数据流管理系统 1004.1.2 流数据源的例子 1014.1.3 流查询 1024.1.4 流处理中的若干问题 1034.2 流当中的数据抽样 1034.2.1 一个富于启发性的例子 1044.2.2 代表性样本的获取 1044.2.3 一般的抽样问题 1054.2.4 样本规模的变化 1054.2.5 习题 1064.3 流过滤 1064.3.1 一个例子 1064.3.2 布隆过滤器 1074.3.3 布隆过滤方法的分析 1074.3.4 习题 1084.4 流中独立元素的数目统计 1094.4.1 独立元素计数问题 1094.4.2 FM 算法 1094.4.3 组合估计 1104.4.4 空间需求 1114.4.5 习题 1114.5 矩估计 1114.5.1 矩定义 1114.5.2 二阶矩估计的AMS算法 1124.5.3 AMS算法有效的原因 1134.5.4 更高阶矩的估计 1134.5.5 无限流的处理 1144.5.6 习题 1154.6 窗口内的计数问题 1164.6.1 精确计数的开销 1164.6.2 DGIM算法 1164.6.3 DGIM算法的存储需求 1184.6.4 DGIM算法中的查询应答 1184.6.5 DGIM条件的保持 1194.6.6 降低错误率 1204.6.7 窗口内计数问题的扩展 1204.6.8 习题 1214.7 衰减窗口 1214.7.1 最常见元素问题 1214.7.2 衰减窗口的定义 1224.7.3 最流行元素的发现 1234.8 小结 1234.9 参考文献 124第5章 链接分析 1265.1 PageRank 1265.1.1 早期的搜索引擎及词项作弊 1265.1.2 PageRank 的定义 1285.1.3 Web结构 1305.1.4 避免终止点 1325.1.5 采集器陷阱及“抽税”法 1345.1.6 PageRank 在搜索引擎中的使用 1365.1.7 习题 1365.2 PageRank的快速计算 1375.2.1 转移矩阵的表示 1375.2.2 基于MapReduce的PageRank迭代计算 1385.2.3 结果向量合并时的组合器使用 1395.2.4 转移矩阵中块的表示 1405.2.5 其他高效的PageRank迭代方法 1415.2.6 习题 1425.3 面向主题的PageRank 1425.3.1 动机 1425.3.2 有偏的随机游走模型 1435.3.3 面向主题的PageRank 的使用 1445.3.4 基于词汇的主题推断 1445.3.5 习题 1455.4 链接作弊 1455.4.1 垃圾农场的架构 1455.4.2 垃圾农场的分析 1475.4.3 与链接作弊的斗争 1475.4.4 TrustRank 1485.4.5 垃圾质量 1485.4.6 习题 1495.5 导航页和权威页 1495.5.1 HITS的直观意义 1505.5.2 导航度和权威度的形式化 1505.5.3 习题 1535.6 小结 1535.7 参考文献 155第6章 频繁项集 1576.1 购物篮模型 1576.1.1 频繁项集的定义 1576.1.2 频繁项集的应用 1596.1.3 关联规则 1606.1.4 高可信度关联规则的发现 1616.1.5 习题 1626.2 购物篮及A-Priori算法 1636.2.1 购物篮数据的表示 1636.2.2 项集计数中的内存使用 1646.2.3 项集的单调性 1656.2.4 二元组计数 1666.2.5 A-Priori算法 1666.2.6 所有频繁项集上的A-Priori算法 1686.2.7 习题 1696.3 更大数据集在内存中的处理 1706.3.1 PCY算法 1716.3.2 多阶段算法 1726.3.3 多哈希算法 1746.3.4 习题 1756.4 有限扫描算法 1776.4.1 简单的随机化算法 1776.4.2 抽样算法中的错误规避 1786.4.3 SON算法 1796.4.4 SON算法和MapReduce 1796.4.5 Toivonen算法 1806.4.6 Toivonen算法的有效性分析 1816.4.7 习题 1816.5 流中的频繁项计数 1826.5.1 流的抽样方法 1826.5.2 衰减窗口中的频繁项集 1836.5.3 混合方法 1836.5.4 习题 1846.6 小结 1846.7 参考文献 186第7章 聚类 1877.1 聚类技术介绍 1877.1.1 点、空间和距离 1877.1.2 聚类策略 1887.1.3 维数灾难 1897.1.4 习题 1907.2 层次聚类 1907.2.1 欧氏空间下的层次聚类 1917.2.2 层次聚类算法的效率 1947.2.3 控制层次聚类的其他规则 1947.2.4 非欧空间下的层次聚类 1967.2.5 习题 1977.3 k-均值算法 1987.3.1 k-均值算法基本知识 1987.3.2 k-均值算法的簇初始化 1987.3.3 选择正确的k值 1997.3.4 BFR算法 2007.3.5 BFR算法中的数据处理 2027.3.6 习题 2037.4 CURE算法 2047.4.1 CURE算法的初始化 2057.4.2 CURE算法的完成 2067.4.3 习题 2067.5 非欧空间下的聚类 2077.5.1 GRGPF算法中的簇表示 2077.5.2 簇表示树的初始化 2077.5.3 GRGPF算法中的点加入 2087.5.4 簇的分裂及合并 2097.5.5 习题 2107.6 流聚类及并行化 2107.6.1 流计算模型 2107.6.2 一个流聚类算法 2117.6.3 桶的初始化 2117.6.4 桶合并 2117.6.5 查询应答 2137.6.6 并行环境下的聚类 2137.6.7 习题 2147.7 小结 2147.8 参考文献 216第8章 Web广告 2188.1 在线广告相关问题 2188.1.1 广告机会 2188.1.2 直投广告 2198.1.3 展示广告的相关问题 2198.2 在线算法 2208.2.1 在线和离线算法 2208.2.2 贪心算法 2218.2.3 竞争率 2228.2.4 习题 2228.3 广告匹配问题 2238.3.1 匹配及完美匹配 2238.3.2 最大匹配贪心算法 2248.3.3 贪心匹配算法的竞争率 2248.3.4 习题 2258.4 adwords问题 2258.4.1 搜索广告的历史 2268.4.2 adwords问题的定义 2268.4.3 adwords问题的贪心方法 2278.4.4 Balance算法 2288.4.5 Balance算法竞争率的一个下界 2288.4.6 多投标者的Balance算法 2308.4.7 一般性的Balance算法 2318.4.8 adwords问题的最后论述 2328.4.9 习题 2328.5 adwords的实现 2328.5.1 投标和搜索查询的匹配 2338.5.2 更复杂的匹配问题 2338.5.3 文档和投标之间的匹配算法 2348.6 小结 2358.7 参考文献 237第9章 推荐系统 2389.1 一个推荐系统的模型 2389.1.1 效用矩阵 2389.1.2 长尾现象 2399.1.3 推荐系统的应用 2419.1.4 效用矩阵的填充 2419.2 基于内容的推荐 2429.2.1 项模型 2429.2.2 文档的特征发现 2429.2.3 基于Tag的项特征获取 2439.2.4 项模型的表示 2449.2.5 用户模型 2459.2.6 基于内容的项推荐 2469.2.7 分类算法 2479.2.8 习题 2489.3 协同过滤 2499.3.1 相似度计算 2499.3.2 相似度对偶性 2529.3.3 用户聚类和项聚类 2539.3.4 习题 2549.4 降维处理 2549.4.1 UV分解 2559.4.2 RMSE 2559.4.3 UV分解的增量式计算 2569.4.4 对任一元素的优化 2599.4.5 一个完整UV 分解算法的构建 2599.4.6 习题 2619.5 NetFlix竞赛 2629.6 小结 2639.7 参考文献 264第10章 社会网络图挖掘 26510.1 将社会网络看成图 26510.1.1 社会网络的概念 26510.1.2 将社会网络看成图 26610.1.3 各种社会网络的例子 26710.1.4 多类型节点构成的图 26810.1.5 习题 26910.2 社会网络图的聚类 26910.2.1 社会网络图的距离计算 26910.2.2 应用标准的聚类算法 27010.2.3 中介度 27110.2.4 Girvan-Newman算法 27110.2.5 利用中介度来发现社区 27410.2.6 习题 27510.3 社区的直接发现 27510.3.1 团的发现 27610.3.2 完全二部图 27610.3.3 发现完全二部子图 27710.3.4 完全二部子图一定存在的原因 27710.3.5 习题 27910.4 图划分 28010.4.1 图划分的好坏标准 28010.4.2 归一化割 28010.4.3 描述图的一些矩阵 28110.4.4 拉普拉斯矩阵的特征值 28210.4.5 其他图划分方法 28410.4.6 习题 28410.5 重叠社区的发现 28510.5.1 社区的本质 28510.5.2 极大似然估计 28610.5.3 关系图模型 28710.5.4 避免成员隶属关系的离散式变化 28810.5.5 习题 29010.6 Simrank 29010.6.1 社会网络上的随机游走者 29010.6.2 带重启的随机游走 29110.6.3 习题 29310.7 三角形计数问题 29310.7.1 为什么要对三角形计数 29410.7.2 一个寻找三角形的算法 29410.7.3 三角形寻找算法的最优性 29510.7.4 基于MapReduce寻找三角形 29510.7.5 使用更少的Reduce任务.29710.7.6 习题 29710.8 图的邻居性质 29810.8.1 有向图和邻居 29810.8.2 图的直径 29910.8.3 传递闭包和可达性 30010.8.4 基于MapReduce的传递闭包求解 30110.8.5 智能传递闭包 30310.8.6 基于图归约的传递闭包 30410.8.7 邻居规模的近似计算 30510.8.8 习题 30610.9 小结 30710.10 参考文献 310第11章 降维处理 31211.1 特征值和特征向量 31211.1.1 定义 31211.1.2 特征值与特征向量计算 31311.1.3 基于幂迭代方法的特征对求解 31511.1.4 特征向量矩阵 31711.1.5 习题 31711.2 主成分分析 31811.2.1 一个示例 31811.2.2 利用特征向量进行降维 32111.2.3 距离矩阵 32211.2.4 习题 32311.3 奇异值分解 32311.3.1 SVD的定义 32311.3.2 SVD解析 32511.3.3 基于SVD的降维 32611.3.4 将较低奇异值置为0后有效的原因 32711.3.5 使用概念进行查询处理 32811.3.6 矩阵SVD的计算 32911.3.7 习题 33011.4 CUR 分解 33111.4.1 CUR 的定义 33111.4.2 合理选择行和列 33211.4.3 构建中间矩阵 33311.4.4 完整的CUR 分解 33411.4.5 去除重复行和列 33511.4.6 习题 33511.5 小结 33611.6 参考文献 337第12章 大规模机器学习 33812.1 机器学习模型 33812.1.1 训练集 33812.1.2 一些例子 33912.1.3 机器学习方法 34112.1.4 机器学习架构 34212.1.5 习题 34412.2 感知机 34412.2.1 训练阈值为0 的感知机 34412.2.2 感知机的收敛性 34712.2.3 Winnow算法 34712.2.4 允许阈值变化的情况 34912.2.5 多类感知机 35012.2.6 变换训练集 35112.2.7 感知机的问题 35112.2.8 感知机的并行实现 35312.2.9 习题 35412.3 支持向量机 35412.3.1 支持向量机的构成 35412.3.2 超平面归一化 35612.3.3 寻找最优逼近分界面 35712.3.4 基于梯度下降法求解SVM 35912.3.5 随机梯度下降 36312.3.6 SVM的并行实现 36312.3.7 习题 36312.4 近邻学习 36412.4.1 近邻计算的框架 36412.4.2 最近邻学习 36512.4.3 学习一维函数 36512.4.4 核回归 36712.4.5 处理高维欧氏空间数据 36812.4.6 对非欧距离的处理 36912.4.7 习题 36912.5 各种学习方法的比较 37012.6 小结 37112.7 参考文献 372
文摘
编辑第9章介绍推荐系统。很多Web应用中都有给用户推荐其感兴趣的数据项的功能。Netflix竞赛就是一个例子,该竞赛期望对用户感兴趣的电影进行预测。而Amazon希望根据顾客的购买兴趣来推荐一款商品。推荐主要有两种方法。一种方法是,我们可以将数据项通过其特征来刻画,比如电影中的明星,然后推荐与已知的用户喜欢的物品具有同样特征的物品。另一种方法是,我们可以考察那些与当前用户具有相似爱好的用户,根据他们喜欢的物品来向当前用户推荐(该技术通常称为协同过滤)。第10章介绍社会网络及分析算法。最典型的社会网络的例子是Facebook的朋友关系图,其中节点代表人,而两个人如果是朋友的话,他们之间就有边相连。而像Twitter上的粉丝关注构成的有向图也可以看成社会网络。社会网络中一个要解决的普遍问题是识别其中的“社区”,即一个个小规模的节点集合,但是集合内节点之间却有大量的边将它们连接起来。社会网络的其他问题也是图的一般性问题,比如传递闭包或图直径的计算,但是在网络规模如此巨大的情况下问题也变得十分困难。第11章介绍降维技术。给定一个极大的、通常比较稀疏的矩阵。我们可以将该矩阵想象为两类实体之间的关系表示,比如观众对影片的评级关系。直观上看,只会存在很少量的概念,而且概念的数目会比影片或观众的数目少很多,这些概念可以解释为什么某些观众喜欢某些影片。我们提供了多个将矩阵简化为多个矩阵的乘积的算法,简化后的矩阵某一维要小很多。其中,一个矩阵将一类实体与这些少量的概念相关联,另一个矩阵将概念和另一类实体相关联。如果处理正确的话,这些小矩阵的乘积会十分接近原始矩阵。最后,第12章讨论极大规模数据集上的机器学习算法。其中的技术包括感知机、支持向量机、基于梯度下降的模型求解、近邻模型和决策树等。
百科词条作者:小小编,如若转载,请注明出处:https://glopedia.cn/349842/