(寶雞職業技術學院 學前教育教研室,寶雞 721000)
隨著互聯網的發展,信息超載[1]在人們的日常生活中越來越嚴重,信息超載的出現給生產和日常生活帶來了太多的不便[2]。例如,越來越多的音樂曲目增加了搜索優選歌曲的難度,通常情況下,用戶會隨機聽音樂播放器中已存在的音樂,但是當涉及到一些特殊場合時,隨機模型可能無法滿足用戶的實際需求,這就需要特定的過濾算法,從海量的中國音樂數據庫歌曲中進行提取,并為用戶推薦特殊的個人播放列表。
基于用戶的過濾和基于項目的過濾是傳統使用的推薦算法。在音樂大數據推薦過程中,基于用戶的過濾將用戶提供的歌曲的評分與同一首歌曲上其他用戶的評分進行比較[3],并且根據與該用戶較高相似度的用戶的偏好來預測用戶喜歡的歌曲;基于用戶和基于項目的過濾識別具有相似性,但基于項目的是根據音樂本身來區分的,即按照音樂的相似性為用戶做出預測,該方式前提是樂曲間相似度關系的建立,建立用戶/項目矩陣是這兩種技術中的主要原始數據資源,如果用戶或歌曲數量過多,同時出現嚴重的信息不足問題,則這是一個嚴重的稀疏矩陣。可惜的是,這兩種技術在預測過程中并不能很好地解決嚴重的稀疏問題。
協作過濾(Collaborative Filtering,CF)是通過收集來自其他類似用戶或項目的信息來自動預測用戶的相關值的有效方法,該方法已被廣泛應用于電子商務系統中,如亞馬遜網絡,易趣網等。實踐證明,CF在推薦系統中取得了巨大的成功。國內外有關CF推薦的相關工作很多。Zhou[4]等結合了基于用戶的方法和基于項目的方法,通過采用來自其他類似用戶和類似Web服務的歷史Web服務QoS數據來預測當前用戶的服務質量(QoS)值;Dutta[5]等將線性組合用于項目評分相似度和項目屬性相似度,以預測對目標用戶的評分,但改文章缺乏足夠的實驗支持其假設;Sutheera等[6]提出了一種基于項目的協同過濾方法,該方法將項目的屬性相似度與評分矩陣相似度相結合。在音樂海量數據庫中為用戶推薦合適的音樂對象,由于在音樂推薦過程中的用戶/音樂矩陣比較稀疏,因此會造成信息量的不足,為此本文提出一種更為有效的用于音樂推薦,解決音樂大數據集推薦問題的協同過濾算法。
本文所提出的協同過濾算法通過導入權重因子,將基于項目的方法與基于用戶的方法相結合。在實施過程中,經過幾次實驗,通過改變不同影響因素來檢驗不同預測方法的效率;并采取平均絕對誤差(MAE)方法來評估實驗結果,MAE越低,證明該方法的效果越好。
基于用戶的協同過濾和基于項目的協同過濾是基于內存過濾的兩種常用的協同方法,兩個方法的構建過程圖,如圖1所示。

圖1 協作過濾方法構建過程圖
如圖1所示,實施音樂推薦的一般協同過濾算法有3個主要步驟。首先,需要從原始數據集中獲得用戶音樂矩陣;其次,根據用戶音樂矩陣計算相似度矩陣,在基于用戶的協同過濾算法中,需要計算用戶之間的相似度,同樣,需要計算基于項目的過濾方法中音樂項目之間的相似度;最后,需要根據預測的評分值向用戶推薦音樂項目。這兩種算法的預測評分的計算方法是不同的,但共同目標即是獲取準確的結果,以下分別對各步驟進行介紹[7-10]。
(1)獲取用戶音樂矩陣
從圖1中可以看出,第一步是獲取協同過濾算法中的用戶音樂矩陣。主要數據集由用戶信息和對應的音樂信息組成,描述了用戶的偏好。R描述用戶音樂信息,由第一用戶評價的音樂的值存儲在矩陣R的第一行中,當一些用戶不評價音樂片段時,矩陣中相應位置的值將為零。評分矩陣如表1所示。

表1 評分矩陣表
(2)計算相似矩陣
第二步是計算相似度矩陣。這意味著需要找出目標用戶/音樂的鄰居用戶/音樂項目。該步主要區別基于用戶的方法和基于項目的方法,這個過程的本質是計算兩個向量之間的相似性。Pearson相關性、余弦矢量相似性和調整余弦矢量相似性已經被廣泛用于測量兩個矢量之間的相似性。具體計算如式(1)所示。
Pearson相關性:
(1)
余弦相似性,如式(2)。
(2)
調整后的余弦相似度,如式(3)。
(3)
(3)獲取推薦結果
最后一步既獲取用戶的最終推薦結果,通過獲取的項目評級列表,并且推薦活躍用戶可能評價更高值的項目。同樣,有不同的技術可以預測與這兩種方法相關的評級值。
基于用戶的方案
在基于用戶的方法中,根據用戶的相似性預測評分,如下式(4)所示:
(4)

基于項目的方案
在基于項目的方法中,評分的預測與音樂項目的相似性有關,計算式如下式(5)所示。
(5)

本文提出一種基于用戶和基于項目的共同協作算法,如式(6)為算法描述。
(6)


圖2 算法程序實現圖
通過MATLAB分析及比較了本文所提出的算法以及傳統的基于用戶和基于項目的算法,從百度音樂網站獲取數據,根據實時統計在某時刻該音樂網站數據集合包含2 231 093個獨立用戶,1 474 996條MSD曲目和145 384 582條播放記錄,在本文的研究中選取894個用戶和884首歌曲以及相應的播放記錄作為所研究的數據集。假設播放次數代表了用戶對音樂作品的偏好,即如果用戶對于某一首歌曲相比其他歌曲播放更多次數,則用戶更喜歡該音樂,并假設任何人沒有播放的歌曲的評分值為零,轉換規則如表2所示。

表2 轉換規則表
獲取用戶音樂信息評分矩陣后,通過從原始數據集中隨機獲取訓練集和測試集。然后通過使用這套訓練集和測試集來進行完成實驗。在實驗過程中,通過本文所提出的協作過濾算法和基于用戶及基于項目的過濾算法進行預測結果,在計算用戶和音樂片段之間的相似度的過程中使用了調整后的余弦矢量相似度。
在以下的實驗過程中采用平均絕對誤差(MAE)來評估預測的準確性,MAE通過比較其預測值來評估預測的準確性。MAE的值越小,預測算法越準確。MAE的計算定義如下:
(7)
有幾個因素會影響預測的準確性,例如不同的預測方法,預測過程中鄰居的數量以及數據集中測試數據的百分比。
(1)鄰居數量的影響結果
為了找到實驗中鄰居數量的影響,將其他變量設置為常量。改變所有這些預測方法的鄰居數量,得到了如圖3所示的結果。
(2)測試數據的百分比影響結果
在實驗過程中,將鄰居的數量設置為常量。并且選擇了測試數據的百分比作為變量,然后得到了所有三種方法的結果,如圖4所示。

圖3 三種方法的MAE隨著鄰居的增加而變化圖

圖4 三種方法的MAE隨著試驗數據的百分比的增加而變化圖
本文提出一種用于音樂數據庫推薦的協同過濾算法,該算法將基于用戶的協同過濾方法和基于項目的協同過濾方法進行結合,從理論上該方法可以通過導入權重因子參數來減少稀疏矩陣的負面影響。通過實驗證明,該方法可以改進推薦效果。通過結果分析,該方法的平均絕對誤差分別低于基于用戶的方法和基于項目的方法,表明預測評分的準確性會提高。同時,隨著鄰居數量的增加,平均絕對誤差得到優化;隨著測試數據比例的增加而變化,MAE非單調下降;但是,當百分比為25%時,預測精度是最優的。