金先好
(六安職業(yè)技術(shù)學(xué)院信息與電子工程學(xué)院,安徽 六安 237158)
大數(shù)據(jù)時(shí)代信息推薦是進(jìn)行海量信息整合、獲取有價(jià)值信息的直接方式。其中,協(xié)同過濾算法是目前應(yīng)用頻率較高的推薦方法。結(jié)合當(dāng)前普遍應(yīng)用的云計(jì)算環(huán)境提出一種基于遺傳優(yōu)化的協(xié)同過濾算法,算法實(shí)踐思路如下:首要步驟是求取用戶和項(xiàng)目之間的歷史評分矩陣;在此基礎(chǔ)上,基于皮爾遜相關(guān)系數(shù)計(jì)算相似度獲取用戶和物品間的最近鄰居集;利用遺傳算法優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)對無評分項(xiàng)目分?jǐn)?shù)進(jìn)行預(yù)測,根據(jù)評分對用戶進(jìn)行相關(guān)內(nèi)容推薦。
云計(jì)算環(huán)境下協(xié)同過濾算法以海量數(shù)據(jù)為處理對象,為了有效擴(kuò)展大數(shù)據(jù)協(xié)同過濾推薦的性能,以云計(jì)算平臺的MapReduce分布式框架作為計(jì)算模型,高效率實(shí)現(xiàn)遺傳優(yōu)化協(xié)同過濾算法并行化計(jì)算。
皮爾遜相關(guān)系數(shù)相似度計(jì)算法本質(zhì)是對線性關(guān)系系數(shù)進(jìn)行表征[1],以用戶對公共項(xiàng)目平分均值視角進(jìn)行計(jì)算,相關(guān)性與系數(shù)值成正比。定義H表示評分矩陣,不同項(xiàng)目評分的用戶集合用D表示,d∈Dα∩Dβ,公式(1)為皮爾遜相關(guān)系數(shù)相似度計(jì)算公式,主要闡述了兩個(gè)項(xiàng)目相似性,如公式(1):
(1)
基于上述公式原理,定義用戶b與用戶d在矩陣中的評分項(xiàng)目集合為Ib,Id,α∈Ib∩Id。可得兩個(gè)用戶之間相似性如公式(2):
(2)
一般的基于用戶協(xié)同過濾算法僅能以評分用戶相似度為依據(jù)進(jìn)行內(nèi)容推薦,但是新用戶或者某些用戶沒有對特定項(xiàng)目評分,所以構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)預(yù)測沒有評分的項(xiàng)目,解決評分不足問題[2]。但傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)采用學(xué)習(xí)過程中,卷積層和全連接層的初始權(quán)值直接影響網(wǎng)絡(luò)學(xué)習(xí)的性能。為此,基于遺傳算法確定卷積神經(jīng)網(wǎng)絡(luò)的初始權(quán)值,在生成的多組初始權(quán)重中基于選擇、交叉、變異方式從中選擇最優(yōu)的權(quán)重值,保障卷積神經(jīng)網(wǎng)絡(luò)預(yù)測無評分項(xiàng)目分?jǐn)?shù)的性能與精準(zhǔn)度。
傳統(tǒng)遺傳算法尋優(yōu)過程中存在搜索能力陷入局部最優(yōu)、提前收斂等問題,其中原因如下:(1)忽略了遺傳迭代前期群體質(zhì)量低下的問題,往往將算法的交叉算子設(shè)置為固定值,不能根據(jù)群體實(shí)際情況自適應(yīng)確定交叉概率,導(dǎo)致算法尋優(yōu)能力不足;(2)變異算子決定了群體多樣性的優(yōu)劣,但是算法變異概率使用固定值不能滿足實(shí)際迭代需要,較大的變異概率容易提高迭代進(jìn)化隨機(jī)性,很難完成收斂;反之,較小的變異概率導(dǎo)致群體規(guī)模不足,陷入局部最優(yōu)[3]。針對上述原因,對傳統(tǒng)遺傳算法的交叉算子與變異算子加以改進(jìn),提高算法全局搜索能力。基于公式(3)自適應(yīng)求取交叉概率如公式(3):
(3)
公式(3)中,迭代次數(shù)為G,g證明算法進(jìn)行了第g次迭代;交叉概率上限值與下限值分別采用ku,max,ku,min描述。當(dāng)?shù)M(jìn)行次數(shù)越大時(shí),交叉概率自適應(yīng)呈降低趨勢。這種策略可以保障算法開始的前半階段交叉概率值較大,讓更多個(gè)體參與到迭代計(jì)算當(dāng)中,計(jì)算效率有所保障;后期交叉概率降低能夠令算法進(jìn)入穩(wěn)定收斂狀態(tài)。
基于公式(4)自適應(yīng)求取變異概率:
(4)
公式(4)中,遺傳種群適應(yīng)度值上限為fmax,等待進(jìn)行變異操作的個(gè)體適應(yīng)度值采用f(Xi)表示;變異概率上限值與下限值分別采用kr,max,kr,min描述。該表達(dá)式中,個(gè)體適應(yīng)度值、迭代次數(shù)兩者中任一變量增加,變異概率便隨之降低。
利用改進(jìn)遺傳算法確定卷積神經(jīng)網(wǎng)絡(luò)預(yù)測模型初始權(quán)值后,便可進(jìn)行未評分用戶的分?jǐn)?shù)預(yù)測。首先,定義p為無評分的項(xiàng)目集合,q為有評分的項(xiàng)目集合;評分預(yù)測使用兩個(gè)關(guān)鍵集合,一是項(xiàng)目p同近鄰集合中點(diǎn)名的共同評分用戶集合,二是沒有對項(xiàng)目p評分但是對近鄰項(xiàng)目評分的用戶分?jǐn)?shù)集合,分別定義為Z1,Z2。其次,將項(xiàng)目q評分?jǐn)?shù)據(jù)集作為卷積神經(jīng)網(wǎng)絡(luò)的輸入樣本,Z1集合中用戶對項(xiàng)目p的評分則為輸出結(jié)果。同理,在卷積神經(jīng)網(wǎng)絡(luò)中輸入Z2集合評分即可得到無評分項(xiàng)目p的預(yù)測分值[4]。最后,算法終止迭代的條件時(shí)計(jì)算到Z1集合中的最后一個(gè)項(xiàng)目,按照預(yù)測評分的大小向用戶進(jìn)行推薦,將排名靠前的l個(gè)項(xiàng)目推薦給用戶。
在Hadoop集群環(huán)境中部署云計(jì)算協(xié)同過濾實(shí)驗(yàn)環(huán)境,Hadoop版本為2.7.1,將Intelli JIDEA作為集成開發(fā)平臺,基于VMware創(chuàng)建虛擬節(jié)點(diǎn);每臺機(jī)器內(nèi)存配置為2G,硬盤大小為40G,共部署一個(gè)Master節(jié)點(diǎn)和8個(gè)Slave節(jié)點(diǎn)。實(shí)驗(yàn)將Movie Lens數(shù)據(jù)集作為協(xié)同過濾推薦樣本,此數(shù)據(jù)集存在1682個(gè)項(xiàng)目、943個(gè)用戶、100000條評分?jǐn)?shù)據(jù)。將基于聚類的協(xié)同過濾算法、基于RBF模型的協(xié)同過濾算法作為對比測試方法。
平均絕對誤差表示預(yù)測值與實(shí)際值間的誤差大小,是評估協(xié)同過濾推薦算法性能的權(quán)威性指標(biāo),圖1描述了不同近鄰用戶數(shù)量情況下,三種算法的平均絕對誤差變化情況。
圖1 三種協(xié)同過濾算法的平均絕對誤差統(tǒng)計(jì)
由圖1可知,基于聚類的協(xié)同過濾算法預(yù)測收斂的用時(shí)較長,基于RBF模型的協(xié)同過濾算法次之,算法較快進(jìn)入收斂階段,并且平均絕對誤差收斂在0.31左右,隨著近鄰用戶數(shù)量的增加,該算法的平均絕對誤差趨于穩(wěn)定,說明該算法協(xié)同過濾推薦的性能逐漸穩(wěn)定。同時(shí),基于聚類的協(xié)同過濾算法平均絕對誤差收斂在0.43左右,但是其收斂速度較慢,沒有達(dá)到理想的協(xié)同過濾效果;基于RBF模型的協(xié)同過濾算法收斂后的基于RBF模型的協(xié)同過濾算穩(wěn)定在0.51上下,呈現(xiàn)的評分預(yù)測效果較差。
云計(jì)算環(huán)境下協(xié)同過濾算法不僅需要較高的推薦精準(zhǔn)度,并且要求算法在盡可能短的時(shí)間內(nèi)完成推薦,以滿足大數(shù)據(jù)時(shí)代各領(lǐng)域?qū)ν扑]算法的需求。測試過程中不斷增加Hadoop集群環(huán)境節(jié)點(diǎn)數(shù)量,統(tǒng)計(jì)了三種算法運(yùn)行時(shí)間的變化,如表1所示。
表1 三種算法運(yùn)行時(shí)間變化/min
表1數(shù)據(jù)顯示,隨著Hadoop集群節(jié)點(diǎn)數(shù)量的增加,三種算法運(yùn)行時(shí)間均呈現(xiàn)降低趨勢,降低幅度較大。其中,本文算法進(jìn)行協(xié)同過濾推薦的時(shí)間隨著節(jié)點(diǎn)數(shù)量的勻速增加而勻速降低,由最初的59.4min降低至15.4min,能夠在較短的時(shí)間內(nèi)完成推薦工作。相比之下,基于聚類的協(xié)同過濾算法初始運(yùn)行時(shí)間為66.8min,隨著節(jié)點(diǎn)數(shù)量勻速增加,該算法運(yùn)行時(shí)間出現(xiàn)不同幅度的下降情況,并且當(dāng)節(jié)點(diǎn)增加至3個(gè)時(shí),該算法運(yùn)行時(shí)間反而由64.4min增加至68.7min,隨后降低至61.5min??梢姡撍惴ㄟ\(yùn)行狀態(tài)極其不穩(wěn)定,最終節(jié)點(diǎn)增加到8個(gè)時(shí),運(yùn)行時(shí)間高達(dá)41.8min。另外,基于RBF模型的協(xié)同過濾算法最終的運(yùn)行用時(shí)為24.8min,同樣沒有達(dá)到理想狀態(tài)。
在云計(jì)算環(huán)境下提出基于遺傳優(yōu)化的協(xié)同過濾算法,為大數(shù)據(jù)時(shí)代信息系推薦提供高準(zhǔn)確度以及高性能的解決方案。該算法突出之處在于使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測沒有評分項(xiàng)目分?jǐn)?shù),填充了新用戶對某些項(xiàng)目的評分空白;同時(shí)利用改進(jìn)交叉算子與變異算子的遺傳算法確定卷積神經(jīng)網(wǎng)絡(luò)的初始權(quán)值,避免了網(wǎng)絡(luò)訓(xùn)練與預(yù)測的隨機(jī)性。最終取得了理想的協(xié)同過濾推薦效果,能夠生成準(zhǔn)確的推薦方案列表。
佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版)2021年6期