孫曉娟+千博+王圣濤
摘要:隨著IT行業(yè)的飛速發(fā)展,IT從業(yè)人員也越來越多,如何在茫茫書海中選擇適合自己的IT書籍是一個非常重要的問題。設計了一個IT書籍推薦系統(tǒng),系統(tǒng)基于B/S模式,采用LAMP架構(gòu)體系,將協(xié)同過濾算法加入網(wǎng)站系統(tǒng)中,以實現(xiàn)IT書籍的個性化推薦。實驗結(jié)果表明,個性化書籍推薦系統(tǒng)能夠通過用戶行為挖掘用戶興趣,從而為用戶推薦適合自己的IT書籍。關(guān)鍵詞:協(xié)同過濾;IT書籍推薦;個性化推薦;LAMP架構(gòu) DOI 10.11907/rjdk.162819中圖分類號:TP319 A 文章編號:16727800(2017)004007003
0引言隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,人們逐漸從信息匱乏的時代進入到信息過載時代[1]。而個性化推薦系統(tǒng)是解決信息過載的一個有效途徑,推薦系統(tǒng)通過分析用戶的歷史行為給用戶的興趣建立模型,從而主動推薦能夠滿足用戶興趣和需求的信息。 設計一個IT書籍個性化推薦系統(tǒng),可方便IT從業(yè)人員的專業(yè)書籍遴選,減少不必要的重復工作。IT書籍推薦系統(tǒng)可以通過分析用戶行為,發(fā)現(xiàn)用戶興趣,從而實現(xiàn)個性化的書籍推薦。1個性化推薦 基于鄰域的推薦算法是業(yè)內(nèi)使用最廣泛的個性化推薦算法[2],主要依賴某個用戶的相似用戶或某物品的相似物品產(chǎn)生推薦。根據(jù)用戶—物品評分矩陣,計算用戶或物品的相似度,找到最相似的K個鄰居,計算當前用戶與未操作物品的相關(guān)度,以推薦列表形式推薦相關(guān)度最高的物品。該類算法主要包括基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾兩種。在實際中,由于項目需求不同,個性化推薦模型也有一定差異,但幾乎所有推薦模型都包括用戶行為搜集模塊、用戶日志分析模塊以及個性化推薦算法模塊[34]。具體模型如圖1所示。]1.1基于用戶的協(xié)同過濾算法 基于用戶的協(xié)同過濾算法的基本思想是:興趣相似的用戶可能會對相同物品感興趣[56]。因此,當要給用戶A個性化推薦物品時,可以先找到與其有相似興趣的其他用戶,然后把那些其他用戶喜歡、而用戶A沒有聽說過的物品推薦給A。該算法的推薦過程主要分為兩步:
第一步:找到和目標用戶興趣度相似的用戶集合。其中計算用戶u和v的相似度方法主要有余弦相似度(公式1)、皮爾遜相關(guān)系數(shù)(公式2)等[78],ru,i為用戶u對物品i的評分;u和v分別是用戶u和用戶v在各自所評物品集上的均值。第二步:得到用戶之間的興趣相似度后,找到該集合中用戶喜歡,且目標用戶沒有聽說過的物品推薦給目標用戶[9]。使用公式(3)計算用戶u對物品i的感興趣程度[10],S(u,K)包含和用戶u興趣最接近的K個用戶,N(i)是對物品i有過行為的用戶集合。]1.2基于物品的協(xié)同過濾算法基于物品的協(xié)同過濾算法的基本思想是:通過分析用戶的行為記錄,計算物品之間的相似度,物品A和物品B具有很大相似度的原因是因為喜歡物品A的用戶也大都喜歡物品B[11]。該算法的推薦過程也分為兩步:第一步:計算物品之間的相似度。這里采用改進的余弦相似度[12]:第二步:得到物品之間的相似度后,根據(jù)公式(5)計算用戶對物品的興趣度[1314]。按興趣度從高到低排序后,取其前N個值作為最終結(jié)果推薦給用戶?!糀Kr-〗i表示物品i的平均分,S(i,K)表示和物品i相似的K個物品集合,N(u)表示用戶u評分過的物品。2IT書籍推薦系統(tǒng)設計]2.1系統(tǒng)總體架構(gòu) IT書籍推薦系統(tǒng)主要由前臺展示頁面、后臺數(shù)據(jù)庫系統(tǒng)和推薦引擎三大部分組成[15]。其中,前臺展示頁面是用戶與系統(tǒng)進行交互的接口,用戶可以看到并尋找自己感興趣的書籍,同時系統(tǒng)也會自動化地給用戶推薦一個書籍列表;后臺數(shù)據(jù)庫系統(tǒng)主要用來記錄用戶信息、書籍信息以及用戶行為所產(chǎn)生的數(shù)據(jù);推薦引擎是實現(xiàn)個性化推薦最重要的模塊[1617],本系統(tǒng)針對新注冊用戶,利用熱門推薦進行書籍推薦,當用戶進行評分,產(chǎn)生行為數(shù)據(jù)后,采用協(xié)同過濾算法來實現(xiàn)個性化推薦[18]。圖2為系統(tǒng)的總體架構(gòu)。
2.2系統(tǒng)功能模塊設計 對于整個IT書籍推薦系統(tǒng)而言,書籍和用戶是兩大主體。為實現(xiàn)給用戶個性化推薦IT書籍,系統(tǒng)主要需要3大模塊:用戶模塊、書籍模塊、評分模塊(產(chǎn)生推薦)。系統(tǒng)功能模塊設計如圖3所示。
用戶管理模塊主要實現(xiàn)對用戶的管理,根據(jù)權(quán)限分為普通用戶和系統(tǒng)管理員;書籍管理模塊主要實現(xiàn)對書籍的管理,在后臺實現(xiàn)書籍添加、修改信息、刪除書籍,在前臺實現(xiàn)書籍展示等功能;評分模塊是聯(lián)系用戶與書籍、實現(xiàn)書籍個性化推薦的重要模塊。]2.3數(shù)據(jù)庫設計 根據(jù)系統(tǒng)功能需求,設計的IT書籍推薦系統(tǒng)主要涉及5張表:用戶基本信息表、書籍信息表、評分信息表、用戶相似度表和書籍相似度表。各個表之間的關(guān)系如圖4所示。
用戶基本信息表負責存儲用戶基本信息,包括用戶userid、用戶名、密碼、郵箱、角色(管理員或普通用戶)等;書籍信息表包括書籍編號、書籍名稱、書籍作者、出版年份、出版社、封面縮略圖、書籍內(nèi)容、創(chuàng)建時間、更新時間、點擊次數(shù);評分信息表包括記錄id、用戶userid、書籍id、評分值、評分時間。用戶相似度表和書籍相似度表是通過協(xié)同過濾算法計算得到的信息,是個性化推薦的直接來源。3系統(tǒng)實現(xiàn) 系統(tǒng)基于B/S架構(gòu),采用現(xiàn)今比較流行的LAMP開發(fā)環(huán)境。其中L指Linux系統(tǒng);A指Apache,是一個被廣泛使用的網(wǎng)站服務器軟件;M指MySQL數(shù)據(jù)庫軟件;P指PHP程序開發(fā)語言。同時使用MVC開發(fā)模式,實現(xiàn)在瀏覽器上以網(wǎng)站的形式提供推薦服務。]3.1用戶管理模塊 用戶管理模塊是Web系統(tǒng)的必備功能??紤]到前后臺分離的安全性問題,在設計用戶數(shù)據(jù)表時,加入了角色字段來區(qū)分是普通用戶還是系統(tǒng)管理員。其中,管理員擁有管理普通用戶以及增加、刪除、修改書目的權(quán)限。普通用戶登陸后則可以獲得推薦服務以及對書目進行評分。普通網(wǎng)站所具有的注冊、登陸、密碼修改、找回密碼等功能本系統(tǒng)也都具備。]3.2書籍管理模塊 出于安全性及減少噪聲信息的考慮,該部分也是由管理員負責管理。書籍管理模塊中書籍的增加、刪除、更新是在后臺實現(xiàn)的,前臺功能是用來展示書籍列表,書籍信息的展示根據(jù)用戶是否登錄略有不同。數(shù)目的添加、刪除、修改與通常網(wǎng)站類似,這里不再贅述。以下對于書籍信息展示功能進行說明,圖5為書籍展示流程模塊。
如果用戶未登錄,則提醒用戶登錄獲取推薦服務;如果用戶已經(jīng)登錄,則根據(jù)用戶歷史信息向其推薦書籍。推薦的書籍排在常規(guī)書單后面,選取的書籍是利用協(xié)同過濾推薦算法計算出的用戶未評分但興趣度最高的6本書。]3.3評分管理模塊 用戶評分動作發(fā)生在書籍詳細信息的界面,只有當用戶登錄時才能查看自己對本書籍的評分狀態(tài),從而添加或更改評分,流程如圖6所示。 如果用戶未登錄,則提示用戶登陸參與評分,獲取更優(yōu)的推薦服務;如果用戶已登錄,則判斷用戶是否已對這本書籍進行了評分。如果沒有評分,顯示評分表單,用戶可以對其進行評分。如果用戶已經(jīng)對本書籍進行了評分但是需要更改評分,點擊頁面上的修改按鈕則可以重新進行評分操作。
4系統(tǒng)評估 系統(tǒng)設計實現(xiàn)后,為了驗證推薦算法的應用效果,在實驗室隨機邀請若干同學進行注冊,網(wǎng)站后臺通過捕捉用戶的顯性和隱性行為特征進行個性化推薦。其中,顯性行為是用戶對書籍的主動評分,隱性行為是用戶對某一書籍的點擊次數(shù)等。系統(tǒng)根據(jù)捕捉到的信息,將其存入后臺數(shù)據(jù)庫,并通過推薦算法的處理,最終實現(xiàn)對用戶的個性化書籍推薦。
以wangshengtao同學為例,系統(tǒng)通過分析其在網(wǎng)站上的行為特征,發(fā)現(xiàn)他對Java方向比較感興趣,圖7是系統(tǒng)為其推薦的書單。在后期的用戶調(diào)查階段,wangshengtao表示對推薦結(jié)果較為滿意。
5結(jié)語 本文簡單介紹了協(xié)同過濾算法,設計并實現(xiàn)了基于協(xié)同過濾算法的IT書籍推薦系統(tǒng)。系統(tǒng)基于B/S模式,采用LAMP架構(gòu),通過將推薦算法融入網(wǎng)站后臺中,系統(tǒng)能夠通過分析用戶行為,從而實現(xiàn)為用戶個性化地推薦IT書籍。實驗結(jié)果表明,系統(tǒng)能夠準確地為用戶推薦書籍,具有一定實用性與穩(wěn)定性。
參考文獻:[1]CHARU C AGGARWAL.An introduction to recommender systems[M].Springer International Publishing,2016.
[2]J BOBADILLA, F ORTEGA, A HERNANDO, et al. Recommender systems survey[J]. KnowledgeBased System,2013,46(1):109132.
[3]項亮.推薦系統(tǒng)實踐[M].北京:人民郵電出版社,2012.
[4]YUESHEN XU, JIANWEI YIN. Collaborative recommendation with user generated content[J].Engineering Applications of Artificial Intelligence, 2015.
[5]THOMAS QUIROZ,OSCAR M SALAZAR,DEMETRIO A OVALLE.Adaptable and adaptive humancomputer interface to recommend learning objects from repositories[C].Learning and Collaboration Technologies , 2016: 539549.
[6]YUESHEN XU,ZHIYUAN CHEN,JIANWEI YIN,et al.Learning to recommend with user generated content[C].International Conference on WebAge Information Management,2015:221232.
[7]王小亮. 基于協(xié)同過濾的個性化推薦算法的優(yōu)化和應用[D]. 杭州:浙江工商大學, 2010.
[8]SUVASH SEDHAIN, SCOTT SANNER, DARIUS BRAZIUNAS, et al. Social collaborative filtering for coldstart recommendations[C]. Proceedings of the 8th ACM Conference on Recommender Systems, 2014:345348. [9]JASON C HUNG,JINGDE WENG,YUNGHUI CHEN.A recommendation system based on mining human portfolio for museum navigation[C].Evolving Systems,2016:145158.
[10]BIROL CILOGLUGIL, MUSTAFA MURAT INCEOGLU.A felder and silverman learning styles model based personalization approach to recommend learning objects[C].Computational Science and Its ApplicationsICCSA 2016:386397.
[11]LEI GUO,JUN MA,ZHUMIN CHEN,et al.Learning to recommend with social contextual information from implicit feedback[C].Soft Computing,2015:13511362. [12]王偉杰. 基于評分預測的協(xié)同推薦若干問題研究[D].上海:華東師范大學,2014.
[13]YEHUDA KOREN.Factorization meets the neighborhood:a multifaceted collaborative filtering model[C]. Proceeding of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,2008:426434.
[14]J BOBADILLA, F ORTEGA, A HERNANDO, et al. Recommender systems survey[J]. KnowledgeBased System, 2013, 46(1):109132.
[15]王國霞, 劉賀平.個性化推薦系統(tǒng)綜述[J].計算機工程與應用,2012,48(7):6676.
[16]VERSTRPEN K, GOETHALS B. Unifying nearest neighbors collaborative filtering[C]. ACM RecSys, 2014: 177184.[17]LIU X, ABERER K. Towards a dynamic topN recommendation framework[C]. ACM RecSys,2014: 217224.[18]BRESSE JS, HECKERMAN D, KADIE C. Empirical analysis of predictive algoithms for collaborative filtering[C]. Proc 14th Cof Uncertainty in Artificial Intelligence Madison,2008:4352.
(責任編輯:黃健)