丁 勇
(云南師范大學(xué)文理學(xué)院,云南 昆明 650228)
隨著信息網(wǎng)絡(luò)的發(fā)展,大數(shù)據(jù)應(yīng)用技術(shù)獲得了越來越多的關(guān)注。各類用戶與項(xiàng)目信息的快速增長(zhǎng)對(duì)推薦系統(tǒng)負(fù)載能力提出了挑戰(zhàn),因此需要對(duì)系統(tǒng)擴(kuò)展性開展更加深入的研究[1-4]。內(nèi)容推薦算法和協(xié)同過濾算法存在明顯的差異性。內(nèi)容推薦算法無需根據(jù)用戶評(píng)分行為信息進(jìn)行分析,而是以用戶與項(xiàng)目特征信息作為推薦的依據(jù)[5-7]。有學(xué)者[8]通過隱含狄利克雷分布(latent dirichlet allocation,LDA)主題模型與Word2Vec模型相結(jié)合的方式研究用戶之前關(guān)注過的音樂。文獻(xiàn)[9]重新構(gòu)建了一種混合模型,實(shí)現(xiàn)了深度神經(jīng)網(wǎng)絡(luò)和矩陣分解模型相融合,可以在稀疏數(shù)據(jù)條件下對(duì)用戶與項(xiàng)目信息進(jìn)行深度挖掘。文獻(xiàn)[10]則將增量更新協(xié)同過濾方法和語義分析算法相融合,構(gòu)建得到了一種混合推薦算法。以傳統(tǒng)形式的聚類算法處理用戶與項(xiàng)目信息的過程中,較易引起錯(cuò)誤并存在陷入局部最優(yōu)的缺陷,因此不能發(fā)揮聚類的理想作用,難以準(zhǔn)確獲取最近鄰居,導(dǎo)致最終推薦結(jié)果出現(xiàn)較大偏差[11-12]。
根據(jù)上述研究結(jié)果,本文設(shè)計(jì)了一種根據(jù)用戶偏好進(jìn)行優(yōu)化聚類處理的協(xié)同過濾推薦算法,并對(duì)該算法進(jìn)行了測(cè)試分析。
本文進(jìn)行數(shù)據(jù)建模的過程中設(shè)置了項(xiàng)目類型特征,可以準(zhǔn)確反饋用戶興趣偏好并精確提供推薦內(nèi)容。對(duì)于個(gè)性化推薦系統(tǒng),各項(xiàng)目都存在多種類型特征。這使得項(xiàng)目類型比項(xiàng)目數(shù)量更少。此外,不同用戶對(duì)各個(gè)項(xiàng)目類型也會(huì)產(chǎn)生不同的興趣偏好。根據(jù)以上特征,本文選擇項(xiàng)目-評(píng)分矩陣與項(xiàng)目-類型矩陣相結(jié)合的方法設(shè)計(jì)評(píng)分比例-項(xiàng)目編號(hào)(rating proportion-item preference,RP-IP)算法,以此預(yù)測(cè)用戶對(duì)各類項(xiàng)目的偏好情況,構(gòu)建得到細(xì)粒度用戶-項(xiàng)目類型偏好矩陣。
評(píng)分比例(rating proportion,RP)代表某一用戶u對(duì)類型e的項(xiàng)目評(píng)分總和Ru,i在項(xiàng)目總評(píng)分Ru中所占的比值。評(píng)分比例計(jì)算過程如式(1)所示。
(1)
式中:Qu,i為評(píng)分比例;i為自評(píng)分變量。
項(xiàng)目偏好(item preference,IP)代表類型e的項(xiàng)目數(shù)量C(Ie)在項(xiàng)目總數(shù)C(I)中的占比,能夠有效避免類型e的熱門項(xiàng)目引起的用戶偏好差異。通過式(2)計(jì)算項(xiàng)目編好矩陣Mi,e。為避免產(chǎn)生類型e的項(xiàng)目數(shù)量為0的問題,本文以1+C(Ie) 作為分母。
(2)
用戶對(duì)項(xiàng)目類型的偏好程度Pu為:
(3)
利用式(3)計(jì)算得到用戶對(duì)項(xiàng)目類型的偏好程度,同時(shí)構(gòu)建細(xì)粒度用戶-項(xiàng)目類型偏好矩陣。本文在分析計(jì)算過程中都是選擇真實(shí)評(píng)價(jià)數(shù)據(jù),對(duì)于評(píng)價(jià)數(shù)據(jù)為空的情況,把部分?jǐn)?shù)據(jù)表示成0。
采用蝙蝠優(yōu)化用戶模糊聚類算法進(jìn)行處理的過程為:首先,通過蝙蝠優(yōu)化算法確定最優(yōu)初始聚類中心;然后,對(duì)用戶實(shí)施模糊C均值(fuzzy C-means,FCM)聚類。采用蝙蝠優(yōu)化算法進(jìn)行處理時(shí),把每只蝙蝠都表示為一個(gè)聚類中心矩陣C。
輸入:細(xì)粒度用戶-項(xiàng)目類型偏好矩陣、蝙蝠種群大小h、聚類數(shù)、最大迭代次數(shù)T。
輸出:包含W、c個(gè)用戶簇的用戶簇隸屬度矩陣。
①以隨機(jī)方式生成初始蝙蝠種群C,初始化種群的蝙蝠個(gè)體Ci速度vi、位置xi、脈沖發(fā)射率ri、響度Ai與頻率fi。
②計(jì)算隸屬度。
③計(jì)算種群內(nèi)所有蝙蝠個(gè)體適應(yīng)度值并排序,并挑選出適應(yīng)度值最優(yōu)的蝙蝠個(gè)體。
④修改蝙蝠個(gè)體位置和速度參數(shù)。
⑤生成隨機(jī)數(shù)r0并對(duì)種群內(nèi)的蝙蝠個(gè)體實(shí)施遍歷。當(dāng)滿足條件r0 ⑥生成隨機(jī)數(shù)r1并對(duì)種群內(nèi)蝙蝠個(gè)體實(shí)施遍歷,當(dāng)r1 ⑦當(dāng)?shù)螖?shù)小于T或不滿足聚類中心收斂條件時(shí),則重新回到步驟②進(jìn)行迭代;反之,輸出最優(yōu)適應(yīng)度值條件下的蝙蝠個(gè)體xbest,將其作為最優(yōu)初始聚類中心并實(shí)施聚類劃分,生成用戶簇隸屬度矩陣W與c個(gè)用戶簇。 本文在設(shè)計(jì)蝙蝠協(xié)同過濾推薦算法(bat collaborative filtering recommendation,B-CFR)時(shí)融入了用戶偏好優(yōu)化聚類方法。為克服聚類協(xié)同過濾算法處理系統(tǒng)可擴(kuò)展性問題時(shí)面臨的缺陷:首先,將用戶行為分為類型矩陣和評(píng)分矩陣;然后,以B-CFR算法為基礎(chǔ),根據(jù)項(xiàng)目類型建立細(xì)粒度偏好模型,并利用蝙蝠優(yōu)化算法達(dá)到改進(jìn)聚類的效果,找出目標(biāo)用戶的最近鄰居;最后,按照用戶加權(quán)相似度結(jié)果預(yù)測(cè)評(píng)分,并輸出推薦結(jié)果。 本文研究的數(shù)據(jù)來自美國GroupLens小組從MovieLens網(wǎng)站獲取并經(jīng)過預(yù)處理的數(shù)據(jù)集。為了對(duì)算法推薦性能進(jìn)行驗(yàn)證,在試驗(yàn)開始前,把ML-100K內(nèi)的所有數(shù)據(jù)量以5∶1的比例進(jìn)行隨機(jī)分類,從而得到訓(xùn)練集和測(cè)試集。試驗(yàn)完成后,通過五折交叉驗(yàn)證的方式把五次測(cè)試所得的結(jié)果均值作為最終評(píng)價(jià)指標(biāo)。 為分析B-CFR算法的聚類數(shù),通過加權(quán)相似度的方法預(yù)測(cè)評(píng)分。不同聚類數(shù)下測(cè)試系統(tǒng)平均絕對(duì)誤差(mean absolute error,MAE)值和均方根誤差(root mean square error,RMSE)值的分布如表1所示。 表1 不同聚類數(shù)下測(cè)試系統(tǒng)MAE值和RMSE值的分布 考慮到聚類數(shù)對(duì)最近鄰居用戶查找效率存在明顯影響,需要合理選擇聚類數(shù)值,以免發(fā)生聚類數(shù)過大或過小的問題。對(duì)表1進(jìn)行分析可知,在聚類數(shù)為10的情況下,MAE值最小。因此,本文設(shè)計(jì)的算法將聚類數(shù)設(shè)置為10。 為確定本文設(shè)計(jì)的B-CFR算法的近鄰數(shù)K,不同近鄰數(shù)下測(cè)試系統(tǒng)MAE值和RMSE值的分布如表2所示。對(duì)表2進(jìn)行分析可知,當(dāng)K處于[10,40]區(qū)間內(nèi),隨著K的增大,MAE值迅速減小。由此可以發(fā)現(xiàn)在該區(qū)間內(nèi),當(dāng)K增加后,獲得了更優(yōu)的推薦效果。當(dāng)K=40時(shí),MAE值最小。當(dāng)K處于[40,80]區(qū)間內(nèi),隨著K的增大,MAE發(fā)生了緩慢升高的現(xiàn)象,但低于K為10、20情況下的MAE值。根據(jù)以上分析可知,本文算法的K取值為40時(shí)達(dá)到最優(yōu)值。 表2 不同近鄰數(shù)下測(cè)試系統(tǒng)MAE值和RMSE值的分布 為確定本文設(shè)計(jì)的B-CFR算法最優(yōu)權(quán)重系數(shù),驗(yàn)證了該因子對(duì)推薦結(jié)果產(chǎn)生的影響。按照上文優(yōu)化的聚類數(shù)為10、K為40,對(duì)系統(tǒng)進(jìn)行計(jì)算。不同權(quán)重系數(shù)下測(cè)試系統(tǒng)MAE值和RMSE值的分布如表3所示。對(duì)表3進(jìn)行分析可知,當(dāng)權(quán)重系數(shù)處于[0.1,0.5]區(qū)間內(nèi),不管聚類數(shù)量是多少,MAE值都發(fā)生了隨權(quán)重系數(shù)增大而減小的現(xiàn)象。該結(jié)果表明,在設(shè)置了用戶項(xiàng)目類型偏好相似度的情況下,通過B-CFR算法預(yù)測(cè)評(píng)級(jí)時(shí)能夠滿足用戶真實(shí)評(píng)級(jí)狀態(tài)評(píng)價(jià),顯著改善推薦效果。當(dāng)權(quán)重系數(shù)處于0.5~0.9時(shí),隨著權(quán)重系數(shù)的增大,MAE值也隨之提高。由此可以推斷,此時(shí)用戶項(xiàng)目類型偏好相似度已經(jīng)獲得較高比重,從而對(duì)推薦性能造成負(fù)面影響。 表3 不同權(quán)重系數(shù)下測(cè)試系統(tǒng)MAE值和RMSE值的分布 為驗(yàn)證本文設(shè)計(jì)的B-CFR算法具備比傳統(tǒng)CFR算法更強(qiáng)的實(shí)時(shí)性,設(shè)定K為40,根據(jù)用戶占比度Ri計(jì)算得到最近用戶重復(fù)度Bi和搜索率Si。不同Ri下Bi和Si的分布結(jié)果如表4所示。 表4 不同Ri下Bi和Si的分布 對(duì)表4進(jìn)行分析可知,Ri取值為40%的情況下,Bi為88%。Si在Ri為40%的條件下獲得最大值。 由此可以獲得以下結(jié)論。本文設(shè)計(jì)的B-CFR算法相對(duì)于CFR算法,一方面可以優(yōu)化評(píng)分預(yù)測(cè)準(zhǔn)確性,另一方面可以有效縮小最近鄰居搜索范圍,增強(qiáng)系統(tǒng)實(shí)時(shí)性,使系統(tǒng)獲得更強(qiáng)的擴(kuò)展能力。 本文在設(shè)計(jì)B-CFR算法時(shí),融入了用戶偏好優(yōu)化聚類方法。首先,以B-CFR算法為基礎(chǔ),并根據(jù)項(xiàng)目類型建立了細(xì)粒度偏好模型。然后,利用蝙蝠優(yōu)化算法,達(dá)到改進(jìn)聚類的效果。最后,按照用戶加權(quán)相似度結(jié)果預(yù)測(cè)評(píng)分。 本文所設(shè)計(jì)的算法在聚類數(shù)為10、K為40時(shí)是最優(yōu)的。當(dāng)權(quán)重系數(shù)處于[0.1,0.5]區(qū)間內(nèi)時(shí),通過B-CFR算法預(yù)測(cè)評(píng)級(jí)時(shí)能夠滿足用戶真實(shí)評(píng)級(jí)狀態(tài)評(píng)價(jià),顯著改善推薦效果。 相對(duì)于CFR算法,本文設(shè)計(jì)的B-CFR算法可以優(yōu)化評(píng)分預(yù)測(cè)準(zhǔn)確性、有效縮小最近鄰居搜索范圍、增強(qiáng)系統(tǒng)實(shí)時(shí)性,使系統(tǒng)獲得更強(qiáng)的擴(kuò)展能力。1.3 算法執(zhí)行過程
2 試驗(yàn)結(jié)果與分析
2.1 數(shù)據(jù)集
2.2 參數(shù)結(jié)果分析
2.3 實(shí)時(shí)性的驗(yàn)證
3 結(jié)論