劉一鷗
(西安外事學院 陜西 西安 710077)
基于人工魚群算法的圖書館推薦平臺設計
劉一鷗
(西安外事學院 陜西 西安 710077)
針對圖書購買的個性化需求與管理需要,提出一種改進型人工魚群算法的個性化圖書推薦平臺。本文首先對個性化推薦平臺的功能需求進行分析;其次對系統(tǒng)整體架構、功能模塊、運行環(huán)境等進行設計;再次,利用人工魚群算法注重對用戶行為進行分析,從而為廣大的讀者和圖書銷售商提供更為專業(yè)的圖書推薦和管理建議;最后以C++6.0作為編程語言,Mysql作為數(shù)據(jù)庫,對系統(tǒng)功能進行開發(fā),并通過測試驗證系統(tǒng)運行的可行性。
人工魚群算法;圖書推薦;個性化需求;用戶行為;聚類分析
隨著現(xiàn)代計算機的普及,數(shù)字化和信息化成為當前時代發(fā)展的主流與標志。而信息化的發(fā)展,使得信息搜索成為效率大大提高,針對各種不同興趣的用戶提供更為個性化推薦是當前互聯(lián)網(wǎng)發(fā)展的一種趨勢,特別是群體智能聚類分析更是近些年個性化推薦的一個熱點[1-4]。如著名的亞馬遜網(wǎng)站通過協(xié)同過濾算法,從而為廣大的書籍購買者提推薦不同的書籍[5];淘寶同樣也通過個性化推薦算法,對用戶的搜索行為進行分析,位正在瀏覽的用戶提供“看過此商品的用戶還看過什么商品”的推薦服務[6];Agrawal等則利用傳統(tǒng)的關聯(lián)規(guī)則算法對用戶的喜好進行分析[7]。由此可以看出,在個性化推薦方面,都有著大量的實例和典型應用,充實了個性化推薦應用理論,并滿足了不同用戶的需求。本文則借助人工魚群算法在全局搜索方面的優(yōu)勢,提出一種可用于商業(yè)化的個性化圖書推薦系統(tǒng),并對系統(tǒng)的事先進行了詳細的設計。
當前,無論是亞馬遜還是淘寶在圖書銷售方面,通常會選擇兩種方式對圖書進行購買,一種是目標性的客戶,通過對某部書籍的查找;另一種則是通過網(wǎng)站的推薦,引起用戶對書籍的興趣,讓用戶產(chǎn)生購買的欲望。具體行為如圖1所示。
圖1 顧客購買流程
2.1 系統(tǒng)功能設計
根據(jù)上述對用戶行為的分析,同時對現(xiàn)有圖書銷售網(wǎng)站的調研,本文將該個性化推薦平臺的功能設計為如圖2所示。
圖2 系統(tǒng)功能設計
其中,個性化推薦分為兩個部分,一部分是系統(tǒng)通過離線的方式對用戶數(shù)據(jù)進行分析,這主要為提高系統(tǒng)運行的效率,因為任何推薦算法的運算都是非常復雜的,耗費的時間也非常多;另外一部分為在線個性化推薦,主要為客戶提供個性化的用戶推薦。
2.2 系統(tǒng)整體架構設計
結合系統(tǒng)使用需求,將系統(tǒng)分為在線和離線兩個系統(tǒng),具體如圖3所示。
圖3 系統(tǒng)整體架構設計
通過圖3看出,本推薦平臺主要分為兩大模塊:一部分為在線個性化推薦部分,用戶通過應用服務器與Mysql數(shù)據(jù)庫之間的交互,從而獲取相關的圖書推薦信息;另一部分為離線部分,主要為人工魚群算法模塊提供,通過離線對用戶購買信息的分析,實現(xiàn)對數(shù)據(jù)庫的更新,提高推薦效率。
2.3 系統(tǒng)開發(fā)環(huán)境設計
在對系統(tǒng)的開發(fā)中,同樣分為兩個步驟:一部分對在線推薦平臺開發(fā),另一部分是對離線系統(tǒng)進行開發(fā)。對在下部分的開發(fā)采用B/S+MVC架構+J2EE語言進行開發(fā)[8];對離線部分則采用Visual C++6.0編程語言對系統(tǒng)進行開發(fā);系統(tǒng)整體的數(shù)據(jù)庫選擇Mysql開源數(shù)據(jù)庫[9]。而在采用C語言對離線部分進行開發(fā)中,首先必須對數(shù)據(jù)庫進行連接,具體連接代碼為:
MYSQL*mysql_real_connect(MYSQL*mysql,const char*host, constchar*user, constchar*passwd, const char*db, unsigned int port, const char*unix_socket, unsigned long client_flag)
1)人工魚模型
通常認為,人工魚是靠視覺的方式實現(xiàn)對外部環(huán)境的感知,其具體的模型為[10-12]:
其中,Rand()表示為 0~1 之前的隨機數(shù);Step 表示為步長;X表示人工魚群的狀態(tài);Xv某個體魚群當前的位置;Visual表示人工魚視野;Xnext為人工魚下一步的狀態(tài)。
2)人工魚群算法實現(xiàn)步驟
在對算法進行實現(xiàn)中,通常還需要定義其中的各個概念,將人工魚的總數(shù)定義為N;Try-number定義為嘗試次數(shù);δ為擁擠度因子;dij=||xi-xj||表示個體魚i和j之間的距離;聚群行為Swarm();追尾行為Follow();隨機行為 Move();覓食行為 Prey();行為評價函數(shù) Evaluate();Yi=f(Xi)為目標函數(shù)。
在上述的定義的基礎上,將人工魚群的步驟設計如下:
初始化參數(shù)。包括人工魚總數(shù)N;人工魚視野Visual;步長Step;擁擠度因子δ;嘗試次數(shù)Trynumber;2)更新每條人工魚的位置:如滿足下列條件,則按照以下規(guī)則進行位置更新。假設某人工魚當前的位置為Xi,則有:
①覓食行為Prey():當人工魚在其可感知的范圍之內可隨機選擇一個狀態(tài),定義為Xi,在視野范圍之內選擇一個新的狀態(tài),定義為Xj。如果新的狀態(tài)優(yōu)于原來的狀態(tài),則人工魚則前進一步,否則繼續(xù)搜索。如嘗試Try-number后仍然無法找到合適的狀態(tài),則轉到隨機行為Move()。具體數(shù)學表達式為:
②聚群行為Swarm():當人工魚在視野范圍內搜索到相鄰的伙伴為nc,并得到中心狀態(tài)為Xc,同時人工魚群的擁擠度小于δ,則前進一步,否則轉為覓食行為。具體表達為:
③追尾行為Follow():在視野范圍內找到相鄰伙伴,并得到最優(yōu)的狀態(tài)為Xj,同時該狀態(tài)優(yōu)于原始狀態(tài),且擁擠度小于δ,則向前一步,否則轉為覓食行為,具體表達式為:
④隨機行為Move():如在當前狀態(tài)下不能搜索到最優(yōu)行為,為跳出局部搜索,則采用隨機行為,具體表達式為:
⑤評價行為Evaluate():對每條人工魚的適應度函數(shù),并重復執(zhí)行步驟(b),直到終止條件滿足。
3)算法改進
通過研究認為,由于步長和視野方面存在的局限,導致在實際運用中會出現(xiàn)尋優(yōu)精度不高、后期收斂速度慢的問題[13]。對此,本文在對個性化推薦中引入自適應策略,即K-means聚類算法對上述算法進行改進,具體思路是借助K-means聚類算法找到最佳聚類中心,從而為魚群最佳覓食奠定基礎[14-15]。具體改進步驟如圖4所示。
針對上述的設計和算法,筆者于2016年5月12~19日對系統(tǒng)進行了小范圍的測試,測試對象主要為某高校的研究生,并將研究生對購買書的行為分為積極、消極兩種不同種類。通過上述算法對用戶購買行為的分析,積極讀者類的研究生中,40%的群體會購買醫(yī)藥衛(wèi)生類書籍,說明該類專業(yè)對學生的指導意義較大,因此在銷售網(wǎng)站進行推薦中可根據(jù)用戶的行為偏好進行重點推薦。
同時當在搜索欄中輸入軟件工程,則跳轉如圖5的界面。
圖4 改進算法
圖5 個性推薦界面
文中借助計算機開發(fā)技術,實現(xiàn)了對個性化推薦平臺的基本功能的開發(fā),同時借助人工魚群智能算法,實現(xiàn)了書籍購買的個性化推薦。但任何良好系統(tǒng)的運行不是一種或者兩種算法就可滿足,還需要在未來的開發(fā)中引入更多算法,從而對不同用戶的行為進行更為深入的分析,才能提高推薦平臺的推薦效果。
[1]李樹青,徐俠,許敏佳.基于讀者借閱二分網(wǎng)絡的圖書可推薦質量測度方法及個性化圖書推薦服務[J].中國圖書館學報,2013(3):83-95.
[2]李克潮,藍冬梅,凌霄娥.一種高校讀者借閱偏好的個性化圖書推薦[J].現(xiàn)代情報,2013(8):68-72.
[3]黎邦群.基于檢索行為的非個性化圖書推薦[J].圖書館雜志,2013(8):36-41.
[4]裘月.融入個體人格特質的個性化圖書推薦模型研究[D].杭州:浙江工商大學,2015.
[5]馬健,杜澤宇,李樹青.基于多興趣特征分析的圖書館個性化圖書推薦方法 [J].現(xiàn)代圖書情報技術,2012(6):1-8.
[6]汪英姿.基于本體的個性化圖書推薦方法研究[J].現(xiàn)代圖書情報技術,2012(12):72-78.
[7]肖詩伯,李朝葵,蘭鷹,等.一種基于二分圖模型的圖書個性化推薦研究[J].圖書館學刊,2015(5):96-97,124.
[8]劉丹.利用Apache Mahout部署個性化圖書推薦服務[J].現(xiàn)代圖書情報技術,2015,10:102-108.
[9]李克潮,黎曉.個性化圖書推薦研究[J].圖書館學研究,2011,20:65-69.
[10]臧文科,劉希玉.基于人工魚群算法的Web用戶聚類分析[J].計算機工程與應用,2011(30):12-14.
[11]吳月萍,杜奕.基于人工魚群算法的協(xié)同過濾推薦算法[J].計算機工程與設計,2012(5):1852-1856.
[12]王培崇,錢旭,雷鳳君.新的混合小生境魚群聚類算法[J].計算機應用,2012(8):2189-2192.
[13]王千,王成,馮振元,等.K-means聚類算法研究綜述[J].電子設計工程,2012(7):21-24.
[14]呂少娟,張桂珠.一種融合K-means算法和人工魚群算法的聚類方法 [J].計算機應用與軟件,2015(9):240-243,279.
[15]江小平,李成華,向文,等.k-means聚類算法的MapReduce并行化實現(xiàn) [J].華中科技大學學報:自然科學版,2011(S1):120-124.
Design of library recommendation platform based on artificial fish swarm algorithm
LIU Yi-ou
(Xi'an International University,Xi'an 710077,China)
In view of the personalized demand and the management of the library loan,an improved artificial fish algorithm is proposed.In this paper,we first for personalized recommendation platform functional requirements analysis; secondly, design the system architecture, function module, operating environment; again, the artificial fish swarm algorithm focus on analysis of user behavior, so as to the majority of readers and high school management departments to provide relevant recommended books and management recommendations; finally to C++6.0 as the programming language, MySQL as the database,the functions of the system development,and the feasibility test system to run through.
artificial fish school algorithm; book recommendation; individual demand; user behavior;cluster analysis
TN0
:A
:1674-6236(2017)15-0006-03
2016-06-16稿件編號:201606114
2016年西安市社會科學規(guī)劃基金項目(16IN13);2015年陜西省教育廳科學研究項目(15JK2113);2015年陜西省高等教育教學改革研究項目(15J37)
劉一鷗(1978—),女,陜西西安人,碩士,講師。研究方向:人工智能、軟件工程。