1、度量给定词语在少数文档中的重要性:TF.IDF得分
其中:tfij指词项i在文档j的词项频率,idfi指词项i在文档集中出现的逆文档频率。
词项频率: 逆文档频率:
例如:文档集有2^20篇文档,w在其中2^10篇中出现,在文档k中,只出现1次,该文档任一赐予做多出现20次。
于是有:tf(w,k) = 1/20, idf(w) = log(2^20/2^10) = 10, 则词项w在文档k中的TF.IDF得分为1/20 * 10 = 1/2。
2、哈希函数
哈希函数 h(键值) = 桶编号,桶的个数为整数B(通常为素数), 桶编号0~B-1。函数h会将数目近似相等的哈希键值分配到每个桶中。这里的桶是内存中的一个记录表。
简单的实现函数h(x) = x mod B
3.索引
支持对象高效查找的数据结构。例如三元组<姓名,地址,电话号码>,给定电话号码,基于索引快速找到该号码的记录。
索引基于电话号码字段构建,桶头构成的数组,每个桶采用链表结构。
4.二级存储器
磁盘组织成块结构,每个块是操作系统用于内存和磁盘传输数据的最小单元,Windows中块为64KB。磁盘访问时间10ms,比内存访问延迟5个数量级。(内存快多了)
磁盘到内存传送速度不超过100MB/s。
5.MapReduce系统
基于大规模数据的计算实现,支持计算过程硬件容错性。最大的开销来源于通信(折中并行度)。
6.集群计算
节点存放在机架,每个机架8-64个节点,单个机架网络互连(千兆以太网),机架之间带宽略高以机架以太网。
故障模式:单节点故障(硬盘崩溃)+单机架故障(机架内节点互连及机架间网络故障)
解决方式:多副本存储+多任务执行
7.分布式文件系统DFS
文件非常大+文件极少更新
文件块(chunk)64MB,多副本(三份)。主节点块(名字节点)有多个副本,文件系统总目录寻找主节点副本。总目录也有多个副本。
8.MapReduce计算过程
(1)多Map任务:输入多个文件块,Map任务将文件转化为一个key-value对序列。
(2)主控制器:从每个Map收集key-value对,按照键值大小排序,相同key-value分发到一个Reduce任务。
(3)reduce任务:每次作用于一个键,组合。
9.Map任务
输入文件由多个元素组成,元素为任意类型(元组或文档)。文档文件块为一系列元素集合,同一元素不能跨文件块存储。
例如:统计每个词语在整个文档集中出现的次数。
输入文件:文档集,每篇文档为一个元素。 Map读入一篇文档切分词语序列,输出key-value对。
10.按键分组
分组由系统完成,合并文件产生key-value对关联值表传给Reduce。
11.Reduce任务
输入文件:key-value对(键相同)。 输出:key-value对序列。
12.MR执行细节
用户程序fork一个主控程序创建一定数目的Map任务和Reduce任务,分配给不同的工作进程。记录每个Map和Reduce的运行状态,给工作进程分配新的任务。
每个Map任务分配到一个或多个文件块,给每个Reduce任务创建一个文件并分配。尽量创建更少的Reduce任务。这些文件的位置和大小都被通知给主控进程。
13.节点失效
主控进程崩溃:任务终止,作业重启。 Map节点崩溃:“闲置”,重启,通知Reduce位置。 Reduce节点崩溃:“闲置”。
14.MapReduce场景与通信开销的关系
Reduce规模(单键元素数目上限)选择:设置足够小,避免主存和磁盘反复移动数据。
复制率:从Map任务到Reduce任务每个输入的平均通信开销。
15.Jaccard相似度
计算交集的相对大小来获得集合之间的相似度。
应用:(1)大语料库(Web或新闻资料)中寻找文本内容相似的文档。
(2)协同过滤:在线购物、电影评级
16.文档shingling
k-shingle:一片文档(长字符串),可以看作是任意长度为k的子串组成的集合。
shingle大小的选择:依赖于文档的典型长度以及字符表大小。邮件k=5,大文档k=9.
shingle哈希:通过haxi函数将长度为k的字符串映射为桶编号。压缩。
17.最小哈希
特征矩阵的最小哈希:任意一列的最小哈希值是在排列转换后的行排列次序下第一个列值为1的行的行号。
与Jaccard相似度关系:两个集合随机排列转换之后得到的两个最小哈希值相等的概率等于这两个集合的Jaccard相似度。
最小哈希签名:对特征矩阵M随机选择n个排列,调用最小哈希函数h构成最小哈希签名(列向量)。
随机哈希函数:模拟随机排列,将行号映射到与行数目相同的桶中。
18.局部敏感哈希LSH
只关注那些可能相似的文档,从而减少计算量。
对目标项进行多次哈希处理,使得相似项更可能哈希到同一桶中,将其看作候选对。
应用:实体关联、指纹匹配、新闻报道匹配
19.距离测度
欧式距离
Jaccard距离
余弦距离
曼哈顿距离
汉明距离:两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。
相关系数
编辑距离:两个字符串x与y之间的编辑距离定义为将x转换为y单字节插入及删除操作的最小数目。等于x与y的长度之和减去它们LCS长度的两倍。
20.面向高相似度的方法:相等项发现、字符串表示、基于长度过滤、前缀索引、位置信息
21.数据流挖掘
流抽样:对任一到达流元素的键值哈希处理,不大于阈值的键值会加入样本。
布隆过滤:允许特定集合的元素通过,多个哈希函数构成的集合,只有所有哈希结果对应位置为1是接受该元素。
22.衰减窗口
为了不偏向早期出现的元素,数据流中元素设置权重,权重大小取决于其离当前元素时间的远近,流中越早出现的元素的权重越小。
应用:最流行元素的发现,电影票销售数据流中最热门电影的发现问题,每部电影都有独立的位流表示购票记录,位置对应当前电影,相应位置为0,否则为0.