基于动态规划的内容分配方法和系统与流程

文档序号:15146038发布日期:2018-08-10 20:27阅读:128来源:国知局

本发明涉及内容推送技术,具体地,涉及一种基于动态规划的内容分配方法和系统。



背景技术:

目前个性化的内容与服务已成为互联网产品的重要竞争力。无论是音乐、新闻产品的内容推荐,还是电商网站的运营,都少不了个性化推荐技术的应用。在电商网站的运营领域,对于展示在用户眼前的资源位,有若干种不同的内容(例如,活动、商品、广告等)可以选用。通常采用的方法是向全量用户展示质量最高的内容。尽管该方法最直接、最通用的做法,且整体效果尚可,然而这种方法没有考虑到用户特点,不能有针对性地为用户展示最合适的内容,并会造成大量未被选中的内容的浪费。因此,对于不同的用户,应依据他们的偏好,分配最适合他们的内容,从而使得整体展示效果(例如,点击率/转化率/引入订单金额等指标)达到最佳。

为了实现有针对性地为用户展示合适内容,另一种方法是将用户划分为若干用户群,并评估各用户群对各个内容的喜好程度分数,接着由运营手工对每个用户群分配内容。尽管这种方法能够实现有针对性地为用户群分配内容的目的,然而它消耗运营人力,往往要求运营对各个内容和用户群的划分相当熟悉。在内容量大、用户群多、更新频率高的情况下,这种方法效率较低。此外,还存在另外一种能够有针对性地为用户分配内容的方法,所述方法引入启发式算法来对内容进行合理分配,使得可以处理大量内容和用户群。然而,启发式算法仅能找到局部最优解,而非最优的分配方案,无法达到最优的分配效果。

因此,需要一种基于动态规划的内容分配方法和系统,使得能够使得整体展示效果达到最佳。



技术实现要素:

本公开的方面在于解决至少上述问题和/或缺点并提供至少下述优点。

根据本发明的第一方面,提供了一种内容分配方法,包括:针对每个待分配内容,确定内容标签和相应置信度;针对每个用户群,确定用户群标签和相应置信度;根据每个用户群的用户群标签与每个待分配内容的内容标签的关联性和各自的相应置信度,确定每个用户群对每个待分配内容的偏好度;以及根据所述偏好度,向各用户群分配内容,使得总偏好度达到最大。

优选地,所述确定内容标签和相应置信度包括:将内容属性确定作为内容标签。

优选地,所述内容属性包括是商品集合、商品分类信息、店铺信息和品牌信息中的一个或更多个。

优选地,所述方法还包括:将与所述内容的内容标签和相应置信度存储为hive表。

优选地,所述方法还包括提取所述内容允许的最大分配用户群数量。

优选地,所述确定用户群标签和相应置信度包括:根据用户群的历史行为记录,确定用户群标签。

优选地,所述方法还包括:将与所述用户群的用户群标签和相应置信度存储为hive表。

优选地,所述根据每个用户群的用户群标签与每个待分配内容的内容标签的关联性和各自的相应置信度来确定每个用户群对每个待分配内容的偏好度包括:如果所述待分配内容的一个或更多个内容标签与所述用户群的一个或更多个用户群标签相关联,则分别针对每个相关联的内容标签与用户群标签组,计算所述内容标签的相应置信度与所述用户群标签的相应置信度的乘积,并将针对各个相关联的内容标签与用户群标签组计算出的乘积相加求和,将所述和确定作为所述用户群对所述内容的基础偏好分数;且如果所述待分配内容的任一内容标签不与所述用户群的任一用户群标签相关联,则将所述用户群对所述内容的基础偏好分数记做0;以及基于所述基础偏好分数,确定每个用户群对每个待分配内容的偏好度。

优选地,所述方法还包括将每个用户群对每个待分配内容的基础偏好分数存储为hive表。

优选地,所述方法还包括评估所述内容的质量分,其中所述根据每个用户群的用户群标签与每个待分配内容的内容标签的关联性和各自的相应置信度来确定每个用户群对每个待分配内容的偏好度包括:计算基础偏好分数与所述内容的质量分的乘积,将所述乘积确定为所述用户群对所述内容的最终偏好分数;基于所述最终偏好分数,确定每个用户群对每个待分配内容的偏好度。

优选地,所述根据所述偏好度向各用户群分配内容,使得总偏好度达到最大可以包括:获取针对每个内容的可分配用户群数量;相对于所述各用户群中的每一用户群,基于所获取的可分配用户群数量,遍历针对所述用户群的每种内容分配方案并确定针对每种内容分配方案的总偏好度,以便确定并存储在总偏好度达到最大的情况下的针对所述用户群的内容分配方案;将各用户群逆序排列;以及轮询经逆序排列的各用户群,并针对每个用户群获取所存储的与之相应的内容分配方案,以便根据偏好度向各用户群分配内容,使得总偏好度达到最大。

根据本发明的第二方面,提供了一种内容分配装置,可以包括:内容标签模块,配置为:针对每个待分配内容,确定内容标签和相应置信度;用户群标签模块,配置为:针对每个用户群,确定用户群标签和相应置信度;偏好度计算模块,配置为:根据用户群标签模块所确定的每个用户群的用户群标签与内容标签模块所确定的每个待分配内容的内容标签的关联性和各自的相应置信度,确定每个用户群对每个待分配内容的偏好度;以及内容分配模块,配置为:根据由偏好度计算模块确定的偏好度,向各用户群分配内容,使得总偏好度达到最大。

优选地,所述偏好度计算模块进一步配置为:如果所述待分配内容的一个或更多个内容标签与所述用户群的一个或更多个用户群标签相关联,则分别针对每个相关联的内容标签与用户群标签,计算所述内容标签的相应置信度与所述用户群标签的相应置信度的乘积,并将针对各个相关联的内容标签与用户群标签计算出的乘积相加求和,将所述和确定作为所述用户群对所述内容的基础偏好分数;且如果所述待分配内容的任一内容标签不与所述用户群的任一用户群标签相关联,则将所述用户群对所述内容的基础偏好分数记做0;以及基于所述基础偏好分数,确定每个用户群对每个待分配内容的偏好度。

优选地,所述内容分配模块进一步配置为:获取针对每个内容的可分配用户群数量;相对于所述各用户群中的每一用户群,基于所获取的可分配用户群数量,遍历针对所述用户群的每种内容分配方案并确定针对每种内容分配方案的总偏好度,以便确定并存储在总偏好度达到最大的情况下的针对所述用户群的内容分配方案;将各用户群逆序排列;以及轮询经逆序排列的各用户群,并针对每个用户群获取所存储的与之相应的内容分配方案,以便根据偏好度向各用户群分配内容,使得总偏好度达到最大。

根据本发明的第三方面,提供了一种内容分配系统,包括:存储器,配置为存储针对待分配内容的内容标签和相应置信度以及针对每个用户群的用户群标签和相应置信度;以及处理器,经由有线或无线方式与存储器相连,并配置为:针对每个待分配内容,确定内容标签和相应置信度;针对每个用户群,确定用户群标签和相应置信度;根据每个用户群的用户群标签与每个待分配内容的内容标签的关联性和各自的相应置信度,确定每个用户群对每个待分配内容的偏好度;以及根据所述偏好度,向各用户群分配内容,使得总偏好度达到最大。

附图说明

以下结合附图,将更清楚本公开的示例实施例的上述和其它方面、特征以及优点,附图中:

图1示出了根据本发明的示例实施例的内容分配系统的示例硬件布置的框图。

图2示出了根据本发明的示例实施例的内容分配方法的操作顺序图。

图3示出了根据本发明的示例实施例的内容分配方法的流程图。

图4示出了根据本发明的示例实施例的针对各用户群确定内容分配方案的具体算法的流程图。

图5示出了根据本发明的示例实施例的内容分配装置的框图。

具体实施方式

以下参考附图描述了本发明的示例实施。本发明提供了一种基于动态规划的内容分配方法和系统,所述内容分配方法和系统能够从数个内容中为用户分配最合适的一个内容,取得理论上全局最优的分配效果。

图1示出了根据本发明的示例实施例的内容分配系统的示例硬件布置100的框图。

图1是示出了根据本公开实施例的内容分配系统的示例硬件布置100的框图。硬件布置100包括存储器110和处理器120。

存储器110可以包括具有非易失性或易失性存储器形式的存储器,例如是电可擦除可编程只读存储器(eeprom)、闪存、和/或硬盘驱动器。存储器110可以配置为存储针对待分配内容和各个用户群的信息,例如,针对待分配内容的内容标签和相应置信度以及针对每个用户群的用户群标签和相应置信度等。

此外,存储器110还可以包括计算机程序111,该计算机程序111包括代码/计算机可读指令,其在由布置100中的处理器120执行时使得硬件布置100和/或包括硬件布置100在内的设备可以执行例如本发明所描述的内容分配方法的流程及其任何变形。此外,计算机程序111可被配置为具有例如计算机程序模块111a~111c架构的计算机程序代码。

处理器120(例如,微处理器、数字信号处理器(dsp)等)。处理器120可以是用于执行本文描述的流程的不同动作的单一处理单元或者是多个处理单元。处理器120通过加载存储器上的一个或更多个指令代码,来针对每个待分配内容,确定内容标签和相应置信度;针对每个用户群,确定用户群标签和相应置信度;根据每个用户群的用户群标签与每个待分配内容的内容标签的关联性和各自的相应置信度,确定每个用户群对每个待分配内容的偏好度;以及根据所述偏好度,向各用户群分配内容,使得总偏好度达到最大。

处理器120可以是单个cpu(中央处理单元),但也可以包括两个或更多个处理单元。例如,处理器120可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))。处理器还可以包括用于缓存用途的板载存储器。计算机程序可以由连接到处理器的计算机程序产品来承载。计算机程序产品可以包括其上存储有计算机程序的计算机可读介质。例如,计算机程序产品可以是闪存、随机存取存储器(ram)、只读存储器(rom)、eeprom,且上述计算机程序模块在备选实施例中可以用ue内的存储器的形式被分布到不同计算机程序产品中。

此外,所述布置100还可以包括用于从其他实体接收信号的输入单元102、以及用于向其他实体提供信号的输出单元104。输入单元102和输出单元104可以被布置为单一实体或者是分离的实体。在本发明的示例实施例中,输入单元和输出单元均可实现为触摸显示器,内容分配系统响应于通过触摸显示器输入了显示网页的命令,执行根据本发明的示例实施例的内容分配方法。在有针对性地向各个用户分配内容之后,通过所述触摸显示器输出。

尽管上面结合图1所公开的实施例中的代码手段被实现为计算机程序模块,其在处理器120中执行时使得硬件布置100执行根据本发明的内容分配方法的操作,然而在备选实施例中,该代码手段中的至少一项可以至少被部分地实现为硬件电路。

图2示出了根据本发明的示例实施例的内容分配方法的操作顺序图。具体地,所述内容分配方法包括四个部分,首先在操作s1,对内容进行打标。其次在操作s3,对用户群进行打标。接着在s5计算每个用户群对每个内容的偏好度。最终在s7,根据内容分配逻辑,针对每个用户群分配内容,使得全局的总偏好度实现最高。也就是说,要对待分配内容有充分的了解,为内容打上标签。再结合用户群标签,计算出用户群对各个内容的偏好程度。然后应用运筹学中的动态规划方法,为每个用户群分配最为匹配的内容。备选地,本方法还可以包括效果评估步骤(s9),以便将该方法与原方案做比较,评估效果。

以下参考图3详细描述根据本发明的示例实施例的内容分配方法。例如,本发明提供的技术方案可以基于hive数据库与hadoop框架,并通过使用redis外部缓存,来计算分配结果,并将结果保存在存储器中,供服务端接口使用。hadoop是一种分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。hive数据库是基于hadoop的一个数据库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为mapreduce任务进行运行。其优点是学习成本低,可以通过类sql语句快速实现简单的mapreduce统计,不必开发专门的mapreduce应用,十分适合数据库的统计分析。redis是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。应注意,以上实现框架仅是示例性的,本发明不限于此。

图3示出了根据本发明的示例实施例的内容分配方法300的流程图。

根据本发明的示例实施例的内容分配方法,在s301,针对每个待分配内容,确定内容标签和相应置信度。在一个实施例中,可以通过归纳待分配内容的内容属性,产生内容标签。在电商网站运营上,待分配内容通常为促销活动、专属商品等,可以从上述内容中提取出例如商品集合、商品分类信息、店铺信息、品牌信息等的内容属性,作为内容标签。一个内容可以包含多个标签,且一个标签可以对应多个内容。内容标签的相应置信度可以表示所述内容与相应内容标签的关联程度,例如,可以通过0或1来表示,即如果所述内容具有所述内容标签则可将其置信度视为1,否则将其置信度视为零。应注意,还可以通过其他方式来表示置信度,以便代表所述内容和所述内容标签的相关程度。此外,可以将与所述内容的内容标签和相应置信度存储在存储器中,例如存储为hive表,例如,下表1所示:

表1内容标签hive表字段

此外,在提取待分配内容的内容标签和相应置信度之外,还可以确定所述内容允许的最大分配用户群数量,并同样可以将其存储在存储器中,例如存储为如表2所示的hive表:

表2内容的最大分配用户群数hive表字段

另一方面,在提取待分配内容的内容标签和相应置信度之外,还可以对内容质量做出评估,即,评估所述内容的质量分。例如,通过查询商品的历史销量、活动的历史表现,用逻辑回归的方式形成分数。该分数也可以存储在存储器中,例如存储为表3所示的hive表:

表3内容质量hive表字段

在s303,针对每个用户群,确定用户群标签和相应置信度。用户标签的相应置信度与内容标签的相应置信度类似,用于表示所述用户群与对应用户群标签的关联程度。例如,可以根据用户群的历史行为记录,确定用户群标签和相应置信度,其中用户群标签可以与内容标签相关联,且其关联关系可以存储在存储器中。所述关联关系可以包括完全相同或涵盖等。例如,如果用户标签是生鲜且一个内容的内容标签包括水果,则认为所述用户标签和内容标签是相关联的。根据本发明的一个实现方案,在已有用户群标签的基础上,针对新增的内容标签,为用户群完善内容相关标签。应清楚,一个用户群可以包含多个标签,且一个标签可以对应多个用户群。此外,可以将用户群标签和相应置信度存储在存储器中,例如存储为hive表,如表4所示:

表4用户群标签hive表字段

接着,在s305,根据每个用户群的用户群标签与每个待分配内容的内容标签的关联性和各自的相应置信度,确定每个用户群对每个待分配内容的偏好度。具体地,如果所述待分配内容的一个或更多个内容标签与所述用户群的一个或更多个用户群标签相关联,则分别针对每个相关联的内容标签与用户群标签组,计算所述内容标签的相应置信度与所述用户群标签的相应置信度的乘积,并将针对各个相关联的内容标签与用户群标签组计算出的乘积相加求和,将所述和确定作为所述用户群对所述内容的基础偏好分数。如果所述待分配内容的任一内容标签不与所述用户群的任一用户群标签相关联,则将所述用户群对所述内容的基础偏好分数记做0。随后基于所述基础偏好分数,确定每个用户群对每个待分配内容的偏好度。此外,在计算得到基础偏好分数之后,还可以计算基础偏好分数与所述内容的质量分的乘积,并将所述乘积确定为所述用户群对所述内容的最终偏好分数。最终,基于所述最终偏好分数,确定每个用户群对每个待分配内容的偏好度。此外,可以将每个用户群对每个待分配内容的基础偏好分数或最终偏好分数同样存储为hive表,如表5所示:

表5用户群对内容偏好分数表字段

在s307,根据所述偏好度,向各用户群分配内容,使得总偏好度达到最大。例如,为保证最终在全局上获得最大的总偏好度,分配算法可以设计如下:

·首先,假设内容列表为n且用户群列表为m,从表2获取内容最大分配用户群数,例如,内容j的最大分配用户群数为c(j)。

·接着,从表5获取偏好分数矩阵,例如,用户群i对内容j的偏好分数可以表示为w(i,contentj)。

·随后,定义n维矩阵f(g1,g2…gn),表示在对第1个内容分配g1个用户群、对第2个内容分配g2个用户群……对第n个内容分配gn个用户群的情况下,可以获得的最高总偏好分数。

·那么,对于第i个用户群,最多有n+1种不同的分配方案:不分配任何内容、分配内容1、分配内容2……分配内容n,即,得到推导式:

f(g1,g2…gn)=max(f(g1,g2…gn),f(g1-1,g2…gn)+w(i,content1),f(g1,g2-1...gn)+w(i,content2)…f(g1,g2…gn-1)+w(i,contentn))通过上式就可以确定如何向用户群i分配内容才能保证实现全局的最高偏好分数。

·此外,针对每个用户群定义s(g1,g2…gn)矩阵。对于任一用户群i,s(g1,g2…gn)表示在将第一个内容分配g1个用户群,将第二个内容分配g2个用户群……将第n个内容分配gn个用户群的情况下,用户群i应该采取何种分配策略。也就是说,s(g1,g2…gn)的值表示在上述推导过程中计算f(g1,g2…gn)采用了何种策略:当用户群未被分配时,即,上述f推导式中max取到首项,记0;当用户群被分配为内容1时,即上述f推导式中max取到第二项,记1;当用户群被分配为内容j时,即上述f推导式中max取到第j+1项,记j。s矩阵应该保存在外部缓存中。

这样逆序遍历用户群列表,对每个用户群取s矩阵倒推,也就是说在确保全局最高总偏好分数的前提下,确定每个用户群的分配策略,其代码可以表示为:

所述针对各用户群确定内容分配方案的具体算法包括:获取针对每个内容的可分配用户群数量;相对于所述各用户群中的每一用户群,基于所获取的可分配用户群数量,遍历针对所述用户群的每种内容分配方案并确定针对每种内容分配方案的总偏好度,以便确定并存储在总偏好度达到最大的情况下的针对所述用户群的内容分配方案;将各用户群逆序排列;以及轮询经逆序排列的各用户群,并针对每个用户群获取所存储的与之相应的内容分配方案,以便根据偏好度向各用户群分配内容,使得总偏好度达到最大。图4示出了轮询经逆序排列的各用户群的算法的流程图。在步骤s401,首先获取每个内容可分配的用户群数量,即,c(1),c(2)…c(n)。其次,在步骤s403,将用户群列表逆序排列。接着,在步骤s405,确定本流程是否遍历了所有用户群。如果已经遍历全部用户群,则表示已经完成内容分配,因此,结束根据本发明的分配内容方法。如果没有遍历全部用户群,则执行步骤s407。在步骤s407,从用户群列表中查找下一用户群。在步骤s409,从外部缓存获取针对该用户群的s矩阵。在步骤s411,输出s(c(1),c(2)…c(n))的值,也就是,输出针对该用户群分配的内容编号j。在步骤s413,当所述内容编号j不等于0时,即,向该用户群分配内容j时,将相应内容的可分配用户群数量减一并返回到操作s405。

以上算法只是求取全局最佳解一种示例方式,本领域技术人员可以设计其他方案来求解。

此外,本发明还可以实现为内容分配装置。具体地,所述内容分配装置500可以包括:内容标签模块510,配置为:针对每个待分配内容,确定内容标签和相应置信度;用户群标签模块520,配置为:针对每个用户群,确定用户群标签和相应置信度;偏好度计算模块530,配置为:根据用户群标签模块520所确定的每个用户群的用户群标签与内容标签模块510所确定的每个待分配内容的内容标签的关联性和各自的相应置信度,确定每个用户群对每个待分配内容的偏好度;以及内容分配模块540,配置为:根据由偏好度计算模块530确定的偏好度,向各用户群分配内容,使得总偏好度达到最大。

在一个实施例中,所述偏好度计算模块530进一步配置为:如果所述待分配内容的一个或更多个内容标签与所述用户群的一个或更多个用户群标签相关联,则分别针对每个相关联的内容标签与用户群标签,计算所述内容标签的相应置信度与所述用户群标签的相应置信度的乘积,并将针对各个相关联的内容标签与用户群标签计算出的乘积相加求和,将所述和确定作为所述用户群对所述内容的基础偏好分数;且如果所述待分配内容的任一内容标签不与所述用户群的任一用户群标签相关联,则将所述用户群对所述内容的基础偏好分数记做0;以及基于所述基础偏好分数,确定每个用户群对每个待分配内容的偏好度。

此外,在另一实施例中,所述内容分配模块540进一步配置为:获取针对每个内容的可分配用户群数量;相对于所述各用户群中的每一用户群,基于所获取的可分配用户群数量,遍历针对所述用户群的每种内容分配方案并确定针对每种内容分配方案的总偏好度,以便确定并存储在总偏好度达到最大的情况下的针对所述用户群的内容分配方案;将各用户群逆序排列;以及轮询经逆序排列的各用户群,并针对每个用户群获取所存储的与之相应的内容分配方案,以便根据偏好度向各用户群分配内容,使得总偏好度达到最大。

综上,描述了一种基于动态规划的内容识别方法和系统,所述方法可以基于大数据技术框架来处理内容和用户群的大量标签,从而更准确地评估出用户群对每个内容的偏好程度,且在每个内容需分配不同数量用户群的约束下,可以计算出全局最优的分配策略,提升整体个性化效果。

对于本公开提出的技术,例如可以通过执行线上abtest来对其效果执行评估。例如,可以将每个用户群中的用户随机分为ab两组。对每一个用户群,a组按本方案提供的方法分配内容,b组按启发式方法分配内容,持续测试一周,观察反馈数据,对比个性化效果。根据测试,发现本公开的技术能够更准确地评估出用户群对每个内容的偏好程度,提升全局的总偏好分数,从而实现最优分配。

应注意,以上方案仅是示出本发明构思的一个具体实现方案,本发明不限于上述实现方案。可以省略或跳过上述实现方案中的一部分处理,而不脱离本发明的精神和范围。

前面的方法可以通过多种计算机装置以可执的程序命令形式实现并记录在计算机可读记录介质中。在这种情况下,计算机可读记录介质可以包括单独的程序命令、数据文件、数据结构或其组合。同时,记录在记录介质中的程序命令可以专门没计或配置用于本发明,或是计算机软件领域的技术人员已知应用的。计算机可读记录介质包括例如硬盘、软盘或磁带等磁性介质、例如压缩盘只读存储器(cd-rom)或数字通用盘(dvd)等光学介质、例如光磁软盘的磁光介质以及例如存储和执行程序命令的rom、ram、闪存等硬件装置。此外,程序命令包括编译器形成的机器语言代码和计算机通过使用解释程序可执行的高级语言。前面的硬件装置可以配置成作为至少一个软件模块操作以执行本发明的操作,并且逆向操作也是一样的。

尽管以特定顺序示出并描述了本文方法的操作,然而可以改变每个方法的操作的顺序,使得可以以相反顺序执行特定操作或使得可以至少部分地与其它操作同时来执行特定操作。此外,本发明不限于上述示例实施例,它可以在不脱离本公开的精神和范围的前提下,包括一个或多个其他部件或操作,或省略一个或多个其他部件或操作。

以上已经结合本发明的优选实施例示出了本发明,但是本领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和改变。因此,本发明不应由上述实施例来限定,而应由所附权利要求及其等价物来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1