劉華玲,郭 淵,馬 俊
上海對外經貿大學 統計與信息學院,上海 201620
隨著大數據、互聯網的快速發展,網絡數據量增速越來越快[1]。如何從海量的文章和數據中搜索用戶的歷史信息,滿足用戶的推薦需求,產生高質量推薦已經成為各大平臺的研究目標。滿足用戶的個性化需求是產生高質量推薦的基礎,在推薦系統的設計中涉及到兩個關鍵問題:一是構建用戶的偏好模型,得到用戶感興趣的項目或近鄰用戶;二是設計個性化推薦算法,對用戶產生準確的推薦。
目前應用最廣泛的是協同過濾[2-4]算法和基于內容的推薦。協同過濾根據用戶的歷史數據尋找相似用戶或偏好項目并進行推薦,協同過濾算法在各領域應用廣泛,但是也面臨著以下問題:與推薦系統中的用戶數量和項目數據相比,大多用戶只對一小部分項目進行過評價,用戶對項目的評分信息非常稀疏;數據量大,算法很難短時間內產生最優推薦;數據具有動態性,用戶的興趣也是在不斷變化的。解決上述問題,提高推薦精度一直是推薦領域的重點研究方向。相似度的計算決定了協同過濾算法的準確性,是算法中最重要的部分,相似度的計算決定了近鄰用戶和近鄰項目的選擇,進而影響整個推薦結果,因此協同過濾算法中的核心問題是相似度算法。
協同過濾中常用Jaccard相似度、余弦相似度、Pearson相似系數等來衡量用戶或項目之間的相似程度,但是一般的傳統相似度不足以捕捉相似用戶,尤其是在數據稀疏的場景和新用戶評分不足的場景,使用傳統的相似度算法不能準確定位相似用戶。為提高推薦質量,許多學者從相似度方向進行研究,以解決傳統的相似度算法存在的缺點。本文首先介紹了常用的相似度計算公式,從數據稀疏、冷啟動、用戶興趣偏移和用戶偏好三個方面歸納相關學者在相似度算法方向上的創新與不足,最后對未來可能的改進方向進行了展望。
基于用戶歷史行為的推薦稱為協同過濾推薦,目前協同過濾算法是最常用的推薦算法,在各大平臺應用廣泛,協同過濾算法主要包括基于用戶的推薦[5-8]、基于項目的協同過濾推薦[9-10]和基于模型的推薦[11-12]。
基于用戶的協同過濾推薦算法目標是根據用戶的歷史數據找到與目標用戶相似的用戶[13],根據尋找的近鄰用戶的評分數據,尋找目標用戶可能感興趣的項目,進而產生推薦。
基于項目的協同過濾是根據用戶對物品的歷史評分信息,找到物品之間的相似性,然后通過目標用戶偏好信息,將目標用戶可能感興趣的項目推薦給該用戶[14-15]。
此種類型的推薦系統向活躍用戶進行推薦時基于該活躍用戶和其他類似用戶的先前評分,并且沒有關于項目和用戶的附加信息。
基于模型的協同過濾推薦就是基于歷史數據訓練一個推薦模型,然后在模型中引入用戶的實時評分信息,并進行預測和推薦,基于模型的方法大多試圖使用矩陣分解來建模系統。
設計基于協同過濾方法的關鍵是使用有效的相似度函數來計算用戶或項目之間的相似性,相似度函數直接影響推薦模型的性能,本文對傳統的相似度算法進行了總結比較,并總結了相關學者對相似度算法的擴展和改進。
相似度常用來判斷事物之間的相似性,通過計算事物之間的距離來進行判斷,距離值越小相似度越大。在推薦系統中,常用Pearson相關系數、余弦相似度等計算推薦系統中的用戶相似性。
Pearson相關系數:常用來衡量向量之間的相關性,取值范圍為[?1,1][16],計算時通常需要具有共同評分的項目。


樊艷清等[17]通過準確率、召回率等指標深入分析了余弦相似度、修正的余弦相似度、Pearson 相關系數、歐式距離、Jaccard相似度、古本系數等指標,綜合分析準確率、召回率等指標,發現基于Pearson相關系數的相似度具有更加廣泛的應用領域,而且Pearson 相似度在量綱不同的數據集中同樣適用。不同的相似度適用不同的應用場景,本文對常用的相似度進行了總結比較,如表1所示。

表1 傳統相似度適用條件及優缺點Table 1 Applicable conditions and advantages and disadvantages of traditional similarity
傳統的相似度計算方法依賴于共同評分信息,不能很好的解決推薦系統中冷啟動問題[18]和數據稀疏問題,越來越多的學者開始將傳統的相似度算法與其他潛在因素結合,構造新的模型提高推薦質量。
當系統中產生新項目或新用戶時,缺少項目或用戶的相關信息,此時無法根據歷史信息進行推薦,系統需要解決冷啟動問題,相關學者從冷啟動方向對推薦系統進行了一些改進。
一些學者從相似度公式本身出發,在公式構建時加入影響因子。Ahn[19]將鄰近性、影響力和知名度等因素引入到相似度算法中,構建了稱為PIP 的相似度算法,該度量利用數據在特定領域的含義,而不僅僅是采用傳統的相似性,以便在冷啟動條件下更有效,相似度公式為:

否則:

其中μu、μv分別表示用戶的評分均值,σu、σv表示用戶的評分方差,所提出的算法很好的提高了推薦精度,但是算法的時間效率不足。
在傳統相似度中加入反映偏好和興趣的影響因子,改進了傳統相似度計算較為單一的問題,能很好解決系統沒有新用戶歷史信息的缺陷,但是改進的混合相似度往往具有較高的時間復雜度。
一些學者提出利用傳統的相似度構建混合相似度[21],以解決單一算法的局限性。Bobadilla等[22]提出將Jaccard 相似度與均方差(MSD)相結合,認為Jaccard 和MSD 的組合可以用投票的數值來補充Jaccard,并可以緩解MSD 使用中的覆蓋率不足問題,其混合相似度公式如下:

Bag等[23]的目標是開發新的簡單而有效的相似性模型,在更低的計算時間內提高推薦的準確性。Ajaegbu[24]為解決冷啟動問題,提出了一種優化算法,通過在相似度公式中增加一個平衡因子和改變α值來解決這個問題,改進后的算法在冷啟動問題中具有較好的推薦效果。譚學清等[25]將用戶特征、專家信任度等因素引入到相似度計算中,當新用戶進入系統時,采用專家用戶信息對未評分項目進行預測,進而提升推薦效果。基于冷啟動改進的相似度算法優缺點對比如表2所示。

表2 基于冷啟動改進的相似度Table 2 Similarity based on cold start improvement
一些學者在對相似度進行改進時與基于模型的方法相結合,將其他統計學方法與相似度結合起來,產生高質量推薦。韓勝寶等[26]為了緩解用戶冷啟動問題,將相似度和層次聚類相結合,利用用戶的統計學信息、用戶的評分信息和項目的類別信息,提出了混合相似度,作者進行層次聚類時考慮用戶的人口統計學信息,當新用戶進入系統,盡管沒有新用戶的歷史信息,但可以利用新用戶的統計學信息計算冷啟動用戶與其所在類簇中的其他用戶之間的相似度,從而進行推薦。Rajendran等[27]為了緩解協同過濾算法中的用戶冷啟動問題,將維基百科數據和瀏覽歷史結合并引入到推薦算法中,通過使用維基百科數據上的潛在狄利克雷分布模型來生成主題,然后使用用戶瀏覽歷史上的主題來提取用戶偏好,采用層次聚類法對用戶進行聚類,在為冷啟動用戶進行推薦時,尋找冷啟動用戶所在簇,只需在所在簇中尋找近鄰用戶進行推薦。Wang等[28]提出了基于α-散度的相似性度量,該度量根據評分的概率密度分布進行計算,大大減少了對共同評分案例的依賴性,在評分矩陣中,選取項目a和b的評分列,基于α-散度來計算項目a和項目b之間的相似程度。
對于基于模型的改進,當推薦系統中加入的新用戶或新產品,依舊可以產生較好的推薦,突破了共同評分項目的限制,可以使用更多的信息來計算相似度,有利于提高預測精度,但是時間復雜度過高,很難產生高效率的推薦。
推薦系統中評分矩陣往往是稀疏的,大多用戶只對一小部分項目進行評分,數據稀疏性嚴重影響了推薦精度。
有學者構建了不依賴于共同評分項目的相似度,充分利用評分矩陣的信息。Patra 等[29]在傳統計算公式中引入Bhattacharyya 系數,提出了BCS 相似性度量;其次,加入信任權重,精確計算直接信任值,引入信任傳遞機制,計算用戶的間接信任值,將用戶的評分偏好和用戶信任度結合起來構建混合相似度。從評分數據中獲得的兩個項目i和j的BC系數:

在公開數據集上證明,加入一致性因子和折中因子的相似度算法可以提高推薦效率,但是改進的算法目前只在公開數據集中進行了驗證,無法有效驗證算法在其他領域是否具有較好的推薦效果。
Deng等[31]考慮商品的非對稱性,提出了基于概率分布的新型K-medoids 聚類推薦算法,在KL 散度的基礎上引入聚類算法。KL散度常常被用來描述兩個概率分布之間的差異問題,不僅考慮共同評分信息,還充分利用了項目的隱形信息,很好地解決了數據稀疏問題,改進的KL散度為:

部分學者在相似度計算時采用混合模型進行計算,將其他模型融入到協同過濾中,以解決數據稀疏帶來的局限性。Slope one 算法具有實時高效、操作方便的特點,在推薦系統中常被用于數據填充,通過數據填充進一步對相似度進行改進。Song 等[33]提出了一種融合評分偏好和聚類的Slope one 推薦算法。國內,向小東等[34]也將Slope one 算法應用在推薦系統中,用戶—項目矩陣往往是稀疏的,通過改進Slope one 算法計算預測值時利用用戶和項目的綜合相似度過濾干擾項。對于算法存在的不足,研究人員對用戶相似度和項目相似度進行改進[35-38],通過用戶特征屬性和用戶評分構建混合相似度提高推薦質量。Thakkar等[39]提出了一種結合推薦方法預測的方法:通過使用多元線性回歸將常用的推薦方法進行結合,以減少預測誤差。稀疏場景下經典的相似度算法優缺點對比如表3所示。

表3 基于數據稀疏的相似度改進Table 3 Similarity improvement based on data sparsity
上述算法能降低絕對平均誤差,推薦效果相較其他算法而言有較大的提升,但是在公用的標準數據集上進行實證,在面對其他多樣性的推薦和較新的數據時并不一定適用。
用戶的興趣偏好往往是不斷變化的[40-43],隨著時間的推移,可能會導致推薦結果偏離用戶的需求,在建立用戶動態偏好模型時[44-46],時間動態性是重要問題。
王道平等[47]針對傳統協同過濾算法中存在的相似度分辨性低和未考慮用戶興趣漂移的問題,提出了一種融合時間因素和灰色關聯分析的推薦模型,以提高實驗精度,在相似度公式中引入時間權重函數,公式為:

王道平等[47]提出的混合相似度有效降低了實驗的絕對平均誤差(MAE),明顯提高了實驗精度,但算法模型較為復雜,效率不高。
陳海濤等[48]根據用戶對項目的評分時間來考察用戶興趣的變化,在相似度計算中給予興趣相似性權重,改進的用戶相似性計算方法解決了不能動態衡量用戶興趣變化的問題,用戶興趣的計算公式為:

用戶在某些類別中具有相同偏好,但在其他類別中偏好完全不同,所以在推薦過程中還需要考慮項目[51-52]。因為某些項目類別邊界模糊,很難對其進行精準定位,在項目類別分類中,無法充分發揮項目屬性在分類中的作用。程文娟等[53]提出了一種融合項目特征和用戶特征的算法,在進行分類時考慮標簽屬性,進一步挖掘用戶偏好信息。Chen 等[54]認為利用項目等輔助信息可以提高推薦精度,通過建立用戶-項目-權重矩陣來進行推薦,給予用戶特別喜歡的項目一定的權重,可以用來向用戶解釋為什么推薦某些項目,相較于推薦系統中的KNN模型,此方法有較好的覆蓋率,可以實時進行預測。標簽具有同時反映項目特征和用戶興趣的特點,用戶Chen 等[55]從用戶行為和標簽語義兩個方面計算標簽相似度,并通過標簽擴展提高推薦精度,在計算項目相似度時,給予標簽和項目不同的權重構成混合相似度,以增加用戶標注和喜歡的項目的權重。

通過γ進行權重調整,simt為基于標簽的相似度,simr為基于評分的項目相似度。
關聯規則在發現用戶興趣偏好的文獻中有較多應用[56],可以發掘更多的屬性特點,可以通過與社交關系相結合[57],快速尋找目標用戶的近鄰用戶,挖掘潛在偏好。胡文江等[58]在社交網絡的改進中引入關聯規則,通過關聯規則尋找目標用戶的好友用戶,建立用戶的關系矩陣,改進用戶標簽相似度,對關系矩陣中標簽相似度較大的用戶,增加推薦權重。紀文璐等[59]歸納總結了基于關聯規則的推薦算法,關聯規則一定程度上可以發現數據潛在關系以及用戶的潛在偏好,在數據稀疏和冷啟動問題中具有較好的表現。針對用戶興趣偏移和偏好改進的相似度優缺點對比如表4所示。

表4 基于用戶興趣偏移和偏好的相似度改進Table 4 Similarity improvement based on user interest offset and preference
許多學者對相似度算法的改進提高了推薦精度,有些學者解決了傳統的相似度計算方法往往需要用戶之間具有共同評分項目的問題,但其相關研究在未來發展中仍舊面臨諸多挑戰,值得進一步深入研究。
(1)通過構建混合相似度來尋找用戶的近鄰用戶集合可以很好的提升推薦效果,但是混合相似度尋找近鄰集合的過程往往需要耗費更多的時間,時間效率不足,復雜度相較于傳統方法更高,從推薦效率的角度出發,重點關注在提升推薦質量的同時提升推薦系效率。混合相似度的權重設置多為人工設置,如何擺脫手動調整,用機器自動調整權重應該成為重點關注方向。
(2)考慮到傳統相似度受共同評分項目的影響,可將其他領域如環境領域、物理領域、信號理論中衡量相似程度的方法引入到推薦系統中,嘗試創造新的相似度計算方法,解決傳統相似度應用的局限。
(3)協同過濾中評分矩陣往往是稀疏的,用戶對項目的偏好信息較少,將協同過濾與目標用戶的位置信息相結合,得到用戶興趣點的信息,更準確定位用戶的偏好將是未來的重要研究方向。
(4)目前多數研究都是在公開數據集上驗證的,眾多學者選擇電影評分數據集來驗證算法的精度及可行性,但是實際應用場景不能局限于電影領域,從算法的可擴展性方向出發,探究新的算法在其他平臺,如購物、音樂、短視頻等領域的推薦效果,擴展算法的使用范圍。
未來推薦系統仍是研究的熱點,數據稀疏、冷啟動等問題嚴重影響了推薦質量,相似度作為推薦的核心環節,一直是眾多學者關注的重點研究方向。學者們對相似度的改進提出了自己的見解,可以很好地解決推薦質量低的問題。本文從數據稀疏、冷啟動等方向對相關學者的研究進行了全面的綜述,總結了以往提出的改進算法存在的不足,并對未來可能的研究方向進行了展望,為了得到更有效的結論,需要在未來可能的研究方向上進行更深入的研究和分析。