郭寧,龔致富
(河北北方學(xué)院附屬第一醫(yī)院,河北張家口 075000)
隨著我國(guó)醫(yī)療行業(yè)的不斷改革,醫(yī)療資源的有效整合得到了國(guó)家的高度重視。占據(jù)資源較多的醫(yī)院機(jī)構(gòu),由于各類數(shù)據(jù)的規(guī)模過(guò)于龐大,出現(xiàn)了不同程度的財(cái)務(wù)信息管理問(wèn)題,已無(wú)法滿足行業(yè)發(fā)展的需求。
隨著加密貨幣技術(shù)在供應(yīng)鏈、醫(yī)療保健與數(shù)字身份等不同領(lǐng)域的大規(guī)模部署,區(qū)塊鏈和分布式賬本技術(shù)近年來(lái)呈現(xiàn)出了快速發(fā)展的趨勢(shì),其是一種安全、有效的數(shù)據(jù)存儲(chǔ)方式。文中提出了一種基于區(qū)塊鏈特征識(shí)別的框架與OpenAPI 的標(biāo)準(zhǔn)程序接口,允許基于不同策略的數(shù)據(jù)進(jìn)行并行管理,從而實(shí)現(xiàn)對(duì)醫(yī)院財(cái)務(wù)數(shù)據(jù)的時(shí)效性檢測(cè)。為了對(duì)財(cái)務(wù)數(shù)據(jù)進(jìn)行快速、準(zhǔn)確的分析,該文引入了數(shù)據(jù)挖掘算法,同時(shí)設(shè)計(jì)檢測(cè)模型,以實(shí)現(xiàn)對(duì)異常財(cái)務(wù)數(shù)據(jù)的高效檢測(cè)。
為了實(shí)現(xiàn)對(duì)財(cái)務(wù)數(shù)據(jù)的準(zhǔn)確分析,文中設(shè)計(jì)了基于區(qū)塊鏈的財(cái)務(wù)模型,并建立了財(cái)務(wù)模型的特征識(shí)別方法。
圖1 為所設(shè)計(jì)模型框架的總體結(jié)構(gòu),該模型框架基于公證互操作性方法的服務(wù)器端組件,支持區(qū)塊鏈的客戶端向框架發(fā)送交易,并支持將交易轉(zhuǎn)換為所需的區(qū)塊鏈[1]。
圖1 模型框架
在圖1 所示的框架中,API 接口是與框架交互的入口點(diǎn),其為去中心化應(yīng)用程序提供一個(gè)接口以連接一個(gè)或多個(gè)鏈[2];區(qū)塊成本監(jiān)控模塊對(duì)選定的區(qū)塊鏈執(zhí)行定期查詢,以檢索交易費(fèi)用和費(fèi)率等數(shù)據(jù)[3];分析求解器根據(jù)預(yù)定義的成本閾值、預(yù)選鏈和受監(jiān)控的區(qū)塊鏈數(shù)據(jù)定期計(jì)算使用場(chǎng)景[4]。
該框架的一個(gè)重要特點(diǎn)就是OpenAPI 模塊,其可將一個(gè)或多個(gè)事務(wù)輸入創(chuàng)建到目標(biāo)區(qū)塊鏈上的可讀事務(wù)中[5]?;诓呗缘墓芾砟K包括PDP 與PEP算法,此模塊負(fù)責(zé)根據(jù)預(yù)定義的參數(shù)決定操作,并強(qiáng)制執(zhí)行到OpenAPI 調(diào)用中。
框架實(shí)際運(yùn)營(yíng)時(shí),第一步涉及到的是用戶信息、支持的區(qū)塊鏈和策略的配置。一個(gè)用戶可以有1~N個(gè)與其區(qū)塊鏈賬戶相關(guān)聯(lián)的賬戶,能預(yù)先定義策略以優(yōu)化成本或性能,策略定義的表達(dá)式如下所示:
其中,b是區(qū)塊鏈,c是與交易費(fèi)用相關(guān)的成本[6]。
若需要優(yōu)化成本,即最小化與交易費(fèi)用相關(guān)的成本數(shù)據(jù),則需該系統(tǒng)決定如何采用不同的區(qū)塊鏈來(lái)存儲(chǔ)優(yōu)化成本數(shù)據(jù),或者通過(guò)設(shè)定閾值以限制相應(yīng)的最大成本[7]。文中使用MAX_COST 閾值來(lái)定義目標(biāo)金額,MAX_TIME 定義所有交易挖掘的最大等待時(shí)間。若優(yōu)先考慮數(shù)據(jù)處理的性能,則應(yīng)將該框架配置為盡快存儲(chǔ)交易,且允許增加交易費(fèi)用。
為了保證財(cái)務(wù)數(shù)據(jù)分析框架的穩(wěn)定性,此次所設(shè)計(jì)的安全策略優(yōu)先于成本和性能策略[8]。保持?jǐn)?shù)據(jù)機(jī)密性可以防止醫(yī)院將特定數(shù)據(jù)存儲(chǔ)在公共區(qū)塊鏈上,該模型通過(guò)為特定操作聲明私有區(qū)塊鏈來(lái)實(shí)現(xiàn)。具體實(shí)現(xiàn)方法為:在可修改區(qū)塊鏈集相關(guān)聯(lián)的數(shù)據(jù)類型上定義允許的操作(例如寫入、讀取、遷移、估計(jì)),以表示每個(gè)操作的一組允許鏈ID。根據(jù)策略定義,PDP 算法將決定不同的策略,以實(shí)現(xiàn)針對(duì)OpenAPI請(qǐng)求的不同區(qū)塊鏈和操作類型的正常運(yùn)行。
一旦系統(tǒng)配置了策略,區(qū)塊鏈成本監(jiān)控器就會(huì)自動(dòng)計(jì)算來(lái)自可用區(qū)塊鏈的成本和等待時(shí)間信息,從而實(shí)現(xiàn)以歷史交易數(shù)據(jù)作為OpenAPI 的調(diào)用響應(yīng)來(lái)獲取平均交易成本,進(jìn)一步估計(jì)出單個(gè)交易的平均等待時(shí)間成本。公共API 用于查詢費(fèi)用信息,一旦收集到有關(guān)成本和時(shí)間的信息,PEP 算法會(huì)根據(jù)當(dāng)前策略將操作請(qǐng)求轉(zhuǎn)發(fā)到OpenAPI 模塊。
根據(jù)定義的用戶策略,系統(tǒng)會(huì)選擇最合適的區(qū)塊鏈來(lái)實(shí)現(xiàn)存儲(chǔ)和檢索數(shù)據(jù)。
OpenAPI 執(zhí)行存儲(chǔ)函數(shù)的工作流程如圖2 所示。API 是OpenAPI 的入口點(diǎn),一旦其接收到store(·)函數(shù),便會(huì)根據(jù)選擇的區(qū)塊鏈將請(qǐng)求委托給相應(yīng)的適配器使用BC_ID 值。因此每個(gè)區(qū)塊鏈均需要一個(gè)區(qū)塊鏈適配器,實(shí)現(xiàn)創(chuàng)建、簽名和發(fā)送交易(TX)的特定方法,而每個(gè)區(qū)塊鏈適配器的核心是存儲(chǔ)和檢索方法。區(qū)塊鏈適配器存儲(chǔ)基于正確的區(qū)塊鏈模板創(chuàng)建交易并對(duì)輸入數(shù)據(jù)進(jìn)行編碼,使用私鑰(從憑證數(shù)據(jù)庫(kù)中檢索)簽署此交易,并將其作為原始交易廣播到區(qū)塊鏈中的多個(gè)節(jié)點(diǎn)。廣播是通過(guò)定義區(qū)塊鏈遠(yuǎn)程過(guò)程來(lái)調(diào)用(RPC)服務(wù)器執(zhí)行的,且在交易哈希返回給用戶之前會(huì)將交易存儲(chǔ)在TX 數(shù)據(jù)庫(kù)中。區(qū)塊鏈適配器的檢索模塊使用交易哈希作為搜索參數(shù)在區(qū)塊鏈中搜索交易信息,從交易信息中提取數(shù)據(jù)并將恢復(fù)的文本消息返回給用戶。
圖2 OpenAPI工作流程
為了保證此次數(shù)據(jù)挖掘的真實(shí)有效性,文中使用了真實(shí)的大型數(shù)據(jù)集特征參數(shù)進(jìn)行數(shù)據(jù)挖掘平臺(tái)的設(shè)計(jì)。分析的主要目的為從給定的數(shù)據(jù)集中過(guò)濾屬性,以便為高效的數(shù)據(jù)分析選擇最相關(guān)的屬性[9]。
首先對(duì)數(shù)據(jù)庫(kù)進(jìn)行預(yù)處理,此次使用兩種方法來(lái)執(zhí)行數(shù)據(jù)增強(qiáng)以避免在訓(xùn)練模型期間過(guò)度擬合[10]。當(dāng)卷積網(wǎng)絡(luò)提取特征時(shí),使用Dropout技術(shù);其次,使用滑動(dòng)窗口將傳感器數(shù)據(jù)分解為各種子序列;然后將其用作輸入數(shù)據(jù),其特征隨后由CNN 提取[11]。
定義數(shù)據(jù)X是一個(gè)包含M個(gè)相關(guān)機(jī)構(gòu)、K個(gè)財(cái)務(wù)記錄和時(shí)間的三維數(shù)據(jù)矩陣,其第q個(gè)財(cái)務(wù)記錄的子矩陣形式如下所示:
其中,np是財(cái)務(wù)記錄數(shù)據(jù)長(zhǎng)度。當(dāng)使用滑動(dòng)窗口w獲取第q個(gè)財(cái)務(wù)記錄Xq的子序列時(shí),首先選擇np-w+1 個(gè)子序列si(i=1,…,np-w+1),再通過(guò)滑動(dòng)窗口從長(zhǎng)度為np的傳感器數(shù)據(jù)Xq中完成獲取?;昂瘮?shù)如下所示:
經(jīng)過(guò)預(yù)處理后,異常數(shù)據(jù)檢測(cè)診斷層在兩個(gè)堆疊的卷積池化層之后構(gòu)建[12]。所設(shè)計(jì)的數(shù)據(jù)挖掘平臺(tái)包含一個(gè)全連接的神經(jīng)網(wǎng)絡(luò),在第二個(gè)池化層后分配了一個(gè)扁平層、一個(gè)隱藏層和一個(gè)神經(jīng)元節(jié)點(diǎn)[13]。激活函數(shù)用于判定財(cái)務(wù)記錄故障,以篩選整個(gè)數(shù)據(jù)集的重要信息。
在診斷層,使用MTS-CNN 模型訓(xùn)練得到一組最優(yōu)權(quán)重。該權(quán)重表示傳感器之間的關(guān)系,并與激活層結(jié)合使用[14]?;诩せ顚拥奶卣?,系統(tǒng)可以識(shí)別并篩除具有負(fù)權(quán)重的財(cái)務(wù)記錄,同時(shí)設(shè)置其為零輸出。通過(guò)進(jìn)一步觀察正常和異常財(cái)務(wù)記錄的輸出值,可以設(shè)置一個(gè)閾值來(lái)確定出數(shù)據(jù)X的某個(gè)屬性所表征的異常數(shù)據(jù)最多[15]。在診斷層之后,架構(gòu)了兩個(gè)具有全連接網(wǎng)絡(luò)的隱藏層用于預(yù)測(cè)輸出狀態(tài)(即故障或正常)[16]。在輸出層,使用Softmax 函數(shù)進(jìn)行分類預(yù)測(cè),其表達(dá)式如下:
其中,C是輸出層中考慮類的數(shù)量。
訓(xùn)練神經(jīng)網(wǎng)絡(luò)需要使用前向傳播和反向傳播,最終通過(guò)前向傳播生成輸出值。異常檢測(cè)的本質(zhì)是一個(gè)分類問(wèn)題,若使用平方誤差函數(shù)作為損失函數(shù)來(lái)調(diào)整每個(gè)神經(jīng)元的權(quán)重可能會(huì)過(guò)于平滑,導(dǎo)致網(wǎng)絡(luò)的收斂性變差,文中設(shè)計(jì)使用交叉熵函數(shù)(CE)作為損失函數(shù):
其中,CEp是第p個(gè)數(shù)據(jù)的交叉熵值,Lr是二進(jìn)制值。網(wǎng)絡(luò)在訓(xùn)練時(shí),只有正常數(shù)據(jù)的Softmax 函數(shù)值會(huì)被計(jì)算。
數(shù)據(jù)挖掘模型的權(quán)重可以基于損失函數(shù)CE 進(jìn)行調(diào)整,此次使用反向傳播算法和隨機(jī)梯度下降(SGD)算法作為優(yōu)化器來(lái)調(diào)整整個(gè)模型的權(quán)重,直到誤差達(dá)到最小值并收斂。在使用反向傳播訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),該系統(tǒng)應(yīng)用了多種模型訓(xùn)練技術(shù),以提高神經(jīng)網(wǎng)絡(luò)的收斂速度并找到最優(yōu)參數(shù)。
由于財(cái)務(wù)數(shù)據(jù)量非常大,整批學(xué)習(xí)方法難以在模型中找到一個(gè)理想的權(quán)重組合,導(dǎo)致訓(xùn)練時(shí)間過(guò)長(zhǎng)和計(jì)算機(jī)內(nèi)存需求較大。因此,使用小批次方法來(lái)訓(xùn)練模型的權(quán)重。小批次方法在每個(gè)訓(xùn)練時(shí)期僅使用一批數(shù)據(jù),并通過(guò)在每個(gè)時(shí)期之后找到平均值來(lái)更新權(quán)重,其可以在相同的訓(xùn)練時(shí)間內(nèi)對(duì)網(wǎng)絡(luò)進(jìn)行更有效的權(quán)重更新。
整個(gè)數(shù)據(jù)挖掘框架中包含了大量的參數(shù),為了避免出現(xiàn)過(guò)擬合,在訓(xùn)練網(wǎng)絡(luò)時(shí),模型的診斷層中使用了Dropout 技術(shù)。該技術(shù)隨機(jī)允許隱藏層中的神經(jīng)元在指定概率p下消失,這一概率由用戶在每個(gè)訓(xùn)練時(shí)期校正權(quán)重時(shí)設(shè)置。因此,在權(quán)重更新過(guò)程中不會(huì)對(duì)所有神經(jīng)元進(jìn)行更新,從而防止過(guò)擬合的發(fā)生。
為了驗(yàn)證文中所提出財(cái)務(wù)數(shù)據(jù)分析算法的綜合性能,實(shí)驗(yàn)所使用的數(shù)據(jù)集為某醫(yī)療機(jī)構(gòu)提供的真實(shí)財(cái)務(wù)數(shù)據(jù),共有87 531 條記錄,涵蓋了包括操作人員信息在內(nèi)的30 余種數(shù)據(jù)屬性。同時(shí),也包含一些與操作人員信用歷史相關(guān)的附加信息。
在數(shù)據(jù)分析模型構(gòu)建之前,需要對(duì)所有財(cái)務(wù)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化操作,并通過(guò)移動(dòng)窗口選擇原始時(shí)間序列數(shù)據(jù)。財(cái)務(wù)數(shù)據(jù)經(jīng)過(guò)預(yù)處理后,使用特征提取的方法提取相應(yīng)特征。特征提取網(wǎng)絡(luò)由兩個(gè)卷積-激活-池化層組成。為了提取每個(gè)財(cái)務(wù)子序列的細(xì)微變化,設(shè)置卷積核大小為5,第一層卷積層的特征數(shù)量為16,第二層卷積層的特征數(shù)量為64。為了表征出每個(gè)財(cái)務(wù)數(shù)據(jù)子序列的趨勢(shì),此次使用了平均池化法,設(shè)定池化層的核大小為2,步幅參數(shù)為2。為了確定數(shù)據(jù)挖掘模型訓(xùn)練中的超參數(shù),模型設(shè)置神經(jīng)元之間連接權(quán)重的學(xué)習(xí)率為0.01;優(yōu)化器使用隨機(jī)梯度下降,動(dòng)量值為0.9,批量大小為128。
考慮到財(cái)務(wù)數(shù)據(jù)異常檢測(cè)是一個(gè)二元分類問(wèn)題,因此文中使用精度、召回率和F1 分?jǐn)?shù)來(lái)衡量模型的性能。經(jīng)過(guò)5 次交叉驗(yàn)證后,表1 總結(jié)了1NNDTW 算法、SAX-VSM 算法、FDC-CNN 與所提算法的精度、召回率、F1 和準(zhǔn)確度的區(qū)別。在準(zhǔn)確度方面,F(xiàn)DC-CNN 和SAX-VSM 均大于0.9,在所有方法中1NN-DTW 算法的性能最差。盡管SAX-VSM 算法的精度(0.932 0)優(yōu)于1NN-DTW 算法,但SAX-VSM算法的召回率仍然較低,僅為0.394 4。在精度和召回率方面,F(xiàn)DC-CNN 算法與所提算法具有更優(yōu)的實(shí)現(xiàn)效果,尤其是所提算法在表1 所比對(duì)的4 項(xiàng)性能指標(biāo)上均優(yōu)于對(duì)比方法。
表1 性能比較實(shí)驗(yàn)
為了可視化本算法提取的每個(gè)子時(shí)間序列特征的效果,文中使用t-SNE 算法執(zhí)行二維數(shù)據(jù)可視化,結(jié)果如圖3 所示。從圖3 中可以看出,正常數(shù)據(jù)緊密地聚集在一起;而異常數(shù)據(jù)則分散成了幾組,且大多數(shù)正常數(shù)據(jù)與異常數(shù)據(jù)均可分離。因此,可以通過(guò)該模型的輸出值來(lái)監(jiān)控和實(shí)時(shí)識(shí)別異常數(shù)據(jù)。
圖3 財(cái)務(wù)數(shù)據(jù)分類可視化
系統(tǒng)檢測(cè)到異常后,會(huì)根據(jù)現(xiàn)有數(shù)據(jù)分析數(shù)據(jù)異常的可能原因,這些信息在系統(tǒng)診斷層的權(quán)重中被捕獲。此信息可以幫助管理者識(shí)別關(guān)鍵數(shù)據(jù)并快速處理,該文使用真實(shí)數(shù)據(jù)進(jìn)行驗(yàn)證,結(jié)果如表2 所示。
表2 數(shù)據(jù)驗(yàn)證實(shí)驗(yàn)結(jié)果
每個(gè)數(shù)據(jù)場(chǎng)景均結(jié)合了公共與私有區(qū)塊鏈,數(shù)據(jù)參數(shù)各不相同,這些參數(shù)會(huì)觸發(fā)不同的數(shù)據(jù)分析模型。
如表2 所示,對(duì)于不同時(shí)間跨度的財(cái)務(wù)數(shù)據(jù),該系統(tǒng)均能給出相應(yīng)的判定結(jié)果。盡管私有區(qū)塊鏈不像公共區(qū)塊鏈那樣需要交易費(fèi)用,但仍會(huì)產(chǎn)生其他的計(jì)算成本開(kāi)銷,例如硬件消耗等。因此,表中計(jì)算成本的數(shù)值單位記為焦耳。從表中可以看出,所提算法對(duì)于數(shù)據(jù)分析所產(chǎn)生的成本與時(shí)間跨度之間并未呈現(xiàn)出明顯的線性關(guān)系,證明了所提算法對(duì)于大量數(shù)據(jù)有良好的分析能力。
文中針對(duì)財(cái)務(wù)數(shù)據(jù)的分析檢測(cè)問(wèn)題,使用特征識(shí)別方法建立了數(shù)據(jù)挖掘算法,并通過(guò)數(shù)值實(shí)驗(yàn)對(duì)與數(shù)據(jù)分析的精度、準(zhǔn)確度、召回率以及成本消耗等進(jìn)行了分析,取得了相對(duì)理想的效果。在未來(lái)的研究中,如何提高數(shù)據(jù)分析的實(shí)時(shí)性,設(shè)計(jì)更加廣泛的人機(jī)交互接口將是下一步研究的重點(diǎn)。