林俊 方寬
(廣東電網(wǎng)有限責任公司 廣州 510030)
審計對象的信息化展使計算機輔助審計成為必然,而數(shù)據(jù)查詢抽樣、統(tǒng)計分析等[1]常用方法多是把手工的審計流程計算機化,沒有充分利用先進的信息技術(shù),不能提取隱藏的或未知的信息。隨著企業(yè)業(yè)務(wù)數(shù)據(jù)量的增大,被審計數(shù)據(jù)呈海量增長,已建立起TB甚至PB級的大數(shù)據(jù)庫[1]。巨大的審計數(shù)據(jù)量,僅靠先驗知識和傳統(tǒng)經(jīng)驗流程難以充分發(fā)揮大數(shù)據(jù)優(yōu)勢。因此探索適用于審計大數(shù)據(jù)的新方法來提煉審計證據(jù)具有重要的理論和應(yīng)用價值。
模糊匹配通過對不同數(shù)據(jù)源中的數(shù)據(jù)進行相似性比較,能夠搜索出不同數(shù)據(jù)源中相似重復(fù)實體[2]。盡管模糊匹配應(yīng)用較多[3],如Monge[4]等基于模糊匹配對同一數(shù)據(jù)源中的相似重復(fù)記錄進行清理,張家?。?]等在字母和音字轉(zhuǎn)換基礎(chǔ)上對維吾爾語人名進行模糊匹配和識別,孫怡帆[6]等利用模糊匹配技術(shù)揭示網(wǎng)絡(luò)內(nèi)在的社區(qū)結(jié)構(gòu),吳海濤[7]等基于模糊匹配策略實現(xiàn)中文地址編碼的自動識別。但模糊匹配直接應(yīng)用于審計中的研究不常見[8],而在大數(shù)據(jù)審計環(huán)境下,數(shù)據(jù)源分散,不同企業(yè)的被審計數(shù)據(jù)相關(guān)性不大,因而不同數(shù)據(jù)源不應(yīng)該出現(xiàn)相似重復(fù)的審計數(shù)據(jù),但當存在相似數(shù)據(jù)時,如數(shù)據(jù)源A與B中低保發(fā)放統(tǒng)計數(shù)據(jù)基本一致時,則很可能是存在舞弊的可疑數(shù)據(jù),此時通過模糊匹配技術(shù)可以有效地發(fā)現(xiàn)這些可疑數(shù)據(jù),文獻[9]中對基于模糊匹配的審計證據(jù)發(fā)現(xiàn)進行了初步探討,但其并未考慮大規(guī)模數(shù)據(jù)對匹配速率的限制。
為充分發(fā)揮大數(shù)據(jù)的優(yōu)勢,提出一種基于外存索引快速模糊匹配的大數(shù)據(jù)審計證據(jù)獲取方法,記為 EMI(External Memory Inverted Index,EMI)算法,如圖1所示,算法分為大數(shù)據(jù)源中數(shù)據(jù)表相似公共字段搜索和公共字段內(nèi)數(shù)據(jù)相似性檢測兩部分,首先針對數(shù)據(jù)表相似公共字段需要在整個原始審計大數(shù)據(jù)中搜索的特性,采用基于外存倒排索引快速模糊匹配技術(shù)以滿足搜索時間和效率的要求,然后在公共字段內(nèi)進一步對數(shù)據(jù)進行相似性檢測,發(fā)現(xiàn)相似重復(fù)可疑數(shù)據(jù),借助審計人員的延伸調(diào)查,最終獲取審計證據(jù)。實驗結(jié)果驗證了算法在大數(shù)據(jù)審計證據(jù)獲取上的有效性。
圖1 基于模糊匹配的審計證據(jù)獲取流程
模糊匹配的核心是有效的相似度計算,編輯距離是指由待匹配字符串變化到目標字符串所需最少的編輯操作次數(shù),廣泛應(yīng)用于文本信息檢索領(lǐng)域的相似度計算[10~12]。大數(shù)據(jù)下對編輯距離的改進大多基于q-gram的內(nèi)存倒排索引[13],先將數(shù)據(jù)集轉(zhuǎn)換為q-gram集合,由gram對應(yīng)的倒排表組成倒排索引,然后經(jīng)倒排表讀取和相似性判斷完成模糊匹配過程。但基于內(nèi)存的倒排索引當面對大規(guī)模審計數(shù)據(jù)時,無法在內(nèi)存中構(gòu)建倒排索引。Behm[14]通過在外存儲器上建立q-gram倒排索引并在內(nèi)存中保存索引地址,在倒排表自適應(yīng)選擇基礎(chǔ)上實現(xiàn)大數(shù)據(jù)下字符串的快速相似匹配(記為Behm算法)。
為獲取更好的匹配效率,在Behm算法基礎(chǔ)上通過引入地址參數(shù)和非對稱搜索模式,減少外存中倒排表的讀取數(shù)量,待匹配的候選結(jié)果中元素數(shù),從而減少匹配階段的編輯距離計算代價,提高相似度計算效率。
給定數(shù)據(jù)集∑,s∈∑,設(shè)字符α,β?∑,則在s前后各加上q-1個α和β,則新字符串中長度為q的子串組成s的q-gram集Gs(s),如圖2所示,將擁有相同q-gram子串的ID按出現(xiàn)順序保存到該子串對應(yīng)的列表中,即為該子串的倒排表,而所有倒排表組成∑的倒排索引。
圖2 數(shù)據(jù)集及其外存索引
EMI倒排索引結(jié)構(gòu)由內(nèi)存Gram樹和外存索引組成,如圖3所示。Gram樹每個葉節(jié)點保存一個q-gram及該q-gram對應(yīng)的倒排表在外存中的存儲地址。
圖3 EMI外存索引結(jié)構(gòu)
為提高匹配效率,EMI算法在索引結(jié)構(gòu)中加入長度和位置參數(shù),以減少參與匹配的候選q-gram倒排表數(shù),即在計算字符串s的q-gram集合Gs(s)時,在每個元素中加入s的長度和q-gram的位置,
式中,gi為字符串s的第i個q-gram,(0≤i≤|s|+q-2)。
由于位置參數(shù)加入剔除,字符相似、長度和位置相鄰的q-gram可以同時讀取到內(nèi)存中,因此,EMI索引結(jié)構(gòu)將這樣的倒排表存儲在相鄰的外存磁盤中,可以將整個外存儲塊同時讀入內(nèi)。
與Behm倒排索引方式不同,SMI倒排表中直接存放相關(guān)字符串數(shù)據(jù)的存儲地址,而不是其ID,這樣避免了Behm需要在內(nèi)存中開辟維護ID到磁盤地址映射的額外開銷,而導(dǎo)致在大規(guī)模的數(shù)據(jù)集時,內(nèi)存的額外消耗量隨數(shù)據(jù)量急劇增加。EMI倒排表采用8B的字符串地址而不是4B的ID,在增加磁盤空間的微小代價下,極大節(jié)省大數(shù)據(jù)下的內(nèi)存開銷,使更多的內(nèi)存用于后續(xù)的字符串模糊匹配處理。
EMI索引中長度分段參數(shù)llen和位置分段參數(shù)lpos代替原字符串的長度和位置計算,從而將長度和位置相鄰的q-gram進行整合,進一步減少倒排表個數(shù)及Gram樹占用的內(nèi)存。例如,當取llen=lpos=20 時 ,(ic,35,30)節(jié) 點 被 整 合 到(ic,35/20,30/20)=(ic,1,1)中。EMI外存索引的構(gòu)建采用文獻[15]方法,首先,計算集合∑中每個的Gs(s)EMI,并將s的磁盤地址寫入到Gs(s)EMI對應(yīng)的倒排表中,如果數(shù)據(jù)量過大,內(nèi)存緩沖區(qū)被占滿,則將生成的Gram樹寫入磁盤臨時文件(大數(shù)據(jù)時,通常需要臨時文件的幫助)中,重復(fù)構(gòu)建直到處理完∑中所有元素。其次,將每個g∈Gs(s)EMI對應(yīng)的臨時文件中的倒排表按生成順序進行合并,生成最終倒排索引,同時將最終倒排表地址插入到Gram樹節(jié)點。
EMI倒排索引模糊匹配,采用非對稱的搜索模式(子程序2)讀取倒排表。但非對稱模式需要滿足其待匹配字符串的s0的匹配子集GsSel(s)必須在位置上沒有重疊部分[16],即目標函數(shù)J0最小,J0減少了保留下來的候選結(jié)果數(shù)[17]。
式中|L(g)|為g∈Gs0(s)對應(yīng)的倒排表長度,并且對于給定的任意 g1,g2∈GsSel(s),有 |P(g1)-P(g2)|≥q,P(g)為g的位置信息。子程序1描述了s0的子集GsSel(s)選擇過程。
子程序1在計算子集時,采用遞歸方法:當Gs(s)EMI在Ps、Pe之間元素數(shù)少于q時,算法以代價最小的作為返回值(行④⑤),但當Ps、Pe之間元素數(shù)多于q時,則遞歸的通過式(3)計算子集。
表1 子程序1非對稱模式gram子集選擇方法Gs0_Sel(s)偽代碼
程序中需要對新加入的元素需判斷其對后續(xù)模糊匹配性能是否有利。設(shè)候選集中待評價的一個gram的代價為Cverify,新讀取的倒排表L長度為|L|,代價為CL,當前Lini中計算為τ的倒排表數(shù)為nτ,由于所有元素被選為下一個候選集元素的概率是一致的,則讀取L后,需剔除的Lini中倒排表數(shù)為n=nτ×(1- | L | |S|)由此導(dǎo)致在模糊匹配階段,結(jié)果集的代價降低C=n×Cverify而讀取L的代價為
式中a為磁盤數(shù)據(jù)傳輸速率,b為數(shù)據(jù)讀取速度,通過數(shù)據(jù)測得a=10-4,b=10。在性能判斷過程中,一次隨機I/O讀取代價為5ms~10ms,因此,如果C>CL,則讀入L。
子程序2實現(xiàn)了基于非對稱模式的快速模糊匹配,在提取到s0的子集GsSel(s)后,由于當某個地址在前L個倒排表中出現(xiàn)T次,則其在L-T+1個倒排表中至少出現(xiàn)過一次,因此提取前 p個元素的倒排表作為最小候選集Lini;同時統(tǒng)計Lini中元素出現(xiàn)次數(shù)。然后讀入下一個元素對應(yīng)的倒排表,并判斷其對匹配性能是否有利,如果有利,則合并到Lini中,在該過程中判斷并剔除Lini中現(xiàn)出次數(shù)過少的元素,因為這些元素與s0共享的gram不足以滿足相似度關(guān)系[14],故而不是匹配結(jié)果。最后,對Lini中元素地址對應(yīng)字符串進行相似性驗證,從而返回滿足預(yù)定閾值的模糊匹配結(jié)果。
表2 子程序2:基于外存索引的字符串模糊匹配
搜索到相似公共字段后,還需要對其具體內(nèi)容進一步模糊匹配,以最終判斷兩數(shù)據(jù)源是否為相似可疑數(shù)據(jù),其數(shù)據(jù)模糊匹配采用如下策略。
1)字符型數(shù)據(jù)匹配
字符型數(shù)據(jù)采用編輯距離算法進行相似度計算。同時采用表1的編輯距離與相似度對應(yīng)關(guān)系,對整數(shù)型編輯距離進行折算,表3中關(guān)系也可根據(jù)數(shù)據(jù)具體分析進行調(diào)整。
表3 編輯距離與相似度對應(yīng)關(guān)系表
2)布爾型數(shù)據(jù)匹配
如果布爾型數(shù)據(jù)相等,則相似度取0,反之相似度取1。
3)數(shù)值型數(shù)據(jù)匹配
數(shù)值型數(shù)據(jù),采用式(5)方法計算相似度:
實驗首先在title、author數(shù)據(jù)集上與Behm算法進行性能比較,其次將算法就用于實測數(shù)據(jù),驗證大數(shù)據(jù)審計證據(jù)獲取的有效性。實驗計算機配置為:intel core I-2540M CPU,主頻為 2.6GHz,7200轉(zhuǎn)/s機械硬盤,頁為8KB。Title中字符數(shù)為2078174,而Author中字符串數(shù)1122253。從中各隨機選擇100個字符串作為待模糊匹配字符串,編輯距離閾值分別為 θtitle={1,2,4,8,16}和 θauthor={1,2,4,8}每次測試后清空磁盤緩存。
采用4種方法進行實驗比較:原始Behm算法、在Behm算法中加入非對稱gram模式(記為Behm-N),EMI索引結(jié)構(gòu)但未采用非對稱gram模式(記為EMI-N)以及本文算法。
圖4和圖5所示為算法相關(guān)參數(shù)結(jié)果,取50次重復(fù)實驗的平均值,圖4可見,兩個數(shù)據(jù)集上相同條件下,Behm-N與EMI算法分別比Behn和EMI-N算法讀取的倒排表數(shù)要少,這主要因為非對稱模式通過Gs0_Sel(s)程序自適應(yīng)地從Gs(s)EMI集中選擇一部分相關(guān)gram,從而減少倒排表的讀取個數(shù),說明非對稱模式能有效減少倒排表讀取數(shù)。圖5(a)實驗結(jié)果可見,EMI算法生成的候選集元素數(shù)最小,EMI-N算法次之,主要是因為EMI算法增加了位置參數(shù),通過位置參數(shù)的約束,僅保留滿足位置要求的gram,圖5(b)author數(shù)據(jù)集實驗結(jié)果進一步驗證了位置參數(shù)的有效性。
圖4 算法讀取倒排表數(shù)比較結(jié)果
圖5 算法生成候選集元素數(shù)比較結(jié)果
從實驗結(jié)果整體來看,文中EMI算法通過位置參數(shù)和非對稱Gram模式的引入,從讀取倒排表數(shù)和生成的候選集兩個方面減少了數(shù)據(jù)量,一方面減少了讀取外存數(shù)據(jù)產(chǎn)生的消耗,另一方面也減少后續(xù)字符模糊匹配的時間和內(nèi)存開銷,從而為提高整個字符模糊匹配的效率奠定基礎(chǔ),以滿足審計大數(shù)據(jù)處理速率的要求。
與4.1節(jié)實驗一相似,本節(jié)在Title和Author數(shù)據(jù)集上,測試使用實驗一中的四種算法進行字符串模糊匹配的運行時間比較,實驗結(jié)果如圖6所示,算法依然對每個字符串運行50并計算其平均值。
從圖中可以看出,隨編輯距離的增大,四種算法的運行時間逐漸增大,而三種比較算法的運行時間增加急劇,EMI算法增加的時間并不明顯,主要是因為文中算法通過位置參數(shù)和非對稱模式的使用,使得在外存倒排表讀取時僅讀取與當前字符模糊匹配相關(guān)性最大且位于位置約束范圍內(nèi)的倒排表,從而使外存倒排表數(shù)及生成的候選集增長得到較好的控制(見圖4、5所示),使總體模糊匹配時間變化不大。
從圖6(a)匹配時間比較結(jié)果可以看出,Behm運行時間最長,而EMI算法運行時間最小,在編輯距離較小時,為Behm算法時間的50%左右,而在編輯距離較大時,僅為其20%~30%,而圖6(b)所示Author集下,EMI算法在各個編輯距離下為Behm算法運行時間的35%左右,實驗結(jié)果驗證EMI算法在處理大數(shù)據(jù)模糊匹配上的運行時間優(yōu)勢。
圖6 字符串模糊匹配運行時間比較
為了定量分析文中方法的審計風(fēng)險,以查全率R(Recall)和查準率P(Precision)為評價依據(jù),通過網(wǎng)絡(luò)爬行技術(shù)選取2008-2017年度1079家滬市上市公司在互聯(lián)網(wǎng)公開的財報數(shù)據(jù)作為研究樣本,對數(shù)據(jù)進行預(yù)處理后,形成有效實例數(shù)為175690條,以“營業(yè)利潤增長率”和“稅務(wù)登記號”作為模糊匹配的公共字段,實驗結(jié)果如圖7所示。
從圖中可以看出,設(shè)置不同的公共字段閾值,數(shù)據(jù)的模糊匹配結(jié)果不同,當閾值較低時,查出的相似數(shù)據(jù)較全,但準確率較低會;而當閾值較高時,查出的相似數(shù)據(jù)會有遺漏,但準確率較高;
當采用較高的查全率時,公共字段搜索的較全,審計風(fēng)險相對較少,但此時需要審計人員更多參與分析確認,降低了審計的效率,而當查準率較高時,相應(yīng)的審計風(fēng)險也增加。
圖7 不同公共字段閾值對應(yīng)查全率與查準率
因此在實際數(shù)據(jù)審計處理時,審計人員應(yīng)根據(jù)風(fēng)險水平所需的查全率和查準率,設(shè)置合理的公共字段閾值,以控制審計檢查風(fēng)險。通常情況下,可以設(shè)置一個高閾值和一個低閾值,高閾值下,高查準率可以快速確定可疑審計證據(jù),然后通過低閾值擴大搜索范圍,控制審計風(fēng)險。
從圖中可以看出,對于實驗中的真實審計數(shù)據(jù),當公共字段閾值取75%時,可以取得查全率和查準率的較好折中,為此采用65%和80%兩個閾值進行模糊匹配審計證據(jù)獲取,此時,可得到39家存在相似重復(fù)可疑數(shù)據(jù)的公司,進一步通過證監(jiān)會、上交所等機構(gòu)公開的處罰信息對實驗聚類疑點小簇進行驗證,發(fā)現(xiàn)在發(fā)現(xiàn)的39家可疑公司中,不少收到了上海交易所、證監(jiān)會等的整改通知甚至是行政處罰,從而驗證了本文算法對審計數(shù)據(jù)疑點發(fā)現(xiàn)的有效性。
結(jié)合三組實驗可以看出,文中基于模糊匹配的大數(shù)據(jù)審計方法在保證審計數(shù)據(jù)獲取有效性的基礎(chǔ)上,減少了數(shù)據(jù)處理的運行時間,提高了數(shù)據(jù)處理的效率,保證了大數(shù)據(jù)下審計的速率要求。另外,經(jīng)模糊匹配發(fā)現(xiàn)的疑點公司并不都存在問題,其結(jié)果表明這些公司出現(xiàn)問題的概率更高,但最終的疑點確認需要審計人員完成。
文中針對大數(shù)據(jù)審計面臨的運行效率和審計證據(jù)有效獲取問題,在分析得到不同數(shù)據(jù)源中的相似重新審計數(shù)據(jù)可能為舞弊數(shù)據(jù)基礎(chǔ)上,提出一種基于模糊匹配的審計證據(jù)獲取方法,首先通過引入位置參數(shù)和非對稱查詢模式改進外存倒排索引結(jié)構(gòu),自適應(yīng)地選擇待匹配數(shù)據(jù),以控制數(shù)據(jù)讀取量,實現(xiàn)審計大數(shù)據(jù)公共字段的快速模糊匹配,保證了算法在大數(shù)據(jù)下的運行效率,其次在公共字段匹配基礎(chǔ)上,對字段內(nèi)數(shù)據(jù)進一步進行相似性判斷,從而發(fā)現(xiàn)相似審計舞弊數(shù)據(jù),獲得審計證據(jù)。實驗結(jié)果表明,算法在保證審計證據(jù)有效獲取的基礎(chǔ)上,減少了數(shù)據(jù)處理的運行時間,提高了數(shù)據(jù)處理的效率,滿足審計大數(shù)據(jù)下審計證據(jù)獲取的要求。
[1]張曉偉,謝強,陳偉.基于劃分和孤立點檢測的審計證據(jù)獲取研究[J].計算機應(yīng)用研究,2009,26(7):2495-2498.ZHANG Xiaowei,XIE Qiang,CHEN Wei,Study on Au?dit Evidence Gathering based on Partition and Outlier De?tection[J].Application Research of Computers.2009,26(7):2495-2498.
[2]李艷玲,顏永紅.中文口語理解中關(guān)鍵語義類模糊匹配方法研究[J].小型微型計算機系統(tǒng),2014,35(9):2182-2186.LI Yanling,YAN Yonghong.Research for Fuzzy Matching Algorithm of Key Semantic Class in Chinese Spoken lan?guage Understanding[J].Journal of Chinese Computer Systems,2014,35(9):2182-2186.
[3]張娜,張劍.一個快速的字符串模式匹配改進算法[J].微電子學(xué)與計算機,2007,24(4):102-105.
[4]Monge A E.Matching algorithm within a duplicate detec?tion system[J].IEEE Data Engineering Bulletin.2000,23(4):14-20.
[5]熱合木·馬合木提,于斯音·于蘇普,張家俊,等.基于模糊匹配與音字轉(zhuǎn)換的維吾爾語人名識別[J].清華大學(xué)學(xué)報(自然科學(xué)版),2017,57(2):188-196.Abdurahim Mahmoud,Hussein Yusuf,ZHANG Jiajun,et al.Name recognition in the Uyghur language based on Fuzzy Matching and Syllable-character Conversion[J].Journal of Tsinghua University(Science and Technology),2017,57(2):188-196.
[6]孫怡帆,李賽.基于相似度的微博社交網(wǎng)絡(luò)的社區(qū)發(fā)現(xiàn)方法[J].計算機研究與發(fā)展,2014,51(12):2797-2807.SUN Yifan,LI Sai.Similarity based Community Detection in Social Network of Miroblog[J].journal of Computer Re?search and development.2014,51(12):2797-2807.
[7]吳海濤,俞立,張貴軍.基于模糊匹配策略的城市中文地址編碼系統(tǒng)[J].計算機工程,2011,37(2):194-199.WU Haitao,YU Li,ZHANG Guijun.Chinese City geocod?ing System Based on Fuzzy Matching Strategy[J].Comput?er Engineering,2011,37(2):194-199.
[8]陳偉,劉思峰,邱廣華.計算機審計中數(shù)據(jù)處理新方法探討[J].審計與經(jīng)濟研究,2006,21(1):37-39.CHEN Wei,LIU Sifeng,QIU Guanghua.New Approaches to Data Processing Used in IT Audit[J].Audit&Enono?my Research,2006,21(1):37-39.
[9]陳偉.大數(shù)據(jù)環(huán)境下基于模糊匹配的審計方法[J].中國注冊會計師,2016(11):84-88.CHEN Wei.Audit Method Research based on Fuzzy Matching in Large Data Environment[J].Chinese Certi?fied Public Accountants,2016(11):84-88.
[10]秦佳,楊建峰,薛彬,等.基于向量相似度匹配準則的圖像配準與拼接[J].微電子學(xué)與計算機,2013,30(6):22-25.QIN Jia,YANG Jianfeng,Xue Bin,et al.Image Regis?tration and Mosaic based on Vector Similarity Matching Principle[J].Microelectronics&Computer,2013,30(6):22-25.
[11]趙亞慧.基于編輯距離的中文機構(gòu)名簡稱檢索方法研究[J].內(nèi)蒙古科技與經(jīng)濟,2010(7):69-70.ZHAO Yahui.Study on Retrieval Method of Chinese In?stitutional Name Abbreviations based on Edit Distance[J].Inner Mongolia Science Technology and Economy,2010(7):69-70.
[12]姜華,韓安琪,王美佳,等.基于改進編輯距離的字符串相似度求解算法[J].計算機工程,2014,40(1):222-227.JIANG Hua,HAN Anqi,WANG Meijia,et al.Solution Algorithm of String Similarity based on improved Leven?shtein Distance[J].Computer Engineering,2014,40(1):222-227.
[13]孫德才,王曉霞.一種支持多種子近似串匹配的q-gram索引[J].計算機科學(xué),2014,41(9):279-284.SUN Decai,WANG Xiaoxia.Q-gram Index for Approxi?mate String Matching with Multi-seeds[J].Computer Science,2014,41(9):279-284.
[14]Behm A,Li chen,et al.answering approximate string queries on large data sets using external memory[C]//IEEE International Conference on Data Engineering.2011,83(1):888-899.
[15]Zobel,Moffat A.Inverted files for text search engines[J].ACM Computer Survey,2006,38(2):6-20.
[16]劉慧婷,黃厚柱,劉志中,等.基于分割的字符串相似性查找算法[J/OL].計算機科學(xué)與探索,2016:1-17.LIU Huiting,HUANG Houzhu,LIU Zhizhong,et al.Partition based Algorithms for String Similarity Search[J].Journal of Frontiers of Computer Science and Tech?nology,2016:1-17.
[17]王金寶,高宏,李建中,等.外存中高效的字符串相似性查詢處理[J].計算機研究與發(fā)展,2015,52(3)738-748.WANG Jinbao,GAO Hong,LI Jianzhong,et al.Process?ing String Similarity Search in External Memory Efficient?ly[J].Journal of Computer Research and Development,2015,52(3)738-748.