陈涛
(1.武汉工商学院信息工程学院,武汉 430065;2.现代物流与商务湖北省协同创新中心,武汉430065)
面向移动终端的商品信息推荐系统架构设计
陈涛1,2
(1.武汉工商学院信息工程学院,武汉430065;2.现代物流与商务湖北省协同创新中心,武汉430065)
现代物流与商务湖北省协同创新中心项目(No.2011A201315)
根据第36次中国互联网络发展状况统计报告发布数据,截至2015年6月,我国手机网民规模达5.94亿,网民中使用手机上网的人群占比达到88.9%。随着手机终端的大屏化和手机应用体验的不断提升,手机作为网民主要上网终端的趋势进一步明显。由于移动端即时、便捷的特性更好的契合了网民的消费需求,当前移动商务类应用已经成为拉动网络经济增长的新引擎[1]。为了更有针对性的向用户发送消息,推荐系统是一个良好的解决方案,它能主动发现用户当前或潜在需求,并主动推送信息给用户。具体来说,推荐系统会结合用户的身份信息、行为以及物品的属性、特点,利用推荐算法挖掘出用户的喜好及需求,并把用户可能感兴趣的物品推送到其终端,尤其是移动终端上。
在整个电子商务系统中,推荐系统已是一个非常重要的组成部分。面向移动终端的商品信息推荐系统要解决的主要问题是推荐引擎的设计以及推送方案的选择。从技术角度上讲,需要实现的技术要求包括:支持一些主要的推荐算法,能兼顾解决数据稀疏及冷启动等常见问题;灵活的数据提取方式,即根据推荐技术的不同采用不同的数据提取方式;支持多个推荐技术的组合应用,并能方便地扩展其他推荐技术;推荐计算具有高可用性、实时性,即在线计算和离线计算相结合的方式;支持面向各类移动终端实时、可靠的信息推送解决方案,即采用自定义推送技术或第三推送平台;推送平台提供用户核心数据报表、推送效果跟踪反馈等统计[2-4]。可见,推荐系统的架构较为复杂,对其进行设计研究是很有意义的。
信息推荐系统在整个电子商务系统中是较为独立的一个模块(子系统),其主要包括前端DB操作接口、数据采集模块、推荐引擎模块、推送平台(接口)、推荐评估模块和系统管理模块。推荐系统的各个模块之间相互联系,其总体架构如图2所示。
图2 推荐系统总体架构
系统各个模块的主要处理功能如下。
前端DB操作接口:提供对前端数据库进行访问操作的接口,数据采集模块、推荐引擎模块、推荐评估模块及系统管理模块通过该接口对前端数据库进行操作。
数据采集模块:用于采集不同来源的数据供推荐引擎分析计算使用,其数据来源包括电子商务网站的用户数据和商品数据、用户购买/收藏记录及评价数据、用户访问网站的一些行为特征数据。该模块根据不同推荐引擎对数据的需求而采用不同的方式进行收集。
推荐引擎模块:推荐引擎模块是由推荐算法计算模块组合以及推荐结果处理模块构成。初步推荐结果可以是多个推荐算法模块共同作用产生或者是根据具体的需要使用不同的推荐算法模块作用产生,但最终推荐结果由推荐结果处理模块经过一系列的处理得到。
推荐评估模块:推荐评估模块根据前端数据库中的推荐商品与反馈效果数据,并结合当前推荐引擎工作方式计算出推荐效用,并将该结果反馈给系统管理员。
系统管理模块:该模块用来对整个推荐系统进行设置和控制,如调整推荐引擎、数据采集、推荐评估模块的工作方式及相关参数。
浙江省第二届世界地球日儿童书画公益大赛评选揭晓(李风等)...................................................................6-12
推送平台(接口):推荐引擎模块产生的推荐结果由推送平台(接口)发送到移动终端,并由移动终端交付给的具体应用。根据具体的推送需求,该模块可以是自定义的推送技术或使用第三方推送平台。
3.1推荐引擎结构
推荐引擎是推荐系统中最为核心的部分,是决定推荐效果好坏的关键。推荐引擎模块是由推荐算法计算模块以及推荐结果处理模块构成。推荐算法计算模块由多个算法组合构成,经过计算可以产生初步的推荐结果,接着再由推荐结果处理模块做过滤、排名、解释等优化从而产生最终推荐结果。推荐引擎的结构设计如图3所示。
图1 电子商务系统环境
图3 推荐引擎结构
目前,在移动推荐领域的推荐方法主要有基于内容的推荐、协同过滤推荐、基于知识的推荐以及混合推荐,在推荐方法的实现中还可以采用不同的推荐算法[2]。各推荐算法均有自己的特点及适用的场合,但没有哪一种推荐算法是绝对有效的。推荐的初步结果可以是多个推荐算法计算模块共同作用产生或者是根据具体的需要使用不同的推荐算法计算模块作用产生。采用多种推荐算法的组合是一种常用的选择,推荐算法的组合可以有不同的方式,如并行组合、串行组合以及混合组合[4]。推荐算法包括在线计算和离线计算两种不同的方式。离线计算的结果将存储到数据库中,减少在线计算量,有利于提供低延时的服务。经推荐算法计算得到的推荐结果只是初步的推荐结果,这个结果还很粗糙,不能直接推送给用户,还需要由推荐结果处理模块做推荐过滤、推荐排名、推荐解释及生成结果这一系列的优化处理。
3.2推荐处理流程
根据以上给出的推荐引擎结构可知,推荐处理过程可以分为生成初始推荐结果和推荐结果优化处理两个阶段。其中,生成初始推荐结果分为离线计算特征-物品相关表、提取用户特征向量及匹配计算出初始推荐结果3个步骤;推荐结果优化处理分为推荐过滤、推荐排名、推荐解释及生成结果4个步骤。推荐处理的完整流程如图4所示。
图4 推荐处理流程
推荐处理流程中各步骤的作用如下。
离线计算特征-物品相关表是系统根据一定的策略离线计算得出的,其数据通常来自用户数据、商品数据,这个计算会耗费很多的计算资源。
生成用户特征向量是通过数据采集模块收集的数据以及用户数据进行特征提取,或者直接使用已有的特征向量,其数据来源于用户信息或用户行为。
计算初始推荐结果是将特征向量和特征-物品相关表进行匹配计算,这个匹配计算有不同的计算方法,依赖于不同的推荐算法来实现。
推荐过滤主要是过滤掉用户已经购买过或不喜欢的商品,过滤掉评价不好的商品。
推荐排名是对多个推荐算法推荐的结果进行综合排名,其方法可以基于推荐算法动态权值的计算进行排名,当推荐结果对用户有效时就更新推荐引擎的权值。
推荐解释是向用户阐述推荐该结果的依据,需要从不同的推荐引擎来解释,从物品或者用户的关系进行推荐。
最后根据推送信息规范,生成推送的结果。
4.1自定义推送技术
推荐引擎生成的推荐结果需要被推送到用户终端,如移动终端或PC。就移动终端来说,市场上主流的系统有Android、iOS及Windows Phone等,各系统所支持的推送技术各不相同。iOS系统支持APNS(Apple Push Notification Service)技术,Windows Phone系统支持MPNS(Microsoft Push Notification Service)技术,而市场占有率最大的Android系统支持GCM(Google Cloud Messaging)技术,GCM技术在国内实际应用存在困难,因面向Android系统的推送技术服务需要自己开发[5]。为了能够支持向不同系统推送信息,可以构建如图5的推送平台架构。推送平台的构成部分包括API Server(应用接口服务器)、Push Server(推送服务器)、Push DB(推送数据库),另外根据需要还可以包括BI Server(商业智能服务器)、Dispatch Server(分发服务器)。
图5 信息推送平台架构
为了提高推送平台的扩展性和适用性,这里设计了API Server,其能够向本系统提供使用推送服务的接口功能,同时也能向本单位或者是第三方的系统提供接口功能。Push Server是实现推送服务的关键,其接收推送任务并根据推送目的平台将信息进行具体的分发处理。如果信息是推送到iOS系统或Windows Phone系统,则只用将信息分发到APNS服务器或MPNS服务器,由该服务器将信息具体送到移动终端;但如果信息是要推送到Android系统,则需要自己实现推送服务,利用MQTT协议就是一种很好的方式[6]。此外,Push Server还提供支持用户手动推送信息的Web服务,管理员可以通过Web对其进行管理。
Push DB是存储推送有关的建模及数据。实现以上的推送平台功能,需要设计的数据库表主要包括用户设备基本信息表、应用基本信息表、推送模板表、推送信息表、推送设置表、推送反馈信息表、推送统计表等。
有时,为了提高推送的效果,在信息推送平台架构中还包括BI Server。BI Server主要是对推送进行统计工作,以利于商家了解推送的效果,调整推送策略。当需要推送的信息量很多,并且对推送的实时性、到达率要求较严格时,可以设计一个Dispatch Server。Dispatch Server可以更高效的将推送信息直接分发到APNS Server、WPNS Server或者Push Server,此时的Push Server仅负责将信息推送到Android终端的处理[7]。
4.2第三方推送平台
随着信息推送服务的广泛使用,且该技术存在一定的复杂性,市场上出现了一些第三方推送平台技术,为客户提供专业推送服务。目前,国内较为知名的第三方推送平台有个推推送、极光推送、云吧推送、百度推送、腾讯推送、小米推送等。这些推送技术的使用方法大同小异,这里以个推推送面向Android平台的推送应用技术为例进行说明。个推推送服务框架如图6所示[8]。第三方服务器是在具体应用中需要推送信息的服务器,如生成的最终推荐结果将会发往该服务器。个推服务器是将来自第三方服务器的推送信息真正推送至第三方客户端,是推送的关键。第三方客户就是接收推送信息的终端,如手机终端。个推SDK作为Android Service长期运行在第三方客户端后台的,从而创建并保持长连接。其中,UID是指第三方应用标识用户身份的ID;Client ID(简写为CID)是指个推SDK标识用户身份的ID;payload是指第三方应用通过个推发送给客户端的信息,由第三方应用负责解析具体动作。当开发者想要及时地推送消息到达 App时,只需要调用个推API推送即可。
图6 个推Android SDK推送框架
随着移动互联网络与移动终端技术的迅猛发展,电子商务信息推荐逐渐从PC转移到移动终端。然而,面向移动终端的商品信息推荐系统要解决的问题较多,体系架构复杂,其中推荐引擎的设计以及推送方案的选择最为关键。基于此,从推荐系统的具体应用环境角度,给出了面向移动终端的信息推荐系统架构,设计并分析了多引擎策略的推荐引擎结构、处理流程以及面向移动终端的两种信息推送方案:自定义推荐技术和第三方推荐平台。所研究内容从整体架构以及关键技术上对面向移动终端的信息推荐系统进行了设计、分析,这对相关系统的研究与实现具有一定的意义。
[1]中国互联网络信息中心(CNNIC).第36次中国互联网络发展状况统计报告[EB/OL].http://www.cnnic.net.cn/hlwfzyj.2015-7-23
[2]孟祥武,胡勋,王立才,等.移动推荐系统及其应用[J].软件学报,2013,24(1):91-108.
[3]廖轶宸.基于移动网络的混合型信息推送系统的研究[J].计算机工程与设计,2012,33(8):3268-3272.
[4]邓雄杰.基于Hadoop的推荐系统的设计与实现[D].广州:华南理工大学,2013.
[5]张长学,张伟,董智明.移动推送技术面面观[J].移动通信,2011(5):21-27.
[6]任亨,马跃,杨海波.基于MQTT协议的消息推送服务器[J].计算机系统应用,2014,23(3):77-82.
[7]刘虹.多操作系统推送平台的设计与实现[D].哈尔滨:哈尔滨理工大学,2015.
[8]个推推送.Android SDK文档.http://docs.igetui.com/pages/viewpage.action?pageId=1214581[EB/OL].2015-11-16.
Mobile Terminal;Information Recommendation;Push Engine;Push Platform
The Architecture Design of Product Information Recommendation System for Mobile Terminal
CHEN Tao1,2
(1.College of Information Engineering,Wuhan Technology and Business University,Wuhan 430065)2.Collaborative Innovation Center for Modern Logistics and Business of Hubei,Wuhan 430065)
陈涛(1979-),男,湖北荆门人,讲师,硕士,研究方向为计算机网络
2015-12-03
2015-12-25
为了有效地生成针对特定用户的商品推荐信息,并将其推送至各类移动终端系统,结合推荐系统在电子商务中的应用环境给出面向移动终端的信息推荐系统总体架构,具体设计并分析采用多引擎策略的推荐引擎结构、处理流程以及面向移动终端的两种信息推送方案:自定义推荐技术和第三方推荐平台。所提出的推荐系统架构划分清晰、伸缩性强、易于扩展,在实际应用中也取得较好的效果。
移动终端;信息推荐;推送引擎;推送平台
In order to generate the product recommendation information effectively,and push it to all kinds of mobile terminal system,combined with the application environment of recommendation system in E-commerce,gives the overall architecture of the information recommendation system based on the mobile terminal.Further,designs and analyzes recommendation engine structure with multi engine strategy,processing procedures,and two kinds of information push solutions for mobile terminal:customized recommendation technology and third party recommendation platform.The proposed structure of system is clear,flexible and easy to expand,and it has achieved good results in practical application.