陶姿邑
(陜西中醫(yī)藥大學 信息化建設管理處, 陜西 咸陽 712046)
隨著數(shù)據(jù)挖掘技術(shù)不斷發(fā)展,每天都會出現(xiàn)大量的數(shù)據(jù),為了對這些數(shù)據(jù)進行有效管理,出現(xiàn)了數(shù)據(jù)管理系統(tǒng),由于數(shù)據(jù)的規(guī)模越來越大,數(shù)量也急劇增大,出現(xiàn)了一些大型數(shù)據(jù)庫[1]。在數(shù)據(jù)庫管理系統(tǒng)的實際應用中,由于數(shù)據(jù)庫本身的冗余特性,存在一些重復的記錄,當重復記錄數(shù)量過大時,導致數(shù)據(jù)庫存儲的空間變大,成本增加,同時對數(shù)據(jù)庫中的記錄查詢和檢索產(chǎn)生不利影響,無法在有效的時間內(nèi)找到用戶真正需要的記錄,因此如何減少重復記錄是當前數(shù)據(jù)庫管理系統(tǒng)中的一個關(guān)鍵研究問題[2-3]。
數(shù)據(jù)庫重復記錄檢測是減少重復記錄數(shù)量的關(guān)鍵技術(shù),為此,許多學者和研究機構(gòu)對其進行分析,最初學者們引入文本分析方法實現(xiàn)數(shù)據(jù)庫重復記錄檢測,但是相對于普通文本,數(shù)據(jù)庫記錄有自身的特殊性,因此數(shù)據(jù)庫重復記錄檢測錯誤率比較高[4]。近年來,一些學者將數(shù)據(jù)庫重復記錄檢測問題看作是一種二分類問題,即將數(shù)據(jù)庫記錄劃分為重復和不重復兩類,通過引入灰色模型、人工神經(jīng)網(wǎng)絡、支持向量機等建立數(shù)據(jù)庫重復記錄檢測的分類器[5-7],灰色模型是一種線性建模方法,而數(shù)據(jù)庫重復記錄檢測具有較高的非線性變化特點,使得數(shù)據(jù)庫重復記錄檢測時間長,而且數(shù)據(jù)庫重復記錄檢測精度低,人工神經(jīng)網(wǎng)絡雖然是一種非線性學習算法,但是其易收斂到局最優(yōu)解,使得數(shù)據(jù)庫重復記錄檢測結(jié)果出現(xiàn)過擬合或者欠學習現(xiàn)象,導致數(shù)據(jù)庫重復記錄檢測結(jié)果不可靠[8]。支持向量機是一種深度學習算法,具有學習速度快、擬合精度高等優(yōu)點,在數(shù)據(jù)庫重復記錄檢測中得到了廣泛的應用,但是其參數(shù)直接影響數(shù)據(jù)庫重復記錄檢測結(jié)果,目前參數(shù)優(yōu)化問題還沒有得到有效的解決[9]。
為了提高數(shù)據(jù)庫重復記錄檢測效果,提出了基于深度學習的數(shù)據(jù)庫重復記錄檢測算法。引入支持向量機對數(shù)據(jù)庫重復記錄檢測進行建模,并采用量子粒子群算法優(yōu)化支持向量機參數(shù),最后通過數(shù)據(jù)庫重復記錄檢測仿真實驗驗證了本文算法的性能。
支持向量機是新型的深度學習算法,相對于傳統(tǒng)深度學習算法,其泛化能力更強,學習結(jié)果更加可靠,根據(jù)工作原理,支持向量機可以劃分為兩類:一類是支持向量分類機,其用于對一些分類問題進行求解;另一類是支持向量回歸機,主要用于預測問題的建模與分析,而數(shù)據(jù)庫重復記錄檢測是一種分類問題,因此采用支持向量分類機進行。支持向量機的分類原理,如圖1所示。
在圖1中,中間粗線為所有樣本的最優(yōu)分類平面,黃色矩形的兩邊為樣本和最優(yōu)分類平面之間的最近距離,兩類樣本應該處于黃色矩形之外。
圖1 支持向量分類機的工作原理
設數(shù)據(jù)庫重復記錄檢測訓練樣本集合為:{xi,yi},xi∈Rn,i=1,2,…,l,xi為數(shù)據(jù)庫重復記錄檢測的輸入向量,yi為數(shù)據(jù)庫重復記錄檢測的輸出,那么基于支持向量機的數(shù)據(jù)庫重復記錄檢測的最優(yōu)分類平面,如式(1)。
y=ωTΦ(x)+b=ω·φ(x)+b
(1)
式中,ω和b為權(quán)值和偏向量。
要找到數(shù)據(jù)庫重復記錄檢測的最優(yōu)分類平面,首先確定最合理的ω和b值,通常情況下,對式(1)無法求解,因為求解的時間相當長,有時難以實現(xiàn)。為了簡化ω和b值的求解過程,通過采用松弛因子ξi對式(1)進行相應的轉(zhuǎn)換,得到式(1)的等價形式,如式(2)。
s.t.yi(ω·Φ(xi)+b)≥1-ξi
ξi≥0,i=1,2…,n
(2)
式中,C表示支持向量機的懲罰參數(shù),主要用于評價數(shù)據(jù)庫重復記記錄檢測結(jié)果誤差和計算時間的復雜度。
為了進一步優(yōu)化式(1)求解過程,引入拉格朗日乘子(αi)對式(2)進行變換,如式(3)。
s.t.
(3)
式中,l表示數(shù)據(jù)庫重復記錄檢測的訓練樣本數(shù)量。
通過對式(3)的求解,可以得到ω的計算公式,如式(4)。
ω=∑αiyi(Φ(xi)·Φ(x))
(4)
支持向量機的數(shù)據(jù)庫重復記錄檢測分類形式,如式(5)。
f(x)=sgn(αiyi(Φ(xi)·Φ(x))+b)
(5)
式中,Φ(xi)·Φ(x)表示點積運算,sgn()表示符號函數(shù)。
當數(shù)據(jù)庫重復記錄檢測具有隨機性、非線性變化特點,Φ(xi)·Φ(x)運行過程十分復雜,這樣影響數(shù)據(jù)庫重復記錄檢測效率,為此采用核函數(shù)k(x,xi)代替Φ(xi)·Φ(xj),加快數(shù)據(jù)庫重復記錄檢測的速度,如式(6)。
f(x)=sgn(αiyik(x,xi)+b)
(6)
式中,k(x,xi)的表達式,如式(7)。
(7)
式中,σ表示核寬度。
支持向量機的數(shù)據(jù)庫重復記錄檢測過程中,參數(shù)C和σ直接影響建模效果,傳統(tǒng)方法采用經(jīng)驗方式確定它們的值,這樣難以獲得高正確率的數(shù)據(jù)庫重復記錄檢測結(jié)果,為此本文引入量子粒子群算法確定參數(shù)C和σ的最優(yōu)值。
量子粒子群算法是一種改進粒子群算法,量子粒子群的當前最優(yōu)位置為mbest,式(8)[10]。
(8)
第i個粒子的d維坐標,如式(9)。
(9)
式中,uid為一個隨機數(shù),Kid計算方式,如式(10)
Kid(t)=2β(t)|mbestid(t)-xid(t)|
(10)
式中,t表示迭代次數(shù)。
粒子位置更新方式,如式(11)。
xid(t+1)=rid±β(t)×|mbest(t)-Xid(t)|×
ln(1/uid(t))
(11)
式中,β為收縮擴張系數(shù)。
當前粒子的最優(yōu)位Ri,如式(12)。
(12)
式中,f()為目標函數(shù)。
Setp1:初始量子粒子群算法的量子,將參數(shù)C和σ的初始值作為粒子;
Setp2:確定量子粒子群的適應度函數(shù)值,并根據(jù)適應度函數(shù)值確定當前粒子和量子粒子群的最優(yōu)位置;
Setp3:迭代次數(shù)增加,并對量子粒子群的個體位置進行更新;
Setp4:計算新種群個體的適應度函數(shù)值,并根據(jù)適應度函數(shù)值對當前粒子和量子粒子群的最優(yōu)位置進行更新操作;
Setp5:如果達到最大迭代次數(shù),就終止近代,不然返回到Setp3;
Setp6:根據(jù)量子粒子群的最優(yōu)位置得到參數(shù)C和σ的最優(yōu)值。
深度學習的數(shù)據(jù)庫重復記錄檢測算法的工作原理為:首先采用數(shù)據(jù)庫重復記錄檢測數(shù)據(jù),并從中提取記錄的特征,采用人工方法對數(shù)據(jù)庫記錄類型進行標記,產(chǎn)生數(shù)據(jù)庫重復記錄檢測的學習樣本;然后引入量子粒子群算法確定參數(shù)C和σ的最優(yōu)值,最后采用支持向量機對數(shù)據(jù)庫重復記錄檢測的學習樣本進行訓練,建立數(shù)據(jù)庫重復記錄檢測模型,如圖2所示。
圖2 深度學習的數(shù)據(jù)庫重復記錄檢測原理
為了分析本文設計的數(shù)據(jù)庫重復記錄檢測算法的有效性,采用仿真實驗環(huán)境為CPU(AMD 銳龍R5-3550),內(nèi)存為16 GB,硬盤為512 GB SSD,操作系統(tǒng)為Win10,編程軟件為Matlab 2017。采用一個大型數(shù)據(jù)庫作為實驗對象,共進行5次仿真實驗,隨機從中選擇部分記錄進行仿真測試,它們均存在一定數(shù)量的重復記錄,記錄總數(shù)量,如表1所示。
表1 五次仿真實驗的記錄數(shù)量
在相同實驗環(huán)境下,選擇量子粒子算法優(yōu)化BP神經(jīng)網(wǎng)絡(QPSO-BP)、支持向量機(SVM),其參數(shù)采用隨機方式確定,作為參比模型,將表1中的數(shù)據(jù)庫記錄根據(jù)5∶1的方式劃分為訓練樣本集和測試樣本集,統(tǒng)計3種算法的數(shù)據(jù)庫重復記錄檢測正確率,如圖3所示。
圖3 數(shù)據(jù)庫重復記錄檢測正確率對比
對圖3進行分析可以得到如下結(jié)論。
(1) QPSO-BP的數(shù)據(jù)庫重復記錄檢測正確率要低于本文算法,這是因為雖然兩者都采用量子粒子群算法對參數(shù)進行了優(yōu)化,但是由于BP神經(jīng)網(wǎng)絡本身的缺陷,使得QPSO-BP無法建立最優(yōu)的數(shù)據(jù)庫重復記錄檢測模型,導致QPSO-BP的數(shù)據(jù)庫重復記錄檢測錯誤率較高。
(2) SVM的數(shù)據(jù)庫重復記錄檢測正確率同樣低于本文算法,這是因為SVM采用隨機方式確定參數(shù),而本文算法采用量子粒子群算法對參數(shù)進行了優(yōu)化,建立了更優(yōu)的數(shù)據(jù)庫重復記錄檢測模型,減少了數(shù)據(jù)庫重復記錄檢測錯誤率,對比實驗結(jié)果體現(xiàn)了本文算法的優(yōu)越性。
由于當前數(shù)據(jù)庫向超大規(guī)模方向進行發(fā)展,重復記錄數(shù)量相當大,使得數(shù)據(jù)庫重復記錄檢測效率十分關(guān)鍵,成為算法的一個重要評價標準,統(tǒng)計3種算法的數(shù)據(jù)庫重復記錄檢測時間,如圖4所示。
圖4 數(shù)據(jù)庫重復記錄檢測效率對比
從圖4的數(shù)據(jù)庫重復記錄檢測時間可以看出,本文算法的數(shù)據(jù)庫重復記錄檢測時間要明顯少于對比算法,大幅度提升了數(shù)據(jù)庫重復記錄檢測效率,可以用于大型數(shù)據(jù)庫重復記錄檢測,具有更高的實際應用價值。
重復記錄檢測對于提升數(shù)據(jù)庫檢索效率,找到用戶真正需要的數(shù)據(jù)具有重要意義,針對當前方法檢測重復記錄時檢測結(jié)果不理想的問題,提出基于深度學習的數(shù)據(jù)庫重復記錄檢測和優(yōu)化方法,仿真實驗結(jié)果表明,本文算法是一種精度高、效率快的數(shù)據(jù)庫重復記錄檢測算法,為解決大型數(shù)據(jù)庫重復記錄問題提供了一種新的研究工具。