華澤,葉雨航
(蘇州科技大學電子與信息工程學院,蘇州215009)
信息以爆炸方式迅速增長即給人們帶來了便利,其中不乏很多有益信息被無用信息覆蓋掉。對用戶來說,如何從如此大量的信息中找到自己喜愛的信息,作為網絡服務內容的提供方,怎樣讓網絡服務信息內容更好呈現到用戶面前,讓用戶喜歡這些內容,是一件較為困難的事情。為了彌補這一領域的空缺,很多公司開始開發推薦系統,推薦系統將會結合用戶的喜好,去網絡服務中尋找那些符合用戶喜好的信息,將他們呈現給用戶。搜索引擎的出現,能讓用戶能夠根據關鍵字來搜尋自己喜歡的內容。然而,用戶的知識是有限的,如果用戶喜歡的東西但之前沒有接觸過的話,用戶也無法輸入這樣的關鍵詞,因此搜索引擎對于這種情況也就無能為力了。為了解決用戶喜歡但他喜歡的東西可能不在用戶的知識范圍之內這個問題,推薦系統應運而生。
智能協同過濾算法的思路是根據用戶提供的評價信息計算目標用戶或項目之間的相似度,并利用相似類比法確定最近的用戶組或項目組,從最近的用戶組或項目組中的評分情況預測目標用戶的評分情況。協同過濾算法分為:基于用戶和基于項目兩種模式。
基于用戶協同過濾算法提出分析不同用戶的項目評價信息,計算所有用戶間的相似度,根據用戶相似度選擇與當前用戶最相似的m個近鄰居,從鄰居的用戶那里獲得目標用戶未接觸過或未喜歡的項目的評分反饋,預測目標用戶的喜愛程度。如表1用戶&歌曲表,如果用戶1喜歡歌曲A和C,用戶3也喜歡歌曲A和C,然后我們就猜測用戶1、3之間的相似度很大,而用戶1沒有聽過歌曲D,所以把用戶3喜歡的歌曲D推薦給用戶1,如圖1所示。

圖1 基于用戶的智能協同過濾

表1 用戶&歌曲
算法步驟如下:
(1)采集用戶與物品間的關聯數據,記錄用戶歷史行為。對所選用戶收集的歷史業務數據進行預處理后,生成用戶—評分矩陣,分數可以被視為一個數值。不同的數值表示推薦用戶的不同偏好。
(2)用戶間相似度的計算。當目標用戶根據他們沒有接觸的對象來預測時,計算用戶之間的相似性,計算方法有余弦相似性、相關性相似性和修正的余弦相似性。
1)余弦相似性。基于用戶的協同過濾算法,首先要確定用戶向量,并確定目標用戶在用戶向量中的興趣。假設兩個近鄰用戶Ui和Uj,他們的愛好向量為i和j,反映用戶之間相似度的計算如式(1)。

2)改進的余弦相似性。每個用戶的評分機制不一樣,用戶的評分標準也有差別,有的用戶評分比較松弛,普遍給高分,有的用戶就相對比較嚴格,給的分數就比較低,就有了改進的余弦相似度,計算方法如式(2)。

3)相關相似性。與傳統的兩類用戶的相似度相比,相關相似度的不同之處在于,它是基于兩個用戶對音樂供應的聯合評價,而用戶之間的相似度則是基于用戶共同評分來估計。計算方式如式(3)。

公式符號的含義與修正之后的余弦相同。
(3)使用協同過濾推薦算法創建音樂推薦列表。通過估計多種用戶之間的相似性,并用來確定最近的相鄰用戶之間的相似性,通過分析相鄰用戶是否對該項目感興趣來預測目標用戶的興趣。具體公式如式(4)。

基于項目的推薦算法的基本思想是通過計算適合目標用戶的項目之間的相似度來提出推薦方案。先是從推薦的產品中提取一些典型特征,通過用戶的歷史數據來顯示項目,并分析用戶興趣的優先級。在達到前一階段后,為目標用戶推薦最高相關度的產品組。如表2用戶&歌曲喜歡表,如果用戶1喜歡歌曲A和C,用戶3也喜歡歌曲A和C,所以推測歌曲A和C有很大的相似度,目標用戶2喜歡歌曲A和B而不了解歌曲C時,我們自動將歌曲C推薦給用戶2,如圖2所示。

圖2 基于項目的協同過濾

表2 用戶&歌曲喜歡的關系
其主要步驟如下:
(1)分析用戶-物品評分矩陣。采集用戶與物品之間的關聯數據,如瀏覽、購買或者交易記錄等信息形成初始數據。
(2)計算項目間的相似性。依據用戶-物品評分數據計算所有物品的相似度,對當前用戶沒有瀏覽過的某個物品,選擇最相似的K個物品。基于相似度的項目協同過濾計算主要是基于對音樂相似度的評估,而不是基于對用戶相似度的估計,它們可以分為三種不同的方式來實現相應的相似度。
1)余弦相似性。設置物品向量,將所有用戶對物品Vi和Vj的評分記為向量i和j,余弦公式如式(5)。

2)修正后的余弦相似性公式如式(6)。

3)相關相似性。采用相關相似性的具體運算過程如式(7)。

公式中的符號介紹同基于用戶協同過濾中的一致。
(3)生成推薦列表。基于項目的協同過濾算法不用去考慮用戶之間的關系,避免了用戶評價數據差異性問題。項目之間的相似性比較穩定,減少了離線計算中大量的相似工作,大大提高了推薦效率。但是很難提取視頻或音頻數據的特點,所以它不能直接探索潛在目標用戶的最愛,只能依靠前面的目標用戶推薦的最愛和內容產生的推薦也有高重復率。兩者對比之下,基于用戶的協同過濾推薦算法更適合該系統的實現。
系統在用戶注冊后,對用戶的行為記錄進行取樣。采集用戶下載、播放和收藏歌曲的行為信息數據,分析形成用戶歌曲矩陣,再計算用戶相似度生成推薦列表,過程如圖3所示。

圖3 為用戶推薦歌曲流程
音樂推薦算法實現分為3個步驟:
(1)獲取用戶的播放、下載以及收藏記錄,分析數據形成用戶—歌曲評分矩陣;
(2)計算用戶的相似鄰居用戶;
(3)從鄰居用戶集中選取相似最高的M個相似用戶,將這M個用戶評分取均值作為當前用戶的預測評分,選取最高的N首歌曲推薦給當前用戶,前提要當前用戶沒有評分過該歌曲。
個性化推薦列表如圖4所示。

圖4 個性化推薦列表
其主要方法的實現也分為3個步驟:
(1)構建用戶—歌曲評分矩陣的主要函數:根據用戶的下載、收藏和播放次數。

(2)用戶相似性計算的主要函數。

(3)生成個性化推薦的主要函數。


系統運行狀況良好,音樂網站引入個性化推薦系統,可以幫助用戶在網站海量音樂中,尋找出他們感興趣的音樂,能夠挖掘出網站中更多的音樂數據展現給用戶,使得整個網站能夠被訪問到數據的覆蓋面變得更為廣,一個音樂軟件可以準確地推薦給用戶最喜歡的音樂,人們對它的依賴度就會加深。
如今社會網絡上信息資源種類越來越繁多,分類也變得復雜,另外,面對龐大的數據資源,用戶的認知和時間也是有限的,簡單的引擎搜索已逐漸的難以滿足用戶對互聯網的需求。常用的淘寶、騰訊視頻、網易云音樂等App都引入了推薦系統,根據用戶的行為歷史記錄,生成推薦清單。本文實現了基于協同過濾算法的個性化音樂推薦系統,該系統可以為用戶生成音樂推薦清單,推薦系統中最常用的技術便是協同過濾算法,它查找與用戶或項目相似的群體,然后根據這些群體的歷史行為記錄產生推薦列表和推薦結果,從而使用戶可以感知使用過去未接觸過的音樂,方便用戶選擇和欣賞自己喜歡的音樂。