丁 勇
(云南師范大學文理學院,云南 昆明 650228)
隨著信息網絡的發展,大數據應用技術獲得了越來越多的關注。各類用戶與項目信息的快速增長對推薦系統負載能力提出了挑戰,因此需要對系統擴展性開展更加深入的研究[1-4]。內容推薦算法和協同過濾算法存在明顯的差異性。內容推薦算法無需根據用戶評分行為信息進行分析,而是以用戶與項目特征信息作為推薦的依據[5-7]。有學者[8]通過隱含狄利克雷分布(latent dirichlet allocation,LDA)主題模型與Word2Vec模型相結合的方式研究用戶之前關注過的音樂。文獻[9]重新構建了一種混合模型,實現了深度神經網絡和矩陣分解模型相融合,可以在稀疏數據條件下對用戶與項目信息進行深度挖掘。文獻[10]則將增量更新協同過濾方法和語義分析算法相融合,構建得到了一種混合推薦算法。以傳統形式的聚類算法處理用戶與項目信息的過程中,較易引起錯誤并存在陷入局部最優的缺陷,因此不能發揮聚類的理想作用,難以準確獲取最近鄰居,導致最終推薦結果出現較大偏差[11-12]。
根據上述研究結果,本文設計了一種根據用戶偏好進行優化聚類處理的協同過濾推薦算法,并對該算法進行了測試分析。
本文進行數據建模的過程中設置了項目類型特征,可以準確反饋用戶興趣偏好并精確提供推薦內容。對于個性化推薦系統,各項目都存在多種類型特征。這使得項目類型比項目數量更少。此外,不同用戶對各個項目類型也會產生不同的興趣偏好。根據以上特征,本文選擇項目-評分矩陣與項目-類型矩陣相結合的方法設計評分比例-項目編號(rating proportion-item preference,RP-IP)算法,以此預測用戶對各類項目的偏好情況,構建得到細粒度用戶-項目類型偏好矩陣。
評分比例(rating proportion,RP)代表某一用戶u對類型e的項目評分總和Ru,i在項目總評分Ru中所占的比值。評分比例計算過程如式(1)所示。

(1)
式中:Qu,i為評分比例;i為自評分變量。
項目偏好(item preference,IP)代表類型e的項目數量C(Ie)在項目總數C(I)中的占比,能夠有效避免類型e的熱門項目引起的用戶偏好差異。通過式(2)計算項目編好矩陣Mi,e。為避免產生類型e的項目數量為0的問題,本文以1+C(Ie) 作為分母。
(2)
用戶對項目類型的偏好程度Pu為:
(3)
利用式(3)計算得到用戶對項目類型的偏好程度,同時構建細粒度用戶-項目類型偏好矩陣。本文在分析計算過程中都是選擇真實評價數據,對于評價數據為空的情況,把部分數據表示成0。
采用蝙蝠優化用戶模糊聚類算法進行處理的過程為:首先,通過蝙蝠優化算法確定最優初始聚類中心;然后,對用戶實施模糊C均值(fuzzy C-means,FCM)聚類。采用蝙蝠優化算法進行處理時,把每只蝙蝠都表示為一個聚類中心矩陣C。
輸入:細粒度用戶-項目類型偏好矩陣、蝙蝠種群大小h、聚類數、最大迭代次數T。
輸出:包含W、c個用戶簇的用戶簇隸屬度矩陣。
①以隨機方式生成初始蝙蝠種群C,初始化種群的蝙蝠個體Ci速度vi、位置xi、脈沖發射率ri、響度Ai與頻率fi。
②計算隸屬度。
③計算種群內所有蝙蝠個體適應度值并排序,并挑選出適應度值最優的蝙蝠個體。
④修改蝙蝠個體位置和速度參數。
⑤生成隨機數r0并對種群內的蝙蝠個體實施遍歷。當滿足條件r0 ⑥生成隨機數r1并對種群內蝙蝠個體實施遍歷,當r1 ⑦當迭代次數小于T或不滿足聚類中心收斂條件時,則重新回到步驟②進行迭代;反之,輸出最優適應度值條件下的蝙蝠個體xbest,將其作為最優初始聚類中心并實施聚類劃分,生成用戶簇隸屬度矩陣W與c個用戶簇。 本文在設計蝙蝠協同過濾推薦算法(bat collaborative filtering recommendation,B-CFR)時融入了用戶偏好優化聚類方法。為克服聚類協同過濾算法處理系統可擴展性問題時面臨的缺陷:首先,將用戶行為分為類型矩陣和評分矩陣;然后,以B-CFR算法為基礎,根據項目類型建立細粒度偏好模型,并利用蝙蝠優化算法達到改進聚類的效果,找出目標用戶的最近鄰居;最后,按照用戶加權相似度結果預測評分,并輸出推薦結果。 本文研究的數據來自美國GroupLens小組從MovieLens網站獲取并經過預處理的數據集。為了對算法推薦性能進行驗證,在試驗開始前,把ML-100K內的所有數據量以5∶1的比例進行隨機分類,從而得到訓練集和測試集。試驗完成后,通過五折交叉驗證的方式把五次測試所得的結果均值作為最終評價指標。 為分析B-CFR算法的聚類數,通過加權相似度的方法預測評分。不同聚類數下測試系統平均絕對誤差(mean absolute error,MAE)值和均方根誤差(root mean square error,RMSE)值的分布如表1所示。 表1 不同聚類數下測試系統MAE值和RMSE值的分布 考慮到聚類數對最近鄰居用戶查找效率存在明顯影響,需要合理選擇聚類數值,以免發生聚類數過大或過小的問題。對表1進行分析可知,在聚類數為10的情況下,MAE值最小。因此,本文設計的算法將聚類數設置為10。 為確定本文設計的B-CFR算法的近鄰數K,不同近鄰數下測試系統MAE值和RMSE值的分布如表2所示。對表2進行分析可知,當K處于[10,40]區間內,隨著K的增大,MAE值迅速減小。由此可以發現在該區間內,當K增加后,獲得了更優的推薦效果。當K=40時,MAE值最小。當K處于[40,80]區間內,隨著K的增大,MAE發生了緩慢升高的現象,但低于K為10、20情況下的MAE值。根據以上分析可知,本文算法的K取值為40時達到最優值。 表2 不同近鄰數下測試系統MAE值和RMSE值的分布 為確定本文設計的B-CFR算法最優權重系數,驗證了該因子對推薦結果產生的影響。按照上文優化的聚類數為10、K為40,對系統進行計算。不同權重系數下測試系統MAE值和RMSE值的分布如表3所示。對表3進行分析可知,當權重系數處于[0.1,0.5]區間內,不管聚類數量是多少,MAE值都發生了隨權重系數增大而減小的現象。該結果表明,在設置了用戶項目類型偏好相似度的情況下,通過B-CFR算法預測評級時能夠滿足用戶真實評級狀態評價,顯著改善推薦效果。當權重系數處于0.5~0.9時,隨著權重系數的增大,MAE值也隨之提高。由此可以推斷,此時用戶項目類型偏好相似度已經獲得較高比重,從而對推薦性能造成負面影響。 表3 不同權重系數下測試系統MAE值和RMSE值的分布 為驗證本文設計的B-CFR算法具備比傳統CFR算法更強的實時性,設定K為40,根據用戶占比度Ri計算得到最近用戶重復度Bi和搜索率Si。不同Ri下Bi和Si的分布結果如表4所示。 表4 不同Ri下Bi和Si的分布 對表4進行分析可知,Ri取值為40%的情況下,Bi為88%。Si在Ri為40%的條件下獲得最大值。 由此可以獲得以下結論。本文設計的B-CFR算法相對于CFR算法,一方面可以優化評分預測準確性,另一方面可以有效縮小最近鄰居搜索范圍,增強系統實時性,使系統獲得更強的擴展能力。 本文在設計B-CFR算法時,融入了用戶偏好優化聚類方法。首先,以B-CFR算法為基礎,并根據項目類型建立了細粒度偏好模型。然后,利用蝙蝠優化算法,達到改進聚類的效果。最后,按照用戶加權相似度結果預測評分。 本文所設計的算法在聚類數為10、K為40時是最優的。當權重系數處于[0.1,0.5]區間內時,通過B-CFR算法預測評級時能夠滿足用戶真實評級狀態評價,顯著改善推薦效果。 相對于CFR算法,本文設計的B-CFR算法可以優化評分預測準確性、有效縮小最近鄰居搜索范圍、增強系統實時性,使系統獲得更強的擴展能力。1.3 算法執行過程
2 試驗結果與分析
2.1 數據集
2.2 參數結果分析



2.3 實時性的驗證

3 結論