商场推荐系统的设计与实现
2019-08-28高文超
刘 洋,高文超
(中国矿业大学(北京) 北京 100083)
0 引 言
随着互联网的飞速发展,国内众多电商平台一步一步发展壮大,网上购物具有省时省力、方便快捷、价格低廉、商品种类齐全、购物不受时间限制等优点,成为很多人购物的首选方式。随着人们越来越多地选择网购,线下商圈大型商场的职能也悄然发生了变化,大型商场不再仅仅提供商品,而是更多地提供服务。在合适的时间推荐消费者做合适的选择是商场推荐系统设计的最终目标。本研究旨在设计一个以推荐服务为主、位置服务为辅的商场推荐系统,以Android应用程序的形式提供操作和展示。
1 算法基础
本系统的设计主要用到3个基础算法,并结合这3个算法的优缺点,寻求合适的参数,完成商场推荐系统的推荐功能。
1.1 基于流行度的算法
将所有内容的热度、评分等进行排序,将最流行的内容推荐给用户。这种算法优点是比较简单,而且对于已知信息较少的新用户比较有效;但是由于该算法中并不涉及用户相关的信息,所以无法提供个性化推荐内容[1]。
1.2 基于用户的协同过滤算法
如果2个用户拥有相似的兴趣爱好,他们就有可能拥有相似的品味,是基于用户的协同过滤算法的依据。找到兴趣相似的用户集合,将这个集合中用户喜欢的、并且目标用户还没有听说过的商品推荐给目标用户。这种算法的优点是能为每个用户提供个性化推荐,推荐准确率较高但并不一定是最优推荐,算法简单,容易实现。缺点是该算法实现起来时间复杂度较高,当用户量比较大时,会形成一个稀疏矩阵,其中过多的无效数据会在计算余弦相似度时浪费大量时间,很难提供令用户信服的合理推荐解释[1-2]。
1.3 基于项目的协同过滤算法
一个人喜欢一件物品,那么他可能对与这个物品类似的其他物品也感兴趣,是基于项目的协同过滤算法的依据。计算项目之间的相似度,根据项目的相似度和用户的历史行为生成推荐列表。这种算法的优点是能为每个用户提供个性化推荐,推荐准确率比较高,算法简单容易实现。缺点同基于用户的协同过滤算法一样,算法在项目过多时时间复杂度较高,处理稀疏矩阵时浪费大量时间。当新项目上线时,只有少量用户产生行为,很难判断该项目与其他项目的相似度[1,3]。
2 系统功能设计
系统的主要功能如图1所示。
图1 系统功能图Fig.1 System function diagram
系统用户有2种身份:注册用户和游客身份。
注册用户能使用系统的全部功能,包括位置服务(室内定位)、搜索服务(搜索商铺或商品)、查看商铺商品功能、推荐服务(个性化推荐)以及个人信息管理(包括更改自己的用户名、更改密码、更改个人信息手机号生日、查看自己的评分、为商铺或商品评分、收藏的商铺或商品等)。注册用户的行为会写进数据库,并以这些数据记录作为依据,计算数据形成个性化结果,为用户优化使用体验。
游客用户只能使用系统的部分功能,包括位置服务(室内定位)、搜索服务(搜索商铺或商品)、查看商铺商品功能、推荐服务(推荐热门、流行、评分高商品)。游客用户的行为不会写进数据库,这部分数据在系统中会浪费掉。
3 数据库设计
数据库是信息系统的核心和基础,把信息系统中大量数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息,包括用户、商场、商铺、商品、浏览记录、评分记录、搜索记录、收藏纪录、活动记录等。数据库简要E-R图如图2所示。
根据需求和E-R图,设计数据库表如表1—表3所示。
表1 用户表Tab.1 User table
表2 商铺表Tab.2 Shop table
表3 商品表Tab.3 Commodity table
4 开发环境
操作系统: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;
云服务器:腾讯云。
5 结 语
为了方便商场消费,使消费者方便快捷地享受服务,让消费者在线下消费时也能享受到在线上相似的推荐服务,本研究开发了一个以推荐服务为主的、位置服务为辅的商场推荐系统,为消费者推荐他可能喜欢的商品或者店铺,并为店铺商品评分,收藏商品和店铺。该系统能够为用户提供推荐服务,推荐用户可能喜欢的商品、商店、餐厅、电影院、KTV 等;能够为用户提供位置服务,能够进行室内定位、室内导航;能够查看附近的商家店铺情况、店铺活动、店铺评分;能够查看商品情况、商品折扣、商品评分;能够完成用户的注册与登陆。