刘一鸥
(西安外事学院 陕西 西安 710077)
基于人工鱼群算法的图书馆推荐平台设计
刘一鸥
(西安外事学院 陕西 西安 710077)
针对图书购买的个性化需求与管理需要,提出一种改进型人工鱼群算法的个性化图书推荐平台。本文首先对个性化推荐平台的功能需求进行分析;其次对系统整体架构、功能模块、运行环境等进行设计;再次,利用人工鱼群算法注重对用户行为进行分析,从而为广大的读者和图书销售商提供更为专业的图书推荐和管理建议;最后以C++6.0作为编程语言,Mysql作为数据库,对系统功能进行开发,并通过测试验证系统运行的可行性。
人工鱼群算法;图书推荐;个性化需求;用户行为;聚类分析
随着现代计算机的普及,数字化和信息化成为当前时代发展的主流与标志。而信息化的发展,使得信息搜索成为效率大大提高,针对各种不同兴趣的用户提供更为个性化推荐是当前互联网发展的一种趋势,特别是群体智能聚类分析更是近些年个性化推荐的一个热点[1-4]。如著名的亚马逊网站通过协同过滤算法,从而为广大的书籍购买者提推荐不同的书籍[5];淘宝同样也通过个性化推荐算法,对用户的搜索行为进行分析,位正在浏览的用户提供“看过此商品的用户还看过什么商品”的推荐服务[6];Agrawal等则利用传统的关联规则算法对用户的喜好进行分析[7]。由此可以看出,在个性化推荐方面,都有着大量的实例和典型应用,充实了个性化推荐应用理论,并满足了不同用户的需求。本文则借助人工鱼群算法在全局搜索方面的优势,提出一种可用于商业化的个性化图书推荐系统,并对系统的事先进行了详细的设计。
当前,无论是亚马逊还是淘宝在图书销售方面,通常会选择两种方式对图书进行购买,一种是目标性的客户,通过对某部书籍的查找;另一种则是通过网站的推荐,引起用户对书籍的兴趣,让用户产生购买的欲望。具体行为如图1所示。
图1 顾客购买流程
2.1 系统功能设计
根据上述对用户行为的分析,同时对现有图书销售网站的调研,本文将该个性化推荐平台的功能设计为如图2所示。
图2 系统功能设计
其中,个性化推荐分为两个部分,一部分是系统通过离线的方式对用户数据进行分析,这主要为提高系统运行的效率,因为任何推荐算法的运算都是非常复杂的,耗费的时间也非常多;另外一部分为在线个性化推荐,主要为客户提供个性化的用户推荐。
2.2 系统整体架构设计
结合系统使用需求,将系统分为在线和离线两个系统,具体如图3所示。
图3 系统整体架构设计
通过图3看出,本推荐平台主要分为两大模块:一部分为在线个性化推荐部分,用户通过应用服务器与Mysql数据库之间的交互,从而获取相关的图书推荐信息;另一部分为离线部分,主要为人工鱼群算法模块提供,通过离线对用户购买信息的分析,实现对数据库的更新,提高推荐效率。
2.3 系统开发环境设计
在对系统的开发中,同样分为两个步骤:一部分对在线推荐平台开发,另一部分是对离线系统进行开发。对在下部分的开发采用B/S+MVC架构+J2EE语言进行开发[8];对离线部分则采用Visual C++6.0编程语言对系统进行开发;系统整体的数据库选择Mysql开源数据库[9]。而在采用C语言对离线部分进行开发中,首先必须对数据库进行连接,具体连接代码为:
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)人工鱼模型
通常认为,人工鱼是靠视觉的方式实现对外部环境的感知,其具体的模型为[10-12]:
其中,Rand()表示为 0~1 之前的随机数;Step 表示为步长;X表示人工鱼群的状态;Xv某个体鱼群当前的位置;Visual表示人工鱼视野;Xnext为人工鱼下一步的状态。
2)人工鱼群算法实现步骤
在对算法进行实现中,通常还需要定义其中的各个概念,将人工鱼的总数定义为N;Try-number定义为尝试次数;δ为拥挤度因子;dij=||xi-xj||表示个体鱼i和j之间的距离;聚群行为Swarm();追尾行为Follow();随机行为 Move();觅食行为 Prey();行为评价函数 Evaluate();Yi=f(Xi)为目标函数。
在上述的定义的基础上,将人工鱼群的步骤设计如下:
初始化参数。包括人工鱼总数N;人工鱼视野Visual;步长Step;拥挤度因子δ;尝试次数Trynumber;2)更新每条人工鱼的位置:如满足下列条件,则按照以下规则进行位置更新。假设某人工鱼当前的位置为Xi,则有:
①觅食行为Prey():当人工鱼在其可感知的范围之内可随机选择一个状态,定义为Xi,在视野范围之内选择一个新的状态,定义为Xj。如果新的状态优于原来的状态,则人工鱼则前进一步,否则继续搜索。如尝试Try-number后仍然无法找到合适的状态,则转到随机行为Move()。具体数学表达式为:
②聚群行为Swarm():当人工鱼在视野范围内搜索到相邻的伙伴为nc,并得到中心状态为Xc,同时人工鱼群的拥挤度小于δ,则前进一步,否则转为觅食行为。具体表达为:
③追尾行为Follow():在视野范围内找到相邻伙伴,并得到最优的状态为Xj,同时该状态优于原始状态,且拥挤度小于δ,则向前一步,否则转为觅食行为,具体表达式为:
④随机行为Move():如在当前状态下不能搜索到最优行为,为跳出局部搜索,则采用随机行为,具体表达式为:
⑤评价行为Evaluate():对每条人工鱼的适应度函数,并重复执行步骤(b),直到终止条件满足。
3)算法改进
通过研究认为,由于步长和视野方面存在的局限,导致在实际运用中会出现寻优精度不高、后期收敛速度慢的问题[13]。对此,本文在对个性化推荐中引入自适应策略,即K-means聚类算法对上述算法进行改进,具体思路是借助K-means聚类算法找到最佳聚类中心,从而为鱼群最佳觅食奠定基础[14-15]。具体改进步骤如图4所示。
针对上述的设计和算法,笔者于2016年5月12~19日对系统进行了小范围的测试,测试对象主要为某高校的研究生,并将研究生对购买书的行为分为积极、消极两种不同种类。通过上述算法对用户购买行为的分析,积极读者类的研究生中,40%的群体会购买医药卫生类书籍,说明该类专业对学生的指导意义较大,因此在销售网站进行推荐中可根据用户的行为偏好进行重点推荐。
同时当在搜索栏中输入软件工程,则跳转如图5的界面。
图4 改进算法
图5 个性推荐界面
文中借助计算机开发技术,实现了对个性化推荐平台的基本功能的开发,同时借助人工鱼群智能算法,实现了书籍购买的个性化推荐。但任何良好系统的运行不是一种或者两种算法就可满足,还需要在未来的开发中引入更多算法,从而对不同用户的行为进行更为深入的分析,才能提高推荐平台的推荐效果。
[1]李树青,徐侠,许敏佳.基于读者借阅二分网络的图书可推荐质量测度方法及个性化图书推荐服务[J].中国图书馆学报,2013(3):83-95.
[2]李克潮,蓝冬梅,凌霄娥.一种高校读者借阅偏好的个性化图书推荐[J].现代情报,2013(8):68-72.
[3]黎邦群.基于检索行为的非个性化图书推荐[J].图书馆杂志,2013(8):36-41.
[4]裘月.融入个体人格特质的个性化图书推荐模型研究[D].杭州:浙江工商大学,2015.
[5]马健,杜泽宇,李树青.基于多兴趣特征分析的图书馆个性化图书推荐方法 [J].现代图书情报技术,2012(6):1-8.
[6]汪英姿.基于本体的个性化图书推荐方法研究[J].现代图书情报技术,2012(12):72-78.
[7]肖诗伯,李朝葵,兰鹰,等.一种基于二分图模型的图书个性化推荐研究[J].图书馆学刊,2015(5):96-97,124.
[8]刘丹.利用Apache Mahout部署个性化图书推荐服务[J].现代图书情报技术,2015,10:102-108.
[9]李克潮,黎晓.个性化图书推荐研究[J].图书馆学研究,2011,20:65-69.
[10]臧文科,刘希玉.基于人工鱼群算法的Web用户聚类分析[J].计算机工程与应用,2011(30):12-14.
[11]吴月萍,杜奕.基于人工鱼群算法的协同过滤推荐算法[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并行化实现 [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年西安市社会科学规划基金项目(16IN13);2015年陕西省教育厅科学研究项目(15JK2113);2015年陕西省高等教育教学改革研究项目(15J37)
刘一鸥(1978—),女,陕西西安人,硕士,讲师。研究方向:人工智能、软件工程。