劉 洋,高文超
(中國礦業(yè)大學(xué)(北京) 北京 100083)
隨著互聯(lián)網(wǎng)的飛速發(fā)展,國內(nèi)眾多電商平臺(tái)一步一步發(fā)展壯大,網(wǎng)上購物具有省時(shí)省力、方便快捷、價(jià)格低廉、商品種類齊全、購物不受時(shí)間限制等優(yōu)點(diǎn),成為很多人購物的首選方式。隨著人們?cè)絹碓蕉嗟剡x擇網(wǎng)購,線下商圈大型商場的職能也悄然發(fā)生了變化,大型商場不再僅僅提供商品,而是更多地提供服務(wù)。在合適的時(shí)間推薦消費(fèi)者做合適的選擇是商場推薦系統(tǒng)設(shè)計(jì)的最終目標(biāo)。本研究旨在設(shè)計(jì)一個(gè)以推薦服務(wù)為主、位置服務(wù)為輔的商場推薦系統(tǒng),以Android應(yīng)用程序的形式提供操作和展示。
本系統(tǒng)的設(shè)計(jì)主要用到3個(gè)基礎(chǔ)算法,并結(jié)合這3個(gè)算法的優(yōu)缺點(diǎn),尋求合適的參數(shù),完成商場推薦系統(tǒng)的推薦功能。
將所有內(nèi)容的熱度、評(píng)分等進(jìn)行排序,將最流行的內(nèi)容推薦給用戶。這種算法優(yōu)點(diǎn)是比較簡單,而且對(duì)于已知信息較少的新用戶比較有效;但是由于該算法中并不涉及用戶相關(guān)的信息,所以無法提供個(gè)性化推薦內(nèi)容[1]。
如果2個(gè)用戶擁有相似的興趣愛好,他們就有可能擁有相似的品味,是基于用戶的協(xié)同過濾算法的依據(jù)。找到興趣相似的用戶集合,將這個(gè)集合中用戶喜歡的、并且目標(biāo)用戶還沒有聽說過的商品推薦給目標(biāo)用戶。這種算法的優(yōu)點(diǎn)是能為每個(gè)用戶提供個(gè)性化推薦,推薦準(zhǔn)確率較高但并不一定是最優(yōu)推薦,算法簡單,容易實(shí)現(xiàn)。缺點(diǎn)是該算法實(shí)現(xiàn)起來時(shí)間復(fù)雜度較高,當(dāng)用戶量比較大時(shí),會(huì)形成一個(gè)稀疏矩陣,其中過多的無效數(shù)據(jù)會(huì)在計(jì)算余弦相似度時(shí)浪費(fèi)大量時(shí)間,很難提供令用戶信服的合理推薦解釋[1-2]。
一個(gè)人喜歡一件物品,那么他可能對(duì)與這個(gè)物品類似的其他物品也感興趣,是基于項(xiàng)目的協(xié)同過濾算法的依據(jù)。計(jì)算項(xiàng)目之間的相似度,根據(jù)項(xiàng)目的相似度和用戶的歷史行為生成推薦列表。這種算法的優(yōu)點(diǎn)是能為每個(gè)用戶提供個(gè)性化推薦,推薦準(zhǔn)確率比較高,算法簡單容易實(shí)現(xiàn)。缺點(diǎn)同基于用戶的協(xié)同過濾算法一樣,算法在項(xiàng)目過多時(shí)時(shí)間復(fù)雜度較高,處理稀疏矩陣時(shí)浪費(fèi)大量時(shí)間。當(dāng)新項(xiàng)目上線時(shí),只有少量用戶產(chǎn)生行為,很難判斷該項(xiàng)目與其他項(xiàng)目的相似度[1,3]。
系統(tǒng)的主要功能如圖1所示。
圖1 系統(tǒng)功能圖Fig.1 System function diagram
系統(tǒng)用戶有2種身份:注冊(cè)用戶和游客身份。
注冊(cè)用戶能使用系統(tǒng)的全部功能,包括位置服務(wù)(室內(nèi)定位)、搜索服務(wù)(搜索商鋪或商品)、查看商鋪商品功能、推薦服務(wù)(個(gè)性化推薦)以及個(gè)人信息管理(包括更改自己的用戶名、更改密碼、更改個(gè)人信息手機(jī)號(hào)生日、查看自己的評(píng)分、為商鋪或商品評(píng)分、收藏的商鋪或商品等)。注冊(cè)用戶的行為會(huì)寫進(jìn)數(shù)據(jù)庫,并以這些數(shù)據(jù)記錄作為依據(jù),計(jì)算數(shù)據(jù)形成個(gè)性化結(jié)果,為用戶優(yōu)化使用體驗(yàn)。
游客用戶只能使用系統(tǒng)的部分功能,包括位置服務(wù)(室內(nèi)定位)、搜索服務(wù)(搜索商鋪或商品)、查看商鋪商品功能、推薦服務(wù)(推薦熱門、流行、評(píng)分高商品)。游客用戶的行為不會(huì)寫進(jìn)數(shù)據(jù)庫,這部分?jǐn)?shù)據(jù)在系統(tǒng)中會(huì)浪費(fèi)掉。
數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),把信息系統(tǒng)中大量數(shù)據(jù)按一定的模型組織起來,提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫中獲得所需的信息,包括用戶、商場、商鋪、商品、瀏覽記錄、評(píng)分記錄、搜索記錄、收藏紀(jì)錄、活動(dòng)記錄等。數(shù)據(jù)庫簡要E-R圖如圖2所示。
根據(jù)需求和E-R圖,設(shè)計(jì)數(shù)據(jù)庫表如表1—表3所示。
表1 用戶表Tab.1 User table
表2 商鋪表Tab.2 Shop table
表3 商品表Tab.3 Commodity table
操作系統(tǒng):Windows10;
Java運(yùn)行環(huán)境:JDK 9.0.4;
數(shù)據(jù)庫:MySQL 5.7.18;
Android編譯器:Android Studio 3.1.2;
Android開發(fā)環(huán)境:Android SDK r24.4.1;
Java web編譯器:IntelliJ IDEA 2018.1.4;
地圖組件接口:百度地圖WEB 服務(wù)API;
云服務(wù)器:騰訊云。
為了方便商場消費(fèi),使消費(fèi)者方便快捷地享受服務(wù),讓消費(fèi)者在線下消費(fèi)時(shí)也能享受到在線上相似的推薦服務(wù),本研究開發(fā)了一個(gè)以推薦服務(wù)為主的、位置服務(wù)為輔的商場推薦系統(tǒng),為消費(fèi)者推薦他可能喜歡的商品或者店鋪,并為店鋪商品評(píng)分,收藏商品和店鋪。該系統(tǒng)能夠?yàn)橛脩籼峁┩扑]服務(wù),推薦用戶可能喜歡的商品、商店、餐廳、電影院、KTV 等;能夠?yàn)橛脩籼峁┪恢梅?wù),能夠進(jìn)行室內(nèi)定位、室內(nèi)導(dǎo)航;能夠查看附近的商家店鋪情況、店鋪活動(dòng)、店鋪評(píng)分;能夠查看商品情況、商品折扣、商品評(píng)分;能夠完成用戶的注冊(cè)與登陸。