一种基于大数据的在线学习推荐方法、装置和计算机设备
技术领域
本发明涉及计算机
技术领域
,特别是涉及一种基于大数据的在线学习推荐方法、一种基于大数据的在线学习推荐装置、一种计算机设备和一种存储介质。背景技术
随着在线培训需求的发展,个性化精准培训显的越来越重要,企业内员工不同的岗位、级别、所在部分等用户画像以及学习行为习惯为学员推送有针对性的培训内容;
目前比较常用的推荐方法是基于一些简单的规则:评分最高、浏览最多、学习人数最多等不同维度形成推荐结果;基于能力模型:规划整个公司每个岗位、级别的能力模型;市场上在线学习的培训平台大多数是简单的基于规则的推荐,并非真正的智能推荐,这些推荐存在以下缺陷;
第一方面,很难制定出适合每个个体的规则,满足不了用户的需求;规则需要不断的进行更新,花费的成本大,效率低;
第二方面,规划整个企业每个岗位、级别的能力模型,不是一件简单的事情,很多企业并没有完善的能力模型,可行性太差,另外随着公司的发展,还需要定期的更新能力模型,企业投入成本大,见率低。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于大数据的在线学习推荐方法、一种基于大数据的在线学习推荐装置、一种计算机设备和一种存储介质。
为了解决上述问题,本发明实施例公开了一种基于大数据的在线学习推荐方法,包括:
获取到用户学习行为日志及非结构化行业数据;
通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果;以及通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果;
将第一推荐结果及第二推荐结果输入至缓存中;
从缓存中输出所述第一推荐结果及第二推荐结果。
优选地,所述通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果,包括:
通过flume组件获取用户学习行为日志,并将所述用户学习行为日志储存于Kafka中间缓存组件,再通过Spark Streaming组件处理所述用户学习行为日志,得到第一推荐结果。
优选地,所述通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果,包括:
通过Spark SQL组件针对所述非结构化行业数据进行数据挖掘;
通过Spark MLib组件进行非结构化行业数据的处理,得到第二推荐结果。
优选地,所述通过Spark MLib组件进行非结构化行业数据的处理,得到第二推荐结果,包括:
基于用户(User-based)算法、Item-based和Model-based对非结构化行业数据进行特征抽取、转换和选择,得到第二推荐结果。
优选地,所述用户学习行为日志包括:登陆信息、课程信息、考试信息、学习课件信息;所述非结构化行业数据包括所属部门信息、岗位信息、职级信息、学历信息、入职日期信息、性别信息。
本发明实施例还公开了一种基于大数据的在线学习推荐装置,包括:
数据获取模块,用于获取到用户学习行为日志及非结构化行业数据;
推荐结果获取模块,用于通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果;以及通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果;
输入模块,用于将第一推荐结果及第二推荐结果输入至缓存中;
输出模块,用于从缓存中输出所述第一推荐结果及第二推荐结果。
优选地,所述推荐结果获取模块包括:
第一推荐结果获取子模块,用于通过flume组件获取用户学习行为日志,并将所述用户学习行为日志储存于Kafka中间缓存组件,再通过Spark Streaming组件处理所述用户学习行为日志,得到第一推荐结果。
优选地,所述推荐结果获取模块包括:
数据挖掘子模块,用于通过Spark SQL组件针对所述非结构化行业数据进行数据挖掘;
第二推荐结果获取子模块,用于通过Spark MLib组件进行非结构化行业数据的处理,得到第二推荐结果。
本发明实施例还公开了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的基于大数据的在线学习推荐方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于大数据的在线学习推荐方法的步骤。
本发明实施例包括以下优点:
本发明实施例中,基于大数据的在线学习推荐方法包括:获取到用户学习行为日志及非结构化行业数据;通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果;以及通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果;将第一推荐结果及第二推荐结果输入至缓存中;从缓存中输出所述第一推荐结果及第二推荐结果;据海量日志进行大数据在线推荐计算,实现用户学习行为的推荐内容;根据结构化的离线数据进行大数据离线推荐计算,实现用户画像及学习行为的推荐内容。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图
图1是本发明实施例的一种基于大数据的在线学习推荐方法实施例的步骤流程图;
图2是本发明实施例的一种第一推荐结果获取步骤的流程示意图;
图3是本发明实施例的一种第二推荐结果获取步骤的流程示意图;
图4是本发明实施例的一种第二推荐结果获取步骤的流程示意图;
图5是本发明实施例的一种基于大数据的在线学习推荐装置实施例的结构框图;
图6是一个实施例的一种计算机设备的内部结构图。
具体实施方式
为了使本发明实施例所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明实施例进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,示出了本发明实施例的一种基于大数据的在线学习推荐方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,获取到用户学习行为日志及非结构化行业数据;
本发明实施例的推荐方法可以应用于学习平台,而该学习平台可以运行于多种终端上,如个人电脑(PC,Personal Computer)、智能手机、平板电脑等终端,也可以是可安装应用程序的其他终端,例如智能手表等,本发明实施例对移动终端的具体类型不作限定,所述终端的操作系统可以包括Android(安卓)、Harmony(鸿蒙)OS、IOS、Windows Phone、Windows、Linux等等,本发明实施例对此不作过多的限制。
终端可以首先获取到用户学习行为日志及非结构化行业数据,其中,用户学习行为日志可以包括:登陆信息、课程信息、考试信息、学习课件信息等,当然还可以包括其他的用户学习行为,本发明实施例对此不作过多的限制;
另一方面,所述非结构化行业数据可以包括所属部门信息、岗位信息、职级信息、学历信息、入职日期信息、性别信息等信息,还其他的非结构化业数据,如民族信息、政治面貌信息等,本发明实施例对此不作过多的限制。
步骤102,通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果;以及通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果;
具体应用到本发明实施例中,可以通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果,另一方面,还可以通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果。
具体地,在线推荐组件主要包括Spark Streaming组件等,通过Spark Streaming组件将用户学习行为日志进行分词或统计等处理后,得到第一推荐结果。
此外,离线推荐组件可以包括Spark SQL组件、Spark MLib组件等,首先通过SparkSQL组件进行数据挖掘,后来再通过Spark MLib组件数据特征抽取、转换和选择,得到第二推荐结果。
步骤103,将第一推荐结果及第二推荐结果输入至缓存中;
进一步地,可以将第一推荐结果及第二推荐结果输入到Redis缓存,以下系统进行读取,提高读取效率。
步骤104,从缓存中输出所述第一推荐结果及第二推荐结果。
实际应用到本发明实施例中,还可以从缓存中输出该第一推荐结果及第二推荐结果至显示装置等,显示至用户的显示装置。
本发明实施例中,基于大数据的在线学习推荐方法包括:获取到用户学习行为日志及非结构化行业数据;通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果;以及通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果;将第一推荐结果及第二推荐结果输入至缓存中;从缓存中输出所述第一推荐结果及第二推荐结果;据海量日志进行大数据在线推荐计算,实现用户学习行为的推荐内容;根据结构化的离线数据进行大数据离线推荐计算,实现用户画像及学习行为的推荐内容。
本发明实施例中,参照图2,示出了本发明实施例的一种第一推荐结果获取步骤的流程示意图,所述通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果包括以下子步骤:
子步骤11,通过flume组件获取用户学习行为日志,并将所述用户学习行为日志储存于Kafka中间缓存组件,再通过Spark Streaming组件处理所述用户学习行为日志,得到第一推荐结果。
实际应用到本发明实施例中,该在线推荐组件可以包括flume组件、Kafka中间缓存组件、Spark Streaming组件,通过flume组件采集用户学习行为日志,将用户学习行为日志写入Kafka中间缓存组件,再通过Spark Streaming组件进行分词或统计等相关数据操作,得到第一推荐结果。
本发明实施例中,参照图3,示出了本发明实施例的一种第二推荐结果获取步骤的流程示意图,所述通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果,包括以下子步骤:
子步骤21,通过Spark SQL组件针对所述非结构化行业数据进行数据挖掘;
子步骤22,通过Spark MLib组件进行非结构化行业数据的处理,得到第二推荐结果。
进一步应用到本发明实施例中,可以通过Spark SQL组件针对所述非结构化行业数据进行数据挖掘;再利用Spark MLib组件进行数据特征抽取、转换和选择,得到第二推荐结果。
本发明实施例中,参照图4,示出了本发明实施例的一种第二推荐结果获取步骤的流程示意图,所述通过Spark MLib组件进行非结构化行业数据的处理,得到第二推荐结果,包括以下子步骤:
子步骤31,基于用户(User-based)算法、Item-based和Model-based对非结构化行业数据进行特征抽取、转换和选择,得到第二推荐结果。
在一种优选实施例中,该Spark MLib组件提供了常用机器学习算法的分布式实现,可以基于用户(User-based)算法、Item-based和Model-based对非结构化行业数据进行特征抽取、转换和选择,得到第二推荐结果。
为了使本领域技术人员更好了理解本发明实施例,以下通过一个具体示例进行说明:
重点包含以下几个模块:
在线学习系统日志规则定义:定义在线学习平台产生的用户学习日志规则,尽可能将用户各种学习行为生成日志,如登陆、打开课程、参加考试、学习课件等一切与学习有关的动作;
在线推荐计算:通过Flume+Kafka+Spark Streaming三者整合实现对大量日志的大数据计算获取想要的推送数据。flume是高可用,高可靠的,分布式的通过对海量用户行为日志采集、聚合和传输的系统将数据写入Kafka.由于采集数据和处理数据不一定同步,所以加了Kafka作为中间缓存,避免Spark Streaming档掉数据不会丢失;
用Spark Streaming实时流式处理Kafka中的数据,第一步先把数据接收过来,转换为Spark Streaming中的数据结构Dstream。接收数据的方式有两种:1.利用Receiver接收数据,2.直接从kafka读取数据,本系统采取直接读取方式,此方式具有简化的并行、高效、精确一次等特性,之后经过分词、统计等相关处理,将需要的推送数据写入Redis缓存。
离线推荐计算:除了日志记录用户非结构化的行业数据,在学习系统还会有大量的结构化用户及学习数据,如用户的所属部门、岗位、职级、学历、入职日期、民族、政治面貌、性别,学习课程的时长、考试答题情况等等;
通过Spark SQL+Spark MLlib二者整合,Spark SQL是一个分布式查询引擎,利用Spark SQL对这些离线的结构化用户画像以及学习行为数据进行数据挖掘。利用Spark提供的一个基于海量数据的机器学习库——Spark MLib,其提供了常用机器学习算法的分布式实现,基于用户(User-based)算法(考虑用户与用户之间的相似性)、Item-based和Model-based进行对数据特征抽取、转换和选择,将需要的推送数据写入Redis缓存。
1、Spark的分布式计算原理
在介绍Spark MLlib的分布式机器学习训练方法之前,让我们先回顾一下Spark的分布式计算原理,这是分布式机器学习的基础。
Spark,是一个分布式的计算平台。所谓分布式,指的是计算节点之间不共享内存,需要通过网络通信的方式交换数据。要清楚的是,Spark最典型的应用方式是建立在大量廉价计算节点上,这些节点可以是廉价主机,也可以是虚拟的docker container;但这种方式区别于CPU+GPU的架构,或者共享内存多处理器的高性能服务器架构。清楚这一点,对于理解后续的Spark的计算原理是重要的。
Spark程序由Manager node进行调度组织,由Worker Node进行具体的计算任务执行,最终将结果返回给Drive Program。在物理的worker node上,数据还可能分为不同的partition,可以说partition是spark的基础处理单元。
在执行具体的程序时,Spark会将程序拆解成一个任务DAG(有向无环图),再根据DAG决定程序各步骤执行的方法。该程序先分别从textFile和HadoopFile读取文件,经过一些列操作后再进行join,最终得到处理结果。
2、Spark MLlib并行训练原理
有了Spark分布式计算过程的基础,下面就可以更清楚的理解Spark MLlib并行训练的原理。
在所有主流的机器学习模型中,Random Forest的模型结构特点决定了其可以完全进行数据并行的模型训练,而GBDT的结构特点则决定了树之间只能进行串行的训练,这里就不再赘述其spark的实现方式,我们将重点放在梯度下降类方法的实现上,因为梯度下降的并行程度实现质量直接决定了以Logistic Regression为基础,以Multiple LayerPerceptron为代表的深度学习模型的训练速度。
推荐结果回传:在线推荐和离线推荐的数据最终写入Redis,并开发对在线学习的接口,将推荐数据回传给在线学习系统,实现基于大数据的学习内容推荐。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明实施例的一种基于大数据的在线学习推荐装置实施例的结构框图,具体可以包括如下模块:
数据获取模块301,用于获取到用户学习行为日志及非结构化行业数据;
推荐结果获取模块302,用于通过在线推荐组件针对所述用户学习行为日志进行处理,得到第一推荐结果;以及通过离线推荐组件针对所述非结构化行业数据进行处理,得到第二推荐结果;
输入模块303,用于将第一推荐结果及第二推荐结果输入至缓存中;
输出模块304,用于从缓存中输出所述第一推荐结果及第二推荐结果。
优选地,所述推荐结果获取模块包括:
第一推荐结果获取子模块,用于通过flume组件获取用户学习行为日志,并将所述用户学习行为日志储存于Kafka中间缓存组件,再通过Spark Streaming组件处理所述用户学习行为日志,得到第一推荐结果。
优选地,所述推荐结果获取模块包括:
数据挖掘子模块,用于通过Spark SQL组件针对所述非结构化行业数据进行数据挖掘;
第二推荐结果获取子模块,用于通过Spark MLib组件进行非结构化行业数据的处理,得到第二推荐结果。
优选地,所述第二推荐结果获取子模块包括:
第二推荐结果获取单元,用于基于用户(User-based)算法、Item-based和Model-based对非结构化行业数据进行特征抽取、转换和选择,得到第二推荐结果。
优选地,所述用户学习行为日志包括:登陆信息、课程信息、考试信息、学习课件信息;所述非结构化行业数据包括所属部门信息、岗位信息、职级信息、学历信息、入职日期信息、性别信息。
上述基于大数据的在线学习推荐装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上述提供的基于大数据的在线学习推荐装置可用于执行上述任意实施例提供的基于大数据的在线学习推荐方法,具备相应的功能和有益效果。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于大数据的在线学习推荐方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现图1至图X的实施例的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下图1至图X的实施例的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种基于大数据的在线学习推荐方法、一种基于大数据的在线学习推荐装置、一种计算机设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种粗排序的方法及装置