一种数据推荐系统及其数据推荐方法与流程

文档序号:12363903阅读:191来源:国知局
一种数据推荐系统及其数据推荐方法与流程

本发明涉及数据推荐技术领域,具体涉及一种数据推荐系统及其数据推荐方法。



背景技术:

随着数据信息化的发展,数据量增长飞快,大数据呈现出多元化、分散化的趋势。伴随着数据量的增长,也产生了信息冗杂、难以辨别的问题。在大数据环境下,对于普通用户来说大多数信息是冗余的,用户可能只对某些信息感兴趣,为了解决信息过载的问题,目前通常采用数据推荐系统。数据推荐系统的本质是通过积累的海量数据,分析用户历史活动的记录,包括用户的页面访问、应用访问、下载、评论、购买、互动等等信息,分析用户的个性化喜好,主动向用户推荐他们感兴趣的信息。数据推荐系统的核心是搭建大数据平台、分析群体数据、通过分析得到每位用户的个性化信息,再进行个性化数据的推荐。

然而,现有的数据推荐系统,例如不支持分布式平台的推荐系统存在:系统内部的各个组件之间没有一致的通道连接,形成了孤岛,数据的流转复杂,造成系统的维护困难、扩展复杂、可用性较差,无法充分发挥性能的缺点。而支持分布式平台的推荐系统,存在:各个基础系统的选择有各自的特殊应用场景,针对每个应用场景都需要编写对应的程序或者脚本,数据在流转处理的过程中,流程复杂,相互之间的依赖关系非常多,流程的关系定义多,可复用性差的问题。

由此可知,现有的数据推荐系统总体上存在以下问题:1)、数据推荐系统所需技术较高,系统的可操作性复杂,阻碍了推荐系统的发展;2)、推荐系统内部的各个组件之间没有一致的通道连接,形成孤岛,数据的流转复杂,系统的维护困难、扩展复杂、可用性较差;3)、推荐系统没有统一的管理平台,系统流程之间的数据质量、资源、算法、推荐方式无法统一分配,同时 无法被完整的监控起来;4)、针对每个应用场景,都需要编写对应的程序或者脚本,数据在流转处理的过程中,流程复杂。



技术实现要素:

本发明提供了一种数据推荐系统及其数据推荐方法,以解决现有的数据推荐系统存在的上述技术问题。

为达到上述目的,本发明的技术方案是这样实现的:

根据本发明的一个方面,提供了一种数据推荐系统,数据推荐系统包括:配置管理展示层、数据存储层、分析层和调度层;

配置管理展示层,用于根据应用场景的不同,以可视化的方式分别配置数据存储层、分析层和调度层;

数据存储层,用于存储各种应用场景所需的源数据,并根据配置管理展示层的配置提供应用场景对应的数据存储方式;

分析层,用于根据配置管理展示层的配置将应用场景所需的程序和算法提供给调度层;

调度层,用于根据配置管理展示层的配置,利用调度规则对分析层提供的程序和算法进行调度,生成调度结果返回给分析层;

分析层,还用于根据调度结果,从数据存储层获取数据,对获取的数据进行分析,并将分析结果输出给数据存储层;

配置管理展示层,还用于从数据存储层获取需要展示的分析结果并以可视化的方式展示,实现数据推荐。

可选地,该数据推荐系统还包括:

监控管理层,用于通过可视化的方式监控数据存储层、分析层、调度层的运行状态和管理过程。

可选地,数据推荐系统基于分布式平台;

数据存储层的数据存储方式包括:利用分布式磁盘数据库和/或分布式内存数据库存储数据;

数据存储层提供一个统一的对外接口以方便访问分布式磁盘数据库和/ 或分布式内存数据库。

可选地,分析层包括多个可配置的分布式环境;

分析层提供一个统一的对外接口以方便访问分布式环境。

可选地,配置管理展示层,用于根据应用场景的不同,以可视化的方式分别配置所述数据存储层、分析层和调度层包括:配置管理展示层,具体提供图形化的界面并在图形化界面上采用定制化的插件方式分别对数据存储层、分析层和调度层进行配置。

可选地,调度规则为有向无环图算法;

有向无环图算法用于,根据配置管理展示层提供的应用场景,计算满足应用场景的要求和步骤的执行路径,生成调度结果。

基于上述数据推荐系统,本发明还提供了一种数据推荐方法,该数据推荐方法包括:

根据应用场景的不同,利用配置管理展示层以可视化的方式分别配置数据存储层、分析层和调度层;

数据存储层根据配置管理展示层的配置提供应用场景对应的数据存储方式,其中,数据存储层存储各种应用场景所需的源数据;

分析层根据配置管理展示层的配置将应用场景所需的程序和算法提供给调度层;

调度层根据配置管理展示层的配置,利用调度规则对分析层提供的程序和算法进行调度,生成调度结果返回给分析层;

分析层根据调度结果,从数据存储层获取数据,对获取的数据进行分析,并将分析结果输出给数据存储层;

配置管理展示层从数据存储层获取需要展示的分析结果并以可视化的方式展示,实现数据推荐。

可选地,该数据推荐方法还包括:利用监控管理层,以可视化的方式监控数据存储层、分析层、调度层的运行状态和管理过程。

可选地,数据存储层包括分布式磁盘数据库和/或分布式内存数据库,并 提供一个统一的对外接口以方便访问分布式磁盘数据库和/或分布式内存数据库;

分析层包括多个可配置的分布式环境,并提供一个统一的对外接口以方便访问分布式环境。

可选地,利用配置管理展示层以可视化的方式分别配置数据存储层、分析层和调度层包括:配置管理展示层提供图形化的界面,并在图形化界面上采用定制化的插件方式分别对数据存储层、分析层和调度层进行配置。

本发明的有益效果是:本发明提供的这种数据推荐系统及其推荐方法,通过配置管理展示层以可复制的组件方式,可视化的操作、可编辑的配置管理方式,降低了系统使用的复杂度,方便了系统资源共享和数据推荐系统的发展。此外,本发明的技术方案在数据存储层和分析层采用一致的对外接口,统一了系统各层次之间的关联管理,建立了统一的数据处理过程定义和推荐算法定义,不需要针对每个应用场景都编写对应的程序或脚本,各个过程可复用、组合、复用性强。并且,通过监控管理层监控数据存储层、分析层和调度层的方式,对数据、流程、业务持续监控,加强了系统的可维护性,提高了系统的稳定性。

附图说明

图1是本发明一个实施例的一种数据推荐系统的框图;

图2是本发明一个实施例的配置管理展示层进行配置的示意图;

图3是本发明一个实施例的一种调度层的调度规则示意图;

图4是本发明一个实施例的一种数据推荐方法的流程示意图。

具体实施方式

本发明的核心思想是:数据推荐系统通常都包括五大模块,分别为:数据采集模块、数据存储模块、数据分析模块、数据推送模块和流程管理模块;数据采集模块用于通过推送或拉取的数据获取方式获取海量用户数据,数据获取的频率可分为批量更新或者全量更新。数据存储模块是将数据采集模块采集的数据存储起来,目前在大数据环境下,数据量大,存储时间要求较长,对数据存储要求是具备较强的容灾性、可靠性。数据分析模块用于对数据进 行个性化分析处理,针对不同的用户提供个性化推荐信息。数据推送模块是把数据分析模块得到的个性化推荐信息选择推送渠道推送给用户。流程管理模块涉及到整个数据推荐系统从数据源到业务服务,再到用户的端到端的过程,其功能包括数据管理、服务管理、任务管理、服务监控、应急处理、告警监控等等。

本发明提供了一种基于分布式平台的数据推荐系统和方法,数据存储统一配置管理,降低了系统使用的复杂度,使系统的配置管理操作可视化,并且统一了系统各层次组件之间的关联管理,建立统一的数据程序处理过程定义,各个过程可复用,提高用户使用体验。

图1是本发明一个实施例的一种数据推荐系统的框图,参见图1,该数据推荐系统100,包括:配置管理展示层110、数据存储层120、分析层130和调度层140;

配置管理展示层110,用于根据应用场景的不同,以可视化的方式分别配置数据存储层120、分析层130和调度层140;

数据存储层120,用于存储各种应用场景所需的源数据,并根据配置管理展示层110的配置提供应用场景对应的数据存储方式;

分析层130,用于根据配置管理展示层110的配置将应用场景所需的程序和算法提供给调度层140;

调度层140,用于根据配置管理展示层110的配置,利用调度规则对分析层提供的程序和算法进行调度,生成调度结果返回给分析层130;

分析层130,还用于根据调度结果,从数据存储层120获取数据,对获取的数据进行分析,并将分析结果输出给数据存储层120;

配置管理展示层110,还用于从数据存储层120获取需要展示的分析结果并以可视化的方式展示,实现数据推荐。

图1所示的数据推荐系统,通过配置管理展示层,根据应用场景对数据存储层、分析层和调度层进配置管理,并以可视化的方式呈现配置结果;通过数据存储层根据配置管理层的配置提供对应的数据存储方式;通过分析层根据配置管理层的配置,将该应用场景所需的程序和算法传递给调度层调度,并根据调度层的调度执行数据分析流程,得到执行结果将执行结果存储到数 据存储层,通过配置管理展示层从数据存储层获取需要展示的执行结果,实现了数据推荐。本发明的这种基于分布式平台的数据推荐系统采用可复制的组件方式,可视化的操作,可编辑的配置管理方式,降低了系统的使用复杂度,方便了资源共享。

在本发明的一个实施例中,该数据推荐系统100还包括:监控管理层,用于通过可视化的方式监控数据存储层、分析层、调度层的运行状态和管理过程。具体地,监控管理层采用web和图形化的可视化方式,负责整个数据推荐系统的服务管理、服务监控和应急处理,提高了数据推荐系统服务的质量和稳定性。

数据存储层根据不同的应用需求提供存储服务,在本发明的一个实施例中,数据推荐系统基于分布式平台。数据存储层120的数据存储方式包括:利用分布式磁盘数据库和/或分布式内存数据库存储数据;分布式磁盘存储用于海量数据分析;分布式内存用于实时分析、固化的数据库存储,提供高效的读写操作和实时计算。不同的应用场景,存储方式也不尽相同,例如,某一应用场景需要对历史(例如1年的数据)海量数据进行分析,这样,选用分布式磁盘存储方式就比较适合。而另一应用场景是对于实时数据(例如1个小时、半天时间的数据)进行分析则比较适合选用分布式内存存储方式。此外,数据存储层120提供一个统一的对外接口以方便访问分布式磁盘数据库和/或分布式内存数据库。

具体的,数据存储层是由多种数据组成的数据集合,例如,Hadoop分布式文件系统数据、Hive数据、Hbase数据(Hbase是一种面向列的高可靠性、高性能、可伸缩的分布式存储系统)、关系型数据库数据、基于内存存储的Spark hdd数据等等。

从存储的数据来源分类,数据存储层存储的数据包括:1)各应用场景的源数据,例如所有业务用户数据、资源数据、程序数据;2)对源数据按照应用场景进行分析处理后输出的最终结果数据;3)分析层处理的中间结果数据。用元数据定义数据结构,并且元数据也存储在存储层。数据的读写操作,以统一的存储接口服务方式提供给系统上层使用。数据存储层还具有备份和容灾恢复功能,以保证数据的安全可靠。

在本发明的一个实施例中,数据推荐系统基于分布式平台。分析层130是分布式环境和分析算法的集合,分析层包括多个可配置的分布式环境,这些分布式环境组成一个或者多个集群,集群之间共享硬件环境资源,实现了资源复用和可持续扩展的效果。分布式环境例如Hadoop平台与MapReduce程序、Spark平台与Spark Stream程序、Spark平台与MLib API程序、Hive平台与hive脚本、R环境与R脚本、Mahout平台与Mahout API程序等等。其中,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System,简称HDFS)。HDFS提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算,MapReduce是处理大量半结构化数据集合的编程模型。Spark平台是一种可扩展的数据分析平台,它整合了内存计算的基元,因此,相对于Hadoop的集群存储方法,它在性能方面更具优势。Spark streaming程序是构建在Spark平台上处理Stream数据的框架,其基本的原理是将Stream数据分成小的时间片断(几秒),以类似批量处理的方式来处理这小部分数据。小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法,方便了一些需要历史数据和实时数据联合分析的特定应用场合。Spark平台下的机器学习库MLib(Machine Learning Library),MLlib是Spark平台对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器,MLlib目前支持四种常见的机器学习问题:二元分类,回归,聚类以及协同过滤,同时也包括一个底层的梯度下降优化基础算法。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。Hive可以自由的扩展集群的规模,一般情况下不需要重启服务;Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数;Hive具有良好的容错性,节点出现问题,SQL仍可完成执行。R环境是一种数学计算环境。R是一套由数据操作、计算和图形展示功能整合而成的套件,包括:有效的数据存储和处理功能,一套完整的数组 (特别是矩阵)计算操作符,拥有完整体系的数据分析工具,为数据分析和显示提供的强大图形功能,一套完善、简单、有效的编程语言(包括条件、循环、自定义函数、输入输出功能)。之所以称其为R环境是为了说明R的定位是一个完善、统一的系统,而非其他数据分析软件那样作为一个专门的、不灵活的附属工具。Mahout是平台基于Hadoop来实现各种机器学习与数据挖掘算法库。Mahout是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现、分类、聚类等。Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。

本发明实施例中,分析层130由各种独立的数据分析算法和一系列推荐算法的集合组成,数据分析算法,例如对数据分组、累加、排比、排序等,推荐算法特指推荐业务专用的算法。分析层的算法只关注数据,包括基于关联规则挖掘、用户协同过滤、产品协同过滤,复杂的考虑标签、内容和属性的统计学习模型,剖分用户长短期兴趣的实时自适应算法等等。分析层130的算法不关心具体的业务逻辑,只负责数据处理和结果返回。这使得分析层130的算法具有了最大的通用性,也保证了配置管理展示层可以根据应用场景综合多个算法实现应用场景需求。

在本实施例中,由于分析层130存在多种分布式环境,且每种分布式环境提供的接口可能不一致,为了降低系统使用的难度和复杂度,本发明的数据推荐系统对分布式环境的接口进行二次封装,采用统一的一个对外接口,以方便访问分析层的分布式环境,实现系统各个层次之间的关联管理。

图2是本发明一个实施例的配置管理展示层进行配置的示意图,参见图2,在本发明的一个实施例中,配置管理展示层,具体用于提供图形化的界面并在图形化界面上采用定制化的插件方式对数据存储层、分析层和调度层进行配置。其中,定制化插件的方式是指配置管理层在进行数据存储层、分析层和调度层配置时,针对每一层中每个具体功能点或模块的配置是以可插拔的插件或组件的方式,根据配置需要随时插拔,不会影响系统的正常运动。

参见图2,配置管理展示层的功能可细分为配置管理和展示两项;配置 管理指的是根据不用的应用场景,配置数据存储层、配置分析层以及调度层,展示是具体展示配置的过程、结果以及向用户推荐的最终结果。配置管理具体采用定制化的插件方式对各个层次进行插拔,配置图形化的管理后台,根据业务场景,选择不同的配置方式与组合,并以可视化的方式呈现配置结果。在本实施例中,配置管理根据应用场景的不同,以满足应用场景为目标,先从整体上配置数据存储层的数据存储方式、分析层的数据处理流程和调度层的调度规则,并在每个配置下层下进一步细化配置任务。参见图2,配置管理具体工作是确定满足某一应用场景的主配置1,主配置1内包括:父配置1和父配置2;父配置1包括:子配置1、子配置2、子配置3和子配置4,这4个子配置之间的关系式,子配置1和子配置2与子配置3存在依赖关系,即子配置3依赖于子配置1和子配置2;子配置4依赖于子配置3。同样的,父配置2也包括子配置1、子配置2、子配置3和子配置4,并且它们关系与父配置1中的关系相同,这里不再赘述。

需要说明的是,图2只是示意性的表示了配置管理展示层可以通过图形化的方式进行配置管理,并以图形化的方式呈现配置结果,在具体应用时,主配置、父配置和子配置的数量以及依赖关系并不限于附图2中的示意。

展示是采用丰富的图形化界面,提供拖动式的设计器,方便设计推荐数据、结果以及推送渠道,并将最终结果推送到不同的用户界面,呈现数据推荐的效果,通过图形化的界面和拖动式的设计器,降低了系统使用的难度,有利益于系统的升级发展。

图3是本发明一个实施例的一种调度层的调度规则示意图,参见图3,在本发明的一个实施例中,调度层采用有向无环图算法作为调度规则,在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则称为有向无环图。

调度层是一种有向无环图的定时、实时计算系统,包括元任务的调度和依赖任务的调度,元任务独立于其它任务(任务从小的粒度而言,可以是某个算法、大的粒度而言可以是某个业务场景的一个处理步骤等)。这里的定时计算是指设置按周、按月、或者按一定的时间周期规则对程序进行调度计算。实时计算一般是指按系统当前的时间,每半个小时或者每1分钟计算一次。

调度层根据应用场景的计算要求和步骤设计执行路径,路径之间可以有或无依赖关系。在一个有向无环图中存在一个或多个入口的任务顶点,划分为若干层,每个分层内均包含若干个有依赖关系的顶点,这些顶点的集合即为任务集合。在一个实施例中,根据配置层的配置利用分析层提供的程序逻辑以及调度规则进行调度,其中,参见图3,本实施例示出了13个任务以及13个任务之间的关系,调度层的具体工作步骤如下:

步骤1,计算图中所有的顶点,并找出所有直接前驱为0的顶点放入第1层中。

步骤2,设已完成第K(K≥1)层的分组,将前K层的所有顶点去掉,形成新的子图,在新的子图中寻找直接前驱为0的顶点放入K+1层中。

步骤3,循环执行步骤2,直至图中所有顶点都已分层完成。任务图的分层算法实际上是有向无环图的分组算法,其算法复杂度为O(n),其中,n为图中边的条数(例如边数为15),具有较高的效率,在此基础上,可以进行进一步的任务调度。

本发明实施例中,调度层对任务的调度对底层算法是透明的,可通过使用场景在图形化的界面上配置调度规则,降低了系统的使用门槛和复杂度。

调度层完成任务调度后,生成调度结果返回给分析层,分析层具体执行调度结果,并从数据存储层获取执行所需的数据,进行分析执行后得到执行结果,将执行结果存储到数据存储层,配置管理展示层从数据存储层获取需要展示的执行结果,并以可视化的方式展示,从而实现个性化数据推荐。

基于上述数据推荐系统,本发明还提供了一种数据推荐方法。该数据推荐方法包括:根据应用场景的不同,利用配置管理展示层以可视化的方式分别配置数据存储层、分析层和调度层;

数据存储层根据配置管理展示层的配置提供应用场景对应的数据存储方式,其中,数据存储层存储各种应用场景所需的源数据;

分析层根据配置管理展示层的配置将应用场景所需的程序和算法提供给调度层;

调度层根据配置管理展示层的配置,利用调度规则对分析层提供的程序和算法进行调度,生成调度结果返回给分析层;

分析层根据调度结果,从数据存储层获取数据,对获取的数据进行分析,并将分析结果输出给数据存储层;

配置管理展示层从数据存储层获取需要展示的分析结果并以可视化的方式展示,实现数据推荐。

在本发明的一个实施例中,该数据推荐方法还包括:利用监控管理层,以可视化的方式监控数据存储层、分析层、调度层的运行状态和管理过程。

图4是本发明一个实施例的一种数据推荐方法的流程示意图,以下结合图4对本发明的这种数据推荐方法进行具体说明。参见图4,基于前述数据推荐系统的数据推荐方法的执行过程是:

1:配置,具体是由配置管理展示层根据推荐系统的应用场景配置数据存储层的数据存储方式、配置分析层的数据分析流程(例如:所需要的程序、算法)、配置调度层的调度规则(例如:配置有向无环图);

2:程序和参数,把对应的分析层流程(例如:程序包与参数)通过配置的方式装载到调度层的调度系统;

3:调度,调度层的调度系统根据配置的有向无环图的流程提交调用,生成调度结果,返回给分析层;

4:输入或输出,分析层开始执行调度结果:参见图4,以分析层需要执行两个任务为例进行示意性说明,分析层具体执行下列任务:

任务:从存储层获取输入数据→对数据进行分析→输出中间结果到数据存储层;

任务:从数据存储层获取中间结果→对中间结果进行分析→输出最终结果到数据存储层;

5:展示,配置管理展示层从数据存储层获取最终结果,以可视化的方式展示输出。

参见图4,本发明的这种数据推荐方法还包括利用监控管理层,由监控管理层在数据推荐的处理过程中,全程监控数据存储层、分析层和调度层的运行状态和管理过程,保障上述流程的执行,提高系统的稳定性。

需要注意的是,附图4中的数字代表了本发明的这种数据推荐方法的流程顺序,并且图4中的任务的数量和程序算法根据应用场景的不同而有所不 同。

在本发明的一个实施例中,数据存储层包括分布式磁盘数据库和/或分布式内存数据库,并提供一个统一的对外接口以方便访问分布式磁盘数据库和/或分布式内存数据库;

分析层包括多个可配置的分布式环境,并提供一个统一的对外接口以方便访问分布式环境。

在本发明的一个实施例中,利用配置管理展示层以可视化的方式分别配置数据存储层、分析层和调度层包括:配置管理展示层提供图形化的界面,并在图形化界面上采用定制化的插件方式分别对数据存储层、分析层和调度层进行配置。

需要说明的是,本发明的这种的数据推荐方法是基于前述的数据推荐系统的,因而该数据推荐方法的实现过程可以参见前述数据推荐系统部分的具体说明,在此不再赘述。

综上所述,本发明提供的这种数据推荐系统及其推荐方法,通过配置管理展示层以可复制的组件方式,可视化的操作、可编辑的配置管理方式,降低了系统使用的复杂度,方便了系统资源共享和数据推荐系统的发展。此外,本发明的技术方案在数据存储层和分析层采用一致的对外接口,统一了系统各层次之间的关联管理,建立了统一的数据处理过程定义和推荐算法定义,不需要针对每个应用场景都编写对应的程序或脚本,各个过程可复用、组合、复用性强。并且,通过监控管理层监控数据存储层、分析层和调度层的方式,对数据、流程、业务持续监控,加强了系统的可维护性,提高了系统的稳定性。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1