摘要:針對目前電子商務推薦系統存在的數據稀疏性問題,提出了基于客戶偏好的隱式協同過濾算法CPPICF,并對算法進行了詳細的設計,最后通過實驗驗證了該算法的有效性,提高了推薦系統的精確性。
關鍵詞:電子商務;協同過濾;推薦技術
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2008)11-20382-03
1 引言
在電子商務蓬勃發展的進程中,企業為了有效地提高客戶服務水平,獲取更多的商業效益,已經提出并實施了各種不同的電子商務推薦方法, 目前推薦系統中使用的主要推薦技術有協同過濾推薦、基于內容推薦、基于人口統計信息推薦、基于知識推薦和基于規則推薦[1]等。協同過濾推薦[2] (Collaborative Filtering Recommendation)是目前研究最多、應用最廣的個性化推薦技術。這種方法一般要對客戶進行分類,就是要求客戶對項目(如商品)進行評分,這樣往往會打斷客戶的購物過程,甚至影響客戶的購買欲望而丟失客戶;另外相當多的客戶不愿意評分,從而導致了評分數據集的極端稀疏,繼而影響推薦系統的精確性。針對這種情況下,本文提出了基于客戶偏好的隱式協同過濾算法 (Client Preference Page Implicit Collaborative Filtering,CPPICF),著重研究了協同過濾中的客戶近鄰[3,4]問題,實現了信息的客觀評分,較好地解決了數據的稀疏性問題。
2 協同過濾算法
協作過濾推薦的本質是分類客戶對物品的評價,以此為依據識別出客戶之間的相似,再通過客戶的最近鄰居進行推薦。在協作過濾推薦系統中,對客戶描述是用一個向量來表示,這個向量是以物品的評分來構建的,并將隨著客戶與系統交互時間的增加而不斷增大。也就是說,實現協同過濾算法,其最重要的環節是如何找到當前客戶的最近鄰居。為了找到目標客戶的最近鄰居,就要度量客戶之間的相似性,然后選擇相似性由高到低的若干客戶作為當前客戶的最近鄰居,根據最近鄰居的歷史項目數據對當前客戶進行推薦。
為了度量客戶的相似度,一般是用矩陣來表示客戶的評分,既構造一個m行n列的矩陣—A(m,n),代表m個客戶及n個被評分項目,對于客戶i和客戶j來說,他們對項目的評分分別為:(ti1 ,ti2,ti3…tin)和(tj1 ,tj2,tj3…tjn),度量他們的相似度用sim(i,j)來表示。相關相似性[5]是假設經客戶i和客戶j共同評分的項目集合用Iij表示,則客戶i和客戶j之間的相似性sim(i,j)通過Pearson相關系數度量:
tic表示客戶i對項目c的評分,ti和tj分別表示客戶i和客戶j對項目的平均評分。對于得到的客戶集合來說,sim(i,j)值越大,客戶的相似性越大。
3 算法的改進
在以上算法中,評分會打斷客戶的購物過程,影響客戶的購買欲望,如果有相當多的客戶沒有進行評分,就會導致評分數據集的極端稀疏,從而使推薦系統的精度降低。為了以客觀的數據代替主觀的評分,項目數據直接以客戶對網站頁面的瀏覽時間(也稱為興趣度)為依據,來反映客戶的興趣趨向,以此查找客戶的最近鄰居,進行個性化的推薦。
3.1 算法設計
因為對任何一個客戶來說,往往會在自己感興趣的網頁上停留有較長的時間,相反對于不感興趣的網頁上則會很快轉到另處的興趣頁上,所以客戶在網頁上的瀏覽時間能真實地發映客戶的興趣愛好。顯然因客戶的知識層次、瀏覽速度等的差異會導致在相同頁面上不同客戶的瀏覽時間不同,但對同一客戶來說,瀏覽頁面的速度是一定的,所以就可以通過加權來解決這個問題。再者,客戶對頁面的瀏覽覆蓋率遠比要求客戶對項目的顯式評分要高的多,所以數據的稀疏問題得到了解決。依此在這里建立基于Client—PageTime的二維表(見表1)。
3.2 算法步驟(用偽代碼表示)
定義:設PageTimej的加權平均時間值為tj,客戶i和客戶k共同對PageTimej的興趣時間集合為pik,sim(i,k)為客戶i和客戶k的相似性值則:
輸入:(Clienti,PageTime j)
輸出:C=(C1,C2,C3…Ch)//客戶的h個相似鄰居
第一步:計算出網站網頁的加權平均時間值,以填充客戶沒有訪問到的頁面,平滑數據的偏差。
For j=1 to m
ClientTotal=0
ClinetScore=0
For i=1 to n//計算加權平均時間
If tij<>”NULL” then
{
ClientScore=ClientScore+tij
ClientTotal= ClientTotal+1
}
Endfor
CPavg= ClientScore/ClientTotal
For i=1 to n //用加權平均值替換客戶沒有訪問到的個別頁面
If tij=”NULL” then
tij = CPavg
Endif
Endfor
Endfor
第二步:查找客戶最近鄰居
先計算出客戶之間的相似性值,再對其排序,找出客戶的前x個最近鄰居。
將Clienti的x個最近鄰居排序
Dim Ci[n]
x,s,t
For x=1 to n-1
Ci[x]=sim(i,x)
Endfor
For s=1 to x//按相似性值大小對最近鄰居排序,相似值大的說明客戶的偏好越相似。
For k=1 to x-s
If sim(i,k)>sim(i,k+1)
{
t=Ci[k]
Ci[k]= Ci[k+1]
Ci[k+1]=t
}
Endfor
Endfor
3.3 實驗設計與結果分析
3.3.1 實驗設計
以一商業網站2006/5/1一2006/6/30二個月的日志文件為實驗對象,該日志文件共195M,共有記錄522691條記錄,經過用前面的客戶鑒別方法,共得到42775個客戶。
實驗分兩部分,第一部分是通過網上模擬購物而得到網站推薦結果來比較兩種算法的優劣。第二部分是通過對日志的數據分析,進行客戶的最近鄰居查找來比較顯式評分和基于客戶偏好的頁面隱式評分的差別。
(1)進行模擬網上購物,其中在頁面/computer.htm/上瀏覽時間為55秒,在頁面/channel/上瀏覽時間為9秒,在頁面detail/hp1020.htm上瀏覽時間為45秒,在頁面hp6l.htm上瀏覽時間為91秒,并且分別進行兩次模擬,第一次是同時對商品進行評分,而第二次是不對任何商品進行評分。同樣的購物行為,得到的卻是不同的推薦結果。
(2)依據客戶對商品的顯式評分數據進行客戶分類,即找到客戶的最近鄰居,客戶對部分商品的評分如表2所示(將評分等級轉化為五分制)。
根據此表,可以看出,160.98.154.12客戶沒有對一樣商品進行顯式評分,那么根據填充平均分的原則,該客戶的評分為:2.5分、2分、3.75分、4分,顯然和客戶128.101.98.37不為最近鄰居。
然而根據本文提出的CPPICF算法,得到的隱式評分數據如表3 (因為取得的日志記錄為一小部分典型數據,其它客戶在下列頁面上的瀏覽時間沒有體現)。
客戶160.98.154.12和客戶128.101.98.37分別在頁面computer.htm、channel/、detail/hp1020.htm、hp6l.htm上瀏覽的時間相符,說明這兩客戶的興趣愛好是一致的(集中體現在計算機和相關符件類),根據上述算法計算為最近鄰居。
3.3.2 結果分析
在上述實驗中,同一個客戶的相同購物行為卻得到不同的推薦結果,其根本原因是對客戶的分類的準確性有很大差別。
(1)解決了數據的極端稀疏性問題。因為采用了頁面隱式評分方法,只要客戶對網頁進行了訪問,即可得到評分數據,從而使數據具有綢密性,而且在評分過程中,不會干擾用戶的購物行為。
(2)評價結果更客觀。具有相同偏好的客戶訪問網頁的行為也是一致的,比如軍謎們在軍事新聞頁面的瀏覽次數較多,而且時間都較長;球迷們則對在體育新聞網頁上花費很長的瀏覽時間。頁面隱式協同過濾算法避開客戶的知識層次、性格等的差異,以及競爭對手的惡意評分等因素, 因而減弱了評分的主觀隨意性,使評價結果更客觀。
4 小結
為了對客戶進行分類,傳統的作法容易影響客戶的購買欲望而丟失客戶,并容易導致評分數據集的極端稀疏;以及評分標準的不統一,這些因素都會造成評分數據集的不準確性。
CPPICF算法不影響客戶的正常購物行為,在客戶不知不覺中就完成了數據的收集,并且相對于顯式的客戶評分數據集要全面的多,而且客觀性強,因而提高了客戶分類的準確性,從而提高了電子商務推薦系統的精確度。
參考文獻:
[1] 余力.電子商務個性化—理論、方法與應用.北京:清華大學出版社,2007.
[2] Schafer,J.B,Konstan,LA,and Riedl,J. Recommender Systems in E-Commerce. In ACM Conference on Electronic Commerce(EC99). 1999.
[3] 鄧愛林,朱揚勇,施伯樂.基于項目評分預測的協同過濾推薦算法[J].軟件學報,2003,14(9).
[4] 趙亮,胡乃靜,張守志.個性化推薦算法設計[J].計算機研究與發展, 2002, 39(8).
[5] Sarwar B,Karypis G and Konstan J. Analysis of Recommendation Algorithms for E-Commerce. ACM Conference on Electronic Commerce. 2000.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文