一种多模型融合的推荐系统和方法
技术领域
本发明涉及移动互联网技术领域,特别地涉及一种多模型融合的推荐系统和方法。
背景技术
随着互联网多元化的发展,用户可以了解到各种各样的信息,而且现在大部分的网站或app都具有推荐系统,可以根据用户阅读或者浏览记录未用户推荐可能感兴趣的内容。但是传统的网站或者APP的做法都是使用单一的模型训练数据对用户进行推荐,虽然可以定向的为用户推荐内容,但是无法应对多个提升目标的场景。因此,本领域需要一种新型的推荐系统以及推荐方法。
发明内容
针对现有技术中存在的技术问题,本发明提出了一种多模型融合的推荐系统,包括:通信接口,其经配置以接收来自客户端中一个或多个特征信息;以及一个或多个处理器,服务器端运行于一个或多个处理器上,其经配置以根据一个或多个特征信息以及融合模型的融合结果确定向用户推荐的内容;其中,融合模型包括第一模型和第二模型;融合结果至少部分基于第一模型的第一结果和第二模型的第二结果;其中,通信接口进一步经配置以将推荐的内容发送到客户端。
如上所述的推荐系统,其中,第一模型,其用于处理多个待推荐内容,以获得第一结果;第二模型,其用于处理多个待推荐内容,以获得第二结果
如上所述的推荐系统,其中,基于来自客户端中一个或多个特征信息确定待推荐内容。
如上所述的推荐系统,其中融合模型包括融合模块,其定义了至少部分基于第一模型的第一结果和第二模型的第二结果的融合方式。
如上所述的推荐系统,其中融合方式为线性权重融合、交叉融合、以及排序融合中的一种或多种。
如上所述的推荐系统,其中第一模型为点击模型。
如上所述的推荐系统,其中第二模型为时长模型。
如上所述的推荐系统,其中第一模型为点击模型,第二模型为时长模型,融合公式为
其中,score表示推荐分数;click_score表示点击模型分数;time_score表示时长模型分数;α表示融合值,α∈{0,1}。
如上所述的推荐系统,其中点击模型分值click_score值可以表示如下:
click_score=sigmoid(f1*w1+f2*w2+…) (1)
其中,click_score表示点击模型分值;f1、f2…表示某一篇文章中的多个特征值;w1、w2…表示某一篇文章中的每个特征值对应的权重值。
如上所述的推荐系统,其中时长模型的分值time_score值可以表示如下:
time_score=sigmoid(z)
其中,time_score表示时长模型的分值;z表示文章的阅读时长;
其中,阅读时长符合如下公式:
其中,z表示文章阅读时长;p表示多个特征的个数,wi表示某一特征的权重值;bi表示权重值的偏置值;<wi,wi>表示一种运算。
如上所述的推荐系统,其中<wi,wi>表示wi*wi。
如上所述的推荐系统,进一步包括推荐模块,其根据融合模块结果对待推荐内容排序。
如上所述的推荐系统,进一步包括过滤模块,其根据来自客户端中一个或多个特征信息对推荐的内容进行过滤。
根据本发明另一方面,提出了一种多模型融合的推荐方法,包括:接收来自客户端中一个或多个特征信息;以及根据一个或多个特征信息以及融合模型的融合结果确定向用户推荐的内容;其中,融合模型包括第一模型和第二模型;融合结果至少部分基于第一模型的第一结果和第二模型的第二结果。
如上所述的方法,其中,第一模型,其用于处理多个待推荐内容,以获得第一结果;第二模型,其用于处理多个待推荐内容,以获得第二结果
如上所述的方法,其中融合结果基于线性权重融合、交叉融合、以及排序融合中的一种或多种融合方式。
如上所述的方法,其中第一模型为点击模型,第二模型为时长模型,融合公式为
其中,score表示推荐分数;click_score表示点击模型分数;time_score表示时长模型分数;α表示融合值,α∈{0,1}。
如上所述的方法,其中点击模型分值click_score值可以表示如下:
click_score=sigmoid(f1*w1+f2*w2+…) (1)
其中,click_score表示点击模型分值;f1、f2…表示某一篇文章中的多个特征值;w1、w2…表示某一篇文章中的每个特征值对应的权重值。
如上所述的方法,其中时长模型的分值time_score值可以表示如下:
time_score=sigmoid(z)
其中,time_score表示时长模型的分值;z表示文章的阅读时长;
其中,阅读时长符合如下公式:
其中,z表示文章阅读时长;p表示多个特征的个数,wi表示某一特征的权重值;bi表示权重值的偏置值;<wi,wi>表示一种运算。
如上所述的方法,其中<wi,wi>表示wi*wi。
如上所述的方法,根据来自客户端中一个或多个特征信息对推荐的内容进行过滤。
本发明公开的多模型推荐系统和方法可以适用于多个需要提升的场景,有效的保证多个场景系数同时提高,大大的提升了用户的体验。
附图说明
下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:
图1是现有技术的推荐系统示意图;
图2是现有技术的推荐方法示意图;
图3是根据本发明的一个实施例的多模型融合的推荐系统应用环境示意图;
图4是根据本发明一个实施例的多模型融合的推荐系统服务器的示意图;
图5是根据本发明一个实施例的客户端设备的示意图;
图6是根据本发明一个实施例的多模型融合的推荐系统交互示意图;以及
图7为根据本发明一个实施例的多模型融合的推荐方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的详细描述中,可以参看作为本申请一部分用来说明本申请的特定实施例的各个说明书附图。在附图中,相似的附图标记在不同图式中描述大体上类似的组件。本申请的各个特定实施例在以下进行了足够详细的描述,使得具备本领域相关知识和技术的普通技术人员能够实施本申请的技术方案。应当理解,还可以利用其它实施例或者对本申请的实施例进行结构、逻辑或者电性的改变。
图1是现有技术的推荐系统示意图。如图所示,推荐系统100包括一个或多个模型训练模块101、日志存储器102以及通信接口103。其中,日志存储器102用于存储用户日常操作的日志文件,并将日志文件传送到模型训练模块101,或者通过人为导出的方式将日志文件导入到模型训练模块中。模型训练模块可以通过单机或者spark集群对日志文件中的数据进行训练,并得出模型文件。通信接口103可以将模型训练模块的模型文件按照一定时间间隔推送到线上使用,推荐给用户。
图2是现有技术的推荐方法示意图。如图所示,在步骤201,收集日志数据,并将日志数据存储到日志存储器中,日志存储器可以按照一定时间传送给模型训练模块。
在步骤202,根据不同的推荐目的选择不同的训练模型。
在步骤203,将日志文件中的数据导入到选择的训练模型,对数据进行训练,得到模型文件。由于训练的数据量较大,模型训练模块通过单机或者spark集群训练数据至少需要几个小时的时间。
在步骤204,通信接口可以将模型训练文件按照一定的时间间隔导入到线上使用,将内容推荐给用户。
现有的这种推荐系统以及推荐方法仅仅能够通过单一的模型来进行推荐内容给用户,无法应对需要提升的多个目标场景,例如:新闻推荐中,既需要点击量高还需要停留的时间长,并且还需要保证留存率高。而现有的推荐系统仅能针对其中一项推荐给用户,例如通过点击模型推荐能保证点击量,但是停留时间就得不到保证,或者通过市场模型推荐能够保证停留时长,但是点击率就得不到保证,不能结合所有目标推荐。
针对现有推荐系统和方法的问题,本发明提出了一种基于多个场景提升的内容推荐系统和方法,其与传统通过单一模型推荐内容有着本质的区别。以下将以新闻推荐既要提高点击量还要停留时间长目标详细介绍本发明的多模型融合的内容推荐系统和方法。
图3是根据本发明的一个实施例的多模型融合的推荐系统应用环境示意图。如图所示,推荐系统应用环境包括一个或多个在通信网络上的客户端设备302、应用服务器304、网页服务器306、服务器负载平衡器308、云负载平衡器310。应用服务器304、网页服务器306、服务器负载平衡器308、云负载平衡器310通信地耦合到一个或多个数据库312。
通信网络能够是覆盖行政区、国家、大陆或其组合的任意多级网络。通信网络的示例能够包括:蜂窝网络,诸如3G网络、4G网络、长期演进(LTE)网络;声波通信网络;卫星网络;广域网,诸如因特网;或它们的组合。应用服务器304、网页服务器306、服务器负载平衡器308、云负载平衡器310能够通过连接被通信地耦合到通信网络。连接能够是有线连接、无线连接或它们的组合。
推荐系统或其中的一部分能够包括由计算云(诸如,阿里云、腾讯云、百度云、Windows AzureTM云、亚马逊弹性计算云(Amazon EC2)TM、Google App EngineTM或它们的组合)作为主机管理(host)的网页和/或移动应用。例如,推荐系统能够包括在一个或多个应用服务器304、网页服务器306或它们的组合作为主机管理的虚拟机器上运行的网页和/或移动应用。在一个实施例中,计算云能够包括一个或多个应用服务器304、网页服务器306、数据库312、服务器负载平衡器308、云负载平衡器310、其中的部分或它们的组合。
云负载平衡器310能够在多个网页服务器306之间提供流量负载平衡和分配客户请求。网页服务器306能够包括HTTP服务器或者依赖计算云来处理HTTP请求。网页服务器306还能够由计算云实例化和管理。
服务器负载平衡器308能够平衡网页服务器306和一个或多个应用服务器304之间的互动。应用服务器304能够处理应用逻辑并且与数据库312互动以存储数据和应用状态。网页服务器306、应用服务器304或它们的组合能够包括机架式服务器、集群服务器、刀片服务器、主机、专用台式电脑或笔记本电脑,或它们的组合。
数据库312能够是一个或多个SQL数据库。应用服务器304能够与管理SQL数据库的一个或多个SQL服务器交互。应用数据和应用状态能够被存储在云管理的SQL数据库中。在另一些实施例中,数据库312能够是面向文档型数据库,包括诸如
数据库的NoSQL数据库。
客户端设备302能够包括便携式计算设备,诸如智能手机、平板电脑、笔记本电脑、智能手表、个人娱乐设备或它们的组合。在另一些实施例中,客户端设备302还能够包括台式计算机。
图4是根据本发明一个实施例的多模型融合的推荐系统服务器400的示意图。如图所示,服务器400能够具有一个或多个处理器402、存储器404和通信接口406。处理器402能够通过高速总线被耦合到存储器404和通信接口406。服务器400能够表示图3中的网页服务器306、应用服务器304或它们的组合中的任意一种。
处理器402能够包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或它们的组合。处理器402能够执行存储在存储器404中的软件或计算机可读指令以执行本文描述的方法或操作。处理器402能够以若干不同的方式来实施。例如,处理器402能够包括一个或多个嵌入式处理器、处理器核心、微型处理器、逻辑电路、硬件有限状态机(FSM)、数字信号处理器(DSP)或它们的组合。例如,处理器402能够是64位处理器。
存储器404能够存储软件、数据、日志或它们的组合。存储器404能够是内部存储器。替代地,存储器404能够是外部存储器,诸如驻留在存储节点、云服务器或存储服务器上的存储器。存储器404能够是易失性存储器或非易失性存储器。例如,存储器404能够是诸如非易失性随机存取存储器(NVRAM)、闪存、磁盘存储器的非易失性存储器,或者是诸如静态随机存取存储器(SRAM)的易失性存储器。存储器404能够是用于服务器400的主存储单元。
通信接口406能够包括一个或多个有线或无线通信接口。例如,通信接口406能够是服务器400的网络接口卡。通信接口406能够是无线调制解调器或有线调制解调器。在一个实施例中,通信接口406能够是WiFi调制解调器。在另一些实施例中,通信接口406能够是3G调制解调器、4G调制解调器、LTE调制解调器、蓝牙组件、射频接收器、天线或它们的组合。服务器400能够使用通信接口406连接到通信网络或者与通信网络通信地耦合。服务器400能够使用通信接口406传输或者接收包或消息。
图5是根据本发明一个实施例的客户端设备的示意图。客户端设备500能够具有客户端处理器512、客户端存储器514、客户端通信单元516、以及显示器518。客户端处理器512能够通过高速总线被耦合到客户端存储器514、和客户端通信单元516。
客户端处理器512能够包括一个或多个CPU、GPU、ASIC、FPGA或它们的组合。客户端处理器512能够执行存储在客户端存储器514中的软件以执行本文描述的方法。客户端处理器512能够以若干不同的方式来实施。例如,客户端处理器512能够是嵌入式处理器、处理器核心、微型处理器、逻辑电路、硬件FSM、DSP或它们的组合。作为一个具体的示例,客户端处理器512能够是32位处理器,诸如
处理器。
客户端存储器514能够存储软件、数据、日志或它们的组合。在一个实施例中,客户端存储器514能够是内部存储器。在另一个实施例中,客户端存储器514能够是外部存储单元。客户端存储器514能够是易失性存储器或非易失性存储器。例如,客户端存储器514能够是诸如NVRAM、闪存、磁盘存储器的非易失性存储器,或者是诸如SRAM的易失性存储器。客户端存储器514能够是用于客户端设备500的主存储单元。
客户端通信单元516能够是有线或无线通信接口。例如,客户端通信单元516能够是客户端设备的网络接口卡。客户端通信单元516能够是无线调制解调器或有线调制解调器。在一个实施例中,客户端通信单元516能够是WiFi调制解调器。在另一些实施例中,客户端通信单元516能够是3G调制解调器、4G调制解调器、LTE调制解调器、蓝牙组件、射频接收器、天线或它们的组合。客户端设备能够使用客户端通信单元516连接到通信网络或者与通信网络通信地耦合。客户端设备500能够使用客户端通信单元516传输或者接收包或消息。
显示器518能够是诸如液晶显示器(LCD)的触摸屏显示器、薄膜晶体管(TFT)显示器、有机发光二极管(OLED)显示器或者有源矩阵有机发光二极管(AMOLED)显示器。在某些变型中,显示器518能够是视网膜显示器、触觉触摸屏或它们的组合。例如,当客户端设备500是智能手机时,显示器518能够是智能手机的触摸屏显示器。
客户端设备500通过显示器518展示的图形用户界面(GUI)与用户交互。GUI能够向用户展示内容,用户能够根据展示的内容将用户输入应用到GUI上的按钮、文本框、或链接。响应于将用户输入应用到按钮、文本框、或链接,客户端设备500根据处理器执行的软件或者经过与服务器400通信后向用户展示新的内容。
客户端设备500还可以包括输入装置,例如键盘、触摸屏等。如本领域技术人员所了解的,客户端设备500还可以包括其他功能的装置,以满足客户的需要。
图6是根据本发明一个实施例的多模型融合的推荐系统交互示意图。如图所示,推荐系统交互过程运行在客户端610和服务器端620之间。在一些实施例中,客户端610可以运行在客户端设备500上;服务器端620可以运行在服务器400上。本发明多模型融合的内容推荐系统可以运行在服务器端620。
在一些实施例中,客户端610包括但不限于运行于IOS系统、Android系统、Window系统或者其他系统的APP、网页(Web)端、微信客户端或微信小程序、嵌入其他第三方应用程序的独立或非独立的程序等。客户端610向用户提供图形交互界面(GUI),从用户获得信息,并向用户展示内容和结果。
如图所示,服务器端620包括应用接口630和计算核心640。应用接口630用于服务器端620与客户端610通信。具体而言,应用接口630将来自客户端610的特征信息发送到计算核心640,以及将来自计算核心640的推荐文章发送到客户端610。在一些实施例中,应用接口630具有负载均衡的功能,以保证客户端610与计算核心640之间通信的高效。例如应用接口630可以包括云负载平衡器和一个或多个介入服务器。计算核心640执行内容推荐中的计算功能。例如,计算核心640可以包括服务器负载平衡器和一个或多个负载服务器。
在一些实施例中,计算核心640包括点击模型650。以文章为例,点击模型650用于根据文章点击率计算分值。文章的点击率越高相应的分值也就越高。有关点击模型的内容可以参考以下链接:
https://baike.baidu.com/item/%E7%82%B9%E5%87%BB%E6%A8%A1%
E5%9E%8B/13677663?fr=aladdin。
本领域技术人员应当理解,现有技术中其他的点击模型或者在这些点击模型上的改进也可以应用于此,从而也在本发明的范围之内。
在一些实施例中,根据点击模型650得到文章的click_score值可以表示如下:
click_score=sigmoid(f1*w1+f2*w2+…) (1)
其中,click_score表示点击模型分数;f1、f2…表示某一篇文章中的多个特征值;w1、w2…表示某一篇文章中的每个特征值对应的权重值。
在一些实施例中,计算核心640时长模型660。以文章为例,时长模型根据文章的阅读时长计算分值。具体而言,内容的时长与文章长度的比值,即单位文章长度的阅读时长作为一个衡量标准。这个比值越大说明文章的吸引力越高,也就越值得推荐。基于深度学习的神经网络模型可以用于构建时长模型660。
在一些实施例中,阅读时长符合如下公式:
其中,z表示文章阅读时长;p表示多个特征的个数,wi表示某一特征的权重值;bi表示权重值的偏置值;<wi,wi>表示一种运算,例如,wi*wi;或者wi+wi等,优选是wi*wi。
这样,每篇文章点击率分值和时长分值可以符合如下公式:
time_score=sigmoid(z) (3)
其中,time_score表示时长模型的分数;z表示文章的阅读时长。
本领域技术人员应当理解,现有的其他类型的时长模型或者这些时长模型的改进也可以应用于此,因此也在本发明的范围之内。
本领域技术人员应当理解,点击模型和时长模型仅仅是为了说明本发明的融合模型而举出的两个例子。其他类型的推荐模型也可以应用于此,这些模型包括但不限于:基于临近关系(neighborhood-based)的模型,例如SVD,SVD++,ALS算法;或者基于模式(model-based)的模型等。这些模型也都可以应用于此,因此也在本发明的范围之内。
在一些实施例中,计算核心包括融合模块670,其基于多个模型得到的数据对数据进行融合。模型融合的方式可以有多种。在一些实施例中,采用线性加权融合法进行模型融合。所谓线性加权融合法是指汇总各个模型的结果,然后按不同模型的结果赋予不同的权重,将多个推荐模型的结果进行加权。
在一些实施例中,采用交叉融合法进行模型融合。所谓线性加权融合法是指将各个模型的推荐结果按各自频率推荐给用户,然后根据用户的反馈调整各个模型推荐结果的推荐频率,从而实现推荐结果的融合。
在一些实施例中,采用排序融合法进行模型融合。所谓排序融合法是指在模型融合时考虑各个模型中各个待推荐内容的排序,从而得出推荐结果。以点击模型和时长模型为例,可以先对点击模型和时长模型计算的结果进行排序。融合模块可以基于点击模型的排序以及时长模型的排序进行融合,得出推荐列表。
例如:点击模型与时长模型可以根据其计算得出的文章分值对文章进行排序,如下表所示:如本领域技术人员所理解,以下数据仅仅为了说明本发明技术方案,并不用来限制本发明技术方案。
融合模型可以按照文章ID在不同模型排序中的序号加和进行排序,比如说文章ID为1的文章,其在点击模型中序号为1,在时长模型中序号为3,则序号加和为1+3=4。再比如,文章ID为2的文章,其在点击模型中序号为2,在时长模型中序号为6,则序号加和为2+6=8。在推荐中,文章2要排在文章1的后边。在比如,文章ID为3的文章,其在点击模型中序号为3,在时长模型中序号为1,则序号加和为3+1=4,序号加和结果与文章ID为1的相同,推荐二者的概率相同。在一些实施例中,序号加和相同的可以按照点击模型的结果为准,即文章ID为1的文章在点击模型中排在文章ID为3的文章,则优先推荐文章ID为1的文章。
在一些实施例中,可以利用文章序号加和结合文章分值加和进行融合排名,例如:文章ID为1的文章,其序号加和为4,分值加和为243,文章ID为3的文章,其序号加和为4,分值加和为242,这综合排名文章ID为1的文章排名高于文章ID为3的文章。
在一些实施例中,设定阈值x,当相同ID的文章在不同模型中序号相差大于x时,这该文章应该舍弃。例如文章ID为4的文章在点击模型中序号为4,在时长模型中序号为9,这二者之间的相差序号为9-4=5,相对较大,这文章ID为4的文章舍弃。在一些实施例中,x可以是10、30、50、70或者100等等,根据实际情况可跟换x的取值。
以上的融合算法虽然能够实现模型融合,提供给用户更优的融合结果,但是并未能精确地
在一些实施例中,本发明提出了一种α值融合的模型融合方式。以点击模型和时长模型为例,融合公式如下:
其中,score表示推荐分数;click_score表示点击模型分数;time_score表示时长模型分数;α表示融合值,α∈{0,1}。α值为切割流量并行试探不同权重的效果取得的最优解。例如,α值可以为0.48。
在一些实施例中,计算核心640进一步包括推荐模块680,其可以用于将融合分数后的多篇文章进行排序,并按照排序推荐给用户。在一些实施例中,推荐模块还可以对文章进行筛选。例如:用户已经阅读的文章不推荐给用户。
本发明所提出的多模型融合的内容推荐系统,相对于现有单一模型推荐系统,能够适应于多个提升场景的需要,可以给用户带来更好的阅读体验。
图7为根据本发明一个实施例的多模型融合的推荐方法流程图。如图所示,推荐方法700包括如下步骤:
在步骤710,接收来自客户端的一个或多个特征信息。特征信息可以为用户的个性化信息,包括但不限于年龄、职业、学力、位置信息等。特征信息也可以为与客户端相关的信息,包括但不限于使用客户端的时间、使用客户端的访问历史等。
在步骤720,根据一个或多个特征信息以及融合模型的融合结果向用户推荐内容;其中,融合模型包括第一模型和第二模型;融合结果至少部分基于第一模型的第一结果和第二模型的第二结果。
以第一模型为点击模型,第二模型为时长模型为例,进一步说明上述步骤。
在一些实施例中,根据来自客户端的一个或多个特征信息确定多个待推荐的文章。接下来,对于多个待推荐的文章而言,利用点击模型和时长模型分别计算的多个待推荐文章所对应的分值。点击模型所得的分值即为第一结果;而时长模型所得的分值即为第二结果。利用融合模型所定义的融合方式,对第一结果和第二结果进行融合。如前所述,通过多种方式对不同模型的结果进行融合,包括但不限于线性权重融合、交叉融合、排序融合、以及α值融合等。然后,根据融合后的结果对推荐内容进行排序,按照排序的顺序推荐给用户。
在一些实施例中,还需要对推荐内容进行过滤。例如,对于用户已经浏览的内容,不再重复推荐,防止出现重复。对于用户的某些特性,例如不喜欢某个明星等,在过滤步骤中将涉及这个明星的内容过滤。
本发明公开的多模型推荐系统和方法可以适用于多个需要提升的场景,有效的保证多个场景系数同时提高,大大的提升了用户的体验。例如上述新闻推荐,采用点击模型和时长模型融合的方式推荐新闻,可以明显得出用户停留时间增加,留存率提升。
上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明范围的情况下,还可以做出各种变化和变型,因此,所有等同的技术方案也应属于本发明公开的范畴。