(寶雞職業(yè)技術(shù)學(xué)院 學(xué)前教育教研室,寶雞 721000)
隨著互聯(lián)網(wǎng)的發(fā)展,信息超載[1]在人們的日常生活中越來越嚴(yán)重,信息超載的出現(xiàn)給生產(chǎn)和日常生活帶來了太多的不便[2]。例如,越來越多的音樂曲目增加了搜索優(yōu)選歌曲的難度,通常情況下,用戶會隨機(jī)聽音樂播放器中已存在的音樂,但是當(dāng)涉及到一些特殊場合時,隨機(jī)模型可能無法滿足用戶的實際需求,這就需要特定的過濾算法,從海量的中國音樂數(shù)據(jù)庫歌曲中進(jìn)行提取,并為用戶推薦特殊的個人播放列表。
基于用戶的過濾和基于項目的過濾是傳統(tǒng)使用的推薦算法。在音樂大數(shù)據(jù)推薦過程中,基于用戶的過濾將用戶提供的歌曲的評分與同一首歌曲上其他用戶的評分進(jìn)行比較[3],并且根據(jù)與該用戶較高相似度的用戶的偏好來預(yù)測用戶喜歡的歌曲;基于用戶和基于項目的過濾識別具有相似性,但基于項目的是根據(jù)音樂本身來區(qū)分的,即按照音樂的相似性為用戶做出預(yù)測,該方式前提是樂曲間相似度關(guān)系的建立,建立用戶/項目矩陣是這兩種技術(shù)中的主要原始數(shù)據(jù)資源,如果用戶或歌曲數(shù)量過多,同時出現(xiàn)嚴(yán)重的信息不足問題,則這是一個嚴(yán)重的稀疏矩陣??上У氖?,這兩種技術(shù)在預(yù)測過程中并不能很好地解決嚴(yán)重的稀疏問題。
協(xié)作過濾(Collaborative Filtering,CF)是通過收集來自其他類似用戶或項目的信息來自動預(yù)測用戶的相關(guān)值的有效方法,該方法已被廣泛應(yīng)用于電子商務(wù)系統(tǒng)中,如亞馬遜網(wǎng)絡(luò),易趣網(wǎng)等。實踐證明,CF在推薦系統(tǒng)中取得了巨大的成功。國內(nèi)外有關(guān)CF推薦的相關(guān)工作很多。Zhou[4]等結(jié)合了基于用戶的方法和基于項目的方法,通過采用來自其他類似用戶和類似Web服務(wù)的歷史Web服務(wù)QoS數(shù)據(jù)來預(yù)測當(dāng)前用戶的服務(wù)質(zhì)量(QoS)值;Dutta[5]等將線性組合用于項目評分相似度和項目屬性相似度,以預(yù)測對目標(biāo)用戶的評分,但改文章缺乏足夠的實驗支持其假設(shè);Sutheera等[6]提出了一種基于項目的協(xié)同過濾方法,該方法將項目的屬性相似度與評分矩陣相似度相結(jié)合。在音樂海量數(shù)據(jù)庫中為用戶推薦合適的音樂對象,由于在音樂推薦過程中的用戶/音樂矩陣比較稀疏,因此會造成信息量的不足,為此本文提出一種更為有效的用于音樂推薦,解決音樂大數(shù)據(jù)集推薦問題的協(xié)同過濾算法。
本文所提出的協(xié)同過濾算法通過導(dǎo)入權(quán)重因子,將基于項目的方法與基于用戶的方法相結(jié)合。在實施過程中,經(jīng)過幾次實驗,通過改變不同影響因素來檢驗不同預(yù)測方法的效率;并采取平均絕對誤差(MAE)方法來評估實驗結(jié)果,MAE越低,證明該方法的效果越好。
基于用戶的協(xié)同過濾和基于項目的協(xié)同過濾是基于內(nèi)存過濾的兩種常用的協(xié)同方法,兩個方法的構(gòu)建過程圖,如圖1所示。
圖1 協(xié)作過濾方法構(gòu)建過程圖
如圖1所示,實施音樂推薦的一般協(xié)同過濾算法有3個主要步驟。首先,需要從原始數(shù)據(jù)集中獲得用戶音樂矩陣;其次,根據(jù)用戶音樂矩陣計算相似度矩陣,在基于用戶的協(xié)同過濾算法中,需要計算用戶之間的相似度,同樣,需要計算基于項目的過濾方法中音樂項目之間的相似度;最后,需要根據(jù)預(yù)測的評分值向用戶推薦音樂項目。這兩種算法的預(yù)測評分的計算方法是不同的,但共同目標(biāo)即是獲取準(zhǔn)確的結(jié)果,以下分別對各步驟進(jìn)行介紹[7-10]。
(1)獲取用戶音樂矩陣
從圖1中可以看出,第一步是獲取協(xié)同過濾算法中的用戶音樂矩陣。主要數(shù)據(jù)集由用戶信息和對應(yīng)的音樂信息組成,描述了用戶的偏好。R描述用戶音樂信息,由第一用戶評價的音樂的值存儲在矩陣R的第一行中,當(dāng)一些用戶不評價音樂片段時,矩陣中相應(yīng)位置的值將為零。評分矩陣如表1所示。
表1 評分矩陣表
(2)計算相似矩陣
第二步是計算相似度矩陣。這意味著需要找出目標(biāo)用戶/音樂的鄰居用戶/音樂項目。該步主要區(qū)別基于用戶的方法和基于項目的方法,這個過程的本質(zhì)是計算兩個向量之間的相似性。Pearson相關(guān)性、余弦矢量相似性和調(diào)整余弦矢量相似性已經(jīng)被廣泛用于測量兩個矢量之間的相似性。具體計算如式(1)所示。
Pearson相關(guān)性:
(1)
余弦相似性,如式(2)。
(2)
調(diào)整后的余弦相似度,如式(3)。
(3)
(3)獲取推薦結(jié)果
最后一步既獲取用戶的最終推薦結(jié)果,通過獲取的項目評級列表,并且推薦活躍用戶可能評價更高值的項目。同樣,有不同的技術(shù)可以預(yù)測與這兩種方法相關(guān)的評級值。
基于用戶的方案
在基于用戶的方法中,根據(jù)用戶的相似性預(yù)測評分,如下式(4)所示:
(4)
基于項目的方案
在基于項目的方法中,評分的預(yù)測與音樂項目的相似性有關(guān),計算式如下式(5)所示。
(5)
本文提出一種基于用戶和基于項目的共同協(xié)作算法,如式(6)為算法描述。
(6)
圖2 算法程序?qū)崿F(xiàn)圖
通過MATLAB分析及比較了本文所提出的算法以及傳統(tǒng)的基于用戶和基于項目的算法,從百度音樂網(wǎng)站獲取數(shù)據(jù),根據(jù)實時統(tǒng)計在某時刻該音樂網(wǎng)站數(shù)據(jù)集合包含2 231 093個獨立用戶,1 474 996條MSD曲目和145 384 582條播放記錄,在本文的研究中選取894個用戶和884首歌曲以及相應(yīng)的播放記錄作為所研究的數(shù)據(jù)集。假設(shè)播放次數(shù)代表了用戶對音樂作品的偏好,即如果用戶對于某一首歌曲相比其他歌曲播放更多次數(shù),則用戶更喜歡該音樂,并假設(shè)任何人沒有播放的歌曲的評分值為零,轉(zhuǎn)換規(guī)則如表2所示。
表2 轉(zhuǎn)換規(guī)則表
獲取用戶音樂信息評分矩陣后,通過從原始數(shù)據(jù)集中隨機(jī)獲取訓(xùn)練集和測試集。然后通過使用這套訓(xùn)練集和測試集來進(jìn)行完成實驗。在實驗過程中,通過本文所提出的協(xié)作過濾算法和基于用戶及基于項目的過濾算法進(jìn)行預(yù)測結(jié)果,在計算用戶和音樂片段之間的相似度的過程中使用了調(diào)整后的余弦矢量相似度。
在以下的實驗過程中采用平均絕對誤差(MAE)來評估預(yù)測的準(zhǔn)確性,MAE通過比較其預(yù)測值來評估預(yù)測的準(zhǔn)確性。MAE的值越小,預(yù)測算法越準(zhǔn)確。MAE的計算定義如下:
(7)
有幾個因素會影響預(yù)測的準(zhǔn)確性,例如不同的預(yù)測方法,預(yù)測過程中鄰居的數(shù)量以及數(shù)據(jù)集中測試數(shù)據(jù)的百分比。
(1)鄰居數(shù)量的影響結(jié)果
為了找到實驗中鄰居數(shù)量的影響,將其他變量設(shè)置為常量。改變所有這些預(yù)測方法的鄰居數(shù)量,得到了如圖3所示的結(jié)果。
(2)測試數(shù)據(jù)的百分比影響結(jié)果
在實驗過程中,將鄰居的數(shù)量設(shè)置為常量。并且選擇了測試數(shù)據(jù)的百分比作為變量,然后得到了所有三種方法的結(jié)果,如圖4所示。
圖3 三種方法的MAE隨著鄰居的增加而變化圖
圖4 三種方法的MAE隨著試驗數(shù)據(jù)的百分比的增加而變化圖
本文提出一種用于音樂數(shù)據(jù)庫推薦的協(xié)同過濾算法,該算法將基于用戶的協(xié)同過濾方法和基于項目的協(xié)同過濾方法進(jìn)行結(jié)合,從理論上該方法可以通過導(dǎo)入權(quán)重因子參數(shù)來減少稀疏矩陣的負(fù)面影響。通過實驗證明,該方法可以改進(jìn)推薦效果。通過結(jié)果分析,該方法的平均絕對誤差分別低于基于用戶的方法和基于項目的方法,表明預(yù)測評分的準(zhǔn)確性會提高。同時,隨著鄰居數(shù)量的增加,平均絕對誤差得到優(yōu)化;隨著測試數(shù)據(jù)比例的增加而變化,MAE非單調(diào)下降;但是,當(dāng)百分比為25%時,預(yù)測精度是最優(yōu)的。