孫曉娟+千博+王圣濤



摘要:隨著IT行業(yè)的飛速發(fā)展,IT從業(yè)人員也越來(lái)越多,如何在茫茫書海中選擇適合自己的IT書籍是一個(gè)非常重要的問(wèn)題。設(shè)計(jì)了一個(gè)IT書籍推薦系統(tǒng),系統(tǒng)基于B/S模式,采用LAMP架構(gòu)體系,將協(xié)同過(guò)濾算法加入網(wǎng)站系統(tǒng)中,以實(shí)現(xiàn)IT書籍的個(gè)性化推薦。實(shí)驗(yàn)結(jié)果表明,個(gè)性化書籍推薦系統(tǒng)能夠通過(guò)用戶行為挖掘用戶興趣,從而為用戶推薦適合自己的IT書籍。關(guān)鍵詞:協(xié)同過(guò)濾;IT書籍推薦;個(gè)性化推薦;LAMP架構(gòu) DOI 10.11907/rjdk.162819中圖分類號(hào):TP319 A 文章編號(hào):16727800(2017)004007003
0引言隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,人們逐漸從信息匱乏的時(shí)代進(jìn)入到信息過(guò)載時(shí)代[1]。而個(gè)性化推薦系統(tǒng)是解決信息過(guò)載的一個(gè)有效途徑,推薦系統(tǒng)通過(guò)分析用戶的歷史行為給用戶的興趣建立模型,從而主動(dòng)推薦能夠滿足用戶興趣和需求的信息。 設(shè)計(jì)一個(gè)IT書籍個(gè)性化推薦系統(tǒng),可方便IT從業(yè)人員的專業(yè)書籍遴選,減少不必要的重復(fù)工作。IT書籍推薦系統(tǒng)可以通過(guò)分析用戶行為,發(fā)現(xiàn)用戶興趣,從而實(shí)現(xiàn)個(gè)性化的書籍推薦。1個(gè)性化推薦 基于鄰域的推薦算法是業(yè)內(nèi)使用最廣泛的個(gè)性化推薦算法[2],主要依賴某個(gè)用戶的相似用戶或某物品的相似物品產(chǎn)生推薦。根據(jù)用戶—物品評(píng)分矩陣,計(jì)算用戶或物品的相似度,找到最相似的K個(gè)鄰居,計(jì)算當(dāng)前用戶與未操作物品的相關(guān)度,以推薦列表形式推薦相關(guān)度最高的物品。該類算法主要包括基于用戶的協(xié)同過(guò)濾和基于物品的協(xié)同過(guò)濾兩種。在實(shí)際中,由于項(xiàng)目需求不同,個(gè)性化推薦模型也有一定差異,但幾乎所有推薦模型都包括用戶行為搜集模塊、用戶日志分析模塊以及個(gè)性化推薦算法模塊[34]。具體模型如圖1所示。]1.1基于用戶的協(xié)同過(guò)濾算法 基于用戶的協(xié)同過(guò)濾算法的基本思想是:興趣相似的用戶可能會(huì)對(duì)相同物品感興趣[56]。因此,當(dāng)要給用戶A個(gè)性化推薦物品時(shí),可以先找到與其有相似興趣的其他用戶,然后把那些其他用戶喜歡、而用戶A沒(méi)有聽說(shuō)過(guò)的物品推薦給A。該算法的推薦過(guò)程主要分為兩步:
第一步:找到和目標(biāo)用戶興趣度相似的用戶集合。其中計(jì)算用戶u和v的相似度方法主要有余弦相似度(公式1)、皮爾遜相關(guān)系數(shù)(公式2)等[78],ru,i為用戶u對(duì)物品i的評(píng)分;u和v分別是用戶u和用戶v在各自所評(píng)物品集上的均值。第二步:得到用戶之間的興趣相似度后,找到該集合中用戶喜歡,且目標(biāo)用戶沒(méi)有聽說(shuō)過(guò)的物品推薦給目標(biāo)用戶[9]。使用公式(3)計(jì)算用戶u對(duì)物品i的感興趣程度[10],S(u,K)包含和用戶u興趣最接近的K個(gè)用戶,N(i)是對(duì)物品i有過(guò)行為的用戶集合。]1.2基于物品的協(xié)同過(guò)濾算法基于物品的協(xié)同過(guò)濾算法的基本思想是:通過(guò)分析用戶的行為記錄,計(jì)算物品之間的相似度,物品A和物品B具有很大相似度的原因是因?yàn)橄矚g物品A的用戶也大都喜歡物品B[11]。該算法的推薦過(guò)程也分為兩步:第一步:計(jì)算物品之間的相似度。這里采用改進(jìn)的余弦相似度[12]:第二步:得到物品之間的相似度后,根據(jù)公式(5)計(jì)算用戶對(duì)物品的興趣度[1314]。按興趣度從高到低排序后,取其前N個(gè)值作為最終結(jié)果推薦給用戶。〖AKr-〗i表示物品i的平均分,S(i,K)表示和物品i相似的K個(gè)物品集合,N(u)表示用戶u評(píng)分過(guò)的物品。2IT書籍推薦系統(tǒng)設(shè)計(jì)]2.1系統(tǒng)總體架構(gòu) IT書籍推薦系統(tǒng)主要由前臺(tái)展示頁(yè)面、后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)和推薦引擎三大部分組成[15]。其中,前臺(tái)展示頁(yè)面是用戶與系統(tǒng)進(jìn)行交互的接口,用戶可以看到并尋找自己感興趣的書籍,同時(shí)系統(tǒng)也會(huì)自動(dòng)化地給用戶推薦一個(gè)書籍列表;后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)主要用來(lái)記錄用戶信息、書籍信息以及用戶行為所產(chǎn)生的數(shù)據(jù);推薦引擎是實(shí)現(xiàn)個(gè)性化推薦最重要的模塊[1617],本系統(tǒng)針對(duì)新注冊(cè)用戶,利用熱門推薦進(jìn)行書籍推薦,當(dāng)用戶進(jìn)行評(píng)分,產(chǎn)生行為數(shù)據(jù)后,采用協(xié)同過(guò)濾算法來(lái)實(shí)現(xiàn)個(gè)性化推薦[18]。圖2為系統(tǒng)的總體架構(gòu)。
2.2系統(tǒng)功能模塊設(shè)計(jì) 對(duì)于整個(gè)IT書籍推薦系統(tǒng)而言,書籍和用戶是兩大主體。為實(shí)現(xiàn)給用戶個(gè)性化推薦IT書籍,系統(tǒng)主要需要3大模塊:用戶模塊、書籍模塊、評(píng)分模塊(產(chǎn)生推薦)。系統(tǒng)功能模塊設(shè)計(jì)如圖3所示。
用戶管理模塊主要實(shí)現(xiàn)對(duì)用戶的管理,根據(jù)權(quán)限分為普通用戶和系統(tǒng)管理員;書籍管理模塊主要實(shí)現(xiàn)對(duì)書籍的管理,在后臺(tái)實(shí)現(xiàn)書籍添加、修改信息、刪除書籍,在前臺(tái)實(shí)現(xiàn)書籍展示等功能;評(píng)分模塊是聯(lián)系用戶與書籍、實(shí)現(xiàn)書籍個(gè)性化推薦的重要模塊。]2.3數(shù)據(jù)庫(kù)設(shè)計(jì) 根據(jù)系統(tǒng)功能需求,設(shè)計(jì)的IT書籍推薦系統(tǒng)主要涉及5張表:用戶基本信息表、書籍信息表、評(píng)分信息表、用戶相似度表和書籍相似度表。各個(gè)表之間的關(guān)系如圖4所示。
用戶基本信息表負(fù)責(zé)存儲(chǔ)用戶基本信息,包括用戶userid、用戶名、密碼、郵箱、角色(管理員或普通用戶)等;書籍信息表包括書籍編號(hào)、書籍名稱、書籍作者、出版年份、出版社、封面縮略圖、書籍內(nèi)容、創(chuàng)建時(shí)間、更新時(shí)間、點(diǎn)擊次數(shù);評(píng)分信息表包括記錄id、用戶userid、書籍id、評(píng)分值、評(píng)分時(shí)間。用戶相似度表和書籍相似度表是通過(guò)協(xié)同過(guò)濾算法計(jì)算得到的信息,是個(gè)性化推薦的直接來(lái)源。3系統(tǒng)實(shí)現(xiàn) 系統(tǒng)基于B/S架構(gòu),采用現(xiàn)今比較流行的LAMP開發(fā)環(huán)境。其中L指Linux系統(tǒng);A指Apache,是一個(gè)被廣泛使用的網(wǎng)站服務(wù)器軟件;M指MySQL數(shù)據(jù)庫(kù)軟件;P指PHP程序開發(fā)語(yǔ)言。同時(shí)使用MVC開發(fā)模式,實(shí)現(xiàn)在瀏覽器上以網(wǎng)站的形式提供推薦服務(wù)。]3.1用戶管理模塊 用戶管理模塊是Web系統(tǒng)的必備功能。考慮到前后臺(tái)分離的安全性問(wèn)題,在設(shè)計(jì)用戶數(shù)據(jù)表時(shí),加入了角色字段來(lái)區(qū)分是普通用戶還是系統(tǒng)管理員。其中,管理員擁有管理普通用戶以及增加、刪除、修改書目的權(quán)限。普通用戶登陸后則可以獲得推薦服務(wù)以及對(duì)書目進(jìn)行評(píng)分。普通網(wǎng)站所具有的注冊(cè)、登陸、密碼修改、找回密碼等功能本系統(tǒng)也都具備。]3.2書籍管理模塊 出于安全性及減少噪聲信息的考慮,該部分也是由管理員負(fù)責(zé)管理。書籍管理模塊中書籍的增加、刪除、更新是在后臺(tái)實(shí)現(xiàn)的,前臺(tái)功能是用來(lái)展示書籍列表,書籍信息的展示根據(jù)用戶是否登錄略有不同。數(shù)目的添加、刪除、修改與通常網(wǎng)站類似,這里不再贅述。以下對(duì)于書籍信息展示功能進(jìn)行說(shuō)明,圖5為書籍展示流程模塊。
如果用戶未登錄,則提醒用戶登錄獲取推薦服務(wù);如果用戶已經(jīng)登錄,則根據(jù)用戶歷史信息向其推薦書籍。推薦的書籍排在常規(guī)書單后面,選取的書籍是利用協(xié)同過(guò)濾推薦算法計(jì)算出的用戶未評(píng)分但興趣度最高的6本書。]3.3評(píng)分管理模塊 用戶評(píng)分動(dòng)作發(fā)生在書籍詳細(xì)信息的界面,只有當(dāng)用戶登錄時(shí)才能查看自己對(duì)本書籍的評(píng)分狀態(tài),從而添加或更改評(píng)分,流程如圖6所示。 如果用戶未登錄,則提示用戶登陸參與評(píng)分,獲取更優(yōu)的推薦服務(wù);如果用戶已登錄,則判斷用戶是否已對(duì)這本書籍進(jìn)行了評(píng)分。如果沒(méi)有評(píng)分,顯示評(píng)分表單,用戶可以對(duì)其進(jìn)行評(píng)分。如果用戶已經(jīng)對(duì)本書籍進(jìn)行了評(píng)分但是需要更改評(píng)分,點(diǎn)擊頁(yè)面上的修改按鈕則可以重新進(jìn)行評(píng)分操作。
4系統(tǒng)評(píng)估 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)后,為了驗(yàn)證推薦算法的應(yīng)用效果,在實(shí)驗(yàn)室隨機(jī)邀請(qǐng)若干同學(xué)進(jìn)行注冊(cè),網(wǎng)站后臺(tái)通過(guò)捕捉用戶的顯性和隱性行為特征進(jìn)行個(gè)性化推薦。其中,顯性行為是用戶對(duì)書籍的主動(dòng)評(píng)分,隱性行為是用戶對(duì)某一書籍的點(diǎn)擊次數(shù)等。系統(tǒng)根據(jù)捕捉到的信息,將其存入后臺(tái)數(shù)據(jù)庫(kù),并通過(guò)推薦算法的處理,最終實(shí)現(xiàn)對(duì)用戶的個(gè)性化書籍推薦。
以wangshengtao同學(xué)為例,系統(tǒng)通過(guò)分析其在網(wǎng)站上的行為特征,發(fā)現(xiàn)他對(duì)Java方向比較感興趣,圖7是系統(tǒng)為其推薦的書單。在后期的用戶調(diào)查階段,wangshengtao表示對(duì)推薦結(jié)果較為滿意。
5結(jié)語(yǔ) 本文簡(jiǎn)單介紹了協(xié)同過(guò)濾算法,設(shè)計(jì)并實(shí)現(xiàn)了基于協(xié)同過(guò)濾算法的IT書籍推薦系統(tǒng)。系統(tǒng)基于B/S模式,采用LAMP架構(gòu),通過(guò)將推薦算法融入網(wǎng)站后臺(tái)中,系統(tǒng)能夠通過(guò)分析用戶行為,從而實(shí)現(xiàn)為用戶個(gè)性化地推薦IT書籍。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)能夠準(zhǔn)確地為用戶推薦書籍,具有一定實(shí)用性與穩(wěn)定性。
參考文獻(xià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]項(xiàng)亮.推薦系統(tǒng)實(shí)踐[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é)同過(guò)濾的個(gè)性化推薦算法的優(yōu)化和應(yīng)用[D]. 杭州:浙江工商大學(xué), 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]王偉杰. 基于評(píng)分預(yù)測(cè)的協(xié)同推薦若干問(wèn)題研究[D].上海:華東師范大學(xué),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]王國(guó)霞, 劉賀平.個(gè)性化推薦系統(tǒng)綜述[J].計(jì)算機(jī)工程與應(yīng)用,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.
(責(zé)任編輯:黃健)