基于綜合興趣度的協同過濾推薦算法
1 概述
電子商務推薦系統最大的優點在于它能收集用戶的興趣資料和個人信息,根據用戶興趣偏好主動為用戶做出個性化推薦。推薦技術指的是如何找出用戶感興趣的商品并列出推薦清單,在用戶信息獲取差別不大的情況下,推薦技術成為決定一個推薦系統性能的關鍵,其中推薦算法是推薦技術的核心[1]。
協同過濾技術是實際應用中使用最廣泛的推薦技術,包括Amazon.com 在內許多網上書店都在使用協同過濾技術。協同過濾是一種基于用戶間關聯性的推薦算法,該推薦方法將購買習慣或興趣相同的用戶歸類在同一個群體中,同群體內的用戶彼此之間可以分享信息,互相推薦商品。應用協同過濾技術的著名的推薦系統包括GroupLens/NetPerceptions[2], Ringo/Firefly[3], Tapestry[4]等。協同過濾技術存在的不足主要表現為最近鄰居的準確性問題,即在客戶對商品評分數據比較少的時候,單純地使用客戶的注冊興趣信息和評分數據難以準確地確定最近鄰居,從而導致推薦質量降低,這種問題是協同過濾技術本身無法克服的,需要對其進行改進。
本文針對協同過濾算法中的最近鄰居判斷準確性問題,綜合顯性興趣度、隱形興趣度和預測興趣度3 種用戶興趣指標提出了綜合興趣度的概念,并將這種基于綜合興趣度的協同過濾方法應用于一種圖書推薦系統中。實驗結果表明,該方法提高了計算用戶最近鄰居的準確性,進而對推薦系統的推薦質量起到了明顯的優化作用。
2 基于綜合興趣度的協同過濾方法
協同過濾方法的關鍵在于確定用戶的最近鄰居,確定最近鄰居的基礎是計算用戶之間的相似性,興趣度是計算用戶相似性的重要指標。一般來說,用戶相似性計算方法包括余弦相似性、修正的余弦相似性、相關相似性等[5]。傳統的興趣度計算方法主要考慮用戶提供的注冊信息和顯性商品評分,即顯性興趣度,由于顯性興趣不能完整地體現用戶真實興趣,因此上述3 種方法在單純采用顯性興趣度計算用戶相似性方面均存在一定的缺陷[6]。采用余弦相似性度量時,對于未評分商品的興趣評分都設為0,即興趣度相同,但事實上用戶對未評商品類的興趣度不可能完全相同。修正的余弦相似性采取了對未評分項目設置平均評分值的改良措施,但仍未有效解決問題。
相關相似性度量僅對都有評分的項目進行度量,這在有共同評分項目較多的情況下較為準確,若在共同評分項目較少時,則偏差可能較大。
在心理學中,人的興趣包括主觀的表述、客觀的描述及基于知識和經驗有可能發生的興趣預期。具體到推薦系統中,主觀的興趣表述可以理解為用戶在興趣調查表中主動提供本人的興趣傾向,這種表述相對固定,屬于顯性興趣度。用戶的瀏覽行為反映了用戶的實際需要,瀏覽的行為不斷變動往往表示原有興趣的調整,這是用戶興趣的客觀描述,屬于隱性興趣度。
在用戶的未評分項目中,用戶未來的評分可通過分析項目的特性和用戶的興趣規律進行預測,這是根據已有資料對用戶興趣的合理預期,屬于預測興趣度。一些學者在研究中提到了利用用戶瀏覽行為計算用戶隱性興趣度[7]或用商品間的關聯信息預測用戶對某些商品的評分情況[8]的思想,但這些方法僅考慮了用戶興趣中的一部分,并沒有完整地描述用戶興趣。
因此,本文提出了結合顯性興趣度、隱性興趣度(統稱為已有興趣度)和預測興趣度的綜合興趣度的概念,綜合興趣度能使用戶間的相似性度量更為準確,更完整地反映用戶的興趣傾向。基于綜合興趣度的協同過濾方法包括以下步驟:
2.1 已有興趣度的獲取
很多早期的協同過濾系統往往只采用顯性興趣度產生推薦,顯性評分的信息一般較為準確,但由于用戶注冊時一般填寫的項目不多,用戶有共同顯性評分的項目更為稀少,若單獨以此進行用戶相似程度的比較,誤差較大,因此需要綜合隱性評分,提高用戶間相似程度判定的準確性。已有興趣度的獲取包括顯性興趣度獲取和隱性興趣度獲取2 部分。
顯性興趣度來源于用戶的顯式評分,需要用戶有意識地表達自己對商品信息的認同程度。一般的協同過濾推薦方法常用整數值 (如1~9 等級)來表示喜歡的不同程度,本算法以規范化成0~1 的興趣度表示。設Re(i,j)為用戶i 對全部n 個商品類中的商品類j 的顯性興趣度,1 表示全部顯性興趣,則有:
隱性興趣度來源于用戶對商品的瀏覽行為信息。在用戶-商品矩陣中,評分數據為用戶瀏覽過該商品的次數,0 表示尚未發生興趣,次數越多則興趣越高。隱性興趣度的獲取方法較為簡單,可從用戶的瀏覽記錄庫中得到隱性興趣度。對于某個商品類的隱性興趣評分,可用用戶瀏覽的該商品類在其整個瀏覽記錄中的比例表示。設Ri(i,j)表示用戶i 對全部n個商品類中的類j 的隱性興趣度,1 表示全部隱性興趣,則有:
通過上述的方法得到顯性興趣度和隱性興趣度后,將兩者結合,形成用戶的已有興趣度,以線性關系結合這2 個興趣度,得到用戶i 對商品類j 的已有興趣度:
其中,α 為顯性興趣度的比重參數,α 取值越大則顯性興趣度越為重要;m 表示在瀏覽記錄數據庫中該用戶瀏覽商品的總數。
2.2 綜合興趣度的獲取與最近鄰居的形成
在獲取綜合興趣度之前,首先必須獲得預測興趣度,本文利用商品的屬性分類關系和顧客所購物的關聯性,建立商品的屬性向量表達式和顧客的興趣向量表達式,從而預測用戶對某未評分商品的興趣度。首先將所有的商品分類,建成一個有階層的分類樹,每個商品屬于分類樹的最底層中的其中一類,最底層的每一類對應一個商品屬性,然后將所有屬性構成每個商品的屬性向量。屬性權重的設定根據商品在分類樹中所在的類別與其他類別的分類關系,及類別之間的關聯規則。其中,關聯規則是根據顧客的購買記錄在各層類別中的分布,挖掘每一層中同層類別之間的關聯規則。假設在全部n 個商品類中,每個商品類作為特征項,則任一商品類j 可以表示為一個n 維特征向量:
其中, Ps, j 為第s 個特征項的權重,本系統將Ps, j 的取值規定為
其中,C(s)和C( j ) 表示商品類s 和j 的父類;s?j 表示s和j 之間存在強關聯關系。得到每個類的特征向量后,就得到類間的一種關聯關系,通過這種關系,可以利用已評分類預測未評分類。設經用戶i 已評分的類集合用Ai 表示,k ∈Ai,未評分商品類m?Ai,Ri,k 表示用戶i 對已評分類k 的興趣度,那么用戶i 對未評分的類j 的預期值Pri,j 為
規范化處理使全部的預期興趣度為 1,則用戶i 對未評類j 的預期興趣度i, j Rp 為
為了結合已有興趣度和預期興趣度,設定系數β (0≤β ≤1)以平衡已有興趣度與預期興趣度的比例,得到綜合興趣度:
判別 2 個用戶是否是鄰居需要比較這2 個用戶的興趣相似性,相似性度量方法常用的有余弦相似性、修正的余弦相似性和相關相似性等。
由于按照本文的方法可得到較為完整的興趣評分,因此本文采用余弦相似性作為度量方法。設用戶i 和用戶j 在n維類上的興趣度分別表示為向量i 和j,則用戶i 和用戶j 之間的相似性sim(i,j)為
其中, ‘Ri,d 和’Rj,d 分別表示用戶i 和用戶j 對類d 的興趣度。
尋找最近鄰居的目標就是對每一個用戶u,在整個用戶空間中查找用戶集合D=(d1,d2,…,dk),使得u ?D,并且d1 與u 的相似性sim(u,d1)最高,d2 與u 的相似性sim(u,d2)次之,依此類推。
2.3 推薦結果的產生
通過上述的相似性度量方法得到目標用戶的最近鄰居 后,需要利用最近鄰居的觀點為目標用戶產生相應的商品推薦 。常用的預測目標用戶未評分項目評分的方法是綜合最近鄰居對未評分項目的評分,作為目標用戶對預測項目的評分。
本文采用最頻項推薦為目標用戶產生Top-N 推薦:在瀏覽記錄庫中,掃描目標用戶每個最近鄰居的瀏覽記錄,對其瀏覽的商品進行計數,選擇出現頻率最高且目標用戶尚未瀏覽過的前N 個商品作為推薦內容。設目標用戶u 瀏覽商品的集合為A,最近鄰居瀏覽商品的集合為D,候選推薦商品的集合
C=D-A,候選商品b ∈A,那么候選商品b 對于用戶u 的推薦度Recb,u 為
其中, d ,bd CCount∈ Σ為瀏覽過商品b 的的最近鄰居的數目;Sumc為最近鄰居總數。
3 實驗及結果分析
為了驗證本系統的推薦效果,在小范圍內進行了實驗,用平均絕對偏差作為測量標準對協同過濾推薦的實驗結果進行了度量,并通過對比分析驗證了基于綜合興趣度的方法的有效性。
3.1 實驗過程與評價標準
為了方便測試,實驗前系統錄入了約 1 000 本計算機書籍,邀請了某公司82 個員工參與實驗,實驗期為1 個月。實驗的前20 天為用戶自由瀏覽時間,系統不產生推薦,要求實驗用戶進行注冊及填寫顯性評分,實驗的后10 天系統為注冊用戶產生推薦清單,并要求用戶對每個推薦書目進行滿意程
度反饋。
本文評價協同過濾推薦效果時,采用平均絕對偏差(Mean Absolute Error, MAE)作為測量推薦系統滿意度的公式,MAE 用于測量推薦值與實際評價值之間的偏差,可以直觀地度量推薦質量,MAE 越小,推薦質量越高[9]。本實驗用戶u 的平均絕對偏差為
其中,n 為Top-N 的推薦總數; pu,i 為實際評分; qu,i為相應的預測評分。
3.2 實驗結果分析
系統得到實驗數據后,分別在推薦 Top-10, Top-20 和Top-30 的范圍內,將實驗用戶的推薦結果及其反饋的滿意度進行比較,然后分別利用平均絕對偏差公式對基于綜合興趣度的方法和傳統的基于顯性興趣度的方法進行計算。計算的結果如表1 所示,對比分析如圖1 所示。
從圖1 可知,MAE 值在0.12~0.17 之間,表明系統能起到較好的推薦效果,隨著Top-N 數量增多,MAE 值呈下降趨勢,表明了Top-N 中N 值較大時用戶滿意度高。
傳統的協同過濾方法僅使用顯性興趣度作為用戶相似性的計算指標,其計算最近鄰居的準確度較低,從實驗結果可看出其MAE 值較高,推薦質量不高。
本文的推薦方法使用了綜合興趣度作為用戶相似度的計算指標,實驗表明在相同條件下MAE 值有了明顯的降低,可見基于綜合興趣度的推薦方法能夠有效地提高協同推薦系統的推薦質量。
參考文獻
[1] Varian R. Recommender Systems[J]. Communications of the ACM,1997, 40(3): 56-58.
[2] Resnick P, Iacovou N, Suchak M. Grouplens: An Open Architecturefor Collaborative Filtering of Netnews[C]//Proc. of the Conference on Computer Supported Cooperative Work. Chapel Hill, NC, USA: [s. n.], 1994: 175-186.
[3] Shardanand U, Maes P. Social Information Filtering: Algorithms for Automating “Word of Mouth”[C]//Proc. of the ACM CHI Conference. Denver, Colorado, USA: [s. n.], 1995.
[4] Goldbergd N D, Oki B M. Using Collaborative Filtering to Weave an Information Apestry[J]. Communications of the ACM, 1992, 35(12): 61-70.
[5] Sarwar B M, karypis G, Konstan J A, et al. Item-based Collaborative Filtering Recommendation Algorithms[C]//Proc. of the 10th International World Wide Web Conf.. Hong Kong, China: [s. n.], 2001: 285-295.
[6] 鄧愛林, 朱揚勇, 施伯樂. 基于項目評分預測的協同過濾推薦算法[J]. 軟件學報, 2003, 14(9): 1621- 1628.
[7] 陳東林, 聶規劃. 基于商品屬性隱性評分的協同過濾算法研究[J]. 計算機應用, 2006, 26(4): 966-968.
[8] 白麗君, 劉君強. 一種解決協作過濾中矩陣稀疏性問題的算法[J]. 情報學報, 2005, 24(2): 199-202.
[9] Breese J S, Kadie C. Empirical Analysis of Predictive Algorithms forCollaborative Filtering[C]//Proc. of the Conference on Uncertainty in Artificial Intelligence. Madison, Wisconsin, USA: [s. n.], 1998.
本文作者:秦光潔,張穎 (長安大學信息工程學院,西安 710064)