大数据分析分享部分课件_第1页
大数据分析分享部分课件_第2页
大数据分析分享部分课件_第3页
大数据分析分享部分课件_第4页
大数据分析分享部分课件_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子商务新进展大数据分业政2022年10月3日一、大数据时代二、大数据分析基础三、相似项发现四、流数据分析提纲一、大数据时代二、大数据分析基础三、相似项发现四、流数据分析2022年10月3日一、大数据时代二、大数据分析基础三、相似项发现四、流数据分析提纲一、大数据时代二、大数据分析基础三、相似项发现四、流数据分析2022年10月3日准备知识向量空间模型(Vector Space Model):模型根据文本中的词汇出现在整个文本集中的频次为每个词汇计算出一个权重,形成关于该文本的向量空间。假定文档集中有N篇文档,词项i出现在ni个文档中且在文档j中出现的次数为fij

2、 ,文档j包含的词数为fj,则:TF(Term Frequency): TFij=fij/fjIDF(Inverse Document Frequency):IDFi=log2 N/ni则词项i在页面j上的权重wij计算如下:wij=TFijIDFi (TFIDF模型:有多种计算策略)i1i2.ik0.120.50.0.072022年10月3日基于Map-Reduce的基本运算矩阵-向量乘积假定矩阵M=mijnn,向量V=vjn, n足够大,但V可以一次读入内存Map函数:每个Map任务将整个向量V和矩阵M的一个文件块作为输入。对每个矩阵元素mij,Map任务会产生键值对(i, mijvj)。

3、例如, (i, mi1v1), (i, minvn)Reduce函数:Reduce任务将所有与给定键i关联的值相加即可得到。2022年10月3日基于Map-Reduce的基本运算矩阵-向量乘积假定矩阵M=mijnn,向量V=vjn, n足够大且V无法一次读入内存处理思路:将M分割成k个宽度相等的垂直条,对应的将V分成k个高度相等的水平条。分割后的每个水平条都能够放入内存。将每个垂直条、水平条都存成一个文件这样就转换成向量可读入内存的矩阵-向量乘积。2022年10月3日基于Map-Reduce的基本运算关系投影对关系R的某个属性子集S,从每个元组中得到仅包含S中属性的元素。记为S(R)。 (se

4、lect S from R)Map函数:对R中的每个元组t,剔除t中属性不在S中的字段得到元组t,输出键值对(t, t)。将可能存在t相同的多个键值对转换成键值表对,即(t,t,t,t)Reduce函数:将(t,t,t,t)转换成(t, t)输出,以保证对任意键t仅产生一个键值对(t, t)。2022年10月3日基于Map-Reduce的基本运算分组与聚合设关系为R(A,B,C),分组:按照属性子集A对元组进行分割,A的所有属性值相同的元组分为一组。聚合:对每个组中所有元组的B属性值进行运算, 运算包括sum, count, avg, min, max。A,(B)(R),A、B由用户指定。Ma

5、p函数:对R中的每个元组(a,b,c),生成键值对(a,b)Reduce函数:对于相同的键a,输入到对应的Reduce任务的键值表对为(a,b1,.,bn) ,对值表b1,.,bn进行操作,得到结果x。则键a对应的输出为:(a, x)2022年10月3日基于Map-Reduce的基本运算两个关系的并对两个属性集相同的关系R、S中的所有元组进行“并”操作。Union (R, S)Map函数:将每个输入元组t转变为键值对(t,t)。输入文件可能来自关系R的文件块,也可能来自关系S的文件块。Reduce函数:和每个键关联的可能有一个值或两个值,两种情况下都输出(t, t)。2022年10月3日基于M

6、ap-Reduce的基本运算两个关系的交对两个属性集相同的关系R、S中的所有元组进行“交”操作。Intersection (R, S)Map函数:将每个输入元组t转变为键值对(t,t)。Reduce函数:和每个键关联的可能有一个值或两个值,如果键值表对为(t,t,t),则输出(t,t);若键值表对为(t,t),则输出(t,NULL)2022年10月3日基于Map-Reduce的基本运算两个关系的差对两个属性集相同的关系R、S中的所有元组进行“差”操作。Difference(R, S)=R-SMap函数:将每个输入元组t转变为键值对(t,R)或(t,S)。Reduce函数:输入到Reduce函数

7、的键值表对有三种情况,即(t,R), (t,S), (t,R,S) ,如果键值表对为(t,R),则输出(t,t);否则输出(t,NULL)2022年10月3日基于Map-Reduce的基本运算两个关系的自然连接给定两个关系R(A,B)、S(B,C),B是R、S的所有共同属性子集。比较R、S的每对元组,若两个元组关于子集B的所有属性值相同,则生成一个新元组(A,B,C)。RSMap函数:对于R的每个元组(a,b),生成键值对(b, (R, a);对于S的每个元组(b, c),生成键值对(b, (S, c) 。Reduce函数:对于相同的键b,输入到对应的Reduce任务的键值表对为(b,(R,a

8、1),.,(R,am); (S,c1),(S,cn) ,则键b对应的输出为:(b, (a1,b,c1),(a1,b,cn),(am,b,c1),(am,b,cn)连接运算可能导致元组数目大大增加。2022年10月3日基于Map-Reduce的基本运算矩阵乘积(两步运算)Map1函数:将mij转换为(j,(M,i,mij),将njk转换为(j,(N,k,njk)Reduce1函数:对于每个键j,输入到指定Reduce任务的键值表对为(j,(M,1,m1j),(M,m,mmj); (N,1,nj1) , , (N,n,njn),输出为(j,(i,k, mijnjk),; i=1,m; k=1,n)

9、Map2函数:将Reduce的输出作为Map2的输入,输出键值对(i,k), mijnjk)Reduce2函数:对于每个键(i,k),输入到指定Reduce任务的键值表对为(i,k),mi1n1k, mi2n2k, milnlk),计算与键(i,k)关联的所有值之和v= mi1n1k+mi2n2k+milnlk ,输出(i,k),v),v是矩阵P=MN的第i行第k列的元素值。2022年10月3日基于Map-Reduce的基本运算矩阵乘积(单步运算)Map函数:将mij转换为(i, k),(M,j,mij),k=1,n;将njk转换为(i, k),(N,j,njk),i=1,mReduce函数:

10、每个键(i,k)关联的值为(M,j,mij)和(N,j,njk),j=1,2,l。将 (M,j,mij)和(N,j,njk)按j值排序放在不同的列表中,将两个列表的第j个元组中的mij和njk抽出来相乘,然后再将积按j相加得到v,最后输出(i,k),v) 。M1mi1M2mi2MlmilN1n1kN2n2kNlnlk2022年10月3日集群计算的算法效率问题实耗通信开销在工作流网络中,所有路径中的最大通信开销。路径通信开销是指该路径上所有任务的通信开销之和。2022年10月3日集群计算的算法效率问题多路连接(n路连接)选定自然连接中的关系的连接属性A1,A2,An,并将这些属性值哈希到一定数量

11、的桶中(桶编号与哈希值一一对应);对每个连接属性Ai(i=1,n)选定桶的数量ti(对应的桶编号记为0(i),ti-1(i)),使得t1t2tn=k,k为Reduce任务数;记桶编号向量为V=v1,vi,vn,其中vi是连接属性ai的某个桶编号,每一个向量V标记一个Reduce任务;将每个关系的元组传递给相应的Reduce任务。由于元组可能只有部分连接属性有值,因此哈希形成的向量V中存在某些分量未知,因此要将该元组传递给未知分量所有可能取值所对应的所有Reduce任务。2022年10月3日集群计算的算法效率问题三个关系的连接设待连接的三个关系分别为R(C, A1)、S(A1, A2)、T(A2

12、, D),规模分别为r, s, t。且假定R与S、S与T可连接的概率均为p。连接策略一:采用两次二路连接完成三个关系的连接先连接RS,再连接T,总通信开销为2r+2s+2prs+2t先连接ST,再连接R,总通信开销为2t+2s+2pts+2r连接策略二:采用一次三路连接完成三个关系的连接设计划的Reduce任务数为k,记b, c为将连接属性A1和A2哈希到的桶数,bc=k,对应的哈希函数分别为h和g。每当h(v)=i且g(w)=j,对应桶(i,j)的Reduce任务就负责连接元组R(u,v),S(v,w)和T(w,x)。2022年10月3日集群计算的算法效率问题三个关系的连接计算连接策略二的通

13、信开销Map的输入总开销:r+s+tReduce的输入总开销:rc+s+bt。由于Map任务在传递R中的某个元组(设R.A1=v)时,只能知道A1的哈希值h(v) ,R中的元组不包含A2,此时桶编号向量为(h(v), NULL),因此必须要将该元组传递给桶编号向量的第一个分量为h(v)所对应的所有Reduce任务,共计c个。优化设计:r+s+t是常数,可优化的对象是Reduce的输入总开销,约束条件是bc=k,求解可得b=(kr/t)1/2时开销最小。2022年10月3日集群计算的算法效率问题三个关系的连接比较连接策略一与连接策略二的通信开销优劣连接策略一的总开销为2r+2s+2prs+2t

14、。连接策略二的总开销为r+s+t+s+2(krt)1/2假设R,S,T都是同一个关系R,R是Facebook上的朋友关系,则RRR可找出每个用户所拥有的朋友的朋友的朋友的数目或具有最多的朋友的朋友的朋友的用户。连接策略一的总开销为6r+2pr2=6r+2dr(d为每个用户的朋友数)连接策略二的总开销为4r+2rk1/2若两种策略没有优劣之分,则有d+1=k1/2可见,d越大越不宜使用策略一,k越大则越不宜使用策略二。2022年10月3日集群计算的算法效率问题星型连接R(A,B,C,X),S(A,D),T(B,E),U(C,F)多路连接的通信开销:T=r+s+t+u+r+sbc+tac+uab,

15、 其中abc=k。优化结果:a=(ks2/tu)1/3, b=(kt2/su)1/3, c=(ku2/st)1/3T=2r+s+t+u+3(k2tus)1/3若s=t=u,则T=2r+3s(1+k2/3)通常情况下,rs,因此适合使用多路连接策略。2022年10月3日相似项发现的应用相似项发现(邻近搜索)是许多数据分析任务的基础。在管理实践中也有着广泛的应用。例如,文档相似性(抄袭、镜像、同源新闻稿)、图片相似性(识别未知图片的身份)等等。下面我们以文档间的相似性发现加以阐述。2022年10月3日距离测度欧式距离Jaccard距离集合S和T的Jaccard相似度定义为|ST|/|ST|。余弦距

16、离:两个向量夹角的余弦。编辑距离:仅适用于字符串比较,两个字符串x,y的距离等于将x转换为y所需要的单字符插入及删除操作的最小数目。x=abcde, y=acfdeg, dxy=3海明距离:给定一个向量空间,海明距离定义为两个向量中不同分量的个数。x=10101, y=11011, dxy=32022年10月3日文档的Shinglingk的选择例如,如果文档集由电子邮件组成,那么k取多少比较合适呢?k=5是一个比较好的选择,因为写邮件通常用到27个字符(26个字母+空格),275=14348907,邮件的长度远远低于该长度。思考各字母出现的概率相差很大对k选择有什么影响?中文怎么选?能否将Ja

17、ccard相似度与TF.IDF相结合用于比较两个文档的相似性(可考虑到语义)?2022年10月3日文档的Shingling基于词的Shingle为了近似检测两篇文档,可将Shingle定义为一个停用词加上后续的两个词。其好处是当某文档如网页存在许多周边元素(不常使用停用词)时,能有效剔除这些干扰信息。例如,“Buy Sudzo”可能就是周边元素,而“A spokesperson for the Sudzo Corporation revealed today that studies have shown it is good for people to buy Sudzo Products”

18、就是一篇正常文档。对Shingle进行哈希通过某个哈希函数将Shingle后的字符串映射为桶编号。2022年10月3日保持相似度的集合摘要文档的Shingle集合一般非常大,即使经过哈希映射,一篇文档所需要的空间仍然是该文档所需空间的4倍。我们的目标是将上述大集合替换成规模小很多、但却能保持文档相似性的签名集合。集合的矩阵表示设全集为a,b,c,d,e,集合S1=a,d,S2=c,S3=b,d,e, S4=a,c,d,则S1-S4的特征矩阵表示为:2022年10月3日保持相似度的集合摘要最小哈希传统的hash算法只负责将原始内容尽量均匀随机地映射为一个签名值。如果hash算法产生的两个签名相等

19、,说明原始内容在一定概率下是相等的;否则除了说明原始内容不相等外,不再提供任何信息,因为即使原始内容只相差一个字节,所产生的签名也很可能差别极大。因此要设计一个hash算法,对相似的内容产生的签名也相近。MinHash由Andrei Broder提出,最初用于在搜索引擎中检测重复网页。它也可以应用于大规模聚类问题。 2022年10月3日保持相似度的集合摘要最小哈希最小哈希过程:将哈希函数作用于某个集合的所有元素,返回最小哈希值对应的那个元素。对集合每进行一次最小哈希过程,即可得到该集合的一个签名。针对特征矩阵表示的集合的最小哈希过程(最小哈希函数就是置换函数):选择矩阵的一个行排列置换(设函数

20、f:AA, A是一个集合。如果f是一一映射,就称f是A的一个排列置换,也称置换运算,即将行号重新排列),任意一列(对应一个集合)的最小哈希值是:在新的行排列次序下,第一个列值为1的行的行号或行元素。2022年10月3日保持相似度的集合摘要最小哈希例如:对原矩阵行abcde进行置换运算形成新的行顺序:dcbea,该排列置换定义了一个最小哈希函数h。h(S1)=d, h(S2)=c, h(S3)=d, h(S4)=d。2022年10月3日保持相似度的集合摘要最小哈希与Jaccard相似度的关系两个集合经随机置换运算后得到的两个最小哈希值相等的概率=这两个集合的Jaccard相似度证明:设两个集合S

21、1和S2,对应的矩阵列经随机置换后的每行结果分为三种情况:X类行,X.S1=X.S2=1; Y类行,Y.S1 Y.S2;Z类行,Z.S1=Z.S2=0。X类和Y类的行数目x,y决定了SIM(S1,S2)和p(h(S1)=h(S2)。容易理解:SIM(S1,S2)=x/(x+y)另一方面,当从矩阵的第一行开始扫描矩阵时,在Y类行之前遇到X类行的概率为x/(x+y)。若先遇到X类行,则h(S1)=h(S2),若先遇到Y类行,则h(S1)h(S2)。因此, p(h(S1)=h(S2)=x/(x+y)。#2022年10月3日保持相似度的集合摘要最小哈希签名及其计算最小哈希签名:随机选择集合的特征矩阵M

22、的n个“行置换”运算,集合S的最小哈希签名向量为h1(S),h2(S),.,hn(S),其中hi为对应第i个置换的最小哈希函数。基于矩阵M可构建一个最小哈希签名矩阵。最小哈希签名的计算:对大规模特征矩阵进行“行置换”运算是极其耗时的。有效的方法是通过一个随机哈希函数对行号进行哈希操作,将其映射到与行数目k相等的桶中。在哈希过程中,可能出现不愿看到的现象,即不同的行号被映射到同一个桶中,而某些桶没有被映射到。但只要k足够大且哈希结果的冲突不太频繁,问题就不大。2022年10月3日保持相似度的集合摘要最小哈希签名及其计算最小哈希签名的计算:因此,可不对行进行置换,而随机选择n个哈希函数h1,.,h

23、n作用于行。具体计算过程:令SIG(i,c)表示签名矩阵中第i个哈希函数在第c列上的元素,对于所有的i和c,初始化SIG(i,c)=。对行r,计算h1(r),.,hn(r)对每列c:(1)若c在第r行为0,则跳过;(2)若c在第r行为1,那么对于每个i=1,.,n,将SIG(i,c)置换为原来SIG(i,c)和hi(r)之中的较小者。2022年10月3日保持相似度的集合摘要最小哈希签名及其计算例:随机选择两个哈希函数h1,h2作用于矩阵的行得到下图。通常哈希结果会有冲突。(集合相似性的近似度量)2022年10月3日文档的局部敏感哈希算法在比较文档相似性时,文档对的数目可能很多(O(n2),n为

24、文档数),因此应用最小哈希方法寻找具有最大相似度的文档对仍然是不可能的。在实际应用中,我们并不关心所有文档对之间的相似性,而是关心那些可能相似的文档对。处理思路:将文档转换成Shingle集合,再经过哈希处理形成签名集合(矩阵),最后应用局部敏感哈希(Locality-sensitive hashing,LSH)或近邻搜索(Near-neighbor search)得到最相似文档对。2022年10月3日文档的局部敏感哈希算法面向最小哈希的LSH解决思路:对目标项进行多次哈希处理,使得相似项会比不相似项更可能哈希到同一个桶中。然后,将至少有一次哈希到同一个桶的文档对看成候选对。对候选对做相似性分

25、析。哈希函数的设计是问题的关键。伪正例(不相似的文档对哈希到同一个桶)、伪反例(相似的文档没有哈希到同一个桶)。2022年10月3日文档的局部敏感哈希算法面向最小哈希的LSH多次哈希策略:将最小签名矩阵分割成b个行条,每个行条由r行组成。选择一个哈希函数LSH,对每个行条的每个列向量(每个文档对应的最小签名集合的一部分)进行哈希处理,每个行条使用独立的桶数组。2022年10月3日文档的局部敏感哈希算法行条化策略分析设行条数为b,每个行条包含r行。假定某对文档的相似度为s(签名矩阵中某行有关该文档对的两个签名相等的概率为s),则该文档对之间的签名存在如下概率关系:在某个具体行条中所有行的两个签名

26、相等的概率为sr;在某个具体行条中至少有一对签名不相等的概率为1-sr;在每个行条中都至少有一对签名不相等的概率为(1-sr)b;至少有一个行条,其中所有行的两个签名都相等的概率为1-(1-sr)b。(文档对是相似候选对的概率,此时两个文档落入同一个桶中)2022年10月3日文档的局部敏感哈希算法行条化策略分析阈值:曲线上升最陡的点,对应p关于s的二阶导数=0。此时,s(1/b)1/r。对于给定的签名数,b越大,阈值越小,伪正例越多且计算量越大;反之,伪反例越多。图中签名数为64。2022年10月3日文档的局部敏感哈希算法相似项发现方法小结选择某个k值,对文档集中的所有文档构建其k-Shing

27、le集合,将这些k-Shingle映射成更短的桶编号;输出文档集的特征矩阵,矩阵的行按桶编号排序(不必要)。随机选择n个哈希函数对矩阵的行分别进行哈希映射,按照最小哈希签名的计算方法求出最小哈希签名。选择行条数b和每个行条中的行数r,使得br=n。阈值t (1/b)1/r。调节b,可控制伪正例或伪反例数量以及计算速度。利用局部敏感哈希(LSH)构建候选对;检查每个候选对的签名,检查其一致性是否大于t;检查候选对的两个本身是否真正相似。2022年10月3日局部敏感函数理论(自学参考)局部敏感函数判定两个输入项x, y是否是候选对。设判定函数为f(x,y),若f判定x,y是候选对,则记为f(x)=

28、f(y);否则记为f(x)f(y)。这种形式的一系列函数集合构成一个函数族,并要求满足以下三个条件:选择近距离而不是远距离作为候选对;函数之间必须在统计上相互独立,即两个函数的联合概率等于每个函数独立事件的概率之积;能够在比扫描所有文档对小很多的时间内识别候选对;可以组合在一起以更好地避免伪正例或伪反例。2022年10月3日局部敏感函数理论局部敏感函数令d1d2是定义在某个距离测度下的两个距离值。如果一个函数族F中的每一个函数f都满足: (1)如果d(x, y)d1,那么f(x)=f(y)的概率至少是p1; (2)如果d(x, y)d2,那么f(x)=f(y)的概率最大是p2;则称F是(d1,

29、 d2, p1, p2)-敏感的函数族。最小哈希函数(置换函数)族是(d1, d2, 1-d1, 1-d2)-敏感的函数族。 因为当d(x, y)d1时,p(h(x)=(y)=SIM(x,y)=1- d(x, y)1-d1;而当d(x, y)d2时,p(h(x)=(y)=SIM(x,y) =1-d(x, y)1-d2。2022年10月3日局部敏感函数理论2022年10月3日局部敏感函数理论局部敏感函数族的构造设函数族F是(d1, d2, p1, p2)-敏感的函数族。“与”构造函数族F:F的每个成员函数f由r个F成员函数f1,f2,.,fr组成,r为固定常数(行条的行数)。f(x)=f(y)

30、iff f1(x)=f1(y) and .and fr(x)=fr(y)。即一个行条中所有r行的x,y值都相等,则基于整个行条就可以认为x,y是候选对。F是(d1, d2, p1r, p2r)-敏感的函数族。“与”构造过程降低了所有的概率,但可通过谨慎选择F和r,可使得p2r非常接近于0,而大概率p1r显著偏离0。2022年10月3日局部敏感函数理论局部敏感函数族的构造“或”构造函数F: F的每个成员函数有b个(行条数)F成员函数f1,f2,.,fb组成。f(x)=f(y) iff f1(x)=f1(y) or . or fb(x)=fb(y)。即如果某个行条能够使x,y成为候选对,则x,y就

31、是候选对。F是(d1, d2, 1-(1-p1)b, 1-(1-p2)b)-敏感的函数族。“或”构造过程提升了所有的概率,但可通过谨慎选择F和b,可使得1-(1-p1)b非常接近于1,而1-(1-p2)b有界远离1。通过串联“与”和“或”构造函数F1,F1是(d1, d2, 1-(1-p1r)b, 1-(1-p2r)b)-敏感的函数族。1-(1-p2r)b接近于0,同时1-(1-p1r)b接近于1。通过串联“或”和“与”构造函数F2 ,F2是(d1, d2, (1-(1-p1)b)r, (1-(1-p2)b)r)-敏感的函数族。 (1-(1-p1)b)r接近于1的同时(1-(1-p2)b)r也

32、得以上升,从而增加了伪正例数目,这种做法不一定是最优的。2022年10月3日局部敏感函数理论与或串联或与串联2022年10月3日不同距离测度的LSH函数族海明距离的LSH函数族设向量空间的维数为n,h(x,y)表示向量x,y的海明距离,随机选择向量的任一维i,定义fi(x)为向量x的第i维分量,当且仅当x和y的第i维分量相等时有fi(x)=fi(y)。对随机选择的i,p(fi(x)=fi(y)=1-h(x,y)/n。因此,对于任意d1d2,由f1,f2,.,fn构成的函数族是(d1,d2,1-d1/n,1-d2/n)-敏感的哈希函数族。该函数族与最小哈希函数族的区别有两点:Jaccard距离的

33、取值范围是0-1,而海明距离的取值范围是0-n,因此,需要除以n才能转化成概率;最小哈希函数族的函数个数理论上可以有无限个(我们一般取数十数百个),而海明距离的函数族为n个。2022年10月3日不同距离测度的LSH函数族余弦距离的LSH函数族如图,x, y是n维空间的两个向量,其余弦距离为。x, y定义了一个平面,记为A;任意选择一个通过坐标原点的超平面B或C(实际是随机选择一个超平面的法向量v),它与A相交于一条直线(蓝线和红线),存在两种相交模式:一种使x, y在直线的同侧(蓝线),另一种则在异侧(红线)。vxyABC2022年10月3日不同距离测度的LSH函数族余弦距离的LSH函数族设v

34、是该超平面的法线,则v与x, y的内积存在下列关系:同侧分割时(B),内积的正负性相同,异侧分割时(A),内积的正负性相反。那么,内积的正负性相反的概率为/180;内积的正负性相同的概率为1-/180。(相似性越大, 越小,内积的正负性相同的概率越大)vxyABC2022年10月3日不同距离测度的LSH函数族余弦距离的LSH函数族LSH函数族的每一个哈希函数f都是来自一个随机选择的法向量vf,向量x,y当且仅当内积vf.x与vf.y的正负性相同时,有f(x)=f(y)。对随机选择的vf,p(f(x)=f(y)=1-/180。因此,对于任意d1d2,由f1, f2,.构成的函数族F是(d1,d2

35、,1-d1/180, 1-d2/180)-敏感的哈希函数族。不需要在所有的向量空间选择v,可以限定在分量为+1和-1的向量集合中随机选择,可选空间为2n。(形成x的“梗概(Sketch)”)2022年10月3日不同距离测度的LSH函数族欧氏距离的LSH函数族LSH函数族的每一个哈希函数f都是来自一个随机选择的直线l,并将直线按长度a分段,向量x, y当且仅当在l上的投影落入同一个分段区间内,有f(x)=f(y)。对随机选择的l,p(f(x)=f(y)=1-c/a。c为向量x, y在l上的投影距离,要求ca。因此,对于任意d1d2,由f1,f2,.构成的函数族F是(d1,d2,1-c1/a, 1

36、-c2/a)-敏感的哈希函数族。xyl2022年10月3日一、大数据时代二、大数据分析基础三、相似项发现四、流数据分析提纲一、大数据时代二、大数据分析基础三、相似项发现四、流数据分析2022年10月3日流数据模型流数据源传感器:生产数据、GPS跟踪等图像数据:视频监控系统互联网及Web:数据包、网站访问2022年10月3日流数据模型数据流管理系统2022年10月3日流数据模型流处理器可看做一种数据管理系统,对输入的数据流进行存储、查询、编辑(增、删、更新)、抽样等操作。流数据存储工作存储器:用于流汇总数据或部分流数据以备应答查询。可以是磁盘,可以是内存,取决于查询速度的要求。归档存储器:将流数

37、据按照一定的规范组织存储,以备检索查询。大容量、处理速度慢、离线。2022年10月3日流数据模型数据流查询固定查询:一种永远不变的查询,并在适当的时候输出结果。例如,监控温度超过某一个值时报警;输出最近24次读数的平均值、最高温度等。特别/临时/即席查询(ad hoc query):对当前某个或多个流数据仅提交一次的、任务不确定的查询。为了应对特别查询,需要将一段时间或一定量的流数据(滑动窗口, sliding window)保存在工作存储器中,以备查询。数据流处理的特殊性:实时(内存存储)2022年10月3日流数据抽样从流中选择一个子集,以便能够对它进行查询并给出统计性上对整个流具有代表性的

38、结果。错误抽样的结果:在搜索引擎搜索流中统计“用户所提交的重复搜索的比例”,样本选择1/10。如何抽样?抽样策略是对每个搜索产生一个09的随机数,并当且仅当随机数为0时成为样本。假设某用户提交了1次的搜索有s个,提交了2次的搜索有d个,不存在超过2次的搜索。则总共产生(s+2d)/10个样本,其中s个单次搜索的样本数是s/10,2次搜索中同时进入样本的概率是1/100,因此共有2d/100个样本,2次搜索仅有1次进入样本的有2d/10-2d/100=18d/100。实际重复搜索比例是d/(s+d),而按抽样结果计算出的重复搜索比例是:(d/100)/(s/10+18d/100+d/100)=d

39、/(10s+19d)2022年10月3日流数据抽样正确抽样:针对上述问题,可采用随机整群抽样策略,即将一个用户的搜索看成一个群,抽取1/10用户的搜索行为即可。抽样策略是将每个搜索的用户名哈希到09的桶中,并当且仅当用户名哈希到第0个桶时,该搜索成为样本。一般抽样问题:若流数据是由一系列n个字段(如name, query, time)的元组构成,样本的选择基于关键字段(如name)。假定抽样后的样本规模为a/b (如1/10),则可以将每个元组的关键字段值哈希到某个桶中(桶的总数是b),将哈希值小于a的元组放入样本。选出的关键字段值数目占总体的比例约为a/b。2022年10月3日流数据抽样一般

40、抽样问题:若存储空间预先有设置,则随着样本的增加而超过预先设置时,可采用去除某些关键字段值的样本元组来释放存储空间(例如,开始记录100人的搜索记录,随着样本数的增加,逐渐减为99人、98人、.,并去除原来存储的被减去的人的元组)。具体办法如下,选择一个哈希函数h,可将关键字段值K映射到一个很大的取值范围(例如,一开始可以容纳很多人的搜索),桶的总数B很大,并维护一个阈值t,其初始值设为B-1。任何时候,样本都有K满足h(K)t的元组构成。如果存储空间不足,则可将阈值降低为t-1,并将那些满足h(K)=t的元组删除。2022年10月3日流过滤垃圾邮件过滤设有m个非垃圾邮件地址构成的集合S邮件数

41、据流通过垃圾邮件过滤器时进行过滤操作,过滤的办法是检查该邮件地址是否在S集合中由于m数量一般很大,且每个邮件地址都有20左右的字节,直接将S存放在内存中是不合适的;此外,只要检查该邮件地址是否在S中,并不需要关心到底是哪个邮件地址。因此布隆过滤器是一种有效的垃圾邮件过滤技术。2022年10月3日流过滤布隆过滤器将内存当做位数组使用,N字节内存对应8N个位,记为n。(设1个字节占8位),每个位的初始值为0。m个邮件地址(键值)组成集合S。k个哈希函数组成哈希函数族h1,h2,.,hk。每个哈希函数可以将一个邮件地址映射到某个位上。布隆过滤器的目的是让邮件地址在S中的流数据通过,不在S中的流数据大

42、部分被阻挡。2022年10月3日流过滤布隆过滤器工作流程首先用k个哈希函数组成的哈希函数族h1,h2,.,hk对S中的每个键值做k次映射,只要某个位被映射到1次,位值则改记为1。当键值为K的流元素到达时,检查所有的h1(K),.,hk(K)是否全为1,如果是,则允许通过,否则阻挡。2022年10月3日流过滤布隆过滤器性能分析给定键值不能哈希到给定位的概率:(n-1)/n每个键值哈希k次,所有键值都哈希不到给定位的概率: (n-1)/n)km=(1-1/n)n)km/n=e-km/n伪正例的概率=某个键值经过k次映射均为1的概率=一个位为1的概率的k次方=(1-e-km/n)k设m=1G, N=

43、1G, n=8G,m/n=1/8k=1,给定位未被哈希到的概率=e-1/8,而至少被哈希到1次的概率为1-e-1/8=0.1175,略小于1/8。0.1175也是伪正例概率。k=2,伪正例概率=(1-e-1/4)20.0493。2022年10月3日独立元素数的估计任务:估计流中所出现的不同元素的数目。FM算法(Flajolet-Martin):将流中的每个元素(总数为m)哈希到一个足够长的位串(位串长度大到能容纳哈希函数的可能结果数目),使用多个不同的哈希函数。这样,流中看到的不同元素越多,则看到不同的哈希值也越多,尾数连续为0的哈希值也越多(尾数连续0的数目称为尾长)。设截止目前看到的最大尾

44、长为R,则独立元素估计为2R。2022年10月3日独立元素数的估计性能分析给定元素的哈希值尾长为r的概率为2-r,流中的任何元素的哈希值都没有尾长达到r的概率为(1-2-r)m=exp(-m2-r)如果m远大于2r,则发现一个尾部长度至少为r的概率接近1;如果m远小于2r,则发现一个尾部长度至少为r的概率接近0。因此,m的估计值取2R是合理的。内存性能:仅保存每个哈希函数产生的最大尾长。问题分析及对策当R出现异常时(哪怕仅异常1位),估计误差就达1倍。将哈希函数分成若干组,每组的哈希函数的数目约为klog2m, k是一个小整数。按组计算估计值的平均值,再取各组平均值的中位数。2022年10月3

45、日矩估计矩定义给定的数据流由选自某个全集上的元素构成,假定该全集的所有元素都排好序,则可用整数i标记第i个元素,若元素i出现在流中的次数为mi(0),则流的k阶矩(kth-order moment)是所有i上的(mi)k之和。0阶矩:出现在数据流中的独立元素的个数。1阶矩:当前数据流中的元素个数=整个流的长度。2阶矩(奇异数):当前数据流中,每个独立元素i出现次数mi的平方和,它可度量流中元素分布的非均匀性,奇异数越大,均匀性越差。2022年10月3日矩估计二阶矩估计的AMS算法(Alon-Matias-Szegedy)对于变量X,给定流中的元素记为X.element,变量X的值记为X.val

46、ue。我们可以在长度为n的流中均匀、随机地选择1n间的一个位置,将X.element置为该位置上的元素,将X.value的初始值置为1,在流读取过程中,每读到一个X.element元素,X.value值加1,直至读完所有元素。基于任意变量X,可导出二阶矩的估计值n(2X.value -1)可通过选取多个位置,用其平均值得到较精确的结果。如果所有位置均参与估算,其均值严格等于二阶矩。2022年10月3日矩估计举例设流为abcbdacdabdcaab, n=15。随机选择3个位置3、8、13。则按下列顺序,变化X.element和X.value。X3.element=c, X3.value=1,

47、X3.value=2, X8.element=d, X8.value=1, X8.value=2, X3.value=3, X13.element=a, X13.value=1, X13.value=2。估算:M3=15(2*3-1)=75; M8=M13=15(2*2-1)=45均值:(75+2*45)/3=55实际值:ma2+mb2+mc2+md2=5*5+4*4+3*3+3*3=592022年10月3日矩估计有效性分析设长度为n的数据流共包含l个独立元素,独立元素i出现的次数为mi,且i=1.lmi=n。将元素i在流中第j次及其以后出现的次数记为e(j),则e(1)=mi,e(2)=mi

48、-1,.,e(mi)=1根据估计公式,所有元素参与估计的平均结果为:i=1.lj=1.mi n(2e(j)-1)/n=i=1.l(2mi-1)+(2mi-3) +.+3+1 =i=1.lmi2=m12+m22+.+ml2上式正好等于二阶矩!2022年10月3日矩估计(自学参考)k阶矩一般估计公式Mk=m1k+m2k+.mlk=i=1.lmik=i=1.lj=1.mi (ek(j)-ek(j+1)估算公式:n(ek(j)-ek(j+1)=n(ek(j)-(e(j)-1)k)k=2: M2n(2e(j)-1)k=3: M3n(3e2(j)-3e(j)+1)2022年10月3日矩估计(自学参考)无限流的处理(抽样均匀吗?)当流的长度n是变量(无限增加),怎么办?假设有s个变量用以保存均匀、随机抽样得到的位置的元素、值,且s变量已经用满,新的流元素被接受到后,如何处理?设新元素到达前的总元素个数为n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论