李曉瑜
(安康學院 電子與信息工程學院,陜西 安康 725000)
協同過濾技術自1992年提出以來,發展迅速受到了學術界的廣泛關注,特別是在個性化推薦技術中引入協同過濾算法是近幾年比較熱門的研究趨勢.協同過濾也稱為社會過濾,它計算用戶間偏好的相似性,在相似用戶的基礎上自動地為目標用戶進行過濾和篩選,其基本思想為具有相同或相似的價值觀、思想觀、知識水平和興趣偏好的用戶,其對信息的需求也是相似的[1].協同過濾主要有兩種類型一種是基于用戶的,另一種是基于物品的.基于用戶的算法是將和目標用戶有共同興趣愛好的用戶所喜歡的物品且目標用戶沒有購買的物品推薦給目標用戶,基于物品的算法是將與目標用戶喜歡的物品相似的物品推薦給目標用戶.協同過濾技術可以說是從用戶的角度來進行相應推薦的,且推薦的過程是完全自動的,即用戶獲得的推薦其系統從購買模式或瀏覽行為等隱式獲得的,不需要用戶努力地找到適合自己興趣的推薦信息,如填寫一些調查表格等[2].使用協同過濾推薦算法進行推薦其主要步驟為建立用戶評分表,尋找相似用戶,推薦物品.協同過濾算法研究與基于內容的推薦技術相比具有如下一些優點[3]:
1)避免了傳統基于內容過濾時,產品關鍵字提取不完全和不精確的問題,通過共享他人的經驗,能夠推薦一些難以進行內容分析的項目,比如信息質量、個人品味等難以表述的概念,以及視頻,音樂和藝術品等商品;
2)具備發現用戶隱藏興趣的能力.基于內容的過濾推薦得到的結果很多都是用戶本來就熟悉的內容,而協同過濾可以發現用戶潛在的但自己尚未發現的興趣偏好,推薦的結果在內容上可以是完全不相似的信息;
3)能夠有效地使用其他相似用戶的反饋信息,較少用戶的反饋量,加快個性化學習的速度.雖然協同過濾作為一種典型的推薦技術有其相當的應用,但協同過濾仍有許多的問題需要解決.最典型的問題有稀疏問題(Sparsity)和可擴展問題(Scalability).
本文主要對協同過濾推薦算法中的關鍵技術進行總結并分析了不同技術存在的問題,同時還對協同過濾技術的應用前景進行了展望.
計算用戶或項目的相似度是協同過濾推薦算法中重要的一個環節.在協同過濾推薦技術中計算相似度常用到的方法主要有以下幾種:
1.1.1杰卡德系數[4]
Jaccard系數用來度量二值型數據的重疊程度,其定義如下:
(1)
其中,分子上是用戶i和用戶j的共有項目;分母上計算的是用戶i和用戶j的所有項目.在電子商務中,Jacerad系數通常可以用來對比不同用戶的購物車數據,而這種僅適用于二值型的相似性度量方法也限制了其在推薦系統中的進一步應用[4].
1.1.2杰卡德系數作為權重的相似性[4-5]
將杰卡德系數作為權重引入相似性計算.修正后的杰卡德系數考慮到活躍用戶和熱門項目的評分數量應得到懲罰,修正后的杰卡德系數表示為:
(2)
將修正后的Jaccard系數,作為原有的相似性度量方法的權重系數,以計算用戶相似度為例,設傳統的相似性度量方法用sim(i,j)表示,修正后的相似度用sim+(i,j)表示,則sim*(i,j)可表示為:
sim+(i,j)=J(i,j)sim(i,j)
(3)
這種方式不僅保留了原有方法的易用性,而且克服了傳統的方法面對稀疏數據的局限.
用戶評分被看做是n維項目空間上的向量如果用戶對項目沒有進行評分,則將用戶對該項目的評分設為0,用戶間的相似性通過向量間的余弦夾角度量設用戶i和用戶j在n維項目空間上的評分分別表示為向量i,j,則用戶i和用戶j之間的相似性sim(i,j)為:
(4)
分子為兩個用戶評分向量的內積,分母為兩個用戶向量模的乘積.其中Ri,c和Rj,c分別代表用戶i和用戶j對項目c的評分.然而在實際中不同的用戶打分的尺度不一致,有些用戶傾向于打高分,而有些用戶傾向于打低分,此時余弦相似性就不能準確地度量用戶間的相似性.
余弦相似性度量方法中沒有考慮不同用戶的評分尺度問題,修正的余弦相似性度量方法通過減去用戶對項目的平均評分來改善上述缺陷.其公式表示為:
(5)

在余弦相似性和修正的余弦相似度量方法中,對所有用戶沒有評分的項目都將評分假設為0.但事實上用戶對未評分商品的喜好程度不可能完全相同對這些項目的評分也不可能完全相同(全部為0).因此在用戶評分數據極端稀疏的情況下,該方法就不能有效地計算用戶之間的相似性.
1.4.1皮爾遜相關
皮爾遜相關是一種度量兩個變量間線性相關程度的方法.它是一個介于1和-1之間的值,其中,1表示變量完全正相關,0表示無關,-1表示完全負相關.在協同過濾算法中,可以利用皮爾遜相關來計算兩個用戶或者兩個項目之間的相關性大小[7];相關系數越高,則兩者的相似性越大,反之,則相似性越小.
設經用戶i和用戶j共同評分的項目集合用Iij表示,則用戶i和用戶j之間的相似性sim(i,j)通過Pearson相關系數度量兩者的相似性可表示為[6]:
(6)
其中Ri,c,和Rj,c分別代表用戶i和用戶j對項目c的評分,Ri和Rj分別代表用戶i和用戶j在所有項目的評分平均值.
由于皮爾遜相關系數是通過線性回歸公式得到,需要數據之間滿足線性關系以及殘差相互獨立且均值為0等假設.當這些條件不滿足時,其計算準確度將會降低.
1.4.2pearman秩相關
pearman秩相關是利用評分的等級來代替評分值,無需滿足Pearson相關的假設,比較適合于用戶評分數據是離散的情況.其計算公式如下:
(7)
由于通常在推薦系統中,項目的評分等級非常有限[8],影響了等級差異的顯著性,從而影響了最終的秩相關系數大小.
基于項目聚類的用戶最近鄰全局相似性,先計算局部最近鄰用戶相似性.局部最近鄰用戶相似性是在k個項目聚類的基礎上,引入重疊度因子,并將其融合到計算用戶局部相似度的公式中.用戶u和用戶v在聚類Cj上的局部最近鄰用戶相似性可表示為:
(8)

(9)
其中,|Iu∩Iv∩Cj|指用戶u和用戶v在聚類Cj上共同評分的項目數,設置參數γ,當用戶共同評分的項目數小于γ,即數據相對稀疏時,共同評價的項目數越多,因子值越大,從而保證只有共同評分項目較多且評分相似的用戶才有可能成為鄰居用戶.
全局最近鄰用戶相似性可以表示為:
(10)
基于項目聚類的用戶最近鄰全局相似性協同過濾算法,根據用戶共同評分的項目數量,引入重疊度因子,并將其融合到計算用戶局部相似度的公式中,來進一步加強相似度的準確性.
目前大多數協同過濾推薦系統都采用平均加權策略產生推薦[8],目標用戶u對未評分項目i的預測評分為:
(11)

Top-N推薦策略是分別統計“最近鄰居”集中的用戶i對不同項的興趣度的加權平均值,取其中N個排在最前面且不屬于Ii(Ii表示用戶i評分的項目集合)的項作為Top-N推薦集.
一個推薦系統的優劣是由其預測結果來衡量的,目前在協同過濾推薦算法中常用到的評估策略主要有以下幾種.
平均絕對誤差是推薦系統中應用最為廣泛的評估方法[10],它是通過計算預測值和實際值之間的絕對誤差值得到的,計算公式為:
(12)
其中n為評分的總數,pij代表用戶i對項目j的預測評分,rij代表用戶i對項目j的實際評分,MAE值越小,推薦精度越高.
均方根誤差(RMSE)也稱標準平方差,反映評分數據的離散程度,計算公式為:
(13)
其中n為評分的總數,pij代表用戶i對項目j的預測評分,rij代表用戶i對項目j的實際評分,RMSE值越小,推薦精度越高.
對于一個二分問題,將實例分成正類(positive)或負類(negative),根據預測結果構造以下的二維列聯表,其中1代表正類,0代表負類:

表1 二分問題列聯表
真正類率(true positive rate)TPR=TP/(TP+FN),表示用戶所喜歡的項目被推薦的概率.
假正類率(false positive rate)FPR=FP/(FP+TN),表示用戶不喜歡項目被推薦的概率.還有一個真負類率(True Negative Rate,TNR),也稱為specificity,計算公式為TNR=TN/(FP+TN)=1-FPR.在繪制ROC曲線時,將FPR和TPR分別定義為X和Y軸,ROC曲線下面的面積越大,預測的準確率越高.
召回率用于反映待推薦項目被推薦的比率,計算公式為:
(14)
其中test表示測試數據集中的項目數量,top-N表示系統推薦給用戶的N個項目.Recall值越大被推薦的機率越大.
本文主要介紹了采用協同過濾算法進行推薦時,常用的近鄰選擇算法和推薦算法及推薦算法的評估策略.協同過濾推薦算法主要存在數據稀疏性、冷啟動和魯棒性問題還有在大數據環境下的推薦效率問題,針對這些問題一些研究者已提出了多種解決方法,最常見的是將其他領域的方法引入進來,協同過濾的跨學科研究也得到了進一步的發展.隨著互聯網上信息的急劇增長,協同過濾推薦系統常需要處理海量的數據,如何存儲以及如何依據大量的數據計算出推薦結果,是協同過濾推薦面臨的一個挑戰,可以將協同過濾技術與云計算技術相結合,這樣可以使協同過濾推薦系統具有更高的容錯能力,實時推薦能力和更強的并行計算能力.為向用戶提供個性化的商品或服務,協同過濾系統需了解用戶的個人信息,這就涉及到用戶的隱私保護問題.對協同過濾推薦的隱私保護問題的研究還比較少,還需進一步深化.