模來應對規(guī)模不 斷增大的涉稅數據,克服了現有TPIN生成方法應對超大規(guī)模涉稅數據時無法同時載入內存 進行分析,進而無法生成納稅人利益關聯網絡的問題;
[0100] (3)奠基性:本方法對存在信息冗余的利益關聯初始網絡進行了約簡,并將約簡產 生的納稅人關聯網絡最終存儲在分布式文件系統(tǒng)中。為后續(xù)基于納稅人利益關聯網絡的稅 務指標挖掘和圖分析的并行化奠定了基礎。
[0101] 進一步的,本發(fā)明提出的輔助路由表用來指示點表中的每個頂點屬性在與邊表發(fā) 生連接時應該移動到的邊表分區(qū),能夠加快V和E的兩表連接速度,避免GS分解過程中盲目 地向所有邊表分區(qū)傳播頂點的屬性。
【附圖說明】
[0102] 圖1為本發(fā)明方法并行生成納稅人利益關聯網絡的流程圖;
[0103] 圖2為基于哈希方法根據納稅人原始信息構造點表V的過程示意圖;
[0104] 圖3為根據相關部門的信息構造邊表E的過程示意圖;
[0105] 圖4(a)為基于頂點分割分區(qū)方法數據存儲示意圖;
[0106]圖4(b)為基于ΤΡΙΝο數據存儲結構示意圖;
[0107]圖5為基于GS分解實現以邊為導向及并行計算的過程示意圖。
[0108]圖6為針對法人之間互為親屬的聚合算子的ΤΡΙΝο約簡過程示意圖。
【具體實施方式】
[0109]下面結合附圖對本發(fā)明做進一步的詳細說明。
[0110] 實際情況下并行生成方法將應用于規(guī)模較大,節(jié)點度上萬的實際稅務數據之上。
[0111] 參見圖1,納稅人利益關聯網絡的生成需要經過從原始數據中提取生成納稅人利 益關聯初始網絡ΤΡΙΝο的點表和邊表101;基于頂點分割方法對點表和邊表進行分區(qū),得到 納稅人利益關聯初始網絡102;基于GS分解方法在利益關聯網絡中并行發(fā)送消息103;針對 多種聚合算子對ΤΡΙΝο進行約簡104;最后將生成的TPIN并行輸出105。
[0112] 具體生成過程如下:
[0?13] 1)構造納稅人利?關聯初始網絡ΤΡΙΝο;
[0114] ⑴構造 ΤΡΙΝο的點表V;
[0115] 如圖2所示,從總局數據中心讀入企業(yè)的工商局注冊信息和證監(jiān)會上市公司信息, 基于哈希分區(qū)方法根據每條記錄的納稅人內部碼將這些信息分成負載相對平衡的 NumPartitiom個數據分區(qū),將NumPartitiom個分區(qū)的數據分發(fā)給Slave節(jié)點控制的計算單 元。并為每條記錄添加 Color屬性,所得結果構成了ΤΡΙΝο的點表V。
[0116] ⑵構造 ΤΡΙΝο的邊表E;
[0117] 首先將戶籍部門的信息、金融機構披露的信息、稅務部門的電子發(fā)票信息按點表V 的哈希分區(qū)方法進行協(xié)同分區(qū)。對每個分區(qū)的每條記錄,映射出表示納稅人利益關聯關系 的二元組。最后為二元組增加包含Color屬性和權值屬性的屬性域,所得結果構成ΤΡΙΝο的 邊表Ε。
[0118] 如圖3所示,在已生成的點表V的基礎上,根據企業(yè)的工商局注冊信息和證監(jiān)會上 市公司信息,得到實際控制邊和控股邊,分別設置顏色屬性為CL和HR,權值屬性為1和區(qū)間 (〇,1]內的值302;根據戶籍信息,得到親屬邊,設置顏色屬性為IR,權值屬性為1303;根據金 融機構披露的信息,得到利益互鎖邊,設置顏色屬性為IL,權值屬性為1304;根據稅務部門 的電子發(fā)票信息,得到單向交易邊,設置顏色屬性為TR,權值屬性為區(qū)間(0,1]內的值305。
[0119] ⑶構造可并行計算的ΤΡΙΝο;
[0120] 采用圖4(a)所示的頂點分割分區(qū)方法,得到兩個分區(qū)內部網絡相對完整的邊表分 區(qū)和兩個基于哈希分區(qū)方法的點表分區(qū)。其中,分區(qū)數量僅為2的原因是示例的微型利益關 聯網絡的頂點和邊的數量很少,在實際情況下需要產生幾千個邊表分區(qū)和點表分區(qū)。如圖4 (b)所不,分區(qū)后的點表V和邊表Ε,和一個與點表結構相同的輔助路由表,共同構成了完整 的ΤΡΙΝο。
[0121] 如圖5所示,一次完整的GS分解過程經過如下步驟:
[0122] Step 1:根據輔助路由表中每個點的所屬邊表分區(qū)Id集合,將頂點的屬性發(fā)送給它 的每個鄰接邊所在的邊表分區(qū)。
[0123] Step2: Scatter 階段;
[0124] 首先,對邊表分區(qū)的每條邊,按照用戶定義的消息發(fā)送函數,輸出一條消息,消息 格式形如:(receviver,Any),其中,receviver表示消息的目的頂點,Any表示任何類型的消 息內容。其次,按照用戶定義的消息聚集函數,對每個邊表分區(qū)產生的recevi ver相同的消 息進行分區(qū)內的局部聚集,所得結果構成了消息數據集施。
[0125] Step3: Gather 階段;
[0126] 首先,將此與¥進行協(xié)同分區(qū),使每條消息被發(fā)送到它的目的頂點所在的點表分 區(qū)。其次,按照用戶定義的消息聚集函數,再次對協(xié)同分區(qū)后的%進行聚集。最后,聚集所得 結果為與點表V結構相同的消息數據集M 2。
[0127] Step4:對跑與¥進行連接操作后,每個點根據收到的消息修改自己的屬性。
[0128] 2)TPINo針對多種聚合算子的約簡
[0129] 所述多種聚合算子主要包括法人之間互為親屬的聚合算子、同一法人實際控制多 個企業(yè)的聚合算子和董事互鎖關系的聚合算子,以及它們的擴展形式。下面分別說明每種 聚合算子的模式識別過程。
[0130] ⑴針對法人之間互為親屬的聚合算子的模式識別經過如下步驟:
[0131] Stepl:沿所有C〇l〇redge = CL的邊向邊的源點并行發(fā)送消息,得到可能匹配聚合算 子的點集Matching:
[0133]其中,{v|條件}表示所有滿足|后條件的點v的集合。(3ee £)(謂詞)表示存在屬于 邊表E的邊e,滿足后面括號內的謂詞條件。Λ表示邏輯與。
[0134] Step2:如果兩個屬于Matching的頂點之間存在Coloredge=IR邊,那么認為這兩個 頂點匹配于法人之間互為親屬的聚合算子。稱這兩個法人頂點和它們共同連接的企業(yè)頂點 構成I型最小納稅人利益關聯網絡minTPIIN-I,minTPIIN-I的點表如下:
[0136] 其中,V表示邏輯或。
[0137] Step3:在minTPIIN-I找到每個待聚合頂點在聚合之后的Vertexld,即與之連通的 其他頂點的Vertex Id和自身Vertex Id的最小值。輸出元素個數為|VminTPiN-i |哈希表 NewVidi〇
[0138] f〇r(vl : VminTPIIN-1):
[0139] for(v2:conV):
[0140] tmp=min(v2.Vertexld,vl.Vertexld)
[0141 ] NewVidi. set(vl .Vertexld) = tmp
[0142] 其中,I VminTPIN-1 I表不集合VminTPIIN-1的基數,即點表VminTPIIN-1的記錄個數。 NewVidi · set(v · Vertexld)表不為哈希表NewVidi的v · Vertexld鍵賦值,conV是所有在 minTPIIN-I中與vl連通的點集。
[0143] ⑵針對同一法人實際控制多個企業(yè)的聚合算子的模式識別經過如下步驟:
[0144] Step 1:沿所有Co 1 oredge = CL的邊向邊的終點并行發(fā)送消息,消息內容為自己的 Vertexld,得到可能匹配聚合算子的點集Matching
[0145] M^eMng={v\(3eEE)(tVert&:Kld=e.dstM../\a.Go]:meiige:"CL"')}
[0146] 注意此式中,判定條件為邊的終點Id,而不再是源點Id。
[0147]所得包含全部消息的哈希表為Message
[0148] for(e:E):
[0149] if(e · Coloredge= = "CL")
[0150] Message .set(e.dstld)=e. srcld
[0151 ]其中,Message .set(e.dstld) = e. srcld)表不向 Vertexld為e · dstld的頂點發(fā)送 消息,消息內容為e . srcid,也就是這條顏色為CL的邊的源點Id。雙等號(==)表示判斷左 邊與右邊是否相等,等價于集合表達式中的等號=,條件出現在if語句中所以使用了雙等 號。
[0152] Step2:如果兩個屬于Matching的頂點收到消息中的Vertexld相同,說明這兩個頂 點由同一法人實際控制,匹配于同一法人實際控制多個企業(yè)的聚合算子。這個法人頂點和 他實際控制的多個企業(yè)頂點構成Π 型最小納稅人利益關聯網絡π?ηΤΡΙΙΝ-ΙΚπ?ηΤΡΙΙΝ-ΙΙ 點表如下:
[0154] Step3:在minTPIIN-II找到每個待聚合頂點在聚合之后的Vertexld,即Message消 息與之相同的其他頂點的Vertexld和自身Vertexld的最小值。輸出元素個數為|VminTPiiN-π 哈希表NewVidn。
[0155] f〇r(vl : VminTPIIN-Il):
[0156] for(v2:mesEqV):
[0157] tmp=min(v2.Vertexld