产品推荐系统
文献发布时间:2023-06-19 13:29:16
技术领域
本申请涉及人工智能技术领域,特别是涉及一种产品推荐系统。
背景技术
随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品。这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的消费者不断流失。为了解决这些问题,个性化产品推荐系统应运而生。个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。
具体来说,推荐系统是根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户的个性化信息推荐系统。和搜索引擎相比,推荐系统通过研究用户的兴趣偏好,进行个性化计算,由系统发现用户的兴趣点,从而引导用户发现自己的信息需求。一个好的推荐系统不仅能为用户提供个性化的服务,还能和用户之间建立密切关系,让用户对推荐产生依赖。
目前,各行业的推荐系统各式各样,并没有统一的项目架构规范,不同公司有着不同的项目架构,随着当前行业公司对推荐效果的要求越来越高,使得产品推荐系统随着推荐场景的变化而变得日益复杂,通常需要对行业具备一定的深入了解的专家,才能做好产品推荐系统的运营,如此,大大削弱了系统的维护度。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高系统维护度的产品推荐系统。
一种产品推荐系统,系统包括规则管理组件、规则存储组件以及产品推荐组件,产品推荐组件包括数据提供模块、算法逻辑模块和数据处理模块;
规则管理组件用于当接收到用户端发送的模型配置消息时,推送模型配置界面数据至用户端,接收用户端反馈的用于配置推荐模型的规则数据,将规则数据录入规则存储组件;
产品推荐组件用于当接收到用户访问请求时,识别用户访问请求携带的场景标识,根据场景标识,读取规则存储组件中与场景标识对应的目标推荐模型以及目标规则数据,并调用对应的场景API bean执行预设的产品推荐流程,确定待推荐产品;
其中,调用对应的场景API bean执行预设的产品推荐流程,确定待推荐产品包括:通过数据提供模块采集实现产品推荐所需的数据,通过算法逻辑模块从目标规则数据中筛选出可用规则,根据可用规则和数据提供模块采集的数据,执行目标推荐模型,筛选出初始待推荐产品,通过数据处理模块对筛选出的初始待推荐产品进行产品校验,确定待推荐产品。
在一个实施例中,产品推荐组件还包括API(Application ProgrammingInterface,应用程序编程接口)网关模块,API网关模块用于根据场景标识,将对应的场景映射到场景API bean。
在一个实施例中,产品推荐组件还包括装饰模块,装饰模块用于获取待推荐产品的产品展示要素,添加产品展示要素至待推荐产品。
在一个实施例中,场景API bean通过以下方式得到:启动spring,加载预设配置文件,根据预设配置文件中的配置数据,将数据提供模块、算法逻辑模块、数据处理模块以及装饰模块对应注入至场景标识对应的场景API bean中,实例化出场景API bean。
在一个实施例中,产品推荐组件还包括标语推荐模块,标语推荐模块用于获取与待推荐产品对应的推荐标语,预测推荐标语的得分,根据推荐标语的得分筛选出待推荐产品的最优推荐标语。
在一个实施例中,标语推荐模块包括标语管理单元、标语库和标语引擎;
标语管理单元用于当接收到用户端发送的推荐标语配置消息时,推送推荐标语配置界面数据至用户端,接收用户端反馈的已配置的推荐标语,将已配置的推荐标语录入标语库,标语引擎用于读取标语库中与待推荐产品对应的推荐标语,预测推荐标语的得分,根据推荐标语的得分筛选出待推荐产品的最优推荐标语。
在一个实施例中,标语引擎还用于获取用户实时行为数据和用户历史行为数据,根据用户实时行为数据计算推荐标语的标语实时特征,并根据用户历史行为数据计算推荐标语的标语离线特征,将标语实时特征和标语离线特征输入至已训练的标语得分预测模型,得到推荐标语的标语得分预测值,根据标语得分预测值筛选出最优推荐标语。
在一个实施例中,系统还包括展示组件,展示组件用于展示待推荐产品和待推荐产品的产品展示要素,产品展示要素包括最优推荐标语。
在一个实施例中,系统还包括数据获取组件,数据提供模块通过数据获取组件访问大数据平台,以采集实现产品推荐所需的数据。
在一个实施例中,规则管理组件还用于配置AB实验,AB实验用于验证已配置的推荐模型的效果。
上述产品推荐系统,规则管理组件可用于配置推荐模型,实现推荐模型的可配置化,便于运营人员对系统进行修改和完善,并且,一方面,在产品推荐组件上定义分层结构包括定义数据提供模块、算法逻辑模块、数据处理模块,将大组件拆分成小模块,使得产品推荐系统具备模块化扩展性高的特点;另一方面,调用对应的场景API bean执行预设的产品推荐流程,以控制数据提供模块、算法逻辑模块以及数据处理模块相互协同处理,实现产品推荐,综上所述,通过产品推荐系统模块化的系统架构,能够提高系统的维护度。
附图说明
图1为一个实施例中产品推荐系统的结构框图;
图2为另一个实施例中产品推荐系统的结构框图;
图3为另一个实施例中产品推荐系统的结构框图;
图4为另一个实施例中产品推荐系统的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
当前的各行业的推荐系统各式各样,并没有统一的项目架构规范,不同公司有着不同的项目架构,导致推荐系统随着推荐场景的变化日益复杂,最终导致系统无法高效运转发展。除此之外,当前大多推荐模型非常复杂,涉及到的特征众多,往往给用户推荐了物品,无法给准确的推荐理由。比如在社交系统,可能是用户好友浏览过的结合了热度。因此,在当前行业公司产品推荐系统只是推荐大量物品,很少给出用户推荐理由。这样不仅影响用户体验的同时,还减弱用户信任度。
在一个实施例中,如图1所示,提供了一种产品推荐系统,所述系统包括:规则管理组件200、规则存储组件220以及产品推荐组件240,产品推荐组件240包括数据提供模块400、算法逻辑模块420、数据处理模块440和装饰模块460;
规则管理组件200用于当接收到用户端发送的模型配置消息时,推送模型配置界面数据至用户端,接收用户端反馈的用于配置推荐模型的规则数据,将规则数据录入规则存储组件220;
产品推荐组件240用于当接收到用户访问请求时,识别用户访问请求携带的场景标识,根据场景标识,读取规则存储组件220中与场景标识对应的目标推荐模型以及目标规则数据,并调用对应的场景API bean执行预设的产品推荐流程,确定待推荐产品;
其中,调用对应的场景API bean执行预设的产品推荐流程,确定待推荐产品包括:通过数据提供模块400采集实现产品推荐所需的数据,通过算法逻辑模块420从目标规则数据中筛选出可用规则,根据可用规则和数据提供模块400采集的数据,执行目标推荐模型,筛选出初始待推荐产品,通过数据处理模块对筛选出的初始待推荐产品进行产品校验,确定待推荐产品。
在实际应用中,开发人员针对产品推荐系统,在常用的项目分层service,bean,dao层的基础上,结合产品推荐系统特性,将项目进行了分层,具体的,可以是针对产品推荐系统的每个分层设计以下几个层级:数据提供层(dataProvider),算法逻辑层(algorithm)和数据处理层(handler)。本实施例中,可以是针对产品推荐组件进行分层,设计了数据提供模块,算法逻辑模块和数据处理层模块。如图2所示,在另一个实施例中,还可以是针对产品推荐组件设计数据提供模块,算法逻辑模块、数据处理层模块和装饰模块这4个模块。其中,装饰模块用于获取产品展示要素。
本实施例中,规则管理组件200可以是规则管理平台,规则存储组件220可以是规则库,产品推荐组件240可以包括推荐引擎242,其中,推荐引擎242包括数据提供模块400(provider模块),算法逻辑模块420(algorithm模块),可视为规则引擎,数据处理模块440(handler模块)和装饰模块460(decorater模块)。产品推荐系统中可以定义多种推荐模型,其中,产品推荐系统中最基本的推荐模型就是基于流行度的推荐模型。具体实施时,运营人员通过规则管理平台配置推荐模型,并配置推荐模型的适用场景,将推荐模型对应的配置项(规则数据)录入规则库。一般来说,规则数据主要包括规则名称、推荐位、模型适用场景、生效时间、失效时间以及模型的算法数据等,其中,算法数据包括算法名称、初筛策略、排序因子和正负反馈等。
具体实施时,当接收到用户访问请求时,推荐引擎242识别用户访问请求携带的场景标识(即推荐位场景标识),根据场景标识,读取规则存储组件中与场景标识对应的目标推荐模型以及目标规则数据,并调用对应的场景API bean执行预设的产品推荐流程,确定待推荐产品。具体的,产品推荐流程可以是:首先,由provider模块获取执行预设产品推荐算法需要的数据,例如用户基础属性数据(包括用户所属用户类别)、用户行为数据(如最近浏览数据)、以及用户特征数据(如30天活跃用户)。然后,algorithm模块筛选出规则数据中的可用规则,根据可用规则和provider模块提供的数据,执行目标推荐模型(模型中包含),筛选初始待推荐产品,并对筛选出的待推荐产品进行排序,选取出TOPK产品。然后,handler模块对产品进行校验,包括产品状态校验和产品合规校验,例如避免推出售罄产品等,产品校验成功后,由decorater模块获取产品展示要素,例如产品利率,推荐语等,至此,确定了待推荐产品的内容。
上述产品推荐系统,规则管理组件可用于配置推荐模型,实现推荐模型的可配置化,便于运营人员对系统进行修改和完善,并且,一方面,在产品推荐组件上定义分层结构包括定义数据提供模块、算法逻辑模块、数据处理模块,将大组件拆分成小模块,使得产品推荐系统具备模块化扩展性高的特点;另一方面,调用对应的场景API bean执行预设的产品推荐流程,以控制数据提供模块、算法逻辑模块以及数据处理模块相互协同处理,实现产品推荐,综上所述,通过产品推荐系统模块化的系统架构,能够提高系统的维护度。
如图3所示,在一个实施例中,产品推荐组件240还包括API网关模块244,API网关模块244用于根据用户选择的场景标识,将对应的场景映射到相关联的场景API bean,调用场景API bean执行预设的产品推荐流程。
在本申请的产品推荐系统的架构中,产品推荐系统被拆分成为了多个小的服务系统提供出来,这些小的服务自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供Rest Api风格的接口来被H5,Android,IOS以及第三方应用程序调用。当外部应用访问产品推荐系统时,由于访问页面上包括来自不同服务系统的数据,因此,无法像传统单体应用一样依靠数据库的join查询来得到最终结果,因此就需要多次调用以检索数据。而这种做法很可能会引发严重的问题,如多次客户端请求导致用户体检不佳,缺乏封装导致前后端不协调,过分的拆分API,会导致客户端和服务端过度耦合,再加上移动端APP(Application,应用程序)的新版本迭代到每个手机用户时需要很久,这样会使后端很难更改服务的API。基于上述背景下,本实施例中,构建了API网关管理模块244,API网关管理模块负责请求路由、API组合和协议转换。具体的,用于根据用户选择的场景标识,将对应的场景映射到相关联的场景API bean,调用场景API bean执行预设的产品推荐流程。
具体实施时,来自外部客户端的所有API请求首先会先转到API网关,后者再将请求路由到相应的服务。具体的,API网关可使用API组合模式处理其他请求,调用多个服务并聚合结果。同时还可以在客户端友好的协议(例如HTTP)与客户端不友好的协议之间进行转换。在另一实施例中,除去反向代理这个功能外,API网关还提供了API组合的操作。以淘宝详情页为例,如果单独获取视频、商品价格、商品评论等信息,需要发多个请求(getVideo,getPrice,getComments),而有了API网关后,可以将API接口组合起来,通过一次请求(getItemDetail)来获取需要的信息,如此,可以极大的改善由于网络延时导致的差用户体验。本实施例中,通过API网关管理模块,可以简单、快速、低成本、低风险地实现内部系统集成、业务能力开放及业务能力变现。
在一个实施例中,场景API bean通过以下方式得到:启动spring,加载预设配置文件,根据预设配置文件中的配置数据,将数据提供模块、算法逻辑模块、数据处理模块以及装饰模块对应注入至场景标识对应的场景API bean中,实例化出场景API bean。
具体实施时,该产品推荐系统针对不同场景的推荐需求,通过配置文件的形式,新增或修改配置,使得spring可以通过依赖注入实例化出特定场景api。具体实施时,可以是启动spring项目,spring首先初始化基础模块bean(provider,algorithm,handler,decorater),然后加载系统的配置文件,配置指定每个API bean依赖的基础模块bean。Spring根据配置文件,将相应模块注入API bean中,以初始化出不同场景使用的API bean。本实施例中,通过配置文件的形式实例化出特定场景的api,以交付给不同的业务方,能够简化开发人员的工作难度,提高效率。
如图3所示,在一个实施例中,产品推荐组件240还包括标语推荐模块246,标语推荐模块246用于标语推荐模块用于获取与待推荐产品对应的推荐标语,预测推荐标语的得分,根据推荐标语的得分筛选出待推荐产品的最优推荐标语。
推荐标语又可称为口号标语或品牌口号,是用来传递有关品牌的描述性或说服性信息的短语。具体实施时,运营人员可以通过标语推荐模块246事先配置好推荐标语,然后,通过大数据平台,离线结合实时计算工具,为每个标语打分,针对不同的用户特征以及场景特征,为产品筛选出最优推荐标语,再将最优推荐标语发送给装饰模块460。本实施例中,通过为待推荐产品筛选出的最优推荐标语,可进一步为待推荐产品设置最优推荐标语,如此,在推荐待推荐产品的时候,能够给出准确的推荐理由,同时可起到宣传品牌精神以及反映产品定位等作用。
如图4所示,在一个实施例中,标语推荐模块246包括标语管理单元600、标语库620和标语引擎640;
标语管理单元600用于当接收到用户端发送的推荐标语配置消息时,推送推荐标语配置界面数据至用户端,接收用户端反馈的已配置的推荐标语,将已配置的推荐标语录入标语库620,标语引擎640用于读取标语库620中与待推荐产品对应的推荐标语,预测推荐标语的得分,根据推荐标语的得分筛选出待推荐产品的最优推荐标语。
本实施例中,标语管理单元可以是标语管理平台。具体实施时,由运营人员通过标语管理平台,为不同产品配置标语,包括配置关联推荐位、关联场景以及营销标签等,可以精确到具体产品,也可以通过产品特征圈定。运营人员于标语管理平台配置的复杂推荐模型相关的配置项存储在标语库。通过大数据平台,离线结合实时计算工具,为每个标语打分。标语引擎针对不同人特征,以及场景特征,为产品设置最优推荐标语。本实施例中,针对标语推荐模块246进一步细分,将其分解为标语管理单元、标语库和标语引擎,提高系统的可扩展性和灵活性。
在一个实施例中,标语引擎640还用于获取用户实时行为数据和用户历史行为数据,根据用户实时行为数据计算推荐标语的标语实时特征,并根据用户历史行为数据计算推荐标语的标语离线特征,将标语实时特征和标语离线特征输入至已训练的标语得分预测模型,得到推荐标语的标语得分预测值,根据标语得分预测值筛选出最优推荐标语。
具体的,标语实时特征的计算可以是根据用户实时行为数据,计算标语实时特征,例如浏览次数和总点击次数等。标语离线特征计算可以是根据用户历史行为数据,计算标语历史特征,例如,历史浏览总次数和历史浏览评价时间。得到标语实时特征和标语离线特征之后,可以根据标语实时特征和标语离线特征,结合离线已训练的标语得分预测模型得到标语的预测得分,然后,选取得分最高的标语作为待推荐产品的最优推荐标语。更具体的,可以是利用海量的用户历史行为数据和实时行为数据,以及产品的多属性,训练目标模型,为用户推荐想要看到的产品,提升曝光点击率。其中,可利用flink实时获取用户行为数据,实现产品曝光的负反馈机制,提升推荐准确性。本实施中,依托大数据平台获取海量的用户行为数据,结合大数据平台工具,训练模型,可以为用户推荐想要的产品,并结合实时用户行为数据做出反馈。
如图3所示,在一个实施例中,系统还包括展示组件260,展示组件260用于展示待推荐产品和待推荐产品的产品展示要素,产品展示要素包括最优推荐标语。
具体实施时,展示组件260与产品推荐组件240进行通信,可以是获取产品推荐组件240确定的待推荐产品以及产品展示要素,然后,根据场景标识(即推荐位场景标识)将待推荐产品和产品展示要素展示于对应的区域。具体的,产品展示要素包括推荐标语,以及其他产品要素如产品利率等。
如图3所示,在一个实施例中,系统还包括数据获取组件280,数据提供模块400通过数据获取组件280访问大数据平台,以采集实现产品推荐所需的数据。
数据大平台的平台提供海量级大数据采集、传输、存储、管理、查询和分析的统一平台。如今,市面上可用的大数据框架很多,最流行的包括Hadoop,Spark以及Storm这三种。本实施例中,调用的大数据平台可以是Hadoop,Hadoop是目前世界上使用最广泛的大数据工具。通过数据获取组件调用Hadoop,利用Hive获取海量的用户历史行为数据和实时行为数据,以及产品的多属性,然后数据提供层根据业务需求抽取相应的数据。其中,Hive是一种底层封装了Hadoop的数据仓库处理工具,使用类SQL(Structured Query Language,结构化查询语言)的HiveSQL语言实现数据查询,所有hive的数据都存储在Hadoop兼容的文件系统(例如Amazon S3、HDFS)中,在Hadoop中用来处理结构化数据,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能,它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。可以将SQL语句转换为MapReduce任务进行运行。本实施例中,通过数据获取组件调用大数据平台,能够有效提高开发人员的效率。
在一个实施例中,规则管理组件200还用于配置AB实验,AB实验用于验证已配置的推荐模型的效果。
具体实施时,规则管理平台除了可供运营人员配置推荐模型之外,还可以供运营人员配置AB实验,以验证已配置的推荐模型的效果。AB实验又可称为AB测试,AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,予以正式采用。本实施例中,通过规则管理组件200配置AB实验,能够有效验证模型的效果,提高推荐模型的实用性和可操作性。
应该理解的是,虽然上述实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 重定向广告产品推荐用户装置和服务提供装置、包括该重定向广告产品推荐用户装置和服务提供装置的广告产品推荐系统、其控制方法以及其中记录有计算机程序的记录介质
- 产品推荐系统、产品推荐方法和程序