李曉瑜
(安康學(xué)院電子與信息工程學(xué)院 安康 725000)
協(xié)同過濾也稱為社會(huì)過濾由Terry等于1992年提出[1],它計(jì)算用戶間偏好的相似性,在相似用戶的基礎(chǔ)上自動(dòng)的為目標(biāo)用戶進(jìn)行過濾和篩選,其基本思想為具有相同或相似的價(jià)值觀、思想觀、知識(shí)水平和興趣偏好的用戶,其對(duì)信息的需求也是相似的[2]。協(xié)同過濾推薦技術(shù)是推薦系統(tǒng)中最為常用并且有效的方法,主要有兩種類型一種是基于用戶的協(xié)同過濾,另一種是基于項(xiàng)目的協(xié)同過濾?;谟脩舻乃惴ㄊ菍⒑湍繕?biāo)用戶有共同興趣愛好的用戶所喜歡的物品且目標(biāo)用戶沒有購(gòu)買的物品推薦給目標(biāo)用戶,基于項(xiàng)目的算法通過目標(biāo)項(xiàng)目的相似項(xiàng)目集合預(yù)測(cè)用戶對(duì)相似項(xiàng)目的的喜歡程度。協(xié)同過濾推薦算法的推薦步驟為建立用戶評(píng)分表,尋找相似用戶,推薦物品。協(xié)同過濾推薦技術(shù)是目前應(yīng)用廣泛的一種推薦技術(shù),但仍然面臨很多問題,其中主要有:
1)冷啟動(dòng)問題(Cold-start)[3]
推薦系統(tǒng)需要根據(jù)系統(tǒng)中用戶的歷史評(píng)價(jià)數(shù)據(jù)來(lái)預(yù)測(cè)用戶未來(lái)的興趣,當(dāng)一個(gè)新的戶或一個(gè)新項(xiàng)目進(jìn)入系統(tǒng)時(shí),系統(tǒng)中沒有關(guān)于該用戶或項(xiàng)目的評(píng)價(jià)數(shù)據(jù),就沒有辦法找到其近鄰,從而無(wú)法對(duì)其進(jìn)行推薦,這就是協(xié)同過濾推薦系統(tǒng)中的冷啟動(dòng)問題。
2)稀疏性問題(Sparsity)
協(xié)同過濾推薦需要根據(jù)用戶對(duì)某些項(xiàng)目的共同評(píng)分或相同行為,來(lái)進(jìn)行推薦。由于網(wǎng)絡(luò)中項(xiàng)目量非常大,用戶間共同評(píng)分的項(xiàng)目可能非常少,這樣就會(huì)影響到協(xié)同過濾推薦的準(zhǔn)確度。對(duì)于新加入的項(xiàng)目,系統(tǒng)中沒有用戶關(guān)于該項(xiàng)目的評(píng)分記錄,我們就無(wú)法使用協(xié)同過濾推薦技術(shù)對(duì)其進(jìn)行推薦。在推薦系統(tǒng)中,數(shù)據(jù)的稀疏性可以定義為[4]
3)推薦精度問題(Recommendation accuracy)
由于協(xié)同過濾推薦技術(shù)存在數(shù)據(jù)稀疏性問題和冷啟動(dòng)問題,影響到了推薦結(jié)果的正確性和精確性。目前主要的研究方向是在解決系統(tǒng)數(shù)據(jù)稀疏性問題和冷啟動(dòng)問題的同時(shí),如何保證系統(tǒng)推薦的精度。
本文主要對(duì)協(xié)同過濾推薦算法中存在的主要問題以及其主要的解決方法進(jìn)行了總結(jié),同時(shí)還對(duì)協(xié)同過濾推薦過程中計(jì)算相似度的方法進(jìn)行概括和總結(jié)。
傳統(tǒng)的相似度度量方法主要有修正的余弦相似性、杰卡德相似、相關(guān)相似,具體如表1所示。
融合用戶活躍度和項(xiàng)目流行度的計(jì)算方法是在傳統(tǒng)的皮爾遜(Pearson)相似性計(jì)算方法上進(jìn)行的改進(jìn)。皮爾遜(Pearson)相似性計(jì)算方法需要用戶對(duì)項(xiàng)目共同評(píng)分,由于數(shù)據(jù)的稀疏性會(huì)導(dǎo)致結(jié)果誤差較大,燕山大學(xué)的王斌在他的碩士論文中提出了一種融合用戶活躍度和項(xiàng)目流行度的相似度計(jì)算方法,通過引入了相關(guān)性懲罰權(quán)重來(lái)降低誤差。項(xiàng)目i和項(xiàng)目j的評(píng)分相似性可表示為式(1)。
表1 傳統(tǒng)的相似性度量方法[5~6]
其中Ui和Uj分別表示對(duì)項(xiàng)目i和對(duì)項(xiàng)目j評(píng)分用戶的集合。Ui∩Uj表示對(duì)項(xiàng)目i和對(duì)項(xiàng)目j共同評(píng)分用戶的集合。ru,i和ru,j分別表示用戶u對(duì)項(xiàng)目i和項(xiàng)目j的評(píng)分。和分別代表用戶對(duì)項(xiàng)目i和項(xiàng)目j的平均評(píng)分。表示相關(guān)性懲罰權(quán)重,其計(jì)算方法如下:
Iu表示用戶u評(píng)價(jià)過項(xiàng)目的數(shù)量,I表示所有項(xiàng)目的數(shù)量。項(xiàng)目i流行度的計(jì)算方法如下:
Ui表示評(píng)價(jià)過項(xiàng)目i的用戶的數(shù)量,U表示所有用戶的數(shù)量。項(xiàng)目i和項(xiàng)目j流行度的差值計(jì)算方式為
當(dāng)項(xiàng)目i和項(xiàng)目j間的流行度差值大于某個(gè)閾值時(shí),就可以不考慮項(xiàng)目流行度對(duì)項(xiàng)目相似性計(jì)算的影響。
融合興趣和評(píng)分的相似度計(jì)算方法,考慮到影響項(xiàng)目評(píng)分的因素除了評(píng)分還有用戶的興趣。將用戶的評(píng)分信息映射為興趣向量,先計(jì)算用戶的興趣相似性,然后計(jì)算項(xiàng)目的評(píng)分相似性,最后將用戶興趣相似性和評(píng)分相似性進(jìn)行兩次融合。任意兩個(gè)用戶,用戶u和用戶v興趣相似性可表示為
其中當(dāng)vui和vvi為集合時(shí),其元素允許重復(fù)。得到任意用戶u和用戶v之間的興趣相似性sim(u,v)interest,并應(yīng)用傳統(tǒng)計(jì)算相似性方法計(jì)算項(xiàng)目評(píng)分相似性sim(u,v)rate,則用戶u和用戶v的綜合相似性sim(u,v)計(jì)算方式如下:
其中α和β是平衡參數(shù),用來(lái)控制用戶興趣相似性和用戶評(píng)分相似性在用戶綜合相似性中所占的權(quán)重,并且α+β=1。
該計(jì)算方法可以對(duì)傳統(tǒng)相似性度量?jī)H僅依靠用戶評(píng)分進(jìn)行相似性計(jì)算引起的誤差進(jìn)行修正。并在計(jì)算用戶評(píng)分相似性的時(shí)候引入專家信任度,通過引入專家信任度的概念對(duì)用戶未評(píng)分項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè)填充,可以降低由于數(shù)據(jù)稀疏性引起的評(píng)分相似性計(jì)算誤差。
基于項(xiàng)目聚類的用戶最近鄰全局相似性,先計(jì)算局部最近鄰用戶相似性。局部最近鄰用戶相似性是在k個(gè)項(xiàng)目聚類的基礎(chǔ)上,引入重疊度因子,并將其融合到計(jì)算用戶局部相似度的公式中。用戶u和用戶v在聚類Cj上的局部最近鄰用戶相似性可表示為
其中,|Iu∩Iv∩Cj|指用戶u和用戶v在聚類Cj上共同評(píng)分的項(xiàng)目數(shù),設(shè)置參數(shù)γ,當(dāng)用戶共同評(píng)分的項(xiàng)目數(shù)小于γ,即數(shù)據(jù)相對(duì)稀疏時(shí),共同評(píng)價(jià)的項(xiàng)目數(shù)越多,因子值越大,從而保證只有共同評(píng)分項(xiàng)目較多且評(píng)分相似的用戶才有可能成為鄰居用戶。
全局最近鄰用戶相似性可以表示為
基于項(xiàng)目聚類的用戶最近鄰全局相似性協(xié)同過濾算法,根據(jù)用戶共同評(píng)分的項(xiàng)目數(shù)量,引入重疊度因子,并將其融合到計(jì)算用戶局部相似度的公式中,來(lái)進(jìn)一步加強(qiáng)相似度的準(zhǔn)確性。同時(shí)汕頭大學(xué)的李巧雨在她的碩士論文里還提出了混合的相關(guān)相似性度量方法和混合的余弦相似性度量方法,來(lái)解決傳統(tǒng)相似性度量方法中存在的問題[10]。
李歡提出的基于項(xiàng)目相似度學(xué)習(xí)的協(xié)同過濾推薦算法(ISL-CF),通過實(shí)驗(yàn)結(jié)果驗(yàn)證,該算法可以很好地緩解冷啟動(dòng)問題[11]。劉群、陳陽(yáng)等提出的融合信任度和相似度的推薦算法,利用用戶間的信任信息,將源用戶的信任鄰居對(duì)項(xiàng)目的評(píng)分作為該用戶的個(gè)人喜好,同時(shí)根據(jù)基于物質(zhì)擴(kuò)散的協(xié)同過濾算法找出源用戶的相似鄰居,利用信任鄰居和相似鄰居為該用戶產(chǎn)生推薦,實(shí)驗(yàn)結(jié)果表明該算法能有效的解決冷啟動(dòng)問題[12]。喬雨、李玲娟等提出的融合用戶相似度與評(píng)分信息的協(xié)同過濾算法,算法先找出用戶基本信息之間的相似度,再根據(jù)最速下降法對(duì)用戶評(píng)分矩陣進(jìn)行更新,從而產(chǎn)生對(duì)目標(biāo)用戶的推薦,實(shí)驗(yàn)表明,該算法在保證推薦準(zhǔn)確率的同時(shí),解決了冷啟動(dòng)問題[13]。劉坤提出了兩種新的推薦模型:基于偏好的推薦模型NPBM和基于人口統(tǒng)計(jì)學(xué)的推薦模型NDBM分別用于解決非純冷啟動(dòng)問題和純冷啟動(dòng)問題,NPBM算法結(jié)合結(jié)合機(jī)器學(xué)習(xí)方法,根據(jù)用戶的產(chǎn)品評(píng)價(jià)信息準(zhǔn)確地找到冷用戶的最近鄰,然后將這些最近鄰用戶喜歡的產(chǎn)品推薦給冷用戶。NDBM模型利用用戶的人口統(tǒng)計(jì)學(xué)特征信息準(zhǔn)確地找到冷用戶的相似用戶,然后將相似用戶喜歡的產(chǎn)品推薦給冷用戶。實(shí)驗(yàn)結(jié)果顯示NPBM和NDBM模型面對(duì)冷啟動(dòng)問題仍然具有較高的推薦準(zhǔn)確率,它們能有效地緩解冷啟動(dòng)問題帶來(lái)的影響[14]。
安徽大學(xué)的李歡提出了一種基于項(xiàng)目相似度學(xué)習(xí)的協(xié)同過濾推薦算法,實(shí)驗(yàn)證明該算法即可以很好地解決數(shù)據(jù)稀疏性問題也可以緩解冷啟動(dòng)問題[11]。山東大學(xué)的黃山山提出的結(jié)合Linked Data的協(xié)同過濾推薦算法,利用Linked Data中關(guān)于項(xiàng)目的顯式結(jié)構(gòu)化屬性信息定義項(xiàng)目之間的相似度,提出了兩種項(xiàng)目相似度敏感的矩陣分解推薦算法,實(shí)驗(yàn)證明該算法可以很好地解決數(shù)據(jù)稀疏性問題[4]。李聰、梁昌勇、馬麗等提出基于領(lǐng)域最近鄰的協(xié)同過濾推薦算法,以用戶評(píng)分項(xiàng)并集作為用戶相似性計(jì)算基礎(chǔ),將并集中的非目標(biāo)用戶區(qū)分為無(wú)推薦能力和有推薦能力兩種類型,實(shí)驗(yàn)結(jié)果表明該算法可以很好地解決數(shù)據(jù)稀疏性問題[15]。張俊、劉滿等提出的融合興趣和評(píng)分的協(xié)同過濾推薦算法,將用戶的評(píng)分項(xiàng)目信息映射為興趣向量,計(jì)算用戶的興趣相似性,并使用用戶興趣相似性和評(píng)分相似性進(jìn)行兩次融合,從而對(duì)傳統(tǒng)相似性度量?jī)H僅依靠用戶評(píng)分進(jìn)行相似性計(jì)算引起的誤差進(jìn)行修正。在計(jì)算相似性過程中,通過引入專家信任度的概念對(duì)用戶未評(píng)分項(xiàng)目進(jìn)行評(píng)分預(yù)測(cè)填充,從而降低由于數(shù)據(jù)稀疏性引起的評(píng)分相似性計(jì)算誤差[8]。假設(shè)rui表示用戶u對(duì)項(xiàng)目i的評(píng)分,定義函數(shù)如下:
如果用戶u評(píng)論過項(xiàng)目的數(shù)量大于某個(gè)閾值時(shí),則將用戶u加入到專家集合E中,閾值?的計(jì)算方式如下:
其中m為選取用戶的數(shù)量,n為選取項(xiàng)目的數(shù)量,rui是用戶u對(duì)項(xiàng)目i的評(píng)分。則任一專家e對(duì)于項(xiàng)目i的信任度計(jì)算如下:
其中,C(e)和C(n)分別表示專家e和專家n評(píng)論過項(xiàng)目的數(shù)量。rui是用戶u對(duì)項(xiàng)目i的評(píng)分,rni是用戶n對(duì)項(xiàng)目i的評(píng)分。E表示專家集合,專家對(duì)未評(píng)分項(xiàng)目的預(yù)測(cè)評(píng)分計(jì)算如下:
其中tni代表專家n對(duì)項(xiàng)目i的信任度,rni是用戶n對(duì)項(xiàng)目i的評(píng)分。目標(biāo)用戶u對(duì)未評(píng)分項(xiàng)目i的預(yù)測(cè)評(píng)分為:情況[13]。
輸入:用戶-項(xiàng)目評(píng)分矩陣、項(xiàng)目信息、目標(biāo)用戶u、目標(biāo)項(xiàng)目i
輸出:目標(biāo)用戶u對(duì)未評(píng)分目標(biāo)項(xiàng)目i的預(yù)測(cè)評(píng)分。
1)根據(jù)用戶-項(xiàng)目評(píng)分矩陣和項(xiàng)目信息,計(jì)算用戶的興趣向量;
2)由使用式(6)計(jì)算用戶之間的興趣相似性,得到用戶興趣相似性矩陣;
3)在原始用戶-項(xiàng)目評(píng)分矩陣上找出專家集合E;
4)應(yīng)用專家集合E,計(jì)算任意專家n對(duì)項(xiàng)目i的信任度tni,然后應(yīng)用式(15)計(jì)算專家對(duì)于未評(píng)分項(xiàng)目i的預(yù)測(cè)評(píng)分;
5)根據(jù)Pei的結(jié)果對(duì)用戶-項(xiàng)目評(píng)分矩陣進(jìn)行填充;
6)依據(jù)填充后用戶-項(xiàng)目評(píng)分矩陣,利用相關(guān)相似性度量方法計(jì)算用戶之間的評(píng)分相似性形成用戶評(píng)分相似性矩陣;
7)根據(jù)融合興趣和評(píng)分的相似度計(jì)算方法,計(jì)算用戶的相似性,得到用戶綜合相似性矩陣;
8)根據(jù)用戶綜合相似性矩陣,獲得目標(biāo)用戶u的鄰居集Nu;
9)根據(jù)式(16),計(jì)算目標(biāo)用戶u對(duì)目標(biāo)項(xiàng)目i的預(yù)測(cè)評(píng)分Pui。
賈冬艷、張付志等提出的基于雙重鄰居選取策略的協(xié)同過濾推薦算法,動(dòng)態(tài)選取目標(biāo)用戶的興趣相似用戶集,利用雙重鄰居選擇策略。實(shí)驗(yàn)結(jié)果表明該算法不僅提高了系統(tǒng)推薦精度,而且具有較強(qiáng)的抗攻擊能力[16]。孫光福、吳樂等提出的基于時(shí)序行為的協(xié)同過濾推薦算法,根據(jù)用戶間的時(shí)序行為進(jìn)行建模,找到對(duì)目標(biāo)用戶影響最大的鄰居集合,并將最近鄰集合融合到基于概率矩陣分解的協(xié)同過濾推薦算法中,實(shí)驗(yàn)證明該算法不僅能夠有效地預(yù)測(cè)用戶實(shí)際評(píng)分,還可以有效地提高推薦精度[17]。李巧雨提出的優(yōu)化的基于用戶聚類的協(xié)同過濾算法OUKCF,通過在算法中加入聚類,應(yīng)用混合相似性計(jì)算方法計(jì)算用戶相似性,實(shí)驗(yàn)結(jié)果證明該算法不僅可以解決數(shù)據(jù)稀疏性問題和可擴(kuò)展性問題,同時(shí)可以保證推薦的精度。黃山山提出的基于用戶組的二部圖推薦算法,將聚類技術(shù)應(yīng)用到用戶聚類中,利用奇異值分解(SVD)將打分信息進(jìn)行降維獲得用戶的特征空間,實(shí)驗(yàn)結(jié)果表明該算法在提高可擴(kuò)展性的同時(shí)保證了推薦的準(zhǔn)確度[10]。蘇芳芳提出的相似度最優(yōu)加權(quán)協(xié)同過濾推薦算法,利用PSO優(yōu)化算法進(jìn)行模型求解的過程中,使用相關(guān)加權(quán)的結(jié)果作為粒子的初值,極大地加快了收斂速度,實(shí)驗(yàn)結(jié)果表明該算法可以很好地改善推薦效果[18]。
本文主要介紹了協(xié)同過濾算法的推薦流程,存在的主要問題,推薦過程中常用的相似性度量方法,歸納了國(guó)內(nèi)外研究者已經(jīng)提出的用來(lái)解決數(shù)據(jù)稀疏性,冷啟動(dòng)和推薦精度等問題的解決方法。與其他學(xué)科和領(lǐng)域的融合是協(xié)同過濾未來(lái)發(fā)展的趨勢(shì)。隨著互聯(lián)網(wǎng)上信息的急劇增長(zhǎng),協(xié)同過濾推薦系統(tǒng)常需要處理海量的數(shù)據(jù),如何存儲(chǔ)以及如何依據(jù)大量的數(shù)據(jù)計(jì)算出推薦結(jié)果,是協(xié)同過濾推薦面臨的一個(gè)挑戰(zhàn),可以將協(xié)同過濾技術(shù)與云計(jì)算技術(shù)相結(jié)合,這樣可以使協(xié)同過濾推薦系統(tǒng)具有更高的容錯(cuò)能力,實(shí)時(shí)推薦能力和更強(qiáng)的并行計(jì)算能力。為向用戶提供個(gè)性化的商品或服務(wù),協(xié)同過濾系統(tǒng)需了解用戶的個(gè)人信息,這就涉及到用戶的隱私保護(hù)問題。對(duì)協(xié)同過濾推薦的隱私保護(hù)問題的研究還比較少,還需進(jìn)一步深化。