一種基于Spark的納稅人利益關(guān)聯(lián)網(wǎng)絡(luò)并行生成方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機(jī)科學(xué)與技術(shù)中的并行圖生成領(lǐng)域,具體涉及一種基于Spark的 納稅人利益關(guān)聯(lián)網(wǎng)絡(luò)并行生成方法。
【背景技術(shù)】
[0002] 隨著國家稅務(wù)大數(shù)據(jù)分析平臺和電子稅務(wù)大數(shù)據(jù)計算與服務(wù)的開展,傳統(tǒng)的紙質(zhì) 發(fā)票逐步被電子發(fā)票所取代。如何對每天數(shù)以千萬計的電子發(fā)票涉稅數(shù)據(jù)進(jìn)行分析,挖掘 出納稅人之間潛在、隱蔽、多樣的利益關(guān)聯(lián)關(guān)系成為一個亟待解決的問題。
[0003] 針對如何有效挖掘出利益關(guān)系,以下專利提供了可用的技術(shù)方案:
[0004] 中國專利文獻(xiàn)201310293435.5公開了一種基于著色加權(quán)圖的納稅人利益關(guān)聯(lián)網(wǎng) 絡(luò)(TPIN),提供了一種基于多種納稅人利益關(guān)聯(lián)關(guān)系網(wǎng)絡(luò)模型檢測企業(yè)偷漏稅行為的方 法。
[0005] 然而現(xiàn)有的TPIN生成方法是基于串行的思想進(jìn)行設(shè)計的,在應(yīng)對海量異構(gòu)的涉稅 數(shù)據(jù)的TPIN生成時,往往出現(xiàn)生成慢、甚至無法生成的情況,也為后續(xù)基于TPIN的稅務(wù)指標(biāo) 挖掘和圖分析帶來了極大的挑戰(zhàn)。
[0006] 本申請考慮采用分布式計算框架Spark處理涉稅數(shù)據(jù)。Spark是當(dāng)前廣泛使用的并 行計算框架,采用Master/Slave的集群架構(gòu)。其中一個Master節(jié)點(diǎn)管理多個Slave節(jié)點(diǎn)并負(fù) 責(zé)任務(wù)調(diào)度和分發(fā),而多個Slave節(jié)點(diǎn)控制多個計算單元響應(yīng)Master調(diào)度并進(jìn)行實(shí)際計算 和數(shù)據(jù)存儲。Spark框架下的數(shù)據(jù)并行計算,其本質(zhì)在于通過可選的多種分區(qū)策略,將數(shù)據(jù) 集分成相互獨(dú)立的多個數(shù)據(jù)分區(qū),分別交由多個計算單元同時處理。另外,Spark的內(nèi)存中 計算、DAG調(diào)度、可編程分區(qū)等特性都使得并行計算的速度進(jìn)一步提升。
[0007] Spark的可編程分區(qū)特性,可以有效地將異構(gòu)的涉稅數(shù)據(jù)轉(zhuǎn)化為同構(gòu)的涉稅數(shù)據(jù); 提高數(shù)據(jù)并行度特性和內(nèi)存中計算特性,可以極大地提高TPIN的生成效率,并且為后續(xù)基 于TPIN的高效圖分析奠定基礎(chǔ)。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)中的問題,提供一種基于Spark的納稅人利 益關(guān)聯(lián)網(wǎng)絡(luò)并行生成方法,用以應(yīng)對海量異構(gòu)的涉稅數(shù)據(jù)的TPIN生成,也為后續(xù)基于TPIN 的并行圖分析奠定基礎(chǔ)。
[0009] 為了實(shí)現(xiàn)上述目的,本發(fā)明納稅人利益關(guān)聯(lián)網(wǎng)絡(luò)并行生成方法,包括以下步驟:
[0010] 1)、從原始數(shù)據(jù)中構(gòu)造納稅人利益關(guān)聯(lián)初始網(wǎng)絡(luò)ΤΡΙΝο;
[0011] 所述的原始數(shù)據(jù)包括企業(yè)的工商局注冊信息、證監(jiān)會上市公司信息、戶籍部門的 信息、金融機(jī)構(gòu)披露的信息以及稅務(wù)部門的電子發(fā)票信息;
[0012] (1)基于哈希分區(qū)方法,根據(jù)納稅人原始信息,即企業(yè)的工商局注冊信息以及證監(jiān) 會上市公司信息,構(gòu)造 ΤΡΙΝο的點(diǎn)表V;
[0013] (2)基于協(xié)同分區(qū)方法,根據(jù)相關(guān)部門的信息,即戶籍部門的信息、金融機(jī)構(gòu)披露 的信息以及稅務(wù)部門的電子發(fā)票信息,構(gòu)造 ΤΡΙΝο的邊表E;
[0014] (3)基于頂點(diǎn)分割的分區(qū)方法,構(gòu)造可并行計算的ΤΡΙΝο;
[0015] 2)、使用多種聚合算子對ΤΡΙΝο進(jìn)行約簡,得到TPIN;
[0016] (1)對特定聚合算子進(jìn)行模式識別并得到所有待聚合的頂點(diǎn);
[0017] (2)將所有待聚合頂點(diǎn)的信息同步到鄰接邊的屬性域中;
[0018] (3)利用多節(jié)點(diǎn)聚合邊權(quán)重計算方法,產(chǎn)生約簡后的邊表newE;
[0019] (4)修改所有待聚合節(jié)點(diǎn)的屬性,產(chǎn)生約簡后的點(diǎn)表newV;
[0020] (5)基于頂點(diǎn)分割的分區(qū)方法,構(gòu)造納稅人利益關(guān)聯(lián)網(wǎng)絡(luò)TPIN;
[0021] 3)、并行輸出納稅人利益關(guān)聯(lián)網(wǎng)絡(luò)ΤΡΙΝο。
[0022]所述的哈希分區(qū)方法具體步驟為:
[0023] Stepl:從總局?jǐn)?shù)據(jù)中心讀入企業(yè)的工商局注冊信息和證監(jiān)會上市公司信息,每條 記錄的數(shù)據(jù)格式形如:
[0025] Step2:基于哈希分區(qū)方法根據(jù)每條記錄的納稅人內(nèi)部碼將這些信息分成 NumPartitiom個數(shù)據(jù)分區(qū),所述數(shù)據(jù)分區(qū)是原始數(shù)據(jù)的子集,不同分區(qū)的數(shù)據(jù)之間不存在 交叉,且各個分區(qū)的數(shù)據(jù)量相對均衡;將NumPart it iom個分區(qū)的數(shù)據(jù)分發(fā)給Slave節(jié)點(diǎn), Slave節(jié)點(diǎn)控制的每個計算單元分別負(fù)責(zé)處理一個分區(qū)的數(shù)據(jù);所述哈希分區(qū)方法如下:
[0026] 記錄所屬分區(qū)Id=(納稅人內(nèi)部碼.hashCode〇)mod NumPartitiom;
[0027]其中,納稅人內(nèi)部碼.hashCode()表示求納稅人內(nèi)部碼的哈希值,mod表示左邊數(shù) 值對右邊數(shù)值取余,得到的記錄所屬分區(qū)Ide {〇, 1,. . .,NumPartitiom-l};
[0028] Step3:首先,每個計算單元從各自處理分區(qū)的企業(yè)注冊信息和上市公司信息中, 過濾出所有的企業(yè)、企業(yè)實(shí)際控制人和企業(yè)董事;因?yàn)槊總€分區(qū)的數(shù)據(jù)之間不存在依賴關(guān) 系,使用多個計算單元同時過濾不同分區(qū)的數(shù)據(jù)以實(shí)現(xiàn)并行過濾;其次,對于每個分區(qū)過濾 出的信息,按照類別添加 Color屬性,設(shè)置Color(企業(yè))=C、Color(企業(yè)實(shí)際控制人)=L、 Color (企業(yè)董事)=B,所得結(jié)果構(gòu)成了 ΤΡΙΝο的點(diǎn)表V;V中每個點(diǎn)的格式為(Vertexld, C〇l〇rvertex) 〇
[0029] 所述的協(xié)同分區(qū)方法具體步驟為:
[0030] Stepl:按照一個已分區(qū)數(shù)據(jù)集的分區(qū)方法對另一個未分區(qū)的數(shù)據(jù)集進(jìn)行分區(qū),使 兩個數(shù)據(jù)集的分布方式相同;將戶籍部門的信息、金融機(jī)構(gòu)披露的信息、稅務(wù)部門的電子發(fā) 票信息按照點(diǎn)表V的分區(qū)方式進(jìn)行協(xié)同分區(qū);
[0031] Step2:對每個分區(qū)的每條記錄,映射出表示納稅人利益關(guān)聯(lián)關(guān)系的二元組,作為 ΤΡΙΝο的邊,形如(LhCO;
[0032] Step3:為每條邊添加屬性域;
[0033] 對每個分區(qū)映射出的每個二元組,添加一個元組類型的元素擴(kuò)展形成三元組,添 加的元素為邊的屬性域,用來表示邊的多個屬性,如:著色加權(quán)圖的權(quán)值、著色加權(quán)圖的顏 色、程序運(yùn)行狀態(tài)、程序變量、消息和用戶定義屬性;
[0034] Step4:為每條邊的屬性域增加顏色屬性;
[0035]基于納稅人利益關(guān)聯(lián)關(guān)系,為屬性域添加顏色屬性,設(shè)置C〇lor(實(shí)際控制關(guān)系)= CL、Co lor (互為親屬關(guān)系)= IR、Color (控股關(guān)系)=HR、Co lor (利益互鎖關(guān)系)= IL、Color (單向交易關(guān)系)=TR;得到帶顏色屬性的邊,形如(LiCUCL));
[0036] Step5:為每條邊的屬性域增加權(quán)值屬性;
[0037] 為所有顏色為CL、IL、IR的邊的屬性域添加權(quán)值屬性,設(shè)置權(quán)值為1,表示頂點(diǎn)之間 存在絕對的利益關(guān)聯(lián)關(guān)系;結(jié)果形如Edgea:,&,( 1,CL));
[0038] 為所有顏色為HR的邊的屬性域添加權(quán)值屬性,根據(jù)該企業(yè)董事對該企業(yè)的控股百 分比設(shè)置權(quán)值,取值范圍為(〇,1 ];結(jié)果形如Edge(,&,(0.2,HR));
[0039] 為所有顏色為TR的邊的屬性域添加權(quán)值屬性,根據(jù)源點(diǎn)企業(yè)和終點(diǎn)企業(yè)的利益關(guān) 聯(lián)度函數(shù)設(shè)置權(quán)值,取值范圍為(〇,1 ];結(jié)果形如Edge (&,&,(0.05, TR));其中,單向交易邊 的權(quán)值用來判斷源點(diǎn)企業(yè)和終點(diǎn)企業(yè)是否存在潛在的偷漏稅行為;上述過程的所得結(jié)果構(gòu) 成了ΤΡΙΝο的邊表E,E的數(shù)據(jù)結(jié)構(gòu)表示為Edge(srcld,dstld, (Weightedge,Coloredge)),三元 組的第一個元素映射為E的字段屬性srcld,第二個元素映射為E的字段屬性dstld,屬性域 中的權(quán)值屬性映射為E的字段屬性Weighted%,屬性域中的顏色屬性映射為E的字段屬性 C〇 1 OiTedge 〇
[0040] 所述的基于頂點(diǎn)分割的分區(qū)方法,構(gòu)造可并行計算ΤΡΙΝο的具體步驟為:
[0041] ①基于頂點(diǎn)分割方法,對V和Ε進(jìn)行分區(qū);
[0042] Ε中的每條邊只屬于一個邊表分區(qū),點(diǎn)的屬性只屬于一個點(diǎn)表分區(qū),當(dāng)點(diǎn)的鄰接邊 分別屬于不同邊表分區(qū)時,該點(diǎn)就被分割給多個邊表分區(qū);
[0043] Stepl:將Ε中的邊基于2D分區(qū)方法均勻地分給每個邊表分區(qū),得到分區(qū)內(nèi)部網(wǎng)絡(luò) 相對完整的NumPar t i t ion2個邊表分區(qū);所述2D分區(qū)方法是指基于邊的源點(diǎn)I d和終點(diǎn)I d,計 算邊所屬的邊表分區(qū),計算過程如下:
[0044] col = (srcld X Prime)%sqrt(NumPartition2)
[0045] row= (dstId XPrime) %sqrt(NumPartition2)
[0046] 所屬邊表分區(qū)Id= (col X sqrt(NumPartition2)+row) %NumPartition2
[0047] 其中,Prime表示一個足夠大的素數(shù),本發(fā)明根據(jù)實(shí)際經(jīng)驗(yàn)取值為914293,作為乘 數(shù)作用于srcld和dstld,使邊均勻地分布在多個邊表分區(qū),減少ΤΡΙΝο網(wǎng)絡(luò)中邊密集區(qū)域造 成的負(fù)載不均衡;%表示取余操作,sqrt()表示對括號內(nèi)數(shù)值求平方根,得到的所屬邊表分 區(qū)Ide {〇, 1,· · ·,NumPartition2-l};
[0048] Step2:將V中的點(diǎn)基于哈希分區(qū)方法根據(jù)每個點(diǎn)的Verte