CN108762846B - 插件化实时推荐方法、服务器及计算机可读存储介质 - Google Patents

插件化实时推荐方法、服务器及计算机可读存储介质 Download PDF

Info

Publication number
CN108762846B
CN108762846B CN201810539080.6A CN201810539080A CN108762846B CN 108762846 B CN108762846 B CN 108762846B CN 201810539080 A CN201810539080 A CN 201810539080A CN 108762846 B CN108762846 B CN 108762846B
Authority
CN
China
Prior art keywords
plug
real
user
time
recommendation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810539080.6A
Other languages
English (en)
Other versions
CN108762846A (zh
Inventor
彭行雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201810539080.6A priority Critical patent/CN108762846B/zh
Publication of CN108762846A publication Critical patent/CN108762846A/zh
Application granted granted Critical
Publication of CN108762846B publication Critical patent/CN108762846B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种插件化实时推荐方法,该方法包括:将实时推荐系统按功能划分多个插件,所述多个插件包括:日志导入插件、AB测试插件、指标评价插件、实时推荐插件;对每个插件进行设置;接收用户对插件的选择操作;运行用户所选择的插件,实现实时推荐。本发明实施例还公开了一种服务器和计算机可读存储介质。由此,能够在具备完整的实时推荐系统功能的基础上,将各部分功能进行插件化,每个插件之间相互独立,也能够相互合作,实现更高程度的解耦。

Description

插件化实时推荐方法、服务器及计算机可读存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种插件化实时推荐方法、服务器及计算机可读存储介质。
背景技术
实时推荐(realline recommend system,RRS)是一种在实时情况下根据使用者已经发生过行为的项目的记录,给使用者推荐和已经发生行为的项目相似的项目的过程。而实时推荐系统则是一个从原始的实时日志行为数据到次秒级(小于1秒)产生最终的推荐列表的复杂处理系统。现有的工业界所使用的实时推荐系统通常由企业内部开发人员针对具体业务进行开发,存在的问题主要包括三个方面:第一,由于此类系统对业务场景进行了具体化,导致其难以作为一个独立的产品进行商业化;第二,此类系统具有复杂的组成结构与模块,解耦能力有限,导致其在维护或优化时需要考虑不同结构之间的相互依赖性;第三,此类系统通常由于需要处理庞大的数据量而部署在大数据服务器上,对于大数据服务器而言,该系统完全透明,运维人员需要消耗大量的精力来充分了解其输入输出,以及内部逻辑,当发现故障时,处理代价较大。因此现有的实时推荐系统因其整体化的业务处理逻辑,导致其在可复用性、可维护性以及维护成本上不够完善。
发明内容
本发明的主要目的在于提出一种插件化实时推荐方法、服务器及计算机可读存储介质,以解决现有实时推荐系统存在的可复用性较低、可维护性差以及维护成本高的问题。
为实现上述目的,本发明提供的一种插件化实时推荐方法,所述方法包括步骤:
将实时推荐系统按功能划分多个插件;
对每个插件进行设置;
接收用户对插件的选择操作;及
运行用户所选择的插件,实现实时推荐。
可选地,对至少一个所述插件进行单独修改,其中所述多个插件之间相互独立;
根据所述修改更新所述插件及利用所述插件组装成的实时推荐系统。
可选地,所述多个插件包括:日志导入插件、AB测试插件、指标评价插件、实时推荐插件。
可选地,所述日志导入插件用于自动将实时日志数据从Apache Flume日志收集系统中导入到Apache Kafka消息中间件;
所述AB测试插件用于针对Kafka的主题topic,对Kafka中的用户实时行为数据所在的第一主题进行分流为两股流量,这两股流量分别进入到Kafka的分支第二主题和第三主题中;
所述指标评价插件用于对当前流量进行指标评价;
所述实时推荐插件用于根据从Kafka获取的所述用户实时行为数据对离线的推荐结果进行过滤以及混合算法的推荐结果数据合并。
可选地,所述实时推荐插件进行实时推荐的流程包括:
从Kafka中获取用户实时行为数据;
统计用户浏览量、物品访问量,将用户发生行为的物品列表更新到HBase数据库中;
判断所述HBase数据库中是否存在推荐结果合并表,以确定推荐结果的生成方式;
对用户已经发生过行为的物品进行过滤降权;
对过滤降权后的结果进行重新排名,得到最终的推荐结果。
可选地,所述选择操作通过在交互界面拖拽各个所述插件实现。
此外,为实现上述目的,本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的插件化实时推荐程序,所述插件化实时推荐程序被所述处理器执行时实现如下步骤:
将实时推荐系统按功能划分多个插件;
对每个插件进行设置;
接收用户对所述插件的选择操作;及
运行用户所选择的插件,实现实时推荐。
可选地,对至少一个所述插件进行单独修改,其中所述多个插件之间相互独立;
根据所述修改更新所述插件及利用所述插件组装成的实时推荐系统。
可选地,所述多个插件包括:日志导入插件、AB测试插件、指标评价插件、实时推荐插件。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有插件化实时推荐程序,所述插件化实时推荐程序被处理器执行时实现如上述的插件化实时推荐方法的步骤。
本发明提出的插件化实时推荐方法、服务器及计算机可读存储介质,能够在具备完整的实时推荐系统功能的基础上,将各部分功能进行插件化,每个插件之间相互独立,也能够相互合作,实现更高程度的解耦。开发人员只需要在交互界面拖拽插件就能轻松的组装符合业务需要的实时推荐系统。不仅能够提高实时推荐系统的可复用性,而且每个功能成为了单独的插件模块,在维护过程中,开发人员只需要关注具体的插件模块即可,大大提高了可维护性,降低了维护成本。另外,该方法能够满足大部分实时推荐业务,能够较容易的实现产品化。
附图说明
图1为实现本发明各个实施例的一种应用环境架构图;
图2为本发明第一实施例提出的一种插件化实时推荐方法的流程图;
图3为本发明第二实施例提出的实时推荐插件进行实时推荐的流程图;
图4为本发明第三实施例提出的一种插件化实时推荐方法的流程图;
图5为本发明第四实施例提出的一种服务器的模块示意图;
图6为本发明第五实施例提出的一种插件化实时推荐程序的模块示意图;
图7为本发明第六实施例提出的一种插件化实时推荐程序的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
请参阅图1,图1为实现本发明各个实施例的一种应用环境架构图。本发明可应用于包括,但不仅限于,服务器2、客户端4、网络6的应用环境中。
其中,所述服务器2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该服务器2可以是独立的服务器,也可以是多个服务器所组成的服务器集群。
所述客户端4可以是移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置、车载装置等等的可移动设备,以及诸如数字TV、台式计算机、服务器等等的固定终端。
所述网络6可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。所述服务器2通过所述网络6分别与一个或多个所述客户端4通信连接,以进行数据传输和交互。例如,所述服务器2根据用户行为数据进行实时推荐,所述客户端4通过网络6从所述服务器2中获取实时推荐结果。
实施例一
如图2所示,本发明第一实施例提出一种插件化实时推荐方法,应用于所述服务器2中,该方法包括以下步骤:
S200,将实时推荐系统按功能划分多个插件。
具体地,将实时推荐系统进行插件化,按照实时推荐所需要实现的功能,将其划分为日志导入插件、AB测试插件、指标评价插件、实时推荐插件。所述各个插件之间相互独立,能够分别维护,并且具有无状态特性,能够应用于不同的实时推荐场景。
S202,对每个插件进行设置。
具体地,根据每个插件需要实现的功能,对每个插件进行设置。其中:
所述日志导入插件的主要功能是自动将实时日志数据从Apache Flume日志收集系统中导入到Apache Kafka消息中间件,所述Kafka的主题(topic)可以由开发人员进行自定义,且该插件能够自动识别所定义的topic并检验其合法性。
所述AB测试插件的主要功能是对Kafka中的用户实时行为数据所在的第一主题(topicA)进行分流为两股流量,这两股流量分别进入到Kafka的分支第二主题(topicB)和第三主题(topicC)中,所述topicA、topicB和topicC的名称是可以由开发人员配置,并由该插件检验各个topic的合法性。
所述指标评价插件的主要功能是对当前流量进行指标评价,指标计算主要基于所述用户实时行为数据,所述行为一般包括浏览、点击和消费等。具体地,该插件具备选择指标与创建指标两大功能,实现方式上采用Storm实时统计,并给出请求API地址,能够被外部通过分布式远程过程调用(Distributed Remote Procedure Call,DRPC)访问。同时,为了提高插件的通用性,提供自定义指标功能。在本实施例中,默认指标不能够被增加、删除或修改,但是属于某个推荐业务关联(使用推荐id)的自定义指标可以被增加、删除或修改。
所述实时推荐插件的主要功能是根据从Kafka获取的所述用户实时行为数据对离线的推荐结果进行过滤和混合算法的推荐结果数据合并。该插件使用Storm进行实时推荐的响应以及离线行为的过滤和排序。所述实时推荐插件进行实时推荐的具体流程参阅下述第三实施例所述,在此不再赘述。
S204,接收用户对插件的选择操作。
具体地,由于已将完整的实时推荐系统的功能进行通用模块化,划分为多个插件,因此,用户可以根据业务需要实现的功能选择所需的插件组装所述实时推荐系统。在本实施例中,用户只需要在交互界面拖拽各个插件就能选择所需的插件,所述服务器2接收用户的选择操作。
S206,运行用户所选择的插件,实现实时推荐。
具体地,根据接收到的用户的所述选择操作,获取所选择的的插件对应的内容,以完成所述实时推荐系统的组装,从而针对所述用户实时行为数据对用户进行实时推荐。
本实施例提出的插件化实时推荐方法,可以在具备完整的实时推荐系统功能的基础上,将各部分功能进行插件化,每个插件之间相互独立,也能够相互合作,实现更高程度的解耦。开发人员只需要在交互界面拖拽插件就能轻松的组装符合业务需要的实时推荐系统。不仅能够提高实时推荐系统的可复用性,而且每个功能成为了单独的插件模块,在维护过程中,开发人员只需要关注具体的插件模块即可,大大提高了可维护性,降低了维护成本。另外,该方法能够满足大部分实时推荐业务,能够较容易的实现产品化。
实施例二
如图3所示,本发明第二实施例为所述实时推荐插件进行实时推荐的流程示意图。
该实时推荐流程包括以下步骤:
S300,从Kafka中获取所述用户实时行为数据。
具体地,Storm利用Kafka类型的Spout数据源从Kafka的topic中读取所述用户实时行为数据。此处对于所述topic要求如下:
行为数据格式为[rec_id:bhv];
物品数据格式为[rec_id:item]和[rec_id:item_conf];
用户数据格式为[rec_id:user]和[rec_id:user_conf]。
S302,统计用户浏览量、物品访问量,将用户发生行为的物品列表更新到HBase数据库中。
具体地,从所述用户实时行为数据中抽取用户数据、物品数据及行为数据,将Count值和物品列表缓存到Redis中,Redis的key前缀为recommend:app_name:rec_id。然后定时将Redis的数据更新到HBase数据库中。
S304,判断是否存在推荐结果合并表(MergeREC_SET),以确定推荐结果的生成方式。
具体地,根据用户输入的合并参数isMerge,首先判断HBase数据库中表名前缀包含推荐id的表中是否存在推荐合并表MergeREC_SET。若存在且isMerge为true则针对MergeREC_SET进行后续处理;若不存在且isMerge为false则对所有的REC_SET进行后续处理;其他情况则报错。然后根据isMerge情况生成DRPC名称,若isMerge为true,则生成唯一DRPC名称;若isMerge为false,则生成与REC_SET数量对应的DRPC名称。
S306,对用户已经发生过行为的物品进行过滤降权。
具体地,根据用户的实时行为进行过滤降权,过滤规则如下:过滤用户已经产生过行为的物品;过滤某些质量很差的物品,如评论较差。
S308,对过滤降权后的结果进行重新排名,得到最终的推荐结果。
具体地,经过排名可以提升用户的满意度。排名方式包括:新颖性排名,即热门物品降权处理;用户负反馈行为物品的降权处理。从经过所述排名后的物品中可以取出Top-N列表,得到最终的推荐结果,更新到最终的推荐结果表(FINAL_REC_SET)中。
所述客户端4可以通过DRPC获取最终的推荐结果。DRPC名称为应用名+推荐id。如果不存在MergeREC_SET,则DRPC名称为应用名+推荐名+算法名。通过不同的DRPC,开发人员能够决定是使用混合推荐算法生成的MergeREC_SET还是单独推荐算法生成的REC_SET。
实施例三
如图4所示,本发明第三实施例提出一种插件化实时推荐方法。在第三实施例中,所述插件化实时推荐方法的步骤S400-S406与第一实施例的步骤S200-S206相类似,区别在于该方法还包括步骤S408-S410。
该方法包括以下步骤:
S400,将实时推荐系统按功能划分多个插件。
具体地,将实时推荐系统进行插件化,按照实时推荐所需要实现的功能,将其划分为日志导入插件、AB测试插件、指标评价插件、实时推荐插件。所述各个插件之间相互独立,能够分别维护,并且具有无状态特性,能够应用于不同的实时推荐场景。
S402,对每个插件进行设置。
具体地,根据每个插件需要实现的功能,对每个插件进行设置。其中:
所述日志导入插件的主要功能是自动将实时日志数据从Apache Flume日志收集系统中导入到Apache Kafka消息中间件,所述Kafka的主题(topic)可以由开发人员进行自定义,且该插件能够自动识别所定义的topic并检验其合法性。
所述AB测试插件的主要功能是对Kafka中的用户实时行为数据所在的第一主题(topicA)进行分流为两股流量,这两股流量分别进入到Kafka的分支第二主题(topicB)和第三主题(topicC)中,所述topicA、topicB和topicC的名称是可以由开发人员配置,并由该插件检验各个topic的合法性。
所述指标评价插件的主要功能是对当前流量进行指标评价,指标计算主要基于所述用户实时行为数据,所述行为一般包括浏览、点击和消费等。具体地,该插件具备选择指标与创建指标两大功能,实现方式上采用Storm实时统计,并给出请求API地址,能够被外部通过分布式远程过程调用(Distributed Remote Procedure Call,DRPC)访问。同时,为了提高插件的通用性,提供自定义指标功能。在本实施例中,默认指标不能够被增加、删除或修改,但是属于某个推荐业务关联(使用推荐id)的自定义指标可以被增加、删除或修改。
所述实时推荐插件的主要功能是根据从Kafka获取的所述用户实时行为数据对离线的推荐结果进行过滤和混合算法的推荐结果数据合并。该插件使用Storm进行实时推荐的响应以及离线行为的过滤和排序。所述实时推荐插件进行实时推荐的具体流程参阅上述第三实施例所述,在此不再赘述。
S404,接收用户对插件的选择操作。
具体地,由于已将完整的实时推荐系统的功能进行通用模块化,划分为多个插件,因此,用户可以根据业务需要实现的功能选择所需的插件组装所述实时推荐系统。在本实施例中,用户只需要在交互界面拖拽各个插件就能选择所需的插件,所述服务器2接收用户的选择操作。
S406,运行用户所选择的插件,实现实时推荐。
具体地,根据接收到的用户的所述选择操作,获取所选择的的插件对应的内容,以完成所述实时推荐系统的组装,从而针对所述用户实时行为数据对用户进行实时推荐。
S408,对至少一个所述插件进行单独修改。
具体地,由于每个插件是独立的模块,因此可以分别进行修改,而不需修改整个系统。开发人员可以根据需要选择对一个或多个所述插件进行修改,所述服务器2接收所述修改。
S410,根据所述修改更新所述插件及利用所述插件组装成的实时推荐系统。
具体地,当接收到开发人员对某一个或多个插件的修改时,对该插件进行相应更新。当得到更新后的所述插件后,通过运行更新后的所述插件,使得利用所述插件组装成的实时推荐系统也可以实现对应更新。由于所述实时推荐系统的每个功能成为了单独的插件模块,在维护过程中,开发人员只需要关注具体的插件模块即可,大大提高了可维护性,降低了维护成本。
实施例四
如图5所示,本发明第四实施例提出一种服务器2。所述服务器2包括存储器20、处理器22和插件化实时推荐程序28。
其中,所述存储器20至少包括一种类型的可读存储介质,用于存储安装于所述服务器2的操作系统和各类应用软件,例如插件化实时推荐程序28的程序代码等。此外,所述存储器20还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述服务器2的总体操作。本实施例中,所述处理器22用于运行所述存储器20中存储的程序代码或者处理数据,例如运行所述插件化实时推荐程序28等。
实施例五
如图6所示,本发明第五实施例提出一种插件化实时推荐程序28。在本实施例中,所述插件化实时推荐程序28包括:
划分模块800,用于将实时推荐系统按功能划分多个插件。
具体地,将实时推荐系统进行插件化,按照实时推荐所需要实现的功能,将其划分为日志导入插件、AB测试插件、指标评价插件、实时推荐插件。所述各个插件之间相互独立,能够分别维护,并且具有无状态特性,能够应用于不同的实时推荐场景。
设置模块802,用于对每个插件进行设置。
具体地,根据每个插件需要实现的功能,对每个插件进行设置。其中:
所述日志导入插件的主要功能是自动将实时日志数据从Apache Flume日志收集系统中导入到Apache Kafka消息中间件,所述Kafka的主题(topic)可以由开发人员进行自定义,且该插件能够自动识别所定义的topic并检验其合法性。
所述AB测试插件的主要功能是对Kafka中的用户实时行为数据所在的第一主题(topicA)进行分流为两股流量,这两股流量分别进入到Kafka的分支第二主题(topicB)和第三主题(topicC)中,所述topicA、topicB和topicC的名称是可以由开发人员配置,并由该插件检验各个topic的合法性。
所述指标评价插件的主要功能是对当前流量进行指标评价,指标计算主要基于所述用户实时行为数据,所述行为一般包括浏览、点击和消费等。具体地,该插件具备选择指标与创建指标两大功能,实现方式上采用Storm实时统计,并给出请求API地址,能够被外部通过DRPC访问。同时,为了提高插件的通用性,提供自定义指标功能。在本实施例中,默认指标不能够被增加、删除或修改,但是属于某个推荐业务关联(使用推荐id)的自定义指标可以被增加、删除或修改。
所述实时推荐插件的主要功能是根据从Kafka获取的所述用户实时行为数据对离线的推荐结果进行过滤和混合算法的推荐结果数据合并。该插件使用Storm进行实时推荐的响应以及离线行为的过滤和排序。所述实时推荐插件可以实现下述实时推荐流程:
(1)从Kafka中获取所述用户实时行为数据。
具体地,Storm利用Kafka类型的Spout数据源从Kafka的topic中读取所述用户实时行为数据。此处对于所述topic要求如下:
行为数据格式为[rec_id:bhv];
物品数据格式为[rec_id:item]和[rec_id:item_conf];
用户数据格式为[rec_id:user]和[rec_id:user_conf]。
(2)统计用户浏览量、物品访问量,将用户发生行为的物品列表更新到HBase数据库中。
具体地,从所述用户实时行为数据中抽取用户数据、物品数据及行为数据,将Count值和物品列表缓存到Redis中,Redis的key前缀为recommend:app_name:rec_id。然后定时将Redis的数据更新到HBase数据库中。
(3)判断是否存在推荐结果合并表(MergeREC_SET),以确定推荐结果的生成方式。
具体地,根据用户输入的合并参数isMerge,首先判断HBase数据库中表名前缀包含推荐id的表中是否存在推荐合并表MergeREC_SET。若存在且isMerge为true则针对MergeREC_SET进行后续处理;若不存在且isMerge为false则对所有的REC_SET进行后续处理;其他情况则报错。然后根据isMerge情况生成DRPC名称,若isMerge为true,则生成唯一DRPC名称;若isMerge为false,则生成与REC_SET数量对应的DRPC名称。
(4)对用户已经发生过行为的物品进行过滤降权。
具体地,根据用户的实时行为进行过滤降权,过滤规则如下:过滤用户已经产生过行为的物品;过滤某些质量很差的物品,如评论较差。
(5)对过滤降权后的结果进行重新排名,得到最终的推荐结果。
具体地,经过排名可以提升用户的满意度。排名方式包括:新颖性排名,即热门物品降权处理;用户负反馈行为物品的降权处理。从经过所述排名后的物品中可以取出Top-N列表,得到最终的推荐结果,更新到最终的推荐结果表(FINAL_REC_SET)中。
所述客户端4可以通过DRPC获取最终的推荐结果。DRPC名称为应用名+推荐id。如果不存在MergeREC_SET,则DRPC名称为应用名+推荐名+算法名。通过不同的DRPC,开发人员能够决定是使用混合推荐算法生成的MergeREC_SET还是单独推荐算法生成的REC_SET。
接收模块804,用于接收用户对插件的选择操作。
具体地,由于已将完整的实时推荐系统的功能进行通用模块化,划分为多个插件,因此,用户可以根据业务需要实现的功能选择所需的插件组装所述实时推荐系统。在本实施例中,用户只需要在交互界面拖拽各个插件就能选择所需的插件,所述接收模块804接收用户的选择操作。
运行模块806,用于运行用户所选择的插件,实现实时推荐。
具体地,根据接收到的用户的所述选择操作,获取所选择的的插件对应的内容,以完成所述实时推荐系统的组装,从而针对所述用户实时行为数据对用户进行实时推荐。
实施例六
如图7所示,本发明第六实施例提出一种插件化实时推荐程序28。在本实施例中,所述插件化实时推荐程序28除了包括第五实施例中的所述划分模块800、设置模块802、接收模块804、运行模块806之外,还包括修改模块808和更新模块810。
所述修改模块808,用于对至少一个所述插件进行单独修改。
具体地,由于每个插件是独立的模块,因此可以分别进行修改,而不需修改整个系统。开发人员可以根据需要选择对一个或多个所述插件进行修改,所述修改模块808接收所述修改。
所述更新模块810,用于根据所述修改更新所述插件及利用所述插件组装成的实时推荐系统。
具体地,当接收到开发人员对某一个或多个插件的修改时,对该插件进行相应更新。当得到更新后的所述插件后,通过运行更新后的所述插件,使得利用所述插件组装成的实时推荐系统也可以实现对应更新。由于所述实时推荐系统的每个功能成为了单独的插件模块,在维护过程中,开发人员只需要关注具体的插件模块即可,大大提高了可维护性,降低了维护成本。
实施例七
本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有插件化实时推荐程序,所述插件化实时推荐程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的插件化实时推荐方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (5)

1.一种插件化实时推荐方法,应用于服务器中,其特征在于,所述方法包括步骤:
将实时推荐系统按功能划分多个插件;
对每个插件进行设置;
接收用户对插件的选择操作,所述选择操作通过在交互界面拖拽各个所述插件实现;及
运行用户所选择的插件,实现实时推荐;
所述多个插件包括:日志导入插件、AB测试插件、指标评价插件、实时推荐插件;
所述日志导入插件用于自动将实时日志数据从Apache Flume日志收集系统中导入到Apache Kafka消息中间件;
所述AB测试插件用于针对Kafka的主题topic,对Kafka中的用户实时行为数据所在的第一主题进行分流为两股流量,这两股流量分别进入到Kafka的分支第二主题和第三主题中;
所述指标评价插件用于对当前流量进行指标评价,指标计算主要基于所述用户实时行为数据,所述行为包括浏览、点击和消费,该插件具备选择指标与创建指标两大功能,实现方式上采用Storm实时统计,并给出请求API地址,能够被外部通过分布式远程过程调用访问,其中,默认指标不能够被增加、删除或修改,属于推荐业务关联的自定义指标可以被增加、删除或修改;
所述实时推荐插件用于根据从Kafka获取的所述用户实时行为数据对离线的推荐结果进行过滤以及混合算法的推荐结果数据合并;
所述实时推荐插件进行实时推荐的流程包括:
Storm利用Kafka类型的Spout数据源从Kafka的topic中读取所述用户实时行为数据,其中对于所述topic要求如下:
行为数据格式为[rec_id:bhv];
物品数据格式为[rec_id:item]和[rec_id:item_conf];
用户数据格式为[rec_id:user]和[rec_id:user_conf];
从所述用户实时行为数据中抽取用户数据、物品数据及行为数据,将Count值和物品列表缓存到Redis中,Redis的key前缀为recommend:app_name:rec_id,然后定时将Redis的数据更新到HBase数据库中;
根据用户输入的合并参数isMerge,首先判断HBase数据库中表名前缀包含推荐id的表中是否存在推荐合并表MergeREC_SET,若存在且isMerge为true则针对MergeREC_SET进行后续处理;若不存在且isMerge为false则对所有的REC_SET进行后续处理;其他情况则报错;然后根据isMerge情况生成DRPC名称,若isMerge为true,则生成唯一DRPC名称;若isMerge为false,则生成与REC_SET数量对应的DRPC名称;
对用户已经发生过行为的物品进行过滤降权,过滤规则如下:过滤用户已经产生过行为的物品;
对过滤降权后的结果进行重新排名,得到最终的推荐结果,其中,排名方式包括:热门物品降权处理、用户负反馈行为物品的降权处理。
2.根据权利要求1所述的插件化实时推荐方法,其特征在于,所述方法还包括步骤:
对至少一个所述插件进行单独修改,其中所述多个插件之间相互独立;
根据所述修改更新所述插件及利用所述插件组装成的实时推荐系统。
3.一种服务器,其特征在于,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的插件化实时推荐程序,所述插件化实时推荐程序被所述处理器执行时实现如下步骤:
将实时推荐系统按功能划分多个插件;
对每个插件进行设置;
接收用户对所述插件的选择操作,所述选择操作通过在交互界面拖拽各个所述插件实现;及
运行用户所选择的插件,实现实时推荐;
所述多个插件包括:日志导入插件、AB测试插件、指标评价插件、实时推荐插件;
所述日志导入插件用于自动将实时日志数据从Apache Flume日志收集系统中导入到Apache Kafka消息中间件;
所述AB测试插件用于针对Kafka的主题topic,对Kafka中的用户实时行为数据所在的第一主题进行分流为两股流量,这两股流量分别进入到Kafka的分支第二主题和第三主题中;
所述指标评价插件用于对当前流量进行指标评价,指标计算主要基于所述用户实时行为数据,所述行为包括浏览、点击和消费,该插件具备选择指标与创建指标两大功能,实现方式上采用Storm实时统计,并给出请求API地址,能够被外部通过分布式远程过程调用访问,其中,默认指标不能够被增加、删除或修改,属于推荐业务关联的自定义指标可以被增加、删除或修改;
所述实时推荐插件用于根据从Kafka获取的所述用户实时行为数据对离线的推荐结果进行过滤以及混合算法的推荐结果数据合并;
所述实时推荐插件进行实时推荐的流程包括:
Storm利用Kafka类型的Spout数据源从Kafka的topic中读取所述用户实时行为数据,其中对于所述topic要求如下:
行为数据格式为[rec_id:bhv];
物品数据格式为[rec_id:item]和[rec_id:item_conf];
用户数据格式为[rec_id:user]和[rec_id:user_conf];
从所述用户实时行为数据中抽取用户数据、物品数据及行为数据,将Count值和物品列表缓存到Redis中,Redis的key前缀为recommend:app_name:rec_id,然后定时将Redis的数据更新到HBase数据库中;
根据用户输入的合并参数isMerge,首先判断HBase数据库中表名前缀包含推荐id的表中是否存在推荐合并表MergeREC_SET,若存在且isMerge为true则针对MergeREC_SET进行后续处理;若不存在且isMerge为false则对所有的REC_SET进行后续处理;其他情况则报错;然后根据isMerge情况生成DRPC名称,若isMerge为true,则生成唯一DRPC名称;若isMerge为false,则生成与REC_SET数量对应的DRPC名称;
对用户已经发生过行为的物品进行过滤降权,过滤规则如下:过滤用户已经产生过行为的物品;
对过滤降权后的结果进行重新排名,得到最终的推荐结果,其中,排名方式包括:热门物品降权处理、用户负反馈行为物品的降权处理。
4.根据权利要求3所述的服务器,其特征在于,所述插件化实时推荐程序被所述处理器执行时还实现步骤:
对至少一个所述插件进行单独修改,其中所述多个插件之间相互独立;
根据所述修改更新所述插件及利用所述插件组装成的实时推荐系统。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有插件化实时推荐程序,所述插件化实时推荐程序被处理器执行时实现如权利要求1至2中任一项所述的插件化实时推荐方法的步骤。
CN201810539080.6A 2018-05-30 2018-05-30 插件化实时推荐方法、服务器及计算机可读存储介质 Active CN108762846B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810539080.6A CN108762846B (zh) 2018-05-30 2018-05-30 插件化实时推荐方法、服务器及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810539080.6A CN108762846B (zh) 2018-05-30 2018-05-30 插件化实时推荐方法、服务器及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN108762846A CN108762846A (zh) 2018-11-06
CN108762846B true CN108762846B (zh) 2024-02-09

Family

ID=64004096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810539080.6A Active CN108762846B (zh) 2018-05-30 2018-05-30 插件化实时推荐方法、服务器及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108762846B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109670913B (zh) * 2018-12-14 2021-02-05 泰康保险集团股份有限公司 为平台的租户提供服务的方法、装置、介质及电子设备
CN110580187B (zh) * 2019-07-30 2023-02-28 福建天泉教育科技有限公司 一种在线学习课程的实现方法及终端
CN111428128B (zh) * 2020-02-20 2021-09-10 北京达佳互联信息技术有限公司 可插拔推荐系统的生成方法、服务推荐方法、装置及设备
CN111708711B (zh) * 2020-06-23 2023-04-07 湖南快乐阳光互动娱乐传媒有限公司 Ab测试方法及装置、存储介质及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615778A (zh) * 2015-02-27 2015-05-13 浪潮集团有限公司 一种避免数据重抽的方法和装置及系统
CN105488216A (zh) * 2015-12-17 2016-04-13 上海中彦信息科技有限公司 基于隐式反馈协同过滤算法的推荐系统及方法
CN105512183A (zh) * 2015-11-24 2016-04-20 中国科学院重庆绿色智能技术研究院 一种基于用户自主选择的个性化推荐方法和系统
CN106055330A (zh) * 2016-05-31 2016-10-26 深圳卡尔拓客科技有限公司 一种应用程序的管理方法及系统
CN106294439A (zh) * 2015-05-27 2017-01-04 北京广通神州网络技术有限公司 一种数据推荐系统及其数据推荐方法
CN106874425A (zh) * 2017-01-23 2017-06-20 福州大学 基于Storm的实时关键词近似搜索算法
CN106970949A (zh) * 2017-03-03 2017-07-21 阿里巴巴集团控股有限公司 一种信息推荐方法及装置
CN107067289A (zh) * 2016-10-28 2017-08-18 广东亿迅科技有限公司 一种个性化营销推荐系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014004735A1 (en) * 2012-06-26 2014-01-03 Medio Systems, Inc. Recommendations system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104615778A (zh) * 2015-02-27 2015-05-13 浪潮集团有限公司 一种避免数据重抽的方法和装置及系统
CN106294439A (zh) * 2015-05-27 2017-01-04 北京广通神州网络技术有限公司 一种数据推荐系统及其数据推荐方法
CN105512183A (zh) * 2015-11-24 2016-04-20 中国科学院重庆绿色智能技术研究院 一种基于用户自主选择的个性化推荐方法和系统
CN105488216A (zh) * 2015-12-17 2016-04-13 上海中彦信息科技有限公司 基于隐式反馈协同过滤算法的推荐系统及方法
CN106055330A (zh) * 2016-05-31 2016-10-26 深圳卡尔拓客科技有限公司 一种应用程序的管理方法及系统
CN107067289A (zh) * 2016-10-28 2017-08-18 广东亿迅科技有限公司 一种个性化营销推荐系统
CN106874425A (zh) * 2017-01-23 2017-06-20 福州大学 基于Storm的实时关键词近似搜索算法
CN106970949A (zh) * 2017-03-03 2017-07-21 阿里巴巴集团控股有限公司 一种信息推荐方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于 Kafka 和 Storm 的实时日志流处理系统的设计与实现;周敏菲;《中国优秀硕士学位论文全文数据库信息科技辑》;第17-31页 *
基于 Storm 实时日志分析存储系统的设计与实现;梁满;《中国优秀硕士学位论文全文数据库信息科技辑》;摘要 *
基于 Storm 的实时推荐系统研究与设计;贺翔宇;《中国优秀硕士学位论文全文数据库信息科技辑》;第7-19,40-44页 *

Also Published As

Publication number Publication date
CN108762846A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108762846B (zh) 插件化实时推荐方法、服务器及计算机可读存储介质
CN110221817B (zh) 一种数据召回模块及推荐系统
US9614798B2 (en) Method and an apparatus for distribution of a message
US20110258203A1 (en) Methods and systems for relationship characterization and utilization from a user's social networks
CN106789598B (zh) 基于社交关系链的公众号消息推送方法、装置及系统
CN106095789B (zh) 一种消息订阅管理装置及方法
CN102761609A (zh) 用于服务器的数据推送系统及数据推送方法
US20160308800A1 (en) Method and system for account recommendation
CN110557284A (zh) 基于客户端网关的数据聚合方法及装置
CN104253869A (zh) 一种黑名单共享方法、更新方法及装置
CN109033404A (zh) 日志数据处理方法、装置和系统
US20180060788A1 (en) System and method for attribute matching
CN103001855A (zh) 一种客户端和用户群划分和信息传递的方法
CN109714393A (zh) 一种应用程序推荐的方法及装置
CN105207881A (zh) 一种消息发送方法和设备
CN112351088A (zh) 一种cdn缓存方法、装置、计算机设备及存储介质
CN104468222A (zh) 上报日志信息的方法、装置及系统
CN109033190A (zh) 一种推荐信息的推送方法、装置及设备
AU2014203425B2 (en) Social workflow engine
CN105530244A (zh) 一种实现主控设备控制智能设备的方法和服务器
US11700221B2 (en) Rule-based annotation service in a cloud platform
CN106294417A (zh) 一种数据排序方法、装置及电子设备
CN114443943A (zh) 一种信息调度方法、装置、设备及计算机可读存储介质
CN110557351B (zh) 用于生成信息的方法和装置
CN111078321A (zh) 一种根据用户使用习惯动态快速加载模块的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant