華澤,葉雨航
(蘇州科技大學(xué)電子與信息工程學(xué)院,蘇州215009)
信息以爆炸方式迅速增長即給人們帶來了便利,其中不乏很多有益信息被無用信息覆蓋掉。對(duì)用戶來說,如何從如此大量的信息中找到自己喜愛的信息,作為網(wǎng)絡(luò)服務(wù)內(nèi)容的提供方,怎樣讓網(wǎng)絡(luò)服務(wù)信息內(nèi)容更好呈現(xiàn)到用戶面前,讓用戶喜歡這些內(nèi)容,是一件較為困難的事情。為了彌補(bǔ)這一領(lǐng)域的空缺,很多公司開始開發(fā)推薦系統(tǒng),推薦系統(tǒng)將會(huì)結(jié)合用戶的喜好,去網(wǎng)絡(luò)服務(wù)中尋找那些符合用戶喜好的信息,將他們呈現(xiàn)給用戶。搜索引擎的出現(xiàn),能讓用戶能夠根據(jù)關(guān)鍵字來搜尋自己喜歡的內(nèi)容。然而,用戶的知識(shí)是有限的,如果用戶喜歡的東西但之前沒有接觸過的話,用戶也無法輸入這樣的關(guān)鍵詞,因此搜索引擎對(duì)于這種情況也就無能為力了。為了解決用戶喜歡但他喜歡的東西可能不在用戶的知識(shí)范圍之內(nèi)這個(gè)問題,推薦系統(tǒng)應(yīng)運(yùn)而生。
智能協(xié)同過濾算法的思路是根據(jù)用戶提供的評(píng)價(jià)信息計(jì)算目標(biāo)用戶或項(xiàng)目之間的相似度,并利用相似類比法確定最近的用戶組或項(xiàng)目組,從最近的用戶組或項(xiàng)目組中的評(píng)分情況預(yù)測目標(biāo)用戶的評(píng)分情況。協(xié)同過濾算法分為:基于用戶和基于項(xiàng)目兩種模式。
基于用戶協(xié)同過濾算法提出分析不同用戶的項(xiàng)目評(píng)價(jià)信息,計(jì)算所有用戶間的相似度,根據(jù)用戶相似度選擇與當(dāng)前用戶最相似的m個(gè)近鄰居,從鄰居的用戶那里獲得目標(biāo)用戶未接觸過或未喜歡的項(xiàng)目的評(píng)分反饋,預(yù)測目標(biāo)用戶的喜愛程度。如表1用戶&歌曲表,如果用戶1喜歡歌曲A和C,用戶3也喜歡歌曲A和C,然后我們就猜測用戶1、3之間的相似度很大,而用戶1沒有聽過歌曲D,所以把用戶3喜歡的歌曲D推薦給用戶1,如圖1所示。
圖1 基于用戶的智能協(xié)同過濾
表1 用戶&歌曲
算法步驟如下:
(1)采集用戶與物品間的關(guān)聯(lián)數(shù)據(jù),記錄用戶歷史行為。對(duì)所選用戶收集的歷史業(yè)務(wù)數(shù)據(jù)進(jìn)行預(yù)處理后,生成用戶—評(píng)分矩陣,分?jǐn)?shù)可以被視為一個(gè)數(shù)值。不同的數(shù)值表示推薦用戶的不同偏好。
(2)用戶間相似度的計(jì)算。當(dāng)目標(biāo)用戶根據(jù)他們沒有接觸的對(duì)象來預(yù)測時(shí),計(jì)算用戶之間的相似性,計(jì)算方法有余弦相似性、相關(guān)性相似性和修正的余弦相似性。
1)余弦相似性?;谟脩舻膮f(xié)同過濾算法,首先要確定用戶向量,并確定目標(biāo)用戶在用戶向量中的興趣。假設(shè)兩個(gè)近鄰用戶Ui和Uj,他們的愛好向量為i和j,反映用戶之間相似度的計(jì)算如式(1)。
2)改進(jìn)的余弦相似性。每個(gè)用戶的評(píng)分機(jī)制不一樣,用戶的評(píng)分標(biāo)準(zhǔn)也有差別,有的用戶評(píng)分比較松弛,普遍給高分,有的用戶就相對(duì)比較嚴(yán)格,給的分?jǐn)?shù)就比較低,就有了改進(jìn)的余弦相似度,計(jì)算方法如式(2)。
3)相關(guān)相似性。與傳統(tǒng)的兩類用戶的相似度相比,相關(guān)相似度的不同之處在于,它是基于兩個(gè)用戶對(duì)音樂供應(yīng)的聯(lián)合評(píng)價(jià),而用戶之間的相似度則是基于用戶共同評(píng)分來估計(jì)。計(jì)算方式如式(3)。
公式符號(hào)的含義與修正之后的余弦相同。
(3)使用協(xié)同過濾推薦算法創(chuàng)建音樂推薦列表。通過估計(jì)多種用戶之間的相似性,并用來確定最近的相鄰用戶之間的相似性,通過分析相鄰用戶是否對(duì)該項(xiàng)目感興趣來預(yù)測目標(biāo)用戶的興趣。具體公式如式(4)。
基于項(xiàng)目的推薦算法的基本思想是通過計(jì)算適合目標(biāo)用戶的項(xiàng)目之間的相似度來提出推薦方案。先是從推薦的產(chǎn)品中提取一些典型特征,通過用戶的歷史數(shù)據(jù)來顯示項(xiàng)目,并分析用戶興趣的優(yōu)先級(jí)。在達(dá)到前一階段后,為目標(biāo)用戶推薦最高相關(guān)度的產(chǎn)品組。如表2用戶&歌曲喜歡表,如果用戶1喜歡歌曲A和C,用戶3也喜歡歌曲A和C,所以推測歌曲A和C有很大的相似度,目標(biāo)用戶2喜歡歌曲A和B而不了解歌曲C時(shí),我們自動(dòng)將歌曲C推薦給用戶2,如圖2所示。
圖2 基于項(xiàng)目的協(xié)同過濾
表2 用戶&歌曲喜歡的關(guān)系
其主要步驟如下:
(1)分析用戶-物品評(píng)分矩陣。采集用戶與物品之間的關(guān)聯(lián)數(shù)據(jù),如瀏覽、購買或者交易記錄等信息形成初始數(shù)據(jù)。
(2)計(jì)算項(xiàng)目間的相似性。依據(jù)用戶-物品評(píng)分?jǐn)?shù)據(jù)計(jì)算所有物品的相似度,對(duì)當(dāng)前用戶沒有瀏覽過的某個(gè)物品,選擇最相似的K個(gè)物品?;谙嗨贫鹊捻?xiàng)目協(xié)同過濾計(jì)算主要是基于對(duì)音樂相似度的評(píng)估,而不是基于對(duì)用戶相似度的估計(jì),它們可以分為三種不同的方式來實(shí)現(xiàn)相應(yīng)的相似度。
1)余弦相似性。設(shè)置物品向量,將所有用戶對(duì)物品Vi和Vj的評(píng)分記為向量i和j,余弦公式如式(5)。
2)修正后的余弦相似性公式如式(6)。
3)相關(guān)相似性。采用相關(guān)相似性的具體運(yùn)算過程如式(7)。
公式中的符號(hào)介紹同基于用戶協(xié)同過濾中的一致。
(3)生成推薦列表。基于項(xiàng)目的協(xié)同過濾算法不用去考慮用戶之間的關(guān)系,避免了用戶評(píng)價(jià)數(shù)據(jù)差異性問題。項(xiàng)目之間的相似性比較穩(wěn)定,減少了離線計(jì)算中大量的相似工作,大大提高了推薦效率。但是很難提取視頻或音頻數(shù)據(jù)的特點(diǎn),所以它不能直接探索潛在目標(biāo)用戶的最愛,只能依靠前面的目標(biāo)用戶推薦的最愛和內(nèi)容產(chǎn)生的推薦也有高重復(fù)率。兩者對(duì)比之下,基于用戶的協(xié)同過濾推薦算法更適合該系統(tǒng)的實(shí)現(xiàn)。
系統(tǒng)在用戶注冊(cè)后,對(duì)用戶的行為記錄進(jìn)行取樣。采集用戶下載、播放和收藏歌曲的行為信息數(shù)據(jù),分析形成用戶歌曲矩陣,再計(jì)算用戶相似度生成推薦列表,過程如圖3所示。
圖3 為用戶推薦歌曲流程
音樂推薦算法實(shí)現(xiàn)分為3個(gè)步驟:
(1)獲取用戶的播放、下載以及收藏記錄,分析數(shù)據(jù)形成用戶—歌曲評(píng)分矩陣;
(2)計(jì)算用戶的相似鄰居用戶;
(3)從鄰居用戶集中選取相似最高的M個(gè)相似用戶,將這M個(gè)用戶評(píng)分取均值作為當(dāng)前用戶的預(yù)測評(píng)分,選取最高的N首歌曲推薦給當(dāng)前用戶,前提要當(dāng)前用戶沒有評(píng)分過該歌曲。
個(gè)性化推薦列表如圖4所示。
圖4 個(gè)性化推薦列表
其主要方法的實(shí)現(xiàn)也分為3個(gè)步驟:
(1)構(gòu)建用戶—歌曲評(píng)分矩陣的主要函數(shù):根據(jù)用戶的下載、收藏和播放次數(shù)。
(2)用戶相似性計(jì)算的主要函數(shù)。
(3)生成個(gè)性化推薦的主要函數(shù)。
系統(tǒng)運(yùn)行狀況良好,音樂網(wǎng)站引入個(gè)性化推薦系統(tǒng),可以幫助用戶在網(wǎng)站海量音樂中,尋找出他們感興趣的音樂,能夠挖掘出網(wǎng)站中更多的音樂數(shù)據(jù)展現(xiàn)給用戶,使得整個(gè)網(wǎng)站能夠被訪問到數(shù)據(jù)的覆蓋面變得更為廣,一個(gè)音樂軟件可以準(zhǔn)確地推薦給用戶最喜歡的音樂,人們對(duì)它的依賴度就會(huì)加深。
如今社會(huì)網(wǎng)絡(luò)上信息資源種類越來越繁多,分類也變得復(fù)雜,另外,面對(duì)龐大的數(shù)據(jù)資源,用戶的認(rèn)知和時(shí)間也是有限的,簡單的引擎搜索已逐漸的難以滿足用戶對(duì)互聯(lián)網(wǎng)的需求。常用的淘寶、騰訊視頻、網(wǎng)易云音樂等App都引入了推薦系統(tǒng),根據(jù)用戶的行為歷史記錄,生成推薦清單。本文實(shí)現(xiàn)了基于協(xié)同過濾算法的個(gè)性化音樂推薦系統(tǒng),該系統(tǒng)可以為用戶生成音樂推薦清單,推薦系統(tǒng)中最常用的技術(shù)便是協(xié)同過濾算法,它查找與用戶或項(xiàng)目相似的群體,然后根據(jù)這些群體的歷史行為記錄產(chǎn)生推薦列表和推薦結(jié)果,從而使用戶可以感知使用過去未接觸過的音樂,方便用戶選擇和欣賞自己喜歡的音樂。