張 圣
(南京工業(yè)大學 電子與信息科學學院,江蘇 南京 210009)
隨著電子商務的飛速發(fā)展,用戶得到的服務類型也在不斷豐富,既有傳統(tǒng)的實物交易,也有音樂、電影等各種類型的服務[1]。在此過程中,用戶找到自己所需的個性化服務對象難度增大,服務提供商還要考慮以怎樣的方式提供服務供用戶選擇,服務推薦作為解決這一問題的有效手段應運而生[2]。
協(xié)作過濾推薦是當前被廣泛被采用服務推薦算法,然而基于這種協(xié)作過濾的服務推薦技術(shù)存在無法雙向推薦的局限性[3]。
現(xiàn)提出了一種新的基于混合式協(xié)作過濾的雙向服務推薦算法,同時考慮用戶之間和服務之間的相似度,為用戶和服務提供商產(chǎn)生雙向推薦。實驗結(jié)果表明該算法可以有效地解決傳統(tǒng)協(xié)作過濾算法無法產(chǎn)生雙向推薦的不足,顯著提高推薦系統(tǒng)的推薦量。
傳統(tǒng)協(xié)作過濾算法基于一種假設:如果用戶對某些服務的評分結(jié)果相似,那么其它服務的評分結(jié)果也較為相似。通過統(tǒng)計若干目標用戶的最近鄰居,利用最近鄰居的評分來預測目標用戶的評分,從而產(chǎn)生推薦[4]。
用戶的評分數(shù)據(jù)可以由一個集合m×n階矩陣R來表達,m行代表m個用戶,n列代表n個項目,第i行第j列的元素Rij代表用戶i對項目j的評分,如表1的矩陣所示。
然后通過傳統(tǒng)的相似性度量方法如余弦相似性[5]來計算用戶i和其它所有用戶之間的相似度,通過對這些相似度進行排序,找出與用戶i最相似的k個最近鄰集合,最后通過設定的預測評分公式對k個最近鄰集合中項目的評分進行計算,得到預測的用戶i的評分數(shù)據(jù)。
傳統(tǒng)協(xié)作過濾算法隨著用戶及服務的增大性能降低快,有人提出了結(jié)合用戶間相似性和項目間相似性進行混合式協(xié)作過濾[6],這里進一步優(yōu)化了混合式協(xié)作過濾算法,通過計算用戶、項目和全局平均評分偏差的加權(quán)來同時得到用戶、項目的預測評分,從而產(chǎn)生更高質(zhì)量的推薦。
表1 用戶項目評分矩陣
混合式協(xié)作過濾推薦算法的輸入是用戶-項目評分矩陣,用戶集合U和項目集合I構(gòu)成一個m×n階矩陣R(m,n),其第a行第j列元素表示用戶a對項目j的評分向量,描述了用戶a對項目j的評分,如果用戶a未對項目j評分,則將其評分向量設為0。
任取用戶 a∈U,將 a在評分矩陣 R(m,n)中對應的第 a行元素的集合記為La,將集合La中不為0元素的項目集合記為Ia即用戶a已經(jīng)評分的項目集合。同樣,項目j(j∈I)在評分矩陣R(m,n)中對應的第j列元素記為Cj,將集合Cj中不為0元素的用戶集合記為Uj即項目j評分的用戶集合。
相似性度量方法采用皮爾遜相關(guān)系數(shù)計算用戶之間和項目之間的相似度,用戶u和用戶a的相似度如式(1)所示:
其中Iua表示用戶u和用戶a共同評分項目的集合,即Iua=Iu∩Ia,Lu和La分別表示Lu和La的平均值向量。由(1),sim(u,a)的范圍在區(qū)間[-1,1]之間,當sim(u,a)∈[-1,0]時,用戶u和用戶a不相似;當sim(u,a)∈(0,1]時,sim(u,a)越接近于1用戶u和用戶a的相似度越高。同理,項目i和項目j的相似度采用同一公式,不再贅述。
為了解決用戶u和a共同評分的項目集合Iua較小時,u和 a的相似度應當較小但是公式(1)計算出的相似度可能很大的問題,在式(1)的計算結(jié)果sim(u,a)上添加權(quán)重,式(2)給出調(diào)整后的用戶u 和用戶a的相似度:
其中|Iu∩Ia|和|Iu∪Ia|分別表示用戶 u評分項目和用戶 a評分項目的交集和并集中元素的個數(shù)。當評分交集Iua較小時,|Iu∩Ia|較小,用戶u和用戶a的相似度sim'(u,a)就較小。項目i和項目j的相似度同理。
由公式(2)可以計算出用戶u和其他用戶的相似度,將其從大到小排序,前k個用戶就是u的k-最近鄰集合[7]T(u)。在T(u)中將相似度不大于0時近鄰用戶去掉,得到集合N(u),如式(3)所示:
同理計算項目i的k-最近鄰集合N(i)
混合式協(xié)作過濾推薦算法通過預測在線用戶u對未評分項目i的評分,將預測評分高的項目推薦給該用戶,將用戶u對項目i的預測評分向量記為P(u,i)。這里提出一種新的預測評分向量計算方法,通過全局平均評分向量μ、用戶u對μ的偏差、項目i對μ的偏差三者的加權(quán)和來得出P(u,i)。
全局平均評分向量μ是評分矩陣R(m,n)所有元素的平均值向量,如式(4)所示:
用戶u對μ的偏差記為D(u),根據(jù)用戶u的k-最近鄰集合,如式(5)所示:
項目i對μ的偏差D(i)計算同D(u)。
為了調(diào)整基于用戶的預測和基于項目的預測的依賴度[8]引入?yún)?shù)λ(0≤λ≤1)調(diào)整權(quán)重,P(u,i)如式(6)所示:
P(u,i) 描述了用戶項目u對i諸方面屬性的預測評分,面向用戶和服務提供商進行雙向推薦即為在線用戶u推薦最有可能感興趣的N個服務,同時為服務提供商i推薦最有可能對其感興趣的M個在線用戶。
采用MovieLens(接收用戶對電影的評分并提供相應的電影推薦列表)站點提供的數(shù)據(jù)集(http://movielens.umn.edu/)。在該數(shù)據(jù)庫中選擇8 000條評分數(shù)據(jù)作為實驗數(shù)據(jù)集,包含200個用戶和800部電影,每個用戶至少對20部電影進行了評分。
采用平均絕對偏差(MAE,Mean Absolute Error)作為統(tǒng)計精度度量方法:設預測的用戶評分的集合為{b1,b2,…,bN},對應的實際用戶評分集合為{p1,p2,…,pN},則平均絕對誤差MAE的定義如式(7)所示:
MAE通過計算用戶的預測評分數(shù)據(jù)和用戶的實際評分數(shù)據(jù)之間的偏差來度量預測的準確程度。MAE越小,推薦的質(zhì)量越高。
如圖1所示,在K最近鄰實驗實驗條件下,混合式協(xié)作過濾的雙向服務推薦算法均具有最小的 MAE.由于綜合考慮了用戶和項目之間的相似性,同時考慮了多種評分偏差,因此與傳統(tǒng)的協(xié)作過濾推薦算法相比,顯著地提高推薦系統(tǒng)的推薦質(zhì)量。
圖1 兩種算法對比
這里在分析傳統(tǒng)協(xié)作過濾推薦算法的不足之后,提出了一種基于混合式協(xié)作過濾的雙向服務推薦算法,這種算法由于同時考慮了用戶間相似性和項目間相似性,能夠同時為用戶和服務提供商進行雙向的推薦,同時綜合考慮了用戶、項目、全局之間的評分偏差。實驗結(jié)果表明,該算法不但能進行雙向推薦,而且有效的提高了推薦質(zhì)量。
[1] 趙攀,雷文,周剛. 基于電子商務背景的智能挖掘技術(shù)及其應用研究[J]. 通信技術(shù), 2009,42(08):76-78.
[2] 韓家煒. 數(shù)據(jù)挖掘:概念與技術(shù)[M]. 北京:機械工業(yè)出版社,2004:137-147.
[3] 李嵐. 數(shù)據(jù)挖掘技術(shù)在電子商務中的應用[J]. 通信技術(shù), 2007,40(08): 74-76.
[4] 歐立奇. 協(xié)同過濾在電子商務推薦系統(tǒng)中的應用研究[D]. 西安:西北大學,2005.
[5] MA H, KING I, LYU M R. Effective Missing Data Prediction for Collaborative Filtering[M]. USA:ACM, 2007:39-46.
[6] Sung Ho Ha. Helping Online Customers Decide through Web Personalization[J]. IEEE Intelligent Systems, 2002(10-11):34-43.
[7] 趙亮, 胡乃靜. 個性化推薦算法設計[J]. 計算機研究與發(fā)展,2002,39(08):986-991.
[8] 肖冬榮, 楊磊. 基于遺傳算法的關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘[J]. 通信技術(shù),2010, 43(01): 205-207.