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