謝奇愛 董宜文
(1. 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系, 合肥 230601; 2. 合肥市第五十中學(xué), 合肥 230601)
基于LBS的個(gè)性化手機(jī)菜品推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
謝奇愛1董宜文2
(1. 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系, 合肥 230601; 2. 合肥市第五十中學(xué), 合肥 230601)
為滿足用戶“隨身、隨時(shí)、隨地”的個(gè)性化服務(wù)需求,設(shè)計(jì)一款基于位置服務(wù)(LBS)的個(gè)性化菜品推薦系統(tǒng)。在系統(tǒng)中,首先通過對用戶的位置感知,記錄每個(gè)用戶的用餐信息;然后通過現(xiàn)有的選擇過程或相似關(guān)系來獲知用戶的潛在興趣;再對當(dāng)?shù)夭宛^和菜肴的信息進(jìn)行過濾,將用戶可能感興趣的餐廳和菜品推薦給他們。
LBS; 個(gè)性化菜品; 推薦系統(tǒng); 手機(jī)
針對手機(jī)互聯(lián)網(wǎng)用戶的需求,運(yùn)用推薦算法設(shè)計(jì)一款基于位置服務(wù)(LBS)的個(gè)性化菜品推薦系統(tǒng)。該系統(tǒng)可以自動整理用戶的用餐記錄歷史,將用戶可能感興趣的餐廳和菜品推薦給他們,滿足用戶的個(gè)性化需求。
各類推薦系統(tǒng)的出現(xiàn),解決了互聯(lián)網(wǎng)用戶在大量信息中搜索自己所需產(chǎn)品費(fèi)時(shí)費(fèi)力的問題,同時(shí)可幫助商家精準(zhǔn)地推送信息、吸引客戶。本次設(shè)計(jì)的手機(jī)菜品推薦系統(tǒng)主要可實(shí)現(xiàn)基于內(nèi)容的推薦、基于關(guān)聯(lián)規(guī)則的推薦及基于協(xié)同過濾的推薦[2]。
基于內(nèi)容的推薦(Content-Based Recommendation),是根據(jù)用戶所輸入信息,結(jié)合系統(tǒng)的內(nèi)容向用戶進(jìn)行過濾推薦,整個(gè)過程是對信息的檢索和過濾進(jìn)行處理。該算法不需要用戶對物品內(nèi)容進(jìn)行評價(jià),而是利用機(jī)器學(xué)習(xí)的手段獲取用戶對內(nèi)容的喜好程度?;趦?nèi)容的推薦系統(tǒng)多用于資料信息過濾,通過抽取文件內(nèi)容的關(guān)鍵字作為tag(標(biāo)簽),然后比較得出各tag的相似度。
該推薦算法的優(yōu)點(diǎn)是,容易實(shí)現(xiàn),無須考慮稀疏性和冷啟動問題,基于項(xiàng)目本身的特征進(jìn)行推薦,能夠給出足夠的推薦理由;其缺點(diǎn)是,只能推薦已知的相似內(nèi)容,而不能推薦新資源,需要對tag進(jìn)行維護(hù),以獲得更好的內(nèi)容推薦效果。
基于關(guān)聯(lián)規(guī)則的推薦(Association Rule-Based Recommendation),是根據(jù)用戶輸入信息和系統(tǒng)數(shù)據(jù)庫內(nèi)容的關(guān)聯(lián)程度,為用戶推薦相應(yīng)商品。比如,用戶去購買A商品,當(dāng)購買A商品的基數(shù)達(dá)到某臨界值的時(shí)候,系統(tǒng)就會給出相應(yīng)的推薦結(jié)果。此推薦算法的不足是,需要完成大量的數(shù)據(jù)分析后才能得出關(guān)聯(lián)規(guī)則,存在冷啟動問題,甚至有些熱門商品可能會被過度推薦。
基于協(xié)同過濾的推薦算法在各類推薦系統(tǒng)中應(yīng)用廣泛。該算法是從用戶的角度出發(fā),根據(jù)用戶的興趣計(jì)算出近鄰用戶,在用戶之間建立商品的信息連接,最后根據(jù)近鄰用戶對某商品的喜愛程度來測定當(dāng)前用戶對于該商品的喜愛程度,并予以推薦。協(xié)同過濾的推薦算法可分為2種類型:基于用戶的推薦和基于物品的推薦[3]。
(1) 基于用戶的推薦?;谟脩舻膮f(xié)同過濾推薦,是通過近鄰用戶的歷史記錄和興趣愛好,對當(dāng)前用戶進(jìn)行推薦。
(2) 基于物品的推薦?;谖锲返膮f(xié)同過濾推薦,是根據(jù)物品之間相似的基數(shù)值及用戶的歷史記錄,為用戶推薦類似物品[2]。
在系統(tǒng)分析的基礎(chǔ)上,對基于位置服務(wù)(LBS)的個(gè)性化菜品推薦系統(tǒng)進(jìn)行架構(gòu)設(shè)計(jì)。系統(tǒng)主要由3部分組成,分別是數(shù)據(jù)庫、用戶使用的客戶端和后臺服務(wù)器。圖1所示為系統(tǒng)結(jié)構(gòu)圖。
圖1 系統(tǒng)結(jié)構(gòu)圖
用戶使用的是該系統(tǒng)Android客戶端[4]??蛻舳酥饕糜谟脩糇院偷卿洠约坝脩粜畔⒐芾?、菜品推薦展示、菜品定位。首先從客戶端向服務(wù)器發(fā)出請求,服務(wù)器根據(jù)請求進(jìn)行數(shù)據(jù)庫的連接,再將信息反饋給客戶端,最后完成菜品的推薦和菜品的定位與下單。
后臺服務(wù)器管理采用Web界面,運(yùn)用Tomca搭建服務(wù)器,JSP技術(shù)設(shè)計(jì)頁面,Java語言編程進(jìn)行后臺操作,建立對數(shù)據(jù)庫的連接,實(shí)現(xiàn)數(shù)據(jù)的管理和各種操作,為客戶端提供各類服務(wù)。
首先通過JSP頁面實(shí)現(xiàn)直接交互,負(fù)責(zé)接收請求和發(fā)送響應(yīng),Struts根據(jù)xml配置文件將請求交給相應(yīng)的Action進(jìn)行處理,Spring向Action提供各種組件(Model和DAO等)完成相應(yīng)的業(yè)務(wù)邏輯,提升系統(tǒng)性能并保證數(shù)據(jù)的完整性;Hibernate所支持的對象化映射、數(shù)據(jù)庫交互負(fù)責(zé)處理DAO組件的請求,并返回處理結(jié)果。
系統(tǒng)定位即位置感知,在一定程度上決定了系統(tǒng)的準(zhǔn)確性和優(yōu)勢。系統(tǒng)中的定位涉及到對用戶位置和菜品信息的定位,本系統(tǒng)通過API接口實(shí)現(xiàn)定位。對于用戶位置的定位,可以通過接口當(dāng)前位置(MyLocationOverlay)的感知來獲取[5];對于菜品的定位,因?yàn)椴似沸畔槭謩犹砑?,所以其?jīng)緯度信息存放的是通過逆地理編碼實(shí)現(xiàn)的信息。逆地理編碼的功能主要是實(shí)現(xiàn)地址解析服務(wù),根據(jù)已知的經(jīng)緯度坐標(biāo)獲知相應(yīng)的地址。此功能通過TGeoAddress、TGeoDecode類可以實(shí)現(xiàn)。經(jīng)由API獲取用戶的位置,通過MyLocationOverlay類來實(shí)現(xiàn)。程序如下:
MyLocationOverlaymyLocation = new MyLocationOverlay(this, mMapView);
myLocation.enableCompass();∥顯示指南針
myLocation.enableMyLocation(); ∥顯示我的位置
mMapView.getOverlays().add(myLocation);
經(jīng)由API對菜品進(jìn)行反地理編碼顯示,先從數(shù)據(jù)庫獲取經(jīng)緯度信息,再通過TGeoDecode類進(jìn)行反編譯,最后顯示在地圖上。
Intent intent = getIntent();
String jd = intent.getStringExtra("jd");∥經(jīng)度數(shù)據(jù)獲取
String wd = intent.getStringExtra("wd");∥維度數(shù)據(jù)獲取
double dLon = Double.parseDouble(jd);∥轉(zhuǎn)型
doubledLat = Double.parseDouble(wd);
mMapView.removeAllOverlay();
geoPoint = new GeoPoint((int) ((dLat) * 1E6), (int) ((dLon) * 1E6));
mMapView.getController().setMapBound(geoPoint, 11);
用戶偏好信息是用戶的代表性特征,只有通過這些特征才能運(yùn)用相關(guān)推薦算法推薦出適合用戶的菜品。系統(tǒng)中,用戶的偏好信息顯示的是用戶的潛在興趣,包括電影、旅游等的潛在興趣愛好。系統(tǒng)內(nèi)置了一些常見的愛好,作為用戶的潛在興趣愛好。用戶登錄之后,可以修改相應(yīng)的愛好信息,系統(tǒng)再據(jù)此給出最佳推薦,滿足用戶的各種需要。
對于新注冊的用戶,系統(tǒng)可以根據(jù)默認(rèn)的一些興趣實(shí)現(xiàn)對用戶的多樣化推薦。隨著用戶的增多和歷史記錄的增加,系統(tǒng)會更加準(zhǔn)確靈活地向用戶推薦菜品,逐步提升系統(tǒng)的用戶體驗(yàn)。
個(gè)性化推薦是該推薦系統(tǒng)的核心,它集合了前面所有模塊的信息,并能利用這些信息進(jìn)行整合計(jì)算,最終生成推薦的目標(biāo)。
個(gè)性化推薦使用的是協(xié)同過濾算法中基于用戶的推薦算法。該算法可對獲得的用戶潛在興趣score進(jìn)行計(jì)算,并根據(jù)結(jié)果排列完成對用戶的菜品推薦。圖2所示為個(gè)性化推薦流程圖。
圖2 個(gè)性化推薦流程圖
個(gè)性化算法的實(shí)現(xiàn),首先需要獲得用戶的信息,在用戶信息中獲得需要的興趣score,userScore = (HashMap) score.get(user);然后對獲得的score進(jìn)行計(jì)算,a = a1 * a2 - b1 * b2,totalscore += Math.sqrt(Math.abs(a))。分值越低的信息越相近,對菜品進(jìn)行排列,最后產(chǎn)生推薦列表,通過客戶端向用戶展示;用戶可選擇下單或者定位查看菜品所在位置,從而完成此次個(gè)性化推薦。
每位用戶的潛在興趣不同,系統(tǒng)內(nèi)菜品也不相同,所以針對每位用戶的個(gè)性化推薦列表的排序也會不盡相同。根據(jù)這些不同信息,為用戶量身定制,這就是基于位置感知的個(gè)性化菜品推薦。
當(dāng)用戶完成注冊登錄后,點(diǎn)擊菜品推薦,頁面則會跳入下一個(gè)界面,展示推薦的菜品列表。不同的用戶列表可能不同,通過長按菜品則可以選擇下單或者對菜品進(jìn)行定位,定位則會顯示在地圖上,方便用戶進(jìn)行查看。圖3所示為菜品推薦列表及菜品操作界面。圖4所示為下單和定位操作界面。
根據(jù)目前信息技術(shù)的發(fā)展和人們的使用習(xí)慣,運(yùn)用相應(yīng)的推薦算法,將位置感知技術(shù)和推薦技術(shù)有機(jī)結(jié)合來,設(shè)計(jì)了基于LBS的個(gè)性化手機(jī)菜品推薦系統(tǒng)。本系統(tǒng)可感知用戶位置,根據(jù)用戶的用餐興趣自動推薦適合的菜品。系統(tǒng)測試結(jié)果表明,融合了個(gè)性化偏好的菜品信息推薦,更加符合用戶需求,使用戶得到更好的個(gè)性化體驗(yàn)。
圖3 菜品推薦列表及菜品操作界面
[1] OZCAN A,OGUDUCUL S G. A recommendation framework for mobilephones based on social network data[G]. SNPD, 2010:139-149.
[2] 徐翔,王煦法.協(xié)同過濾算法中的相似度優(yōu)化方法[J].計(jì)算機(jī)工程,2010,36(6) : 52-54.
[3] 劉建國,周濤,汪秉宏.個(gè)性化推薦系統(tǒng)的研究進(jìn)展[J].自然科學(xué)進(jìn)展,2009,19(1): 1-5.
[4] 楊云君. Android 的設(shè)計(jì)與實(shí)現(xiàn)[M]. 北京:機(jī)械工業(yè)出版社,2013:45-49.
[5] 李勇,徐小濤,楊志紅,等.位置信息服務(wù)(LBS)關(guān)鍵技術(shù)及應(yīng)用[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年度安徽高校自然科學(xué)研究項(xiàng)目“基于上下文相關(guān)性的網(wǎng)絡(luò)編碼可靠多播技術(shù)研究”(KJ2016A609);2016年度合肥學(xué)院科研發(fā)展基金自然科學(xué)重點(diǎn)項(xiàng)目“面向LBS的個(gè)性化手機(jī)百變地圖及其關(guān)鍵技術(shù)研究”(16ZR04ZDB);合肥學(xué)院重點(diǎn)學(xué)科建設(shè)項(xiàng)目(2016XK05);合肥學(xué)院學(xué)科帶頭人培養(yǎng)對象項(xiàng)目(2016DTR08)
謝奇愛(1980 — ),女,安徽太湖人,碩士,實(shí)驗(yàn)師,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)技術(shù)。
TP391
A
1673-1980(2017)06-0117-03