付加星 孟佳娜 沈杭春 武星宇
摘 要: 為提高網絡購物的個性化體驗,設計和實現了一個基于智能推薦的電子商城購物系統。為達到用戶網頁瀏覽行為的分析與預測,推薦算法結合了基于用戶和基于項的協同過濾算法,系統構建用戶具有偏序結構的關鍵瀏覽路徑層次圖。數據分析結果表明,改進后的推薦算法有助于提升推薦系統的性能,從而滿足用戶個性化需求。
關鍵詞: 智能推薦; 個性化需求; 協同過濾; 相似度; 聚類; 電子商城
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2015)06-39-03
Abstract: In order to improve the personalized experience of shopping online, an electronic shopping system based on the intelligent recommendation is designed and implemented. In respect of the users' web browsing behavior can be analyzed and forecasted, the recommendation algorithm is combined with the user based and the item based collaborative filtering algorithm. A key browser path hierarchy chart with partial order structure of the user is built. Data analysis results show that the improved recommendation algorithm is helpful to enhance the performance of the recommendation system so that satisfy the users, personalized needs.
Key words: intelligent recommendation; personalized needs; collaborative filtering; similarity; clustering; E-commerce
0 引言
智能推薦系統[1-2]是Internet網上購物過程中解決信息過剩的一種信息過濾技術,向用戶推薦感興趣的信息和商品(衣物、新聞、書籍、電影等等)。推薦系統首先從用戶的瀏覽史和社會環境等信息得到用戶特征,根據用戶特征能夠得到一個用戶概況,推薦系統從用戶概況等信息推算用戶對未看過的商品和信息的喜好程度。
在這個信息大爆炸的時代,用戶數量和項目數量急劇增加,而可用于評分的項目很少,系統會消耗大量的時間完成推薦算法,導致了不能及時響應用戶的請求。本文采用一種項目簇偏好的用戶聚類方法,改變了預測評分過程中用戶相似性算法,并考慮用戶的興趣隨時間變化的情況,保證了系統的實時性。為了避免用戶在面對網站大量信息,卻無法很快從中獲取自己感興趣的信息的情況,本文設計了基于Web數據挖掘的推薦系統,根據用戶的興趣、特點和購買行為,計算出用戶可能喜歡的內容或商品,為不同用戶展示不同內容,滿足其個性化需求。
1 系統關鍵技術
1.1 開發環境
1.1.1 數據庫
本系統使用MySQL數據庫[3],MySQL是一種開放源代碼的關系型數據庫管理系統,MySQL數據庫系統使用最常用的數據庫管理語言——結構化查詢語言(Structured Query Language)進行數據庫管理,具有數據庫的通用性,MySQL支持標準的結構化查詢語言。本系統數據庫的數據表是基礎,決定了該系統的可維護與可擴展性,以用戶信息表(db_user)為例,其字段設計為:
用戶信息表db_user:userId(Id號、主鍵)、userName(姓名)、password(密碼)、userTime(注冊時間)、userEmail(郵箱)、userSex(性別)、userAge(年齡)、userImg(頭像)、userPhone(手機)、userCode(郵編)、userAddress(地址)、userWork(職業)、userMoney(工資)、userLike(愛好)、userRight(用戶權限、外鍵)。
1.1.2 Java EE三大框架
Struts是開源軟件[4],使用Struts的目的是幫助程序員減少運用MVC設計模型來開發Web應用的時間。Struts對Model,View和Controller都提供了對應的組件。Spring是一個強大的框架,解決了許多在J2EE開發中常見的問題。Springle提供了管理業務對象的一致方法。Spring的架構基礎是基于使用JavaBean屬性的Inversion of Control 容器。Hibernate是一個開源代碼的對象關系映射框架,對JDBC進行了對象封裝,使得Java程序員可以使用對象來操作數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用。
1.2 推薦算法
1.2.1 協同過濾算法
電子商務推薦系統的應用日益廣泛,推薦算法作為推薦系統的核心也得到廣泛的研究,協同過濾推薦算法[5]是目前應用最成功的推薦算法之一。電子商務推薦系統可根據其他用戶的評論信息,采用協同過濾技術給目標用戶推薦商品。協同過濾算法主要分為基于用戶的協同過濾算法和基于項目的協同過濾算法。啟發式協同過濾算法主要包含收集用戶偏好信息、尋找相似商品或用戶和產生推薦三個步驟。
基于用戶的協同過濾推薦算法又叫基于內容的推薦[6],其基本思想是用戶選擇某個推薦對象,也就是說一些用戶對某些推薦對象的評價比較相似,則說明這些用戶的興趣愛好也是相似的。所以協同過濾推薦首先找到與目標用戶興趣愛好相似的最近鄰,根據最近鄰對推薦對象的評價為用戶進行推薦。常用的計算兩個用戶的相似性公式⑴為余弦相似度公式。
除了以上所述的推薦算法改進外,本系統還將用戶評分相似度和用戶特征相似度相結合選取用戶最近鄰居計算用戶預測評分,同時將項目評分相似度和項目特征相似度相結合,選取項目最近鄰居計算項目預測評分,然后將用戶預測評分和項目預測評分相結合產生最終推薦。
2 系統描述
一個完整的個性化智能推薦系統[8]大概主要包括:收集用戶信息的行為記錄模塊、分析用戶喜好的模型分析模塊和推薦算法模塊,其中推薦算法模塊是推薦系統中最為核心的部分。
本系統在對客戶數據透明的情況下,對客戶的數據、行為進行分析。當用戶登錄到系統時,通過系統對身份的驗證后,用戶信息模塊開始收集信息,跟蹤客戶的行為,收集客戶的交易方式、時間、內容和評價的過程和結果的主要信息,數據庫進行信息的預處理和歸一化,形成客戶個性化特征數據庫。個性化分析處理模塊結合客戶個性數據庫進行個性分析,并把結果送到智能重組模塊。在智能重組模塊,對用戶興趣的分類轉化為對項目的分類。對于同一用戶,如預測項目所屬類別不同,用來預測的鄰居用戶也不同,也就是鄰居用戶與待預測的項目在內容上具有一定相似性,從而保證用來預測的鄰居用戶與當前用戶在待預測項目上具有相似的興趣愛好。智能重組模塊根據個性化信息從商品數據庫中篩選產品,并推薦給用戶。
3 系統實現
3.1 網站頁面的設計
圖2是網站的主頁面,上面的功能主要包括:商品的分類查詢、用戶注冊的最新動態、最活躍的用戶排名和商品的簡單推薦等。網頁是用html、css、JavaScript、jQuery,Ajax等語言相結合進行制作的。
3.2 推薦算法的結果分析
3.2.1 數據集
我們采用了系統虛擬數據(自己模擬的數據)對該算法進行測試,一共提供了232位用戶對781個物品的近5000條評分記錄。把整個記錄數據按照75%和25%的比例劃分為訓練集和測試集。
3.2.2 度量標準
該系統的度量標準采用統計度量方法中的平均絕對差MAE(Mean Absolute Error)進行度量[9]。MAE通過計算預測的用戶評分與實際的用戶評分之間的偏差來度量預測的準確性,MAE越大,推薦質量越高。平均絕對偏差MAE的定義如公式⑷。
3.2.3 實驗結果
實驗中,對于一個剛剛注冊的用戶,系統可以對該用戶注冊的信息進行分析處理,然后與分類的物品進行信息匹配,給該用戶推薦與用戶信息匹配的一類物品的最熱賣商品,或者在用戶的集合里找到與該用戶A有相同興趣的用戶B,然后推薦B喜愛的物品。同時,傳統的協同過濾算法是從頭計算到尾,把整個數據矩陣中的數據一一地進行計算,最后得出結果,但是,改進的算法會在中途進行判斷,過濾掉一些數據而計算得出結果,比如相似度為負相關的就不需要求其預測評分了,從而大大的提高算法的效率。在推薦的準確性方面我們發現,用戶的興趣愛好是在不斷變化的,如果還使用傳統的協同過濾算法去為用戶進行推薦,那么推薦的準確性就很讓人懷疑了。針對這一問題,系統會根據數據矩陣的數據量進行數據篩選。比如,數據矩陣的數據量過大,系統就會自動通過時間來篩選出用戶近期留下的數據來進行計算,時間比較久遠的數據就會被篩選掉,從而符合了用戶近期的興趣愛好,使推薦的結果更加準確。
通過協同過濾算法的改進和以上實驗的設計,得到最終的實驗結果如圖3所示。
實驗中,我們設計了不同的用戶近鄰個數,得到了不同的MAE值,在不同的近鄰數下,改進之后協同過濾推薦算法都得到了更高的MAE值,可見改進之后的協同過濾推薦算法,其推薦結果的準確性得到了很大的提高。同時當近鄰數逐步增加后,MAE值逐步下降,可見近鄰數增加會增大噪聲,對推薦結果起到了反作用,而且近鄰數少會提高系統的效率。
4 結束語
本文實現了一個基于智能推薦的電子商城購物系統,該系統為用戶快速推薦可能感興趣的物品,為用戶大大的節省了時間,保證了網絡數據的有序性、安全性和完整性。系統實現了基于Web數據挖掘的推薦系統,根據用戶的興趣特點和購買行為,計算用戶最可能喜歡的內容或商品,并為不同用戶展示不同內容,滿足其內容的個性化需求。未來在線下推薦和冷啟動問題處理方面還需要進一步研究。
參考文獻:
[1] 喬冬春,劉曉燕,付曉東,曹存根.一種基于本體的推薦系統模型[J].計
算機工程,2014.40(11):282-287
[2] 王立才,孟祥武,張玉潔.上下文感知推薦系統[J].軟件學報,2012.23(1):120
[3] 王飛飛,崔洋,賀亞茹.MySQL數據庫應用從入門到精通(第2版)[M].
中國鐵道出版社,2014.
[4] 李剛.輕量級Java EE企業應用實戰[M].電子工業出版社,2013.
[5] 馬宏偉,張光衛,李鵬.協同過濾推薦算法綜述[J].小型微型計算機系
統,2009.30(7):1282-1288
[6] 姜書浩,薛福亮.一種利用協同過濾預測和模糊相似性改進的基于內
容的推薦方法[J].現代圖書情報技術,2014.243(2):41-47
[7] 郭艷紅,鄧貴仕.協同過濾系統項目冷啟動的混合推薦算法[J].計算
機工程,2008.34(23):11-13
[8] 劉鳳霞,孫家蓉.基于商品分類的電子商務推薦系統設計[J].計算機
應用與軟件,2014.5:37-41
[9] 劉旭東.B2C網上購物推薦系統的設計與實現[J].計算機應用與軟
件,2009.26(9):195-197