基于物流平台的智能推荐系统设计与实现

2016-12-01 00:19金英华沈阳师范大学沈阳110034
山东工业技术 2016年11期
关键词:推荐系统

金英华(沈阳师范大学,沈阳 110034)



基于物流平台的智能推荐系统设计与实现

金英华
(沈阳师范大学,沈阳110034)

摘要:本文介绍了Hadoop及MapReduce模型的一些基本情况,包括对Hadoop的框架构成核心节点的主要工作及MapReduce模型的工作流程模式,对第二代Hadoop平台简的Yarn框架及其基本的工作流程进行了介绍,同时关注了一个崭新的基于内存存储的计算框架Spark。文中对智能化物流平台的框架结构进行了整体的描述,包括WEB业务各层的结构的概要介绍,数据库实例中抽取几个表进行了简单的表示,和智能化体系中核心部分推荐系统的设计结构的阐述。其中推荐系统部分较为详细地介绍了系统的设计思路,从业务需求的分析,到系统结构的设计和系统工作的大体流程。

关键词:推荐系统;Hadoop;物流平台

1 智能推荐系统的概览

下面以匹配客户对象的智能推荐为例进行说明,智能推荐系统实现的功能目的,与天猫、京东的网站平台的形式类似,当发货方即货主企业或生产制造企业等,登录系统平台网站时或者移动APP端时,系统的后台经过智能计算核心组件模块,为此类型的登录客户实时计算出它可能会感兴趣的物流企业、运输车队等,这样的承接方即以物流运输为主体业务的一方,平台将这样的列表信息在浏览器中或者移动终端中为登录用户即时展示,以提高用户体验度。同样,在物流运输一方登录时,也会显示它可能感兴趣的货主企业。

2 智能推荐系统的框架设计

平台的智能推荐系统框架,主要由数据过滤、智能计算、数据存储层和中央控制单元四个部分组成,如图1所示。智能推荐系统的数据来源,主要来自于两种类型数据即实时型数据和批量类型数据。其中批量类型这个部分,主要是从结构化的和非结构化的数据库中取得,即Oracle数据库实例的关系表和HBase键值对的数据表;实时型的数据,采用了技术成熟度较高、响应度高、应用范围比较广的Redis数据库作为平台缓存数据库,平台性能在此基础上得到了大幅度的提升。

数据ETL模块作为过滤层发挥其作用,主要是为推荐系统算法提供基础计算数据,对原始数据数据进行清理转换,以便核心的智能计算单元发挥更高性能提高处理数据的速度,尤其是在实时性的处理方面,一旦从Oracle或者MongoDB、Redis这些数据源取得的数据过于冗余,或者是与智能计算单元接口所要求的数据类型、格式等不相一致时,对于计算的性能影响也是显著的。根据数据来源的类型不同,相应地,数据过滤层的接口部分在数据源类的内部实现同样是以结构化和非结构化进行分组别进行设计和编码实现,对外则统一接口命名进行多态继承,这样的传统OOP面向对象的编程模型方式对于系统后期在数据层的扩展是有利的,尤其是在非结构化类型的数据库快速发展的时代,键值型数据库、图存数据库等等,对于这类的接口模块的可扩展性是一种最基本的开发要求。

3 推荐系统的工作流程

根据物流行业的运作特性,主要是监控和分析货源发布、订单处理等操作的工作时间节点,一般情况下,时间节点集中在白天的工作时间范围内,因此,对于批量数据的分析计算工作,论文研究中参考电商平台的批量数据分析处理方式,批量数据处理工作的启动时间点根据这个具体运作的明显的特点,设置为每日21:00点开始进行批量数据分析作业。

3.1数据预处理

智能推荐系统在启动批量数据分析工作后,首先由推荐系统的数据ETL中的提取业务模块通过JDBC连接各WEB平台中的数据源,包括了Oracle数据库和MongoDB数据库(前期作为GPS数据存储,后期用来做路线推荐用),向这些数据源发送查询请求,以便从实例的结构表中取得数据集,对读取后数据集以货主公司ID和物流公司ID进行分组计算,计算出货主企业对物流公司评价均值,对平台数据源中的结构化数据计算完成后,由转换存储功能模块将数据以预定数据格式,即键值对的形<Key:{itemid:rate}>进行存储处理工作,将结构化的数据转换为非结构化记录数据集,最后,由数据ETL中的传输功能模块调用Hadoop的FileObject接口将过滤后数据存储到分布式文件系统HDFS中,以便推荐系统中的计算服务层各个计算单元直接处理调用。

3.2智能推荐算法流程

为了达到推荐的目的并减小存储容量,一般为推荐结果设置一个K值即为用户推荐的物品列表只选取前K个物品,实验中在配置文件中提前设置K值。

推荐系统计算层的计算单元根据上下文环境配置直接从Haddoop平台的分布式文件系统HDFS中读取相应的预处理后的批量数据文件,由系统自动计算文件的大小对其进行分片,默认在上下文环境配置中设置为64M或者128M即可,每个分片会对应一个Map任务节点,在Map任务节点中执行计算任务,逐行读取数据以键值存入上下文数据中,为了减小Reduce任务节点的计算压力,针对当前的Map任务节点由Combiner单元执行一次的合并处理,Hadoop框架根据各Map任务节点中键值和数据大小启动相应数量的Reduce任务节点,在Reduce任务节点中以键值(货主ID)合并来自不同Map任务节点中的上下文数据,这时可以得到N个货主评价向量,由N个货主评价向量计算得出项目(即物流公司)的同现矩阵,最后N个货主评价向量分别与同现矩阵相乘得到N个货主的推荐向量,选取前K个推荐结果存入缓存数据库中,完成推荐计算。

整个推荐计算完成后,当WEB业务要实现推荐效果时,即可直接从缓存数据库中读取最新的推荐结果,为货主企业推荐K个比较感兴趣物流企业。

参考文献:

[1]Chert MS. Data mining: arl overview from a database perspective[J]. IEEE Trans on Knowledgeand data engineering,1996:8(06): 866-883.

[2]Pang-Ning Tan, Michael Steinbach, Yipin Kumar著.范明,范宏建等译.数据挖掘导论[M].北京:人民邮电出版社,2006.

DOI:10.16640/j.cnki.37-1222/t.2016.11.137

作者简介:金英华(1965-),女,辽宁盖县人,硕士研究生,副教授,研究方向:计算机软件。

猜你喜欢
推荐系统
数据挖掘在选课推荐中的研究
基于用户偏好的信任网络随机游走推荐模型
基于个性化的协同过滤图书推荐算法研究
个性化推荐系统关键算法探讨
浅谈Mahout在个性化推荐系统中的应用
关于协同过滤推荐算法的研究文献综述