[发明专利]一种基于Spark的纳税人利益关联网络并行生成方法有效
申请号: | 201510924355.4 | 申请日: | 2015-12-11 |
公开(公告)号: | CN105574761B | 公开(公告)日: | 2016-11-30 |
发明(设计)人: | 董博;郑庆华;阮建飞;蔚文达;田锋;杨征宽 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F19/00 | 分类号: | G06F19/00 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 陆万寿 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于Spark的纳税人利益关联网络并行生成方法,包括以下步骤:1)、从原始数据中构造纳税人利益关联初始网络TPIN0;所述的原始数据包括企业的工商局注册信息、证监会上市公司信息、户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息;2)、使用多种聚合算子对TPIN0进行约简,得到TPIN;3)、并行输出纳税人利益关联网络TPIN0。本发明提出的并行生成方法具有高效率、可扩展的特点,为后续基于纳税人利益关联网络的税务指标挖掘和图分析的并行化奠定了基础,能用以应对海量异构的涉税数据的TPIN生成。 | ||
搜索关键词: | 一种 基于 spark 纳税人 利益 关联 网络 并行 生成 方法 | ||
【主权项】:
一种基于Spark的纳税人利益关联网络并行生成方法,其特征在于,包括以下步骤:1)、从原始数据中构造纳税人利益关联初始网络TPIN0;所述的原始数据包括企业的工商局注册信息、证监会上市公司信息、户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息;(1)基于哈希分区方法,根据企业的工商局注册信息以及证监会上市公司信息,构造TPIN0的点表V;所述的哈希分区方法具体步骤为:Step1:从总局数据中心读入企业的工商局注册信息和证监会上市公司信息,每条记录的数据格式形如:
Step2:基于哈希分区方法根据每条记录的纳税人内部码将这些信息分成NumPartition1个数据分区,所述数据分区是原始数据的子集,不同分区的数据之间不存在交叉,且各个分区的数据量相对均衡;将NumPartition1个分区的数据分发给Slave节点,Slave节点控制的每个计算单元分别负责处理一个分区的数据;所述哈希分区方法如下:记录所属分区Id=(纳税人内部码.hashCode())mod NumPartition1;其中,纳税人内部码.hashCode()表示求纳税人内部码的哈希值,mod表示左边数值对右边数值取余,得到的记录所属分区Id∈{0,1,...,NumPartition1‑1};Step3:首先,每个计算单元从各自处理分区的企业注册信息和上市公司信息中,过滤出所有的企业、企业实际控制人和企业董事;因为每个分区的数据之间不存在依赖关系,使用多个计算单元同时过滤不同分区的数据以实现并行过滤;其次,对于每个分区过滤出的信息,按照类别添加Color属性,设置Color(企业)=C、Color(企业实际控制人)=L、Color(企业董事)=B,所得结果构成了TPIN0的点表V;V中每个点的格式为(VertexId,Colorvertex);(2)基于协同分区方法,根据户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息,构造TPIN0的边表E;所述的协同分区方法具体步骤为:Step1:按照一个已分区数据集的分区方法对另一个未分区的数据集进行分区,使两个数据集的分布方式相同;将户籍部门的信息、金融机构披露的信息、税务部门的电子发票信息按照点表V的分区方式进行协同分区;Step2:对每个分区的每条记录,映射出表示纳税人利益关联关系的二元组,作为TPIN0的边,形如(L1,C1);Step3:为每条边添加属性域;对每个分区映射出的每个二元组,添加一个元组类型的元素扩展形成三元组,添加的元素为边的属性域,用来表示边的多个属性,如:着色加权图的权值、着色加权图的颜色、程序运行状态、程序变量、消息和用户定义属性;Step4:为每条边的属性域增加颜色属性;基于纳税人利益关联关系,为属性域添加颜色属性,设置Color(实际控制关系)=CL、Color(互为亲属关系)=IR、Color(控股关系)=HR、Color(利益互锁关系)=IL、Color(单向交易关系)=TR;得到带颜色属性的边,形如(L1,C1,(CL));Step5:为每条边的属性域增加权值属性;为所有颜色为CL、IL、IR的边的属性域添加权值属性,设置权值为1,表示顶点之间存在绝对的利益关联关系;结果形如Edge(L1,C1,(1,CL));为所有颜色为HR的边的属性域添加权值属性,根据该企业董事对该企业的控股百分比设置权值,取值范围为(0,1];结果形如Edge(B1,C1,(0.2,HR));为所有颜色为TR的边的属性域添加权值属性,根据源点企业和终点企业的利益关联度函数设置权值,取值范围为(0,1];结果形如Edge(C1,C2,(0.05,TR));其中,单向交易边的权值用来判断源点企业和终点企业是否存在潜在的偷漏税行为;上述过程的所得结果构成了TPIN0的边表E,E的数据结构表示为Edge(srcId,dstId,(Weightedge,Coloredge)),三元组的第一个元素映射为E的字段属性srcId,第二个元素映射为E的字段属性dstId,属性域中的权值属性映射为E的字段属性Weightedge,属性域中的颜色属性映射为E的字段属性Coloredge;(3)基于顶点分割的分区方法,构造可并行计算的TPIN0;所述的基于顶点分割的分区方法,构造可并行计算TPIN0的具体步骤为:①基于顶点分割方法,对V和E进行分区;E中的每条边只属于一个边表分区,点的属性只属于一个点表分区,当点的邻接边分别属于不同边表分区时,该点就被分割给多个边表分区;Step1:将E中的边基于2D分区方法均匀地分给每个边表分区,得到分区内部网络相对完整的NumPartition2个边表分区;所述2D分区方法是指基于边的源点Id和终点Id,计算边所属的边表分区,计算过程如下:col=(srcId×Prime)%sqrt(NumPartition2)row=(dstId×Prime)%sqrt(NumPartition2)所属边表分区Id=(col×sqrt(NumPartition2)+row)%NumPartition2其中,Prime表示一个足够大的素数,作为乘数作用于srcId和dstId,使边均匀地分布在多个边表分区,减少TPIN0网络中边密集区域造成的负载不均衡;%表示取余操作,sqrt()表示对括号内数值求平方根,得到的所属边表分区Id∈{0,1,...,NumPartition2‑1};Step2:将V中的点基于哈希分区方法根据每个点的VertexId,将点表数据均匀地分成NumPartition1个点表分区;所述哈希分区方法如下:所属点表分区Id=(VertexId.hashCode())mod NumPartition1;其中,得到的所属点表分区Id∈{0,1,...,NumPartition1‑1};②生成辅助路由表,组成TPIN0;Step1:对于每个边表分区的每条边,将它们的源点Id或终点Id与所属边表分区Id组成二元组,形如(L1,1);Step2:将Step1所得结果按照点表V的分区方式协同分区;所述协同分区方法,按照一个已分区数据集的分区方法对另一个未分区的数据集进行分区,使两数据集的分布方式相同;Step3:对每个点表分区内的二元组,消除重复二元组并进行聚集,得到每个顶点所有邻接边的所属边表分区Id的集合,由此构造出与点表结构相同的辅助路由表,用来指示点表中的每个顶点属性在与边表发生连接时应该移动到的边表分区;辅助路由表形如(VertexId,Vector[int]),其中,Vector[int]表示一个存放Int类型数值的动态数组;至此,点表V、边表E和辅助路由表共同组成了完整的TPIN0;2)、使用多种聚合算子对TPIN0进行约简,得到TPIN;(1)对特定聚合算子进行模式识别并得到所有待聚合的顶点;所述的对特定聚合算子进行模式识别并得到所有待聚合的顶点的具体操作为:将TPIN0中的边表示为Edge(srcId,dstId,(Weightedge,Coloredge)),每个边的属性域表示为一个二元组,第一项表示该边的权值,满足Weightedge∈(0,1];第二项表示该边的颜色,满足Coloredge∈{CL,IR,IL,HR,TR};将TPIN0中的顶点表示为(VertexId,Colorvertex),每个顶点的属性表示该点的颜色,满足Colorvertex∈{C,B,L};TPIN0中的点集为V,边集为E,表示为TPIN0=(V,E);Step1:沿所有Coloredge为特定值的边向其源点或终点发送消息,得到所有可能匹配于特定聚合算子的点集,记为Matching;Step2:首先,结合Matching中的顶点、连接Matching中任意两点的边以及GS全局聚集得到的消息数据集M2,确定所有匹配于特定聚合算子的顶点;其次,所有匹配点和连接这些点的边构成最小纳税人利益关联网络minTPIIN;minTPIIN的点表表示所有待聚合顶点的集合,记为VminTPIIN;边表记为EminTPIIN;Step3:通过循环地沿EminTPIIN中的边发送消息,确定每个VminTPIIN中的点在针对特定聚合算子聚合之后的VertexId,并将映射关系存储在哈希表NewVid中;(2)将所有待聚合顶点的信息同步到邻接边的属性域中;所述的将所有待聚合顶点的信息同步到邻接边属性域中的具体操作为:为E中所有边的属性域增加direct属性和changeTo属性;如果一条边只有终点在VminTPIIN中,则changeTo取值为NewVid.get(e.srcId),direct取值为in,意为指向被聚合区域的边,被聚合区域是指一组互相连通的待聚合顶点;如果一条边只有源点在VminTPIIN中,则changeTo取值为NewVid.get(e.dstId),direct取值为out,意为从被聚合区域发出的边;如果一条边两端均在VminTPIIN中,则changeTo取值为‑1,direct取值为remove,意为该边完全属于被聚合区域,聚合之后将被移除;如果一条边两端均不在VminTPIIN中,则changeTo取值为‑1,direct取值为remain,意为该边与任何被聚合区域没有联系,直接保留原属性;形式化表述如下:
其中,对Weightedge属性和Coloredge属性赋值为下划线_,表示直接保留该属性的原值,不进行任何修改;NewVid.get(e.dstId))表示从哈希表NewVid中取得键为e.dstId的对应值,即边e的终点在针对特定聚合算子聚合之后的VertexId;(3)利用多节点聚合边权重计算方法,产生约简后的边表newE;所述的产生约简后的边表newE的具体操作为:①移除所有完全属于被聚合区域的边;对每个边表分区的每条边,如果边的direct属性为remove,则直接从E中移除该边;②修改源点或终点的VertexId;对每个边表分区的每条边,如果边的direct属性为in,则将e.dstId修改为changeTo属性的值;如果边的direct属性为out,则将e.srcId修改为changeTo属性的值;如果边的direct属性为remain,则不修改该边的srcId和dstId;③聚合重复边并修改聚合边的权值;Step1:将所有边的属性域修改为(sum,Coloredge,direct,max,count);其中,sum属性用来记录重复边的权值之和,初始值为Weightedge属性的值,count属性用来记录重复边的个数,初始值为1,max属性用来记录重复边权值中的最大值;Step2:对所有重复边进行聚集;所述聚集的具体操作为:如果两条边的srcId、dstId、Coloredge属性均相同,则将它们约简为一条聚合边;聚合边的sum属性值和count属性值为两条边sum属性值和count属性值之和;聚合边的max属性值为两条边max属性值的较大值;Step3:计算聚合边的权值;使用一种多节点聚合边权重计算方法,对不同颜色和方向的边的权值采取不同的修改策略;结合direct属性和Coloredge属性,计算聚合边的权值,所得结果构成了约简后的边表newE;所述多节点聚合边权重计算方法如下:for(e:newE):
其中,for(e:newE):表示对于newE中的每条边e进行冒号后的操作,e.(Weightedge,Coloredge)=表示对边e的Weightedge属性和Coloredge属性赋值;(4)修改所有待聚合节点的属性,产生约简后的点表newV;所述的产生约简后的点表newV的具体操作为:对于每个点表分区的每个顶点,如果它不在VminTPIIN中,则说明该顶点没有被聚合,直接保留到约简后的点表中;如果一个顶点在VminTPIIN中,则进一步判断它针对特定聚合算子聚合之后的VertexId,即NewVid.get(v.VertexId),与它的VertexId是否相同;如果相同,说明该顶点是它所在的被聚合区域中VertexId值最小的顶点,将保留到约简后的点表中;如果不同,则将该顶点从V中移除,表示该顶点被聚合为VertexId为NewVid.get(v.VertexId)的顶点;所得结果构成了约简后的点表newV;(5)基于顶点分割的分区方法,构造纳税人利益关联网络TPIN;所述的构造纳税人利益关联网络TPIN的具体操作为:首先基于顶点分割方法,对newV和newE进行分区;其次,生成辅助路由表,组成纳税人利益关联网络TPIN,表示为TPIN=(newV,newE);构造出的TPIN就是TPIN0针对多种聚合算子进行约简的结果;3)、并行输出纳税人利益关联网络TPIN0。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510924355.4/,转载请声明来源钻瓜专利网。
- 上一篇:一种拟人态水族虚拟社交智能系统
- 下一篇:一种跨平台的积分兑换系统和方法
- 同类专利
- 专利分类
G06 计算;推算;计数
G06F 电数字数据处理
G06F19-00 专门适用于特定应用的数字计算或数据处理的设备或方法
G06F19-10 .生物信息学,即计算分子生物学中的遗传或蛋白质相关的数据处理方法或系统
G06F19-12 ..用于系统生物学的建模或仿真,例如:概率模型或动态模型,遗传基因管理网络,蛋白质交互作用网络或新陈代谢作用网络
G06F19-14 ..用于发展或进化的,例如:进化的保存区域决定或进化树结构
G06F19-16 ..用于分子结构的,例如:结构排序,结构或功能关系,蛋白质折叠,结构域拓扑,用结构数据的药靶,涉及二维或三维结构的
G06F19-18 ..用于功能性基因组学或蛋白质组学的,例如:基因型–表型关联,不均衡连接,种群遗传学,结合位置鉴定,变异发生,基因型或染色体组的注释,蛋白质相互作用或蛋白质核酸的相互作用
G06F 电数字数据处理
G06F19-00 专门适用于特定应用的数字计算或数据处理的设备或方法
G06F19-10 .生物信息学,即计算分子生物学中的遗传或蛋白质相关的数据处理方法或系统
G06F19-12 ..用于系统生物学的建模或仿真,例如:概率模型或动态模型,遗传基因管理网络,蛋白质交互作用网络或新陈代谢作用网络
G06F19-14 ..用于发展或进化的,例如:进化的保存区域决定或进化树结构
G06F19-16 ..用于分子结构的,例如:结构排序,结构或功能关系,蛋白质折叠,结构域拓扑,用结构数据的药靶,涉及二维或三维结构的
G06F19-18 ..用于功能性基因组学或蛋白质组学的,例如:基因型–表型关联,不均衡连接,种群遗传学,结合位置鉴定,变异发生,基因型或染色体组的注释,蛋白质相互作用或蛋白质核酸的相互作用