摘 要:針對傳統(tǒng)圖書館信息服務方式的不足,本文提出了一種基于混合推薦模式的圖書推薦系統(tǒng),即結合了基于內容的推薦,基于關聯規(guī)則的推薦和基于協同過濾的推薦方法來產生推薦結果。本文詳細闡述系統(tǒng)設計方案和這種混合推薦模式的實施方案,最后對系統(tǒng)的運行情況進行了總結,并提出了將來的研究方向。
關鍵詞:推薦系統(tǒng);基于內容的推薦;關聯規(guī)則推薦;協同過濾推薦;混合推薦
中圖分類號:TP319
在傳統(tǒng)的圖書館服務中,用戶主要通過搜索來獲取所需信息,這是一種被動的服務方式,只能滿足用戶的基本需求。和搜索相比,推薦系統(tǒng)能夠通過研究用戶的歷史行為,發(fā)現用戶的興趣偏好,據此主動為用戶提供推薦服務,不但可以使用戶獲得滿意的結果,還能引導用戶發(fā)現自己潛在的信息需求。將推薦技術應用于圖書館系統(tǒng),是圖書館實現信息服務的有效手段,可以提高圖書館的服務質量和圖書資源的利用率。本文提出了一種基于混合推薦模式的圖書推薦系統(tǒng),結合了基于內容的推薦,基于關聯規(guī)則的推薦和基于協同過濾的推薦方法來產生推薦結果。
1 系統(tǒng)設計
1.1 系統(tǒng)的體系結構
本文提出的基于混合推薦模式的圖書推薦系統(tǒng)的體系結構如下圖所示:
圖1 圖書推薦系統(tǒng)的體系結構
該體系結構把系統(tǒng)主要分成4個模塊:
(1)數據庫模塊:存儲和管理用戶和圖書的基本信息數據。
(2)數據處理模塊:對數據進行預處理和特征提取,分別建立3個特征庫。根據用戶對圖書的借閱信息,建立用戶借閱特征庫;根據用戶/圖書的描述信息,建立用戶/圖書特征庫;根據用戶對圖書的評分信息,建立用戶評分特征庫。
(3)推薦模塊:采用了基于關聯推薦,內容推薦和協同過濾推薦的混合推薦模式來產生推薦書目列表。
(4)用戶接口模塊:獲取用戶與系統(tǒng)的交互信息,并將推薦書目結果展現給用戶。
1.2 推薦模式設計
推薦算法是一個推薦系統(tǒng)中最核心和關鍵的部分,很大程度上決定了推薦系統(tǒng)類型和性能的優(yōu)劣[1]。由于各種推薦算法都有各自的優(yōu)缺點,為了改善推薦質量,本文采用了一種混合推薦模式,結合了基于內容的推薦,基于關聯規(guī)則的推薦和基于協同過濾的推薦方法來產生推薦結果。
1.2.1 基于內容的推薦
在系統(tǒng)運行初期,只有用戶和圖書的基本信息數據,沒有用戶的行為數據?;趦热莸耐扑]方法,利用用戶的特征信息,如教師用戶所屬教研室信息,學生用戶的專業(yè)信息,圖書的類別,主題,書名等信息來建立用戶/圖書特征庫,通過簡單的匹配來產生推薦書目。這一方法可以為新用戶推薦圖書,新入館的圖書也可以獲得均等的推薦機會。但是,這種方法產生的推薦結果非常粗糙,不能準確反應用戶的興趣。本系統(tǒng)運行初期,主要利用這種方法來引導用戶行為,后期則只是作為補充。
1.2.2 基于關聯規(guī)則的推薦
在系統(tǒng)運行期間,當用戶利用系統(tǒng)借閱圖書時,就已經在系統(tǒng)產生用戶行為數據。對用戶借閱圖書的信息進行分析,可以發(fā)現兩類關聯規(guī)則:相關圖書和相關用戶。以發(fā)現相關圖書規(guī)則為例進行說明。假定表1是用戶借閱圖書的事務記錄。
表1 用戶借閱圖書事務記錄
讀者證號借閱圖書記錄
0001Android程序設計,Java程序設計,Java EE 6權威指南
0002Android程序設計,JavaScript程序設計
0003JavaScript程序設計,IT項目管理
0004Android程序設計,Java程序設計,JavaScript程序設計
0005Android程序設計,Java程序設計,JSP程序設計,JavaScript程序設計,Java EE 6權威指南
0006Java程序設計,JSP程序設計,Java EE 6權威指南
0007Java程序設計,Java EE 6權威指南,JSP程序設計,
給定最小支持度minsup=30%和最小置信度minconf=80%,則下面這條關聯規(guī)則是符合要求的(sup是支持度,conf是置信度):
《Java程序設計》,《JSP程序設計》→《Java EE 6權威指南》
根據上述規(guī)則,就可以給以后借閱過《Java程序設計》和《JSP程序設計》的用戶推薦《Java EE 6權威指南》這本書。
本系統(tǒng)運行中,當數據量比較小的時候,基于關聯規(guī)則的推薦還是可以產生比較準確的推薦結果。但是,當數據規(guī)模擴大的時候,由于規(guī)則的產生比較繁瑣,所以對推薦性能的影響較大。而且,在這個過程有可能產生冗余規(guī)則,出現重復推薦的情況。
1.2.3 基于協同過濾的推薦
協同過濾根據用戶對項目的評分來產生推薦,是目前在推薦系統(tǒng)中應用最成功和廣泛的推薦技術[2]。根據推薦產生過程的不同,通常可以將協同過濾算法分為基于內存的算法和基于模型的算法?;趦却娴膮f同過濾的推薦算法是直接將整個用戶-項目評分矩陣加載到系統(tǒng)內存,基于相似的用戶或項目來產生推薦結果。根據相似性計算的對象的不同,又可以分為基于用戶的算法和基于項目的算法。本系統(tǒng)主要采用了基于用戶的協同過濾算法來產生推薦結果。根據算法的基本原理,可以把算法的實施分為四個階段:(1)用戶相似性計算;(2)選擇近鄰;(3)預測評分;(4)推薦?;趨f同過濾的推薦算法,實施簡單有效,可以發(fā)現用戶潛在的但自己尚未覺察的興趣偏好。但是,當用戶的評分數據較少時,這一方法無法產生推薦結果。當系統(tǒng)的數據規(guī)模不斷擴大之后,推薦的效率又會受到影響。由于本系統(tǒng)的數據規(guī)模不大,基于協同過濾的推薦方法是系統(tǒng)運行中后期的主要推薦技術。
1.2.4 混合推薦模式
本文采用的混合推薦模式,主要是對上述三種方法推薦結果的加權組合。假定N1為基于內容的推薦結果,N2為基于關聯規(guī)則的推薦結果,N3為基于協同過濾的推薦結果,則最終的推薦結果計算如下:
N=a*N1+b*N2+c*N3,其中參數a+b+c=1 (1)
在系統(tǒng)運行初期,主要采用基因內容的推薦,即a=1,b=c=0。當用戶的借閱記錄和評分記錄大于2的時候,開始啟動基于關聯規(guī)則的推薦和基于協同過濾的推薦。通過對參數的調試,發(fā)現當參數a和b取值較小,特別是c取值超過50%的時候,推薦的結果相對比較準確。這說明基于協同過濾的推薦結果更加符合用戶的需求,而另外兩種方法可以作為補充。
2 總結和展望
本文提出了一種基于混合推薦模式的協同過濾圖書推薦系統(tǒng),可以主動為用戶提供圖書推薦服務。從系統(tǒng)實際運行效果來看,這種模式可以彌補各種推薦方法的不足,為用戶產生比較準確的推薦結果。但是,隨著系統(tǒng)數據規(guī)模的不斷擴大,系統(tǒng)實時推薦效率有所下降。為了解決這個問題,還需要考慮引入其他推薦方法,比如基于模型的協同過濾算法。此外,在混合推薦模式中,本文只采用了最簡單的加權組合方法。如何有效組合這些推薦方法,提高推薦精度,也是值得研究的方向。
參考文獻:
[1]許海玲,吳瀟,李曉東.互聯網推薦系統(tǒng)比較研究[J].軟件學報,2009(02):350-362.
[2]Adomavicius G and Tuzhilin A.Towards the next generation of recommender systems:A survey of the state-of-the-art and possible extensions[J].IEEE Transactions on Knowledge and Data Engineering,2005(06):734–749.
作者單位:廣東東軟學院,廣東佛山 528225