劉 洋,高文超
(中國礦業大學(北京) 北京 100083)
隨著互聯網的飛速發展,國內眾多電商平臺一步一步發展壯大,網上購物具有省時省力、方便快捷、價格低廉、商品種類齊全、購物不受時間限制等優點,成為很多人購物的首選方式。隨著人們越來越多地選擇網購,線下商圈大型商場的職能也悄然發生了變化,大型商場不再僅僅提供商品,而是更多地提供服務。在合適的時間推薦消費者做合適的選擇是商場推薦系統設計的最終目標。本研究旨在設計一個以推薦服務為主、位置服務為輔的商場推薦系統,以Android應用程序的形式提供操作和展示。
本系統的設計主要用到3個基礎算法,并結合這3個算法的優缺點,尋求合適的參數,完成商場推薦系統的推薦功能。
將所有內容的熱度、評分等進行排序,將最流行的內容推薦給用戶。這種算法優點是比較簡單,而且對于已知信息較少的新用戶比較有效;但是由于該算法中并不涉及用戶相關的信息,所以無法提供個性化推薦內容[1]。
如果2個用戶擁有相似的興趣愛好,他們就有可能擁有相似的品味,是基于用戶的協同過濾算法的依據。找到興趣相似的用戶集合,將這個集合中用戶喜歡的、并且目標用戶還沒有聽說過的商品推薦給目標用戶。這種算法的優點是能為每個用戶提供個性化推薦,推薦準確率較高但并不一定是最優推薦,算法簡單,容易實現。缺點是該算法實現起來時間復雜度較高,當用戶量比較大時,會形成一個稀疏矩陣,其中過多的無效數據會在計算余弦相似度時浪費大量時間,很難提供令用戶信服的合理推薦解釋[1-2]。
一個人喜歡一件物品,那么他可能對與這個物品類似的其他物品也感興趣,是基于項目的協同過濾算法的依據。計算項目之間的相似度,根據項目的相似度和用戶的歷史行為生成推薦列表。這種算法的優點是能為每個用戶提供個性化推薦,推薦準確率比較高,算法簡單容易實現。缺點同基于用戶的協同過濾算法一樣,算法在項目過多時時間復雜度較高,處理稀疏矩陣時浪費大量時間。當新項目上線時,只有少量用戶產生行為,很難判斷該項目與其他項目的相似度[1,3]。
系統的主要功能如圖1所示。

圖1 系統功能圖Fig.1 System function diagram
系統用戶有2種身份:注冊用戶和游客身份。
注冊用戶能使用系統的全部功能,包括位置服務(室內定位)、搜索服務(搜索商鋪或商品)、查看商鋪商品功能、推薦服務(個性化推薦)以及個人信息管理(包括更改自己的用戶名、更改密碼、更改個人信息手機號生日、查看自己的評分、為商鋪或商品評分、收藏的商鋪或商品等)。注冊用戶的行為會寫進數據庫,并以這些數據記錄作為依據,計算數據形成個性化結果,為用戶優化使用體驗。
游客用戶只能使用系統的部分功能,包括位置服務(室內定位)、搜索服務(搜索商鋪或商品)、查看商鋪商品功能、推薦服務(推薦熱門、流行、評分高商品)。游客用戶的行為不會寫進數據庫,這部分數據在系統中會浪費掉。
數據庫是信息系統的核心和基礎,把信息系統中大量數據按一定的模型組織起來,提供存儲、維護、檢索數據的功能,使信息系統可以方便、及時、準確地從數據庫中獲得所需的信息,包括用戶、商場、商鋪、商品、瀏覽記錄、評分記錄、搜索記錄、收藏紀錄、活動記錄等。數據庫簡要E-R圖如圖2所示。
根據需求和E-R圖,設計數據庫表如表1—表3所示。

表1 用戶表Tab.1 User table

表2 商鋪表Tab.2 Shop table

表3 商品表Tab.3 Commodity table
操作系統:Windows10;
Java運行環境:JDK 9.0.4;
數據庫:MySQL 5.7.18;
Android編譯器:Android Studio 3.1.2;
Android開發環境:Android SDK r24.4.1;
Java web編譯器:IntelliJ IDEA 2018.1.4;
地圖組件接口:百度地圖WEB 服務API;
云服務器:騰訊云。
為了方便商場消費,使消費者方便快捷地享受服務,讓消費者在線下消費時也能享受到在線上相似的推薦服務,本研究開發了一個以推薦服務為主的、位置服務為輔的商場推薦系統,為消費者推薦他可能喜歡的商品或者店鋪,并為店鋪商品評分,收藏商品和店鋪。該系統能夠為用戶提供推薦服務,推薦用戶可能喜歡的商品、商店、餐廳、電影院、KTV 等;能夠為用戶提供位置服務,能夠進行室內定位、室內導航;能夠查看附近的商家店鋪情況、店鋪活動、店鋪評分;能夠查看商品情況、商品折扣、商品評分;能夠完成用戶的注冊與登陸。