谢奇爱 董宜文
(1. 合肥学院计算机科学与技术系, 合肥 230601; 2. 合肥市第五十中学, 合肥 230601)
基于LBS的个性化手机菜品推荐系统设计与实现
谢奇爱1董宜文2
(1. 合肥学院计算机科学与技术系, 合肥 230601; 2. 合肥市第五十中学, 合肥 230601)
为满足用户“随身、随时、随地”的个性化服务需求,设计一款基于位置服务(LBS)的个性化菜品推荐系统。在系统中,首先通过对用户的位置感知,记录每个用户的用餐信息;然后通过现有的选择过程或相似关系来获知用户的潜在兴趣;再对当地餐馆和菜肴的信息进行过滤,将用户可能感兴趣的餐厅和菜品推荐给他们。
LBS; 个性化菜品; 推荐系统; 手机
针对手机互联网用户的需求,运用推荐算法设计一款基于位置服务(LBS)的个性化菜品推荐系统。该系统可以自动整理用户的用餐记录历史,将用户可能感兴趣的餐厅和菜品推荐给他们,满足用户的个性化需求。
各类推荐系统的出现,解决了互联网用户在大量信息中搜索自己所需产品费时费力的问题,同时可帮助商家精准地推送信息、吸引客户。本次设计的手机菜品推荐系统主要可实现基于内容的推荐、基于关联规则的推荐及基于协同过滤的推荐[2]。
基于内容的推荐(Content-Based Recommendation),是根据用户所输入信息,结合系统的内容向用户进行过滤推荐,整个过程是对信息的检索和过滤进行处理。该算法不需要用户对物品内容进行评价,而是利用机器学习的手段获取用户对内容的喜好程度。基于内容的推荐系统多用于资料信息过滤,通过抽取文件内容的关键字作为tag(标签),然后比较得出各tag的相似度。
该推荐算法的优点是,容易实现,无须考虑稀疏性和冷启动问题,基于项目本身的特征进行推荐,能够给出足够的推荐理由;其缺点是,只能推荐已知的相似内容,而不能推荐新资源,需要对tag进行维护,以获得更好的内容推荐效果。
基于关联规则的推荐(Association Rule-Based Recommendation),是根据用户输入信息和系统数据库内容的关联程度,为用户推荐相应商品。比如,用户去购买A商品,当购买A商品的基数达到某临界值的时候,系统就会给出相应的推荐结果。此推荐算法的不足是,需要完成大量的数据分析后才能得出关联规则,存在冷启动问题,甚至有些热门商品可能会被过度推荐。
基于协同过滤的推荐算法在各类推荐系统中应用广泛。该算法是从用户的角度出发,根据用户的兴趣计算出近邻用户,在用户之间建立商品的信息连接,最后根据近邻用户对某商品的喜爱程度来测定当前用户对于该商品的喜爱程度,并予以推荐。协同过滤的推荐算法可分为2种类型:基于用户的推荐和基于物品的推荐[3]。
(1) 基于用户的推荐。基于用户的协同过滤推荐,是通过近邻用户的历史记录和兴趣爱好,对当前用户进行推荐。
(2) 基于物品的推荐。基于物品的协同过滤推荐,是根据物品之间相似的基数值及用户的历史记录,为用户推荐类似物品[2]。
在系统分析的基础上,对基于位置服务(LBS)的个性化菜品推荐系统进行架构设计。系统主要由3部分组成,分别是数据库、用户使用的客户端和后台服务器。图1所示为系统结构图。
图1 系统结构图
用户使用的是该系统Android客户端[4]。客户端主要用于用户注册和登录,以及用户信息管理、菜品推荐展示、菜品定位。首先从客户端向服务器发出请求,服务器根据请求进行数据库的连接,再将信息反馈给客户端,最后完成菜品的推荐和菜品的定位与下单。
后台服务器管理采用Web界面,运用Tomca搭建服务器,JSP技术设计页面,Java语言编程进行后台操作,建立对数据库的连接,实现数据的管理和各种操作,为客户端提供各类服务。
首先通过JSP页面实现直接交互,负责接收请求和发送响应,Struts根据xml配置文件将请求交给相应的Action进行处理,Spring向Action提供各种组件(Model和DAO等)完成相应的业务逻辑,提升系统性能并保证数据的完整性;Hibernate所支持的对象化映射、数据库交互负责处理DAO组件的请求,并返回处理结果。
系统定位即位置感知,在一定程度上决定了系统的准确性和优势。系统中的定位涉及到对用户位置和菜品信息的定位,本系统通过API接口实现定位。对于用户位置的定位,可以通过接口当前位置(MyLocationOverlay)的感知来获取[5];对于菜品的定位,因为菜品信息为手动添加,所以其经纬度信息存放的是通过逆地理编码实现的信息。逆地理编码的功能主要是实现地址解析服务,根据已知的经纬度坐标获知相应的地址。此功能通过TGeoAddress、TGeoDecode类可以实现。经由API获取用户的位置,通过MyLocationOverlay类来实现。程序如下:
MyLocationOverlaymyLocation = new MyLocationOverlay(this, mMapView);
myLocation.enableCompass();∥显示指南针
myLocation.enableMyLocation(); ∥显示我的位置
mMapView.getOverlays().add(myLocation);
经由API对菜品进行反地理编码显示,先从数据库获取经纬度信息,再通过TGeoDecode类进行反编译,最后显示在地图上。
Intent intent = getIntent();
String jd = intent.getStringExtra("jd");∥经度数据获取
String wd = intent.getStringExtra("wd");∥维度数据获取
double dLon = Double.parseDouble(jd);∥转型
doubledLat = Double.parseDouble(wd);
mMapView.removeAllOverlay();
geoPoint = new GeoPoint((int) ((dLat) * 1E6), (int) ((dLon) * 1E6));
mMapView.getController().setMapBound(geoPoint, 11);
用户偏好信息是用户的代表性特征,只有通过这些特征才能运用相关推荐算法推荐出适合用户的菜品。系统中,用户的偏好信息显示的是用户的潜在兴趣,包括电影、旅游等的潜在兴趣爱好。系统内置了一些常见的爱好,作为用户的潜在兴趣爱好。用户登录之后,可以修改相应的爱好信息,系统再据此给出最佳推荐,满足用户的各种需要。
对于新注册的用户,系统可以根据默认的一些兴趣实现对用户的多样化推荐。随着用户的增多和历史记录的增加,系统会更加准确灵活地向用户推荐菜品,逐步提升系统的用户体验。
个性化推荐是该推荐系统的核心,它集合了前面所有模块的信息,并能利用这些信息进行整合计算,最终生成推荐的目标。
个性化推荐使用的是协同过滤算法中基于用户的推荐算法。该算法可对获得的用户潜在兴趣score进行计算,并根据结果排列完成对用户的菜品推荐。图2所示为个性化推荐流程图。
图2 个性化推荐流程图
个性化算法的实现,首先需要获得用户的信息,在用户信息中获得需要的兴趣score,userScore = (HashMap) score.get(user);然后对获得的score进行计算,a = a1 * a2 - b1 * b2,totalscore += Math.sqrt(Math.abs(a))。分值越低的信息越相近,对菜品进行排列,最后产生推荐列表,通过客户端向用户展示;用户可选择下单或者定位查看菜品所在位置,从而完成此次个性化推荐。
每位用户的潜在兴趣不同,系统内菜品也不相同,所以针对每位用户的个性化推荐列表的排序也会不尽相同。根据这些不同信息,为用户量身定制,这就是基于位置感知的个性化菜品推荐。
当用户完成注册登录后,点击菜品推荐,页面则会跳入下一个界面,展示推荐的菜品列表。不同的用户列表可能不同,通过长按菜品则可以选择下单或者对菜品进行定位,定位则会显示在地图上,方便用户进行查看。图3所示为菜品推荐列表及菜品操作界面。图4所示为下单和定位操作界面。
根据目前信息技术的发展和人们的使用习惯,运用相应的推荐算法,将位置感知技术和推荐技术有机结合来,设计了基于LBS的个性化手机菜品推荐系统。本系统可感知用户位置,根据用户的用餐兴趣自动推荐适合的菜品。系统测试结果表明,融合了个性化偏好的菜品信息推荐,更加符合用户需求,使用户得到更好的个性化体验。
图3 菜品推荐列表及菜品操作界面
[1] OZCAN A,OGUDUCUL S G. A recommendation framework for mobilephones based on social network data[G]. SNPD, 2010:139-149.
[2] 徐翔,王煦法.协同过滤算法中的相似度优化方法[J].计算机工程,2010,36(6) : 52-54.
[3] 刘建国,周涛,汪秉宏.个性化推荐系统的研究进展[J].自然科学进展,2009,19(1): 1-5.
[4] 杨云君. Android 的设计与实现[M]. 北京:机械工业出版社,2013:45-49.
[5] 李勇,徐小涛,杨志红,等.位置信息服务(LBS)关键技术及应用[M].北京:人民邮电出版社,2013:20-30.
DesignandImplementationofDishesRecommendationSysteminPersonalizedMobilePhoneBasedonLBS
XIEQi′ai1DONGYiwen2
(1. Department of Computer Science and Technology, Hefei University, Hefei 230601, China;2. No.50 Middle School in Hefei City, Hefei 230601, China)
In order to meet the users′ personal, timely and local needs, a personalized recommendation system based on location service (LBS) is designed. The system first records the user′s meal information and the location. The user′s potential interest is then obtained based on the existing selection process or similar relationship. Through filtering the similar information of the local restaurants and the dishes, the recommended restaurants and dishes are then realized.
LBS; personalized dishes; recommendation system; smart phone
2017-06-10
2016年度安徽高校自然科学研究项目“基于上下文相关性的网络编码可靠多播技术研究”(KJ2016A609);2016年度合肥学院科研发展基金自然科学重点项目“面向LBS的个性化手机百变地图及其关键技术研究”(16ZR04ZDB);合肥学院重点学科建设项目(2016XK05);合肥学院学科带头人培养对象项目(2016DTR08)
谢奇爱(1980 — ),女,安徽太湖人,硕士,实验师,研究方向为计算机网络技术。
TP391
A
1673-1980(2017)06-0117-03