一种商品推荐方法、商品推荐系统及相关装置与流程

文档序号:33002907发布日期:2023-01-18 01:51阅读:38来源:国知局
一种商品推荐方法、商品推荐系统及相关装置与流程

1.本技术涉及大数据处理领域,特别涉及一种商品推荐方法、商品推荐系统及相关装置。


背景技术:

2.当前,主要是针对通用场景进行电商推荐,商品的召回和排序是基于平台全部商品,如果直接将其使用在私域店铺上,推荐系统往往会完全没考虑特定商铺用户粘性和用户细粒度行为数据问题,造成推荐效果不理想,最终导致用户流失和企业损失。


技术实现要素:

3.本技术的目的是提供一种商品推荐方法、商品推荐系统、计算机可读存储介质和电子设备,能够有效提高用户对推荐商品的点击量,从而提高商品购买力。
4.为解决上述技术问题,本技术提供一种商品推荐方法,具体技术方案如下:
5.从日志系统中获取用户实时浏览行为;
6.确定所述用户实时浏览行为对应的商品信息;所述商品信息包含字段及其对应字段值;
7.对所述商品信息按照所属用户id进行聚合分组,得到商品流式数据;
8.通过flink框架启用滚动窗口,并输出在所述滚动窗口时间内所述商品流式数据的统计结果;
9.将所述统计结果输入线上推荐系统,并根据所述线上推荐系统的输出结果得到所述用户id对应的推荐商品。
10.可选的,从日志系统中获取用户实时浏览行为之后,还包括:
11.对所述用户实时浏览行为进行反序列化处理,得到字典格式的用户实时浏览行为数据,并对所述用户实时浏览行为数据按照字典的键值进行取值。
12.可选的,还包括:
13.创建执行环境;
14.基于flink框架配置所述执行环境的系统参数,并设定消费数据的起始时间;所述系统参数包括消息生产者的名称、消息消费者所在服务信息和消息序列化方式;
15.确定所述消费数据的时间处理类型;所述时间处理类型包括事件创建时间类型、算子操作时间类型和数据进入flink时间类型。
16.可选的,获取日志系统中所述用户实时浏览行为对应的商品信息之前,还包括:
17.利用日志采集系统获取私域用户的应用点击数据;
18.将所述应用点击数据通过日志传输管道写入消息队列;
19.根据所述消息队列生成所述日志系统。
20.可选的,还包括:
21.根据生产消息速度和消费消息速度确定所述日志系统中kafka消息队列的分区数
量。
22.可选的,将所述统计结果输入线上推荐系统,并根据所述线上推荐系统的输出结果得到所述用户id对应的推荐商品之前,还包括:
23.获取基础模型;
24.对所述基础模型进行样本训练,得到推荐模型;
25.提取所述用户实时浏览行为对应的用户实时特征;
26.利用所述用户实时特征对所述推荐模型进行实时更新,得到所述线上推荐系统。
27.可选的,通过flink框架启用滚动窗口,并输出在所述滚动窗口时间内所述商品流式数据的统计结果之前,还包括:
28.设置所述滚动窗口的窗口时长,或,根据窗口时长修改指令调整所述滚动窗口的窗口时长。
29.本技术还提供一种商品推荐系统,包括:
30.行为获取模块,用于从日志系统中获取用户实时浏览行为;
31.商品信息确定模块,用于确定所述用户实时浏览行为对应的商品信息;所述商品信息包含字段及其对应字段值;
32.分组模块,用于对所述商品信息按照所属用户id进行聚合分组,得到商品流式数据;
33.商品统计模块,用于通过flink框架启用滚动窗口,并输出在所述滚动窗口时间内所述商品流式数据的统计结果;
34.商品推荐模块,用于将所述统计结果输入线上推荐系统,并根据所述线上推荐系统的输出结果得到所述用户id对应的推荐商品。
35.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
36.本技术还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
37.本技术提供一种商品推荐方法,包括:从日志系统中获取用户实时浏览行为;确定所述用户实时浏览行为对应的商品信息;所述商品信息包含字段及其对应字段值;对所述商品信息按照所属用户id进行聚合分组,得到商品流式数据;通过flink框架启用滚动窗口,并输出在所述滚动窗口时间内所述商品流式数据的统计结果;将所述统计结果输入线上推荐系统,并根据所述线上推荐系统的输出结果得到所述用户id对应的推荐商品。
38.本技术利用flink框架实现对用户实时浏览行为的流数据处理,将无序的用户实时浏览行为变为有序流式数据进行处理,同时基于flink的聚合操作和滑动窗口,对流式数据中的每个用户进行分组聚合然后开窗统计,实现了多粒度实时统计结果。再根据统计结果结合线上推荐系统,能够进一步提高商品推荐准确率,提高用户对于推荐商品的点击量和购买意愿。
39.本技术还提供一种商品推荐系统、计算机可读存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
40.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
41.图1为本技术实施例所提供的一种商品推荐方法的流程图;
42.图2为本技术实施例所提供的一种日志系统的配置流程图;
43.图3为本技术实施例所提供的一种商品推荐系统结构示意图。
具体实施方式
44.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
45.请参考图1,图1为本技术实施例所提供的一种商品推荐方法的流程图,该商品推荐方法包括:
46.s101:从日志系统中获取用户实时浏览行为;
47.本技术需要获取用户实时浏览行为。本技术实施例可以针对私域电商领域。当前私域电商领域的商品推荐准确度较低。而本技术可以事先时采集私域用户点击应用产生的数据,通过日志采集写入指定的topic,topic指日志消息发送管道,通过消息队列进行上游用户数据传输。在此对于采用何种消息队列不作限定,可以采用kafka消息队列等。当然,若采用kafka消息队列,可以事先配置kafka的分区数。在此对于如何配置kafka的分区数不作限定,可以根据生产消息和消费消息的速度进行配置,即想要获得更低的数据延时,往往可以增加分区数量。上述过程中,用户实时浏览行为的产生可作为消息生产过程,则日志系统自身可以作为消息生产系统。
48.此外,还可以配置消费系统,并采用与生产系统同样的基础配置,从而确保可以准确、实时获取到用户实时浏览行为。特别的,还可以设置多个topic,在消费上游数据的时候,将所有包含业务的topic添加到列表中。
49.为了更好的应用本技术提供的商品推荐方法,可以事先创建执行环境,以便在执行环境内事先用户实时浏览行为的获取、以及执行商品推荐过程。
50.在此对于如何创建执行环境不作限定,一种可行的方式如下:
51.第一步、创建执行环境;
52.第二步、基于flink框架配置所述执行环境的系统参数,并设定消费数据的起始时间;所述系统参数包括消息生产者的名称、消息消费者所在服务信息和消息序列化方式;
53.第三步、确定所述消费数据的时间处理类型;所述时间处理类型包括事件创建时间类型、算子操作时间类型和数据进入flink时间类型。
54.该执行环境表示当前执行程序的上下文。当执行程序是独立调用时,该执行结果返回本地执行环境。如果从命令行客户端调用执行程序并提交到集群,则返回至集群的执行环境。
55.在创建执行环境后,可以实现数据采集,特别的,可以实现用户实时浏览行为的流数据采集。具体的,可以通过flinkkafkaconsumer加载配置好的系统参数,系统参数可以包括消息生产者的名字,消费者所在服务的域名和端口,消息序列化方式等。同时设定消费数据的起始时间,以时间戳时间格式进行配置。flinkkafkaconsumer是通过flink来进行生成消费者,构建方式是通过flink进行配置,flink是一个流式数据计算框架,该对象的生效是在kafka消费者和分区数配置完之后。
56.flink将流式数据中的每一条数据都当作一个事件来看待,本实施例配置时间处理类型为eventtime。此外,还可以有processingtime和ingestiontime。event time是事件创建的时间,它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,flink通过时间戳分配器访问事件时间戳。processing time是每一个执行基于时间操作的算子的本地系统时间,与机器相关,默认的时间属性就是processing time。ingestion time则是数据进入flink的时间。
57.此外,在从日志系统中获取用户实时浏览行为之后,可以对用户实时浏览行为进行反序列化处理,得到字典格式的用户实时浏览行为数据,并对用户实时浏览行为数据按照字典的键值进行取值。反序列化指对获取到的字符串格式的用户实时浏览行为进行格式转换,转换为字典格式,此后按照字典的key进行取值。
58.s102:确定所述用户实时浏览行为对应的商品信息;所述商品信息包含字段及其对应字段值;
59.本步骤需要确定用户实时浏览行为对应的商品信息。需要注意的是,该商品信息可以存于用户实时浏览行为中,也可以为与用户实时浏览行为相对应但并不包含在用户实时浏览行为信息之中的商品信息。
60.该商品信息包含字段及其对应字段值。例如某个用户实时浏览行为对应的商品信息可以如goodsid:10001,这里goodsid就是商品的字段,10001就是商品id,即该字段的值。
61.s103:对所述商品信息按照所属用户id进行聚合分组,得到商品流式数据;
62.本步骤需要将获取到的商品信息基于用户id进行聚合分组。需要注意的是,用户id为全局唯一。即将对应相同用户id的商品信息划分为一组,该组表明该用户浏览的所有商品。聚合分组后,得到商品流式数据。
63.s104:通过flink框架启用滚动窗口,并输出在所述滚动窗口时间内所述商品流式数据的统计结果;
64.本步骤需要通过flink框架开滚动窗口,在此对于滚动窗口的窗口大小不作限定,可以由本领域技术人员自行设定。以窗口大小设为3分钟为例,即实时统计3分钟内该用户涉及的浏览行为。若在此基础上,可以进一步设置窗口内容输出时间。所谓窗口内容输出时间,指输出统计结果的时间。沿引上例,若设定窗口大小为3分钟,且设定窗口内容输出时间为1分钟,则可以实时统计3分钟内该用户对应所有商品流式数据的浏览行为,并且每隔1分钟输出一次当前的统计结果。统计过程为该用户在3分钟内在该上铺内进行点击等浏览行为。
65.需要注意的是,该窗口大小可以发生改变,例如可以根据窗口时长修改指令调整滚动窗口的窗口时长。例如可以将窗口大小变为1分钟或者30s,如此可以获取用户在近30s内的用户行为,实现不同时间粒度的滚动窗口开窗。
66.s105:将所述统计结果输入线上推荐系统,并根据所述线上推荐系统的输出结果得到所述用户id对应的推荐商品。
67.本步骤中,需要将上一步骤中得到的统计结果作为输入,输入至线上图鉴系统。从而根据线上推荐系统的输出结果得到用户id对应的推荐商品。
68.在此对于如何获取或者生成该线上推荐系统不作限定,本实施例在此提供一种具体的应用过程:
69.第一步、获取基础模型;
70.第二步、对所述基础模型进行样本训练,得到推荐模型;
71.第三步、提取所述用户实时浏览行为对应的用户实时特征;
72.第四步、利用所述用户实时特征对所述推荐模型进行实时更新,得到所述线上推荐系统。
73.上述过程中,用户实时特征是基于样本离散化、标签化、向量化中的至少一种方式将用户浏览行为转化为一个多维向量。推荐模型是先选择一个基础模型然后对这个模型进行训练获得满足我们要求的推荐模型,在此对于采用何种基础模型不作限定,一种可行的方式是采用lr模型作为基础模型,通过对大量的训练样本进行训练获得推荐模型,此处采用的样本即为第三步中提取得到的用户实时特征。
74.基于线上推荐系统和统计结果的应用,本技术实施例可以实现实时推荐过程,该过程指当用户在一段时间内发生用户行为改变,本技术实施例实时将其行为抽取出来,然后制作成实时特征,将实时特征送入实时训练模型中,这样就会实时更新模型,模型更新后会基于用户的特征进行实时推荐更新。当发现用户在段时间内点击了a商品,可以基于用户对a商品的浏览行为更新模型参数,模型在推荐时候就会优先推荐与a类型的商品给当前这个用户。
75.线上推荐系统基于当前用户的实时行为和其历史行为进行特征计算,将计算后的特征输入推荐模型,推荐模型基于当前用户私域中的商品库进行商品召回、排序。当召回的商品为0时,本技术实施例将基于flink统计流式数据获得的用户历史点击商品,对其推荐其历史点击而未购买的商品。当用户点击下一商品时,采集到的数据将会实时发生变化,在线计算的特征也会实时变化,推荐系统会实时基于用户行为进行最精准的商品推荐。特别的,当召回商品数量还为0时,本实施例还可以基于当前店铺的实时热门商品进行推荐,实时热门商品的计算同样依赖实时窗口中对当前用户的关键行为提取和统计。
76.本技术实施例利用flink框架实现对用户实时浏览行为的流数据处理,将无序的用户实时浏览行为变为有序流式数据进行处理,同时基于flink的聚合操作和滑动窗口,对流式数据中的每个用户进行分组聚合然后开窗统计,实现了多粒度实时统计结果。再根据统计结果结合线上推荐系统,能够进一步提高商品推荐准确率,提高用户对于推荐商品的点击量和购买意愿。
77.基于上述实施例,作为优选的实施例,在获取日志系统中所述用户实时浏览行为对应的商品信息之前,可以对日志系统进行设置,具体过程可以参见图2,图2为本技术实施例所提供的一种日志系统的配置流程图,如下:
78.s201:利用日志采集系统获取私域用户的应用点击数据;
79.s202:将所述应用点击数据通过日志传输管道写入消息队列;
80.s203:根据所述消息队列生成所述日志系统。
81.本实施例是在上一实施例的基础上,对于日志采集系统作进一步描述,即日志采集系统可以通过日志传输管道传输采集到的私域用户的应用点击数据,并写入相应的消息队列,由该消息队列构成日志系统。从而在进行用户实时浏览行为获取时,可以实时从日志系统中获取相应的实时浏览行为。同时也便于直接基于日志系统生成商品的线上推荐系统。
82.下面对本技术实施例提供的一种商品推荐系统进行介绍,下文描述的商品推荐系统与上文描述的一种商品推荐方法可相互对应参照。
83.参见图3,图3为本技术实施例提供的一种商品推荐系统的结构示意图,本技术还提供一种商品推荐系统,包括:
84.行为获取模块,用于从日志系统中获取用户实时浏览行为;
85.商品信息确定模块,用于确定所述用户实时浏览行为对应的商品信息;所述商品信息包含字段及其对应字段值;
86.分组模块,用于对所述商品信息按照所属用户id进行聚合分组,得到商品流式数据;
87.商品统计模块,用于通过flink框架启用滚动窗口,并输出在所述滚动窗口时间内所述商品流式数据的统计结果;
88.商品推荐模块,用于将所述统计结果输入线上推荐系统,并根据所述线上推荐系统的输出结果得到所述用户id对应的推荐商品。
89.基于上述实施例,作为优选的实施例,还包括:
90.数据处理模块,用于对所述用户实时浏览行为进行反序列化处理,得到字典格式的用户实时浏览行为数据,并对所述用户实时浏览行为数据按照字典的键值进行取值。
91.基于上述实施例,作为优选的实施例,还包括:
92.环境配置模块,用于创建执行环境;基于flink框架配置所述执行环境的系统参数,并设定消费数据的起始时间;所述系统参数包括消息生产者的名称、消息消费者所在服务信息和消息序列化方式;确定所述消费数据的时间处理类型;所述时间处理类型包括事件创建时间类型、算子操作时间类型和数据进入flink时间类型。
93.基于上述实施例,作为优选的实施例,还包括:
94.日志系统配置模块,用于利用日志采集系统获取私域用户的应用点击数据;将所述应用点击数据通过日志传输管道写入消息队列;根据所述消息队列生成所述日志系统。
95.基于上述实施例,作为优选的实施例,还包括:
96.分区配置模块,用于根据生产消息速度和消费消息速度确定所述日志系统中kafka消息队列的分区数量。
97.基于上述实施例,作为优选的实施例,还包括:
98.线上推荐模型生成模块,用于执行如下步骤:
99.获取基础模型;
100.对所述基础模型进行样本训练,得到推荐模型;
101.提取所述用户实时浏览行为对应的用户实时特征;
102.利用所述用户实时特征对所述推荐模型进行实时更新,得到所述线上推荐系统。
103.基于上述实施例,作为优选的实施例,通过flink框架启用滚动窗口,还包括:
104.滚动窗口配置模块,用于设置所述滚动窗口的窗口时长,或,根据窗口时长修改指令调整所述滚动窗口的窗口时长。
105.本技术还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
106.本技术还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
107.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
108.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
109.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1