MapReduce平台上的虚拟人建立方法

文档序号:9249246阅读:521来源:国知局
MapReduce平台上的虚拟人建立方法
【技术领域】
[0001] 本发明设及数据处理技术领域,尤其设及一种MapRe化ce平台上的虚拟人建立方 法。
【背景技术】
[0002] 当前,即时通讯,电子邮件,网络游戏,P2P软件下载,网络论坛,网络招聘,电子商 务交易,网络预定机票酒店等各种网络服务给网络用户的生活带来极大的便利。各种网络 服务一般会给每个用户分配一个帐号,该帐号跟用户的注册信息相关联并用W对各用户进 行记录和识别,比如网络用户的即时通信号码(如QQ账号)或电子邮件地址,网络游戏帐 号,论坛登陆帐号,W及P2P软件帐号等等。
[0003] 每个网络用户都拥有类型多样的账号,而大量的网络用户则带来的巨量的账号数 据,对相关部口来说,有效管理网络用户信息已经成为艰巨的任务。为有效管理网络用户信 息,实现对网络帐号归属关系的分析,即哪些帐号属于同一个人(虚拟人),现已成为亟需 解决的问题。
[0004] 现有技术在面对构建虚拟人的问题时,大多归于属性匹配方式。属性匹配的方案 大致如下:
[0005] A)指定网络帐号属性匹配的规则,在哪种情况下用哪些属性进行匹配,W及相应 的匹配成功判定方法。比如,当匹配一个QQ帐号和一个淘宝帐号时,如果两帐号的"姓名" 和"联系方式"两个字段的编辑距离(editdistance)均小于3,则认为该两个帐号匹配成 功。
[0006] B)根据属性匹配的情况,构建帐号之间属于同一个人的程度(相似度)。并最终 根据相似度分辨出哪些帐号属于同一个人。比如,上例中,只要匹配成功则认为属于同一个 人。
[0007]但是,实际生活中存在如下情况:
[000引1.账号数据中经常出现属性缺失的情况,例如账号注册时只填写了部分属性值。
[0009] 2.不同类型的账号数据,共有的属性少。而且共有的属性中,不一定都能用于属性 匹配。
[0010] 3.不同类型的账号数据,对同一语义的属性不同,需要对齐,该进一步增加了难 度。比如在A类帐号中,姓名对应的字段就是"姓名"该一个字段,但在B类帐号中,姓名实 际上是用"姓"和"名"两个字段来表示。
[0011] 4.实际账号数据中,属性值的可信度并不是很高。例如,因为缺乏实名认证,可能 存在身份证号不真实的情况。
[001引 5.需要进行属性级别的比较,复杂度较高。
[0013] 该些情况使得属性匹配的过程复杂、计算量大且实际结果不理想,尤其是针对大 量数据处理时,准确度较低。
[0014] 另一方面,MapRe化ce是谷歌提出的分布式并行计算框架,用于大规模数据集的并 行运算,主要通过"Map(映射)"和"Re化ce(化简)"该两个步骤来并行处理大规模的数据 集。在MapRe化ce平台上的计算过程中,输入数据首先被切分到集群的不同计算机上,集 群中其他计算机分配为执行Map作业或Re化ce作业;Map作业从输入数据中抽取出键值对 <Key,Value〉,每一个键值对都作为参数传递给map函数,map函数产生的中间键值对被缓 存在内存中,缓存的中间键值对会被定期写入本地磁盘,而且该些中间键值对被分为R个 区,R的大小是由用户定义的,将来每个区会对应一个Re化ce作业;带有相同Key的键值对 由同一个Re化ce作业来处理,Re化ce作业读取该些中间键值对,对于每个唯一的键,都将 键与关联的值传递给re化ce函数,re化ce函数产生的输出会添加到该个分区的输出文件 中。Map/Re化ce作业和map/re化ce函数的区别;Map作业处理一个输入数据的分片,可能 需要调用多次map函数来处理每个输入键值对;Re化ce作业处理一个分区的中间键值对, 期间要对每个不同的键调用一次re化ce函数,Re化ce作业最终也对应一个输出文件。整 个过程中,输入数据是来自底层分布式文件系统的,中间数据是放在本地文件系统的,最终 输出数据是写入底层分布式文件系统。为了能实现对海量数据的处理,克服单机本身资源 有限所带来的限制,亟需在MapRe化ce平台上实现虚拟人的建立。

【发明内容】

[0015] 因此,本发明的目的在于提供一种MapRe化ce平台上的虚拟人建立方法,解决因 帐号类型多样等带来的虚拟人构建复杂、准确度低的问题,实现对海量数据的处理,克服单 机本身资源有限所带来的限制。
[0016] 为实现上述目的,本发明提供了一种MapRe化ce平台上的虚拟人建立方法,包括:
[0017] 步骤1、从行为日志中提取账号及与账号对应的登陆时间、登陆终端信息;
[0018] 步骤2、根据账号之间协同出现的情况计算账号之间的相似度,构造W节点表征账 号的连通图,并W节点之间的边的长度表征账号之间的相似度,节点之间的边越短,节点所 表征的账号之间相似度越高;
[0019] 步骤3、基于MapRe化ce平台对所述连通图中的节点进行聚类,根据聚类结果建立 虚拟人。
[0020] 其中,步骤3包括;
[0021] 步骤20、W连通图中的节点和边的信息作为输入数据,通过Map作业生成包括节 点W及邻边信息的键值对,通过Re化ce作业生成包括节点、节点的本地密度化0W及节点 所有邻边信息的输出,化0定义为连接本节点的长度低于预定义值化的邻边的数目;
[0022] 步骤30、对于步骤20中Re化ce作业的输出,通过Map作业生成包括节点、节点 化0、邻居节点化0W及邻边信息的键值对,对每个节点,通过Re化ce作业遍历节点化0、所 有邻居节点化0W及所有邻边信息,得出每个节点的离散度Delta,Delta定义为本节点所 有连接更高化0值邻居节点的邻边中最短边的边长,若不存在该样的邻居节点,则取本节 点最长邻边的边长;再结合预定规则来进行类标识
[0023] 步骤40、相同类的各个节点一同构成一个虚拟人。
[0024] 其中,所述预定规则包括;节点的化〇和Delta分别高于作为输入参数的阔值R_ T和阔值D_T,则该节点为一个类的中心该节点的类标识取其自身类标识;否则,节点的类 标识取距离其最近且化0更高的邻居节点的类标识;
[0025] 孤立节点的类标识为自身类标识。
[0026] 其中,所述预定规则包括:预先划分化0值可能取值区间W及对应的Delta值可能 取值区间,如果节点的Rho值属于Rho值可能取值区间且节点的Delta值属于对应的Delta 值可能取值区间,则该节点为一个类的中屯、,该节点的类标识取其自身类标识;否则,节点 的类标识取距离其最近且化0更高的邻居节点的类标识;
[0027] 孤立节点的类标识为自身类标识。
[002引其中,还引入账号之间协同出现的情况W外的因素计算所述账号之间的相似度。
[0029] 其中,还包括合并所有虚拟人及与虚拟人对应的账号成为虚拟人数据库。
[0030] 其中,步骤20中Re化ce作业的输出存储于关系数据库或键值数据库中。
[0031] 其中,步骤30中的Map作业中,通过对步骤20中Re化ce作业的输出进行笛卡尔 积,实现对邻居节点化0的遍历。
[00对其中,步骤20包括;
[0033] 步骤21、连通图中的节点和边的信息作为输入数据经由Map作业生成键值对,其 中,键包括标识节点的字段,值包括标识邻居节点的字段和标识该节点和邻居节点之间邻 边的边长的字段;
[0034] 步骤22、对键值对按照键所包括的节点进行分区,键包括相同节点的键值对分配 至同一分区;
[0035] 步骤23、对于同一分区内的键值对按照键所包括的节点进行分组,键包括相同节 点的键值对分配至同一组;
[0036] 步骤25、经由Re化ce作业,通过对属于同一组的键值对的值的迭代来遍历同一节 点的所有的邻边,生成包括节点、节点的本地密度化0W及节点所有邻边信息的输出。
[0037] 其中,步骤20还包括:
[003引步骤21中,键还包括标识该节点和邻居节点之间邻边的边长的字段;
[0039] 步骤24、对于属于同一组的键值对按照键所包括的邻边的边长进行排序。
[0040] 其中,步骤30包括;
[0041] 步骤31、对于步骤20中Re化ce作业的输出经由Map作业生成键值对,其中,键包 括标识节点的字段,值包括标识邻居节点的字段、标识该节点和邻居节点之间邻边的边长 的字段、标识该邻居节点化0的字段和标识该节点化〇的字段;
[0042] 步骤32、对键值对按照键所包括的节点进行分区,键包括相同节点的键值对分配 至同一分区;
[0043] 步骤33、对于同一分区内的键值对按照键所包括的节点进行分组,键包括相同节 点的键值对分配至同一组;
[0044] 步骤35、经由Re化ce作业,对每个节点,通过对属于同一组的键值对的值的迭代 来遍历节点化0、所有邻居节点化0W及所有邻边信息,得出每个节点的离散度Delta,再结 合预定规则来进行类标识。
[0045] 其中,步骤30还包括:
[0046] 步骤31中,键还包括标识该邻居节点化〇的字段;
[0047] 步骤34、对于属于同一组的键值对按照键所包括的
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1