本申请涉及人工智能技术领域,更具体地,涉及一种信息推送方法、装置及电子设备。
背景技术:
目前,许多应用涉及到信息推送。常用的推送方式是,预测用户对待推送信息的热度,并将预测的热度较大的待推送信息推送给用户。但是,预测的热度是否准确通常难以确定,若在预测的热度不准确的情况下,基于该预测的热度选取信息进行推送,将导致推送的信息准确度不佳。
技术实现要素:
本申请提出了一种信息推送方法、装置及电子设备,以解决上述问题。
第一方面,本申请实施例提供了一种信息推送方法,包括:获取数据对,数据对包括第一数据和第二数据,第一数据包括一个样本信息的真实热度值和预测模型对该样本信息的预测热度值,第二数据包括另一个样本信息的真实热度值和所述预测模型对该另一个样本信息的预测热度值,第一数据中的真实热度值大于第二数据中的真实热度值;确定获取的数据对的数量,作为第一数量;从获取的数据对中确定目标数据对的数量,作为第二数量,目标数据对为第一数据中的预测热度值大于第二数据中的预测热度值的数据对;获取第二数量与第一数量的比值,若该比值达到目标值,则将预测模型配置于信息推送平台中,所述信息推送平台用于根据预测模型对待推送信息的预测热度值,选取待推送信息进行推送。
第二方面,本申请实施例提供了一种信息推送方法,包括:获取模块、确定模块以及推送模块。获取模块用于获取数据对,数据对包括第一数据和第二数据,第一数据包括一个样本信息的真实热度值和预测模型对该样本信息的预测热度值,第二数据包括另一个样本信息的真实热度值和预测模型对该另一个样本信息的预测热度值,第一数据中的真实热度值大于第二数据中的真实热度值。确定模块用于确定获取的数据对的数量,作为第一数量;从获取的数据对中确定目标数据对的数量,作为第二数量,目标数据对为第一数据中的预测热度值大于第二数据中的预测热度值的数据对。推送模块用于获取第二数量与第一数量的比值,若比值达到目标值,则将预测模型配置于信息推送平台中,信息推送平台用于根据预测模型对待推送信息的预测热度值选取待推送信息进行推送。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序。其中,一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,一个或多个程序配置用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中存储有程序代码,所述程序代码可被处理器调用执行上述的方法。
本申请提供的方案,获取包括第一数据和第二数据的数据对,第一数据包括一个样本信息的真实热度值和预测模型对该样本信息的预测热度值,第二数据包括另一个样本信息的真实热度值和预测模型对该另一个样本信息的预测热度值。确定获取的数据对的数量,作为第一数量。从获取的数据对中确定目标数据对的数量,作为第二数量,目标数据对是指第一数据中的预测热度值大于第二数据中的预测热度值的数据对。如果第一数据与第二数据的比值达到目标值,则将预测模型配置于信息推送平台中,使得信息推送平台根据预测模型对待推送信息的预测热度值来选取待推送信息进行推送。通过上述流程,可以确保信息推送过程中所确定的待推送信息的预测热度值的准确度,从而提高推送的信息的准确度。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例的一种应用环境示意图。
图2示出了本申请实施例的一种信息推送方法流程图。
图3示出了图1中s110的子步骤示意图。
图4示出了图3中s112在一种实施方式中的子步骤示意图。
图5示出了图4所示流程的数据处理过程示意图。
图6示出了图3中s112在另一种实施方式的子步骤示意图。
图7示出了图6所示流程的数据处理过程示意图。
图8示出了图3中s112在又一种实施方式中的子步骤示意图。
图9示出了图2所示实施例中s130的子步骤示意图。
图10示出了图9中s131在一种实施方式中的流程示意图。
图11示出了图10所示流程的数据处理过程示意图。
图12为树状数组示意图。
图13为本申请实施例提供的一种社交平台的界面示意图。
图14为本申请实施例提供的一种电子设备的框图。
图15为本申请实施例提供的一种信息推送装置的框图。
图16是本申请实施例的用于保存或者携带实现根据本申请实施例的方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
目前,许多应用涉及信息推送。一些情况下,应用提供方希望推送给用户的信息能够尽可能多地被查看。因此,常用的推送方式是采用经过训练的预测模型来预测用户对待推送信息的热度,再选取预测的热度较大的待推送信息推送给用户。但是,通常难以确定预测的热度是否准确,一旦预测的热度不准确,将导致基于该预测的热度推送的信息不准确。
预测模型可以通过机器学习得到。机器学习作为人工智能技术的一个分支,其按照学习方式的不同,可以被分为有监督学习(supervisorlearning,sl)、无监督学习(unsupervisorlearning,ul)、增强学习(reinforcementlearning,rl)等,其中,增强学习又可以被称为强化学习。
一些场景中,预测模型可以采用强化学习方式训练得到。强化学习是指智能体(agent)通过执行动作(action)与环境交互,在动作和环境的作用下,智能体会产生新的状态(state),同时环境会产生一个即时奖赏(reward)。通过不断地与环境交互,智能体可以产生大量数据,并可以基于产生的数据调整自身执行动作的策略(policy),调整策略的目标是最大化智能体获得的奖赏。本申请实施例中,通过强化学习方式训练的机器模型,可以被称为强化学习模型。
强化学习模型的其中一个参数是状态-动作对价值函数q(s,a),q(s,a)可以视为强化学习模型的预测结果,例如上述的预测热度值。其中,s表示一个具体的状态,a表示一个动作,q(s,a)表示在状态s下执行动作a可以获得的长期奖赏。
经研究发现,一些实施方式中,针对强化学习模型,通常采用在线模拟其真实运行环境的方式,来对强化学习模型的质量进行观察和评估,以确定强化学习模型的预测结果是否准确,从而确定是否可以基于该强化学习模型的预测结果进行后续处理。但是,模拟的环境与真实运行环境通常存在较大区别,导致基于该方式无法可靠地判断强化学习模型的预测结果的准确度。
此外,比较常见的一种预测模型是用于预测类别的分类模型,如二分类模型。在另一些实施方式中,常采用auc(areaunderthecurveorreceiveroperatingcharacteristiccurve)来对二分类模型的预测结果的准确度。二分类模型用于根据输入数据输出一预测值,若该预测值大于或等于设定的阈值,则将该输入数据预测为正,否则将该输入数据预测为负。
auc的概率学定义为:随机选取一个正样本(实际为正的样本)和一个负样本(实际为负的样本),二分类模型对正样本的预测值大于对负样本的预测值的概率,即,auc=p(p正样本>p负样本)。基于auc的定义可以确定,采用auc进行评估,要求被评估模型的待测目标有明确的正和负两个类别之分,即auc通常仅适用于二分类模型,而对于待测目标并未被明确划分为两个类别的模型,例如上述的用于预测热度的预测模型,则难以直接通过auc来进行评估。
用于预测热度的预测模型的一种典型实现方式为针对广告信息的ctr(click-through-rate,点击通过率)预估模型。在其他的一些实施方式中,为了可以采用auc来判断ctr预估模型的预测结果的准确度,通常采用如下方式进行处理:
将被推送且被用户点击的信息定义为正样本,将被推送但未被用户点击的信息定义为负样本,然后再基于定义的正样本和负样本来计算预测模型的auc。但是,这种方式直接将所有被推送且被点击的广告划分到一个类别中,得到的auc无法反映ctr预估模型对该类别中不同广告的点击通过率的预测准确度。换言之,通过将不同信息的真实热度值强行划分为两个类别的方式得到的auc,无法准确反映预测模型的预测热度值的准确度,从而可能导致根据该预测模型的预测热度推送的信息有误。
发明人经过长期的研究,提出了一种信息推送方法、装置及电子设备,可以确保信息推送过程中对待推送信息的热度进行更为准确的预测,从而使得推送的信息更为准确。下面将对该内容进行阐述。
请参照图1,图1为一种适用于本申请实施例提供的信息推送方法的应用环境示意图。其中,电子设备100和用户终端200分别与信息推送平台300通信连接,用户终端200安装有客户端210,客户端210可以通过帐户等录至信息推送平台300,以获得信息推送平台300推送的信息并进行显示。
其中,电子设备100可以是服务器、个人计算机(personnalcomputer,pc)、笔记本电脑等,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。
一些情况下,电子设备100可以是与运行信息推送平台300的服务器通信的设备,另一些情况下,电子设备100可以是运行信息推送平台300的服务器之一。
本实施例中,信息推送平台300可以是内容互动平台、购物平台、具有信息推送功能的社交平台等。
请参照图2,图2为本申请实施例提供的一种信息推送方法的流程示意图,该方法可以应用于图1所示的电子设备100。下面对该方法包括的步骤进行阐述。
s110,获取数据对,数据对包括第一数据和第二数据,第一数据包括一个样本信息的真实热度值和预测模型对该样本信息的预测热度值,第二数据包括另一个样本信息的真实热度值和预测模型对该另一个样本信息的预测热度值,第一数据中的真实热度值大于第二数据中的真实热度值。
本实施例中,样本信息的类型随信息推送方法的应用场景而定,例如,在应用于新闻平台、视频平台、音乐平台等的情况下,样本信息可以是相应平台推送的信息,如视频信息、图像信息、音频信息、文本信息中的一种或多种。又比如,在应用于购物平台的情况下,样本信息可以是购物信息。再比如,在应用于广告推送系统的情况下,样本信息可以是广告信息。可以理解,前述的购物信息和广告信息可以以视频、图像、文本、音频等形式中的至少一种呈现。
本实施例中,样本信息的热度值是指任意可以表征样本信息的热度的数据的值,例如可以是点击率、点击次数、下载次数、收藏次数、购买次数等。进一步地,以样本信息是媒体信息(如,音频信息、视频信息或文本信息)文件或广告信息为例,热度值例如可以是媒体信息或广告信息在未来一段时间内的点击率或点击次数。以样本信息是应用程序安装包为例,热度值例如可以是应用程序安装包在未来一段时间内的下载率或下载次数。以样本信息是商品信息为例,热度值例如可以是商品信息表征的商品在未来一段时间内的购买率或购买次数。
本实施例中,样本的预测热度值是指通过预测模型对该样本信息在未来一段时间内的热度进行预测而得到的值,样本的真实热度值是指实际监测到的该样本信息在所述未来一段时间内的热度的值。可选地,所述热度值可以为点击次数、点击率、收藏次数或点赞次数,本实施例对此没有限制。
经研究发现,对于任意两个样本信息,如果预测模型对真实热度值较大的样本信息的预测热度值也较大,那么基于该预测模型对待推送信息的预测热度值可以更为准确地选取推送给用户的待推送信息。从概率学的角度描述,即为:随机选取两个样本信息i和j,在样本信息i的真实热度值ri大于样本信息j的真实热度值rj的情况下,样本信息i的预测热度值qi也大于样本信息j的预测热度值qj的概率。这个概率越大,预测模型的预测热度值越准确,基于该预测热度值选取的用于推送的信息越准确。该概率的数学表达式可以如下:
p=p(qi>qj|ri>rj)
其中,i和j为正整数,ri表示样本信息i的真实热度值,qi表示样本信息i的预测热度值,rj表示样本信息j的真实热度值,qj表示样本信息j的预测热度值。
基于此,本实施例中,可以通过上述概率来判断预测模型的预测热度值的准确度,从而可以将真实热度值较大的样本信息i和真实热度值较小的样本信息j组成对,其中,真实热度值较大的样本信息i的真实热度值ri和预测热度值qi可以作为第一数据(ri,qi),真实热度值较小的样本信息j的真实热度值rj和预测热度值qj可以作为第二数据(rj,qj),第一数据(ri,qi)和第二数据(rj,qj)可以组成本实施例中的一个数据对<(ri,qi),(rj,qj)>。如此,可以得到大量的ri>rj的数据对,其中,任意两个数据对中的数据不全相同。
在ri>rj的数据对足够多的情况下,qi>qj的数据对在所有ri>rj的数据对中所占的比例,将非常趋近于上述概率p。因而,可以采用所述比例来判断预测模型的预测热度值的准确度,进而判断是否可以基于该预测模型的预测热度值进行信息推送。
值得说明的是,样本信息的真实热度值通常是可以在一定取值范围内变化的数值。比如,该真实热度值可以是整数范围内的任意值,又比如,该真实热度值可以是实数范围内的任意值,又比如,该真实热度值可以是(0,1)区间内的任意值。本实施例不以此为限制。
s120,确定获取的数据对的数量,作为第一数量。
其中,第一数量是指获取的数据对<(ri,qi),(rj,qj)>的数量,每个数据对中,ri>rj。
s130,从获取的数据对中确定目标数据对的数量,作为第二数量,目标数据对为第一数据中的预测热度值大于第二数据中的预测热度值的数据对。
其中,目标数据对是指获取的所有数据对<(ri,qi),(rj,qj)>中,qi>qj的数据对。对应地,第二数量是指获取的所有数据对中的qi>qj的数据对的数量。
可以理解,图1所示流程中,s120和s130可以没有严格的执行顺序限制,例如,s120和s130可以并行执行,也可以按照任意顺序先后执行,本实施例对此没有限制。
s140,获取第二数量与第一数量的比值。
电子设备100在获取到第一数量和第二数量之后,一种方式中,可以将第二数量除以第一数量,得到所述比值。另一种方式中,可以将第二数量和第一数量发送给其他设备,计算得到第二数量与第一数量的所述比值。
得到的比值即为qi>qj的数据对在所有ri>rj的数据对中所占的比例,可以表征上述的概率p,可以用于表征预测模型的预测热度值的准确度。
s150,若所述比值达到目标值,则将预测模型配置于信息推送平台中,所述信息推送平台用于根据所述预测模型对待推送信息的预测热度值,选取待推送信息进行推送。
其中,目标值可以灵活设定,例如可以根据经验或统计数据进行设定,比如可以为0.7-0.8之间的任意值。
在上述比值达到目标值的情况下,表示预测模型的预测热度值的准确度符合预期,因而可以将所述预测模型配置于相应的信息推送平台中,从而可以基于该预测模型来对待推送信息的热度进行预测,从而基于预测的热度从待推送信息中选取推送至客户端的信息,从而提高所推送的信息的准确度。可选地,根据信息推送平台300的不同,待推送信息的确定方式有所不同。例如,在信息推送平台300是具有信息推送功能的社交平台的情况下,帐户a对应的待推送信息可以是与帐户a存在好友关系的其他帐户点击、收藏、下载或发送的信息。
在信息推送平台300是内容互动平台的情况下,帐户a对应的待推送信息可以是帐户a主动关联的帐户b点击、收藏或发送的信息。其中,帐户a例如可以点击其客户端的显示界面上的“关注”标签等实现主动关联至帐户b。
在信息推送平台300是购物平台的情况下,帐户a对应的待推送信息例如可以是与帐户a的用户特征数据匹配的广告信息等。对应地,此时信息推送平台使用的预测模型例如可以是前述的ctr预估模型。
可以理解,上述关于信息推送平台300的描述仅为举例,并非用于限定本申请。
本实施例中,所述比值越大,表示预测模型的预测热度值准确度越高,通过该预测模型得到的不同信息的预测热度值的大小关系与所述不同信息的真实热度值的大小关系具有更高的相似程度,为基于预测热度值的后续处理提供了更为准确的依据。
一些场景中,需要根据预测模型对不同信息的预测热度值对所述不同信息排序,并根据排序结果选取信息进行推送,这些场景关注的是各信息的预测热度值的大小关系而非每个信息的预测热度值的具体值,若在这些场景中通过本申请实施例的信息推送方法所确定的准确度较高的预测模型来预测不同信息的热度值,其得到的预测热度值的大小关系与真实热度值的大小关系相似程度高,从而可以更加准确地选取参与后续处理的信息。
另一些场景中,比如在预测模型为强化学习模型的场景中,通过本申请实施例提供的信息推送方法,不必对真实运行环境进行在线模拟,避免了因无法还原真实运行环境所导致的无法可靠地判断预测模型的准确度,从而将准确度不高的预测模型被配置于信息推送平台中,导致信息推送平台推送的信息不准确的问题。
请再次参照图2,下面将对图2所示步骤的详细实现过程做进一步的阐述。
在s110中,获取数据对的方式可以有多种。一种实施方式中,可以预先采集至少两个数据对并存储于一存储设备中,在获取的各数据对中,任意两个数据对的数据不全相同。在需要将预测模型配置于信息推送平台中,以用于对待推送信息的热度值进行预测前,电子设备100可以直接从存储设备中读取该至少两个数据对。
另一种实施方式中,考虑到上述流程中rj>ri的数据对越多,最终计算出的比值越趋近于概率p,因此,为了得到的比值能够尽可能真实地反映预测模型的预测热度值的准确度,通常需获得尽可能多地数据对,从而需要尽可能多地采集样本的真实热度值和预测热度值。为了降低采集过程的耗时,例如可以通过图3所示步骤来获取所述至少两个数据对,下面对图3所示步骤进行详细描述。
s111,分别获取至少两个样本信息的热度数据,每个样本信息的热度数据包括该样本信息的真实热度值和预测模型对该样本信息的预测热度值。
其中,所述至少两个样本信息各不相同,所述至少两个样本信息的热度数据可以存储于一存储设备中,在需要将预测模型配置于信息推送平台之前,电子设备100可以从存储设备获取到所述至少两个热度数据。
s112,将每个样本信息的热度数据与真实热度值大于该样本信息的其他每个样本信息的热度数据分别配对为数据对,其中,具有较大真实热度值的热度数据为所述第一数据,具有较小真实热度值的热度数据为所述第二数据。
本实施例中,热度数据具有的真实热度值是指该热度数据中的真实热度值。
为便于描述,假定s111中描述的至少两个样本信息的数量为n,n为正整数,则获取的热度数据的数量为n。
其中,对于热度数据i(1≤i≤n,i为整数),电子设备100可以从n个热度数据中确定至少一个热度数据j(1≤j≤n,i≠j,j为整数),热度数据j中的真实热度值大于热度数据i中的真实热度值。针对确定的每个热度数据j,电子设备100可以将该热度数据j与热度数据i配对为一个数据对。该数据对中,热度数据j中的真实热度值较大,因此热度数据j为第一数据,对应地,热度数据i为第二数据。如此,可以得到多个数据对。
通过图3所示流程,可以通过较少样本信息的热度数据组合出较多的数据对,减少采集样本信息的热度数据所需的时间。特别地,针对预测模型为强化学习模型的情况,由于强化学习模型的真实热度值无法预先得到,而是需要在待测状态s下执行待测动作a,并经过一段时间后才能采集到,因而,用于评估强化学习模型的热度数据的采集比较耗时。而图3所示流程,减少了获得相同准确度的比值所需采集的热度数据的数量,缩短了判断预测模型的预测热度值的准确度所需的时间,从而可以快速地判断预测模型是否适用于信息推送平台。
本实施例中,为了针对每个热度数据i,快速地确定具有的真实热度值大于该热度数据i中真实热度值的所有热度数据j,根据获取的至少两个数据中是否各不相同,电子设备100可以采用不同方式来实现s112。
一种情况下,获取的至少两个热度数据中的真实热度值可能各不相同,即,获取的任意两个热度数据中的真实热度值不相等,在此情况下,s112可以通过图4所示流程实现,详细描述如下。
s112-1,按照真实热度值大小,对至少两个样本信息的热度数据进行排序。
s112-2,按照真实热度值从大到小的顺序,依次读取每个样本信息的热度数据。
本实施例中,可以按照包括的真实热度值从大到小的顺序对多个样本信息的热度数据进行排序,也可以按照包括的真实热度值从小到大的顺序对至少两个样本信息的热度数据进行排序,并不以此为限制。只要对至少两个热度数据的读取顺序是真实热度值从大到小的顺序即可。
s112-3,在每次读取一个样本信息的热度数据之后,将本次读取的热度数据分别与读取顺序在本次读取的热度数据之前的每个热度数据,分别配对为一个数据对。
当按照真实热度值从大到小的顺序来读取每个热度数据时,对于当前读取的热度数据而言,读取顺序在当前读取的热度数据之前的每个热度数据的真实热度值都大于当前读取的热度数据,从而可以直接将读取顺序在当前读取的热度数据之前的每个热度数据和当前读取的热度数据作为一个数据对。如此,针对每个热度数据,可以省去查找具有的真实热度值大于该热度数据中真实热度值的热度数据的复杂过程,节约评估过程的耗时。
下面参照图5,以n个热度数据为例,对图4所示流程的数据处理过程进行阐述。其中,热度数据1中的真实热度值最大,热度数据n中的真实热度值最小,从热度数据1到热度数据n,它们各自包含的真实热度值的变化趋势为依次减小。
实施过程中,首先读取热度数据1,参照图5所示的处理过程(1),由于热度数据1中的真实热度值最大的,不存在任意一个热度数据中的真实热度值大于热度数据1中的真实热度值,无法进行配对,得到的数据对的数量为0。
电子设备100读取下一个热度数据,即热度数据2。参照图5所示的处理过程(2),在读取热度数据2之后,由于电子设备100是按照真实热度值从大到小的顺序来依次读取热度数据的,因而,n个热度数据中具有的真实热度值大于热度数据2中真实热度值的热度数据为:读取顺序在热度数据2之前的热度数据1。那么,电子设备100可以直接获取热度数据1,并将热度数据1和热度数据2配对为一个数据对。如此,可以得到1个数据对,该数据对中,热度数据1为第一数据,热度数据2为第二数据。
电子设备100读取下一个热度数据,即热度数据3。参照图5所示的处理过程(3),在读取热度数据3之后,电子设备100可以确定具有的真实热度值大于热度数据3中真实热度值的热度数据为:读取顺序在热度数据3之前的热度数据1、热度数据2。电子设备100可以将热度数据1和热度数据3配对为一个数据对,该数据对中,热度数据1为第一数据,热度数据3为第二数据;将热度数据2和3配对为一个数据对,该数据对中,热度数据2为第一数据,热度数据3为第二数据。如此,可以得到2个数据对。
电子设备100继续按照真实热度值从大到小的顺序依次读取每个热度数据。参照图5所示的处理过程(i),读取热度数据i之后,可以确定具有的真实热度值大于热度数据i中真实热度值的热度数据为:读取顺序在热度数据i之前的热度数据1至i-1。因此,电子设备100可以将热度数据1至i-1中的每一个热度数据分别与热度数据j配对为数据对,如此,可以得到i-1个数据对。热度数据1至i-1在各自所处的数据对中,均为第一数据,热度数据i为第二数据。
电子设备100按照图5所示流程继续处理,直至完成对热度数据n的处理,则可以得到1 2 …… (n-2) (n-1)个数据对,即,获得的数据对的数量为(n-1)n/2。如此,针对每个热度数据,可以非常快速地确定具有的真实热度值大于该热度数据中真实热度值的其他所有热度数据,提高了获取数据对的效率。
另一种情况下,获取的至少两个热度数据中,可能至少存在两个热度数据具有相同真实热度值。请参照图6,图6示出了此情况下s112的一种实现方式,其中,s112包括上述的s112-1和s112-2,此外,s112还包括s112-4、s112-5和s112-6。
其中,电子设备100执行s112-1和s112-2的详细过程与图4所示实施例的对应步骤相同,在此不再赘述,在执行s112-2之后,执行以下步骤:
s112-4,在每次读取一个样本信息的热度数据之后,确定本次读取的热度数据与上一次读取的热度数据的大小关系。
s112-5,若本次读取的热度数据中的真实热度值不等于上一次读取的热度数据中的真实热度值,将本次读取的热度数据与读取顺序在本次读取的热度数据之前的每个热度数据分别配对为数据对。
s112-6,若本次读取的热度数据中的真实热度值等于上一次读取的热度数据中的真实热度值,不将本次读取的热度数据与读取顺序在本次读取的热度数据之前的热度数据配对。
请参照图7,图7示出了按照真实热度值从大到小的顺序依次读取热度数据i-1、i和i 1后的数据处理过程。其中,热度数据i-1和i两者中的真实热度值相等,热度数据i-2中的真实热度值大于热度数据i-1和i三者中的真实热度值,热度数据i 1中的真实热度值小于热度数据i-1和i三者中的真实热度值。
实施过程中,电子设备100读取热度数据i-1之后的处理过程与图5中所示的各处理过程相同,在此不再赘述。
参照图7中的处理过程(i),电子设备100读取热度数据i之后,确定本次读取的热度数据i中的真实热度值等于上一次读取的热度数据i-1中的真实热度值,则不进行配对,或者可以视作本次配对得到的数据对数量为0。
电子设备100读取下一个热度数据i 1。参照图7所示处理过程(i 1),电子设备100读取热度数据i 1之后,确定本次读取的热度数据i 1中的真实热度值不等于(小于)上一次读取的热度数据i中的真实热度值,则将读取顺序在热度数据i 1之前的热度数据1至i分别与热度数据i 1配对,本次配对得到的数据对数量为i。
通过图7所示流程,既可以针对每个热度数据,快速地确定具有的真实热度值比该热度数据中真实热度值大的热度数据,减少针对预测模型的预测准确度的判断过程的耗时,又可以避免将具有相同真实热度值的两个热度数据配对,使得得到的比值可以更为准确地反映预测模型的预测准确度。
可选地,在另一实现方式中,上述s112-6也可以替换为如下步骤:
将本次读取的热度数据与读取顺序在本次读取的热度数据之前的、具有的真实热度值大于本次读取的热度数据中真实热度值的每个热度数据分别配对为数据对。例如,图7所示场景中,可以将热度数据i与热度数据1至i-2分别配对为数据对。如此,可以增加获得的数据对的数量。
请参照图8,图8示出了多个热度数据中存在具有相同真实热度值的热度数据的情况下,s112的又一实现方式。其中,s112可以包括上述的s112-1、s112-2和s112-4,此外,s112还包括s112-7和s112-8。图8所示流程既适用于多个热度数据中的真实热度值各不相同的情况,又适用于存在真实热度值相同的热度数据的情况,并且可以针对每个热度数据,快速确定具有的真实热度值大于该热度数据中真实热度值的热度数据。详细描述如下。
电子设备100执行s112-1、s112-2和s112-4的详细过程可以参照前文关于对应步骤的描述,在此不再赘述。
s112-7,若本次读取的热度数据中的真实热度值等于上一次读取的热度数据中的真实热度值,则缓存本次读取的热度数据,并读取下一个样本信息的热度数据。
s112-8,若本次读取的热度数据中的真实热度值不等于上一次读取的热度数据中的真实热度值,则将当前缓存的热度数据与读取顺序在当前缓存的各热度数据之前的每个热度数据分别配对为数据对,删除缓存的热度数据,缓存本次读取的热度数据,并读取下一个样本信息的热度数据。
下面再次参照图7,图7中还示出了在热度数据i-1之前读取的热度数据i-2的处理过程,对图7所示步骤的数据处理过程进行阐述。
可以理解,电子设备100读取到热度数据i-1时,当前缓存的热度数据为i-2。那么,电子设备100在读取热度数据i-1之后,确定热度数据i-1中的真实热度值不等于上一次读取的热度数据i-2中的真实热度值,则可以参照图7的处理过程(i-2),将当前缓存的热度数据i-2分别与读取顺序在热度数据i-2之前的热度数据1至i-3配对为数据对,得到i-3个数据对。然后,删除缓存的热度数据i-2,缓存热度数据i-1,并读取下一个热度数据i。
电子设备100在读取热度数据i之后,确定热度数据i中的真实热度值等于上一次读取的热度数据i-1中的真实热度值,则直接缓存热度数据i。此时,电子设备100当前缓存的热度数据i-1和i。然后,电子设备100读取下一个热度数据i 1。
电子设备100读取热度数据i 1之后,确定热度数据i 1中的真实热度值不等于上一次读取的热度数据i中的真实热度值,则确定当前缓存的热度数据i-1和i,并可以参照图7的处理过程(i-1),将热度数据i-1分别与读取顺序在热度数据i-1和i两者之前的热度数据1至i-2配对为数据对,得到i-2个数据对;可以参照图7的处理过程(i),将热度数据i分别与读取顺序在热度数据i-1和i两者之前的热度数据1至i-2配对为数据对,得到i-2个数据对。
基于图4、图6和图8任一所示的配对方式,本实施例中,电子设备100可以针对每次读取的热度数据,确定读取顺序在本次读取的热度数据之前的热度数据与本次读取的热度数据配对得到的数据对的数量,作为第三数量;对分别针对每次读取的热度数据确定的第三数量进行求和,即可得到获取的数据对的总量,即第一数量。如此,可以快速地确定每个热度数据对应的第三数量,从而快速确定第一数量,提高评估效率。
其中,根据每次读取的热度数据中的真实热度值在获取的至少两个热度数据具有的真实热度值中是否是唯一的,针对本次读取的热度数据确定的第三数量可能不同。
比如,如果获取的至少两个热度数据中,不存在具有的真实热度值等于本次读取的热度数据中真实热度值的热度数据,那么,针对本次读取的热度数据确定的第三数量为:读取顺序在本次读取的热度数据之前的热度数据的数量。
又比如,如果获取的至少两个热度数据中,存在具有的真实热度值等于本次读取的热度数据中真实热度值的热度数据,那么,通常会按照图6或图8所示的流程来对热度数据进行两两配对。
基于图6所示流程,对于具有相同真实热度值的至少两个热度数据(如上述的热度数据i-1和i),针对其中首个被读取的热度数据(如,热度数据i-1)确定的第三数量为读取顺序在该热度数据之前的热度数据的数量;针对其他热度数据(如,热度数据i)确定的第三数量为0。
基于图8所示流程,针对具有相同真实热度值的至少两个热度数据中的每一个所确定的第三数量相等,均为读取顺序在该至少两个热度数据之前的热度数据的数量。
实施过程中,可以设置一第一变量,该第一变量的初始值例如可以为0,每针对一个热度数据确定第三数量,则将确定的第三数量累加至第一变量,那么,当确定所有热度数据对应的第三数量之后,第一变量的值即为第一数量。
可选地,基于上述的图4、图6和图8所示的获取数据对的方式,本实施例中,电子设备100可以通过图9所示流程来获得第二数量。换言之,s130可以包括图9所示的如下步骤:
s131,针对每次读取的热度数据,从读取顺序在本次读取的热度数据之前的热度数据与本次读取的热度数据配对得到的数据对中,确定目标数据对的数量,作为第四数量。
s132,对分别针对每次读取的热度数据确定的第四数量进行求和,得到所述第二数量。
其中,当针对本次读取的热度数据确定的第三数量为0的情况下,针对本次读取的热度数据确定的第四数量也为0。
当针对本次读取的热度数据确定的第三数量不为0的情况下,一种实施方式中,电子设备100可以从本次读取的热度数据与读取顺序在本次读取的热度数据配对得到的每个数据对中,获取第一数据和第二数据,并将获取的第一数据和第二数据进行比较,若确定第一数据中的预测热度值大于第二数据中的预测热度值,则将该数据对确定为目标数据对。如此,可以从本次配对得到的第三数量个数据对中识别出所有的目标数据对,并确定识别出的目标数据对的数量,即第四数量。
实施过程中,电子设备100可以设置一第二变量,第二变量的初始值例如可以为0,每针对一个热度数据确定第四数量,则将确定的第四数量累加到该第二变量中,如此,当针对所有热度数据确定第四数量后,第二变量的值即为获取的所有数据对中的目标数据对的数量,即第二数量。
可选地,为了降低确定第四数量的时间复杂度,提高确定第四数量的效率,本实施例提供的信息推送方法还可以包括图10所示的s910和s920。详细描述如下。
s910,获取所述目标区间包括的至少两个子区间,所述至少两个子区间按照从小到大的顺序与第一数组中的数组元素一一对应,所述第一数组中的数组元素具有初始值。
s920,在每次读取一个样本信息的热度数据之后,将所述第一数组中与本次读取的热度数据对应的第一元素设置为目标值,其中,所述第一元素是指与本次读取的热度数据中的预测热度值所处的子区间对应的数组元素。
本实施例中,每个样本信息的预测热度值(即,每个热度数据中的预测热度值)通常属于目标区间。可以理解,一些情况下,预测模型的输出值属于目标区间,例如当预测模型的输出值为点击率、点击通过率等时,该输出值属于(0,1)区间,此时,可以直接将预测模型的输出值作为本实施例中的预测热度值。另一些情况下,预测模型的输出值不属于某一特定区间,例如当预测模型的输出值为点击次数、收藏次数、点赞次数等时,该输出值通常可以为实数范围的任意整数,此时,可以将预测模型的输出值映射到目标区间中,并将映射后的值作为本实施例中的预测热度值。示例性地,可以通过sigmoid函数将预测模型的输出值映射到(0,1)区间。其中,sigmoid函数的表达式例如可以为如下表达式:
其中,x为预测模型的输出值,sigmoid(x)为得到的映射值,该映射值可以作为本实施例中的预测热度值。
可选地,本实施例中,目标区间包括的子区间的数量可以灵活地设置,为了降低超过一个样本信息的预测热度值落入同一子区间的概率,目标区间包括的子区间的数量可以至少大于s111中的至少两个样本信息的数量。示例性地,一些应用场景中,目标区间可以包括三百万至五百万个子区间,例如,450万个子区间。
请参照图11,图11示出了图10所示步骤的数据处理过程。其中,热度据i包括真实热度值ri和预测热度值qi。
以热度数据中的预测热度值属于(0,1)区间为例,基于s920,电子设备100读取热度数据i之后,可以确定热度数据i中的预测热度值qi属于目标区间(0,1)中的第t个子区间,第t个子区间与第一数组a中的数组元素a[t]对应,则数组元素a[t]是与热度数据i对应的第一元素,数组元素a[t]的值将被设置为目标值。其中,1≤t≤n,t为整数。
本实施例中,当获取的多个热度数据各不相同的情况下,读取顺序在前的热度数据1至i-1将分别与热度数据i配对为数据对。那么,热度数据1至i-1中,具有的预测热度值大于热度数据i中预测热度值的热度数据的数量,即为针对热度数据i的第四数量(假设为ki)。对应地,将热度数据i与热度数据1至i-1配对得到的数据对的第三数量(即,i-1)减去一数量,该数量为热度数据1至i-1中、具有的预测热度值小于热度数据i中预测热度值的热度数据的数量,则可以得到上述的第四数量ki。
为便于描述,将热度数据1至i-1中,具有的预测热度值小于热度数据i中预测热度值的热度数据约定为热度数据x,(1≤x≤i-1,x为整数)。
s910和s920为热度数据1至i-1中的热度数据x的数量的确定,提供了依据。参照图11,详细原理描述如下。
鉴于电子设备100是按照各个热度数据中的真实热度值从大到小的顺序来依次读取每个热度数据,因而,当热度数据i被读取之后,热度数据1至i-1各自对应的数组元素的值均已被置为目标值。进一步地,热度数据x所对应的第一元素,是a[1]至a[t-1]中的被设置为目标值的数据组元素。因此,第一元素a[t]之前的各数组元素a[1]至a[t-1]中,被设置为目标值的数组元素的数量sumt-1,示的是热度数据1至i-1中的热度数据x的数量。基于此,采用针对热度数据i确定的第三数量减去sumt-1,即可得到第四数量ki。
因此,基于s910和s920,s131可以通过图10所示的s131-1、s131-2和s131-3实现。详细描述如下。
s131-1,获取与本次读取的热度数据对应的第一元素在所述第一数组中的顺序标识,作为第一标识。
数组元素的顺序标识表征数组元素在所处数组中的顺序。可选地,本实施例中,所述顺序标识可以是数组元素的顺序号或下标,例如a[1]的顺序标识为1,a[2]的顺序标识为2,a[t]的顺序标识为t。
s131-2,根据所述第一标识,从所述第一数组中确定顺序在本次读取的热度数据所对应的第一元素之前的各数组元素。
以第一元素是a[t]为例,第一标识为t,则根据第一标识t从第一数组中确定的各数组元素是:第一数组中、顺序标识小于t的所有数组元素,即数组元素a[1]至a[t-1]。
s131-3,根据本次读取热度数据之后确定的第三数量以及所述各数组元素的值,得到所述第四数量。
可选地,在实现上述s131-1的过程中,为了获取每次读取的热度数据对应的第一元素的顺序标识(即,第一标识),通常需要维护热度数据与第一数组中数组元素的对应关系,并且需要根据本次读取的热度数据查找该对应关系。为了快速获取第一标识,在执行s112-2之前,本实施例提供的信息推送方法还可以包括如下流程:
确定每个热度数据中的预测热度值所处的子区间,从第一数组中确定与该子区间对应的数组元素,作为与该热度数据对应的第一元素,将该热度数据中的预测热度值替换为该第一元素的顺序标识。
在热度数据中将预测热度值替换为对应的第一元素的顺序标识之后,电子设备100可以直接获取本次读取的热度数据中的顺序标识作为第一标识,从而实现上述的s131-1。如此,可以不必维护额外的对应关系,也不必进行额外的查找操作,从而提高了获取第一标识的效率。
可选地,本实施例中,图10所示的s131-3可以有多种实现方式。
一种实施方式中,电子设备100可以从读取顺序在本次读取的热度数据之前的各热度数据中,识别出值为目标值的热度数据的数量。比如,对于本次读取的热度数据i,电子设备100可以从热度数据1至i-1中识别出当前值为目标值的热度数据的数量,得到的即为上述的数量sumt-1。然后,电子设备100可以确定本次读取的热度数据的第三数量mi与数量sumt-1的差值,得到的差值为第四数量ki。
在此实施方式中,对第一数组中数组元素的目标值和初始值的具体取值没有限制,只要两者不同即可。
另一种实施方式中,可以将第一数组中数组元素的初始值设置为0,目标值设置为1。在此情况下,s131-3可以通过如下流程实现:
确定所述各数组元素的值之和;
确定所述本次读取热度数据之后确定的第三数量与所述各数组元素的值之和的差值,作为所述第四数量。
参照上文关于图11所示例子,对于本次读取的热度数据i,通过s131-2确定的各数组元素分别为:数组元素a[1]至a[t-1]。热度数据1至i-1中、具有的预测热度值比热度数据i中预测热度值小的热度数据被表示为热度数据x。而数组元素a[1]至a[t-1]中、与热度数据x对应的数组元素的值已被置为1,其他数组元素的值仍为0,那么,数组元素a[1]至a[t-1]的值之和等于热度数据x的数量sumt-1。
值得说明的是,在获取的至少两个热度数据中,存在具有相同真实热度值的热度数据的情况下,例如图7所示的热度数据i-1和i,假设在针对热度数据i确定第四数量前,将热度数据i-1对应的第一元素设置为目标值,如果热度数据i-1中预测热度值大于热度数据i中预测热度值,那么最终计算得到的第四数量ki将会包含热度数据i-1和i组成的数据对,但是热度数据i-1和i并未被组成数据对,从而可能导致最终得到的第二数量存在误差。
针对该误差,一种实现方式中,在获取的数据对足够多的情况下,该误差可忽略不计。另一种实现方式中,可以在分别确定具有相同真实热度值的各热度数据所对应的第四数量之后,再将所述各热度数据对应的第一元素设置为目标值,从而可以消除该误差。
可选地,为了降低确定上述的各数组元素的值之和sumt-1的时间复杂度,提高计算效率,本实施例中,电子设备100还可以维护有第二数组,第二数组是与第一数组对应的树状数组。第二数组中的每个数组元素的值等于第一数组中的至少部分数组元素的值之和。通过树状数组,查询第一数组中任意两个数组元素之间的所有数组元素的值之和的时间复杂度为o(n)。
示例性地,假定第一数组a包括n个数组元素,采用a[t](1≤t≤n,t为整数)表示第一数组a中的数组元素。对应地,第二数组c也包括n个数组元素,本实施例采用c[t]表示第二数组c中的数组元素。
由于第二数组为树状数组,则数组元素c[t]的值等于第一数组中的数组元素a[t-lowbit(t) 1]至a[t]各自的值之和。
其中,lowbit(t)是指:将t转换为二进制数之后,从最低位开始出现的第一个非0位的值及低于所述第一个非0位的各个数据位的值,所组成的二进制数对应的十进制数。其中,非0位上的值为1,低于上述第一个非0位的数据位的值为0。
在此通过一些示例对lowbit(t)进行解释,比如,当t=1时,其二进制形式为0001,其最低位即为非0位,0001的最低位的值1所表示的十进制数1,即为lowbit(1)的值。对应地,c[1]=a[1]。又比如,当t=2时,其二进制形式为0010,从最低位开始的第二位为第一个非0位,最低位为低于该第一个非0位的数据位,则0010的最低的两个数据位的值10所表示的二进制数对应的十进制数2,即为lowbit(2)的值。对应地,c[2]=a[1] a[2]。类似地,当t=3时,其二进制形式为0011,则lowbit(3)=1。对应地,c[3]=a[3]。
请参照图12,其中以第一数组a和第二数组c分别包括8个数组元素为例,示例性地示出了第一数组a与第二数组c的对应关系。其中,c[1]=a[1],c[2]=a[1] a[2],c[3]=a[3],c[4]=a[1] a[2] a[3] a[4],c[5]=a[5],c[6]=a[5] a[6],c[7]=a[7],c[8]=a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8]。
可见,对于第一数组a的前t-1项数组元素的值之和sumt-1,可以通过如下表达式计算得到:
sumt-1=∑ic[ti],
其中,i为大于或等于1的整数,ti为大于0的整数,t1=t-1,ti 1=ti-lowbit(ti)。例如图10所示场景中,若t-1=6,则sum6=c[6] c[4]。若t-1=7,则sum7=c[7] c[6]。若t-1=8,则sum8=c[8]。
电子设备100在维护有第二数组的情况下,在将第一数组中的数组元素置为目标值之后,可以对第二数组中的对应数组元素的值进行更新。换言之,在执行s910之后,本实施例提供的信息推送方法还可以包括以下流程:
访问第二数组;
从第二数组中确定与被设置为目标值的第一元素对应的数组元素,作为第二元素,根据目标值更新第二元素的值。
本实施例中,树状数组中的每个数组元素可以视为一个节点,数组元素c[t]又可以称为节点t。其中,节点t lowbit(t)为节点t的父节点。
那么,假定被设置为目标值的第一元素为a[t],则可以以第二数组中的节点t为起始节点,依次查找当前节点的父节点,直至查找到根节点为止。查找到的所有节点对应的数组元素,即为与第一元素a[t]对应的第二元素。比如图12所示场景中,与第一元素a[4]对应的第二元素有:c[4]、c[8];与第一元素a[5]对应的第二元素有:c[5]、c[6]、c[8];与第一元素a[6]对应的第二元素有:c[6]、c[8]。
电子设备100在确定与第一元素对应的第二元素之后,可以在该第二元素的当前值上累加目标值。基于此,在每次读取一个样本信息的热度数据之后,电子设备100可以通过如下流程来确定顺序在本次读取的热度数据所对应的第一元素之前的各数组元素的值之和:
从第二数组中查询各数组元素的值之和。
下面对从第二数组中查询各数组元素的值之和的详细过程进行阐述。
本实施例中,节点t的子节点可以表示为:节点t-lowbit(t)。示例性地,假定所述各数组元素为第一数组中的前t-1项数组元素,那么,可以以第二数组中的节点t-1为起始节点,依次查找当前节点的子节点,直至查找到的子节点不存在为止。电子设备100可以从第二数组中,读取查找到的各个节点所对应的数组元素的值再对读取的值求和,得到的和即为上述各数组元素的值之和sumt-1。
例如图12所示场景中,若第一数组中,顺序在本次读取的热度数据所对应的第一元素之前的各数组元素,分别为a[1]至a[6],则从第二数组中查找到的子节点所对应的数组元素有:c[6]、c[4]。对数组元素c[6]和c[4]的求和即可得到sum6。若第一数组中,顺序在本次读取的热度数据所对应的第一元素之前的各数组元素,分别为a[1]至a[3],则从第二数组中查找到的子节点所对应的数组元素有:c[3]、c[2]。对数组元素c[3]和c[2]的值求和,即可得到sum3。
通过第二数组,相较于直接对第一数组中的前t-1项数组元素的值求和,减少了需要读取的数组元素的数量,以及需要计算的数据量,降低了时间复杂度,提高了计算效率。
为便于本领域技术人员更清楚地了解本方案,下面结合一个具体例子对本申请实施例提供的信息推送方法做进一步的描述。
请参照图13,其中示出了一社交平台w的客户端显示界面1201和1202,该社交平台w可以通过一采用强化学习方式训练得到的预测模型(又称“强化学习模型”),对目标帐户的待推送信息(如,视频信息、音频信息、文本信息、图像信息等)在当前时刻之后的一段时间内的点击次数进行预测,并可以根据得到的预测点击次数选取待推送信息推送给目标帐户对应的客户端。
以用户u1的帐户是目标帐户为例,当用户u1通过其帐户登录至社交平台w并进入显示界面1201时,可以点击显示界面1201上的“看一看”标签,触发社交平台w的信息推送功能,并进入显示界面1202。社交平台w可以将用户u1的帐户对应的待推送信息,推送至用户u1的帐户对应的客户端,并显示于该客户端的显示界面1202,例如,该客户端的显示界面1202上可以显示有:与用户u1存在好友关系的用户a1点击过的“xxx公告”和“xxx新闻”,与用户u1存在好友关系的用户a2点击过的“yyyy”,与用户u1存在好友关系的用户a3点击过的“zzzz”等。
其中,当用户u1点击显示界面1202上显示的任意信息(例如,xxx公告)时,与用户u1存在好友关系的其他用户(如,a1、a2、a3等)可以通过各自的客户端的显示界面1202上查看到“xxx公告”这一信息,其中,用户a1已经点击“xxx公告”,用户a2和a3可以对各自客户端的显示界面1202上显示的“xxx公告”进行点击。
详细地,社交平台w可以根据用户u1的帐户确定其待推送信息,并通过强化学习模型来预测每个待推送信息的预测点击次数。其中,预测点击次数为用户u1在进入或者刷新显示界面1202的状态下,如果点击显示于显示界面1202上的该待推送信息,则该待推送信息在预设时段内可能被点击的次数。其中,待推送信息可以是与用户u1存在好友关系的其他用户在其客户端的显示界面1202上点击过的信息。
社交平台w可以对各待推送信息的预测点击次数进行排序,并按照预测点击次数从大到小的顺序,依次选取预设数量(可以为5-10,比如8)个待推送信息推送给用户u1的帐户对应的客户端,则被选取的预设数量个待推送信息会被显示于显示界面1202上。经过所述预设时段后,可以确定被推送的每个待推送信息在上述预设时段内的真实点击次数。
假设通过内测等方式获得了多个热度数据,每个热度数据包括社交平台w推送的某一信息的真实点击次数和通过强化学习模型得到的该信息的预测点击次数。以其中6个热度数据为例,本申请实施例提供的信息推送方法可以包括如下流程:
s001,电子设备100从存储热度数据的设备中读取6个热度数据,通过sigmoid函数分别将每个热度数据中的预测点击次数映射为(0,1)区间中的预测热度值,并将热度数据中的预测点击次数修改为映射后的预测热度值。
电子设备100将(0,1)区间划分为8个子区间,电子设备100维护有第一数组a,数组元素a[t](1≤t≤8,8为整数)与第t个子区间对应。数组元素a[t]的初始值为0。
电子设备100还维护有第二数组c,第二数组c是与第一数组a对应的树状数组,包括8个数组元素。第二数组c的数组元素可以表示为c[t]。数组元素c[t]的初始值为0。
s002,针对修改后的每个热度数据,确定该热度数据中的预测热度值在(0,1)区间所处的子区间,并在该热度数据中将该预测热度值替换为所确定的子区间的下标。
s003,按照真实热度值从大到小的顺序,对修改和替换后的6个热度数据进行排序,其中,第i个热度数据表示为di。
其中,1≤i≤6,i为整数,热度数据di包括真实点击次数ri和预测热度值qi,并且,r1=r2>r3>r4=r5>r6,假设q1=8,q2=5,q3=7,q4=6,q5=3,q6=2。其中,真实点击次数可以视为上述实施例中的真实热度值。
值得说明的是,本申请实施例中,对于具有相同真实点击次数的多个热度数据,还可以按照预测热度值的大小进行排序,当然也可以随机排列,本实施例对此没有限制。
电子设备100可以维护有用于记录上一次读取的热度数据的真实点击次数的变量r_last,r_last的初始值例如可以为任何可以与上述6个热度数据各自的真实点击次数区分开的值,比如可以为负数,如-1。此外,电子设备100还可以维护有用于缓存热度数据的临时数组temp,初始状态下,临时数组temp为空。
s004,读取热度数据d1,确定r1不等于r_last,则读取临时数组,确定临时数组为空,则将热度数据d1缓存到临时数组temp中,并将r_last的值更新为r1。
s005,读取热度数据d2,确定r2等于r_last,则将热度数据d2缓存到临时数组temp中。
s006,读取热度数据d3,确定r3不等于r_last,则读取临时数组temp中的热度数据d1和d2。
s007,电子设备100确定不存在读取顺序在d1和d2两者之前的热度数据,则读取顺序在d1之前的热度数据与d1配对得到的数据对的第三数量m1等于0,将m1累加至第一变量中。
s008,电子设备100根据d1中的下标8,确定d1在第一数组a中对应的第一元素a[8],并从第二数组c查询到数组元素c[7]、c[6]和c[4]的值,并对三者的值求和,得到数组元素a[1]至a[7]的值之和sum7,将第三数量m1减去sum7,得到第四数量k1,将k1累加至第二变量中。
其中,sum7和k1均为0。
s009,电子设备100确定不存在读取顺序在d1和d2两者之前的热度数据,则读取顺序在d2之前的热度数据与d2配对得到的数据对的第三数量m2为0,将m2累加至第一变量中。
s010,电子设备100根据d2中的下标5,确定d2在第一数组a中对应的第一元素a[5],并从第二数组c中查询到数组元素c[4]的值,对两者的值求和,得到数组元素a[1]至a[4]的值之和sum4,将第三数量m2减去sum4可以得到第四数量k2,将k2累加至第二变量中。
其中,k2=0,第二变量的当前值为0。
s011,将d1中的下标8对应的第一元素a[8]设置为1,在第二数组c中与数组元素a[8]对应的数组元素c[8]的值上累加1;将d2中的下标5对应的第一元素a[5]设置为1,在第二数组c中与数组元素a[5]对应的数组元素c[5]、c[6]、c[8]的值上分别累加1。
其中,c[5]=1,c[6]=1,c[8]=2。
s012,清空临时数组temp,将热度数据d3缓存到临时数组temp中,并将r_last更新为r3。
s013,读取热度数据r4,确定r4不等于r_last,则读取temp中的热度数据d3。
s014,电子设备100确定读取顺序在热度数据d3之前的热度数据的数量为2,则读取顺序在热度数据d3之前的热度数据d1和d2分别与热度数据d3配对得到的数据对的第三数量m3=2,将m3累加至第一变量。
其中,第一变量的当前值为2。
s015,电子设备100根据d3中的下标7,确定第一数组a中对应的第一元素a[7],则查询第二数组c中的数组元素c[6]、c[4]的值,并两者的值求和,得到第一数组a的数组元素a[1]至a[6]的值之和sum6,将第三数量m3减去sum6可以得到第四数量k4,将第四数量k4累加至第二变量。
其中,sum6=1,第四数量k4=1,第二变量的当前值为1。
s016,电子设备100根据d3中的下标7,将第一元素a[7]设置为1,在第二数组c中与a[7]对应的数组元素c[7]、c[8]的值上累加1。
其中,c[7]=1,c[8]=3。
s017,清空临时数组temp,将d4缓存到临时数组temp那个,并将r_last更新为r4。
s018,读取热度数据d5,确定r5等于r_last,则将热度数据d5缓存到临时数组temp中。
s019,读取热度数据d6,确定r6不等于r_last,则读取临时数组temp中的数据。
s020,确定读取顺序在d4和d5之前的热度数据的数量为3,则可以确定读取顺序在d4之前的热度数据与d4配对得到的数据对的第三数量m4=3,将m3累加至第一变量。
其中,第一变量的当前值为5。
s021,根据d4的下标6确定d4在第一数组a中对应的第一元素a[6],从第二数组c中查询数组元素c[5]、c[4]的值,对两者的值求和,得到sum5,将第三数量m3减去sum5可以得到第四数量k4,将k4累加到第二变量。
其中,sum5=1,k4=2。第二变量的当前值为3。
s022,确定读取顺序在d4和d5之前的热度数据的数量为3,则可以确定读取顺序在d5之前的热度数据与d5配对得到的数据对的第三数量m5=3,将m5累加至第一变量。
其中,第一变量的当前值为8。
s023,根据d5的下标3确定d5在第一数组a中对应的第一元素a[3],从第二数组c中查询数组元素c[2]的值,得到sum2,将第三数量m5减去sum2可以得到第四数量k5,将第四数量k5累加到第二变量。
其中,sum2=0,k5=3,第二变量的当前值为6。
s024,清空临时数组,将d6缓存到临时数组中,将r_last更新为r6。
s025,电子设备100确定热度数据已读取完毕,读取临时数组中的数据。
s026,确定读取顺序在d6之前的热度数据的数量为5,则读取顺序在d6之前的热度数据与d6可以配对得到的数据对的数量m6=5,将m6累加到第一变量。
第一变量的当前值为13,则获取的数据对的总量,即第一数量等于13。
s027,根据d6中的下标2,确定d6在第一数组a中对应的第一元素a[2],并从第二数组c查询数组元素c[1]的值,得到第一数组a中前1项数组元素的值之和sum1,将第三数量m6减去sum1可以得到第四数量k6,将第四数量累加至第二变量。其中,sum2=0,k6=5,第二变量的当前值为11,即,获取的所有数据对中的目标数据对的第二数量为11。
s028,将第二数量11除以第一数量13,判断得到的商是否达到目标值。如果达到目标值,则将用于预测点击次数的强化学习模型配置于社交平台w中。
s029,社交平台w将与用户u1存在好友关系的各用户点击过的信息确定为用户u1的帐户对应的待推送信息,并通过上述用于强化学习模型对用户u1的帐户对应的待推送信息在预设时段内的点击次数进行预测,并对预测模型输出的各待推送信息的预测点击次数进行排序,按照预测点击次数从大到小的顺序选取10个待推送信息推送至用户u1的帐户对应的客户端。
对于其他用户,社交平台w可以参照上述流程s029进行信息推送,在此不再详述。
对于具有更多热度数据的情况,可以参照上述流程s001-s0028进行处理,在此不再赘述。
上述例子中,社交平台w中配置的预测模型预测的点击次数比较准确,从而使得基于该预测模型输出的预测点击次数推送的信息更为准确,更为符合用户需求。
请参照图14,图14为本申请实施例提供的一种电子设备的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器101、存储器102、以及一个或多个程序,其中一个或多个程序可以被存储在存储器102中并被配置为由一个或多个处理器101执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器101可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器101可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器101可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器101中,单独通过一块通信芯片进行实现。
存储器102可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器102可用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如第一数组和第二数组)等。
可以理解,图14所示结构仅为示意,电子设备100还可以包括比图1所示更多或更少的组件,或是具有与图14所示不同的配置。
请参照图15,其中示出了本申请实施例提供的一种信息推送装置1500的结构框图。该装置1500可以包括:获取模块1510、确定模块1520以及推送模块1530。
获取模块1510用于获取数据对,数据对均包括第一数据和第二数据,第一数据包括一个样本信息的真实热度值和预测模型对该样本信息的预测热度值,第二数据包括另一个样本信息的真实热度值和所述预测模型对该另一个样本信息的预测热度值,第一数据中的真实热度值大于第二数据中的真实热度值。
可选地,获取模块1510可以包括第一获取子模块和配对子模块。其中,第一获取子模块用于分别获取样本信息的热度数据,每个样本的热度数据包括该样本信息的真实热度值和所述预测模型对该样本信息的预测热度值。
配对模块用于将每个样本信息的热度数据与真实热度值大于该样本的其他每个样本信息的热度估数据分别配对为数据对,其中,具有较大真实热度值的热度数据为所述第一数据,具有较小真实热度值的热度数据为所述第二数据。
配对子模块具体可以用于:按照真实热度值大小,对所述至少两个样本信息的热度数据进行排序;按照真实热度值从大到小的顺序,依次读取每个样本信息的热度数据;在每次读取一个样本信息的热度数据之后,将本次读取的热度数据与读取顺序在本次读取的热度数据之前的每个热度数据分别配对为数据对。
确定模块1520用于确定获取的数据对的数量,作为第一数量;从获取的数据对中确定目标数据对的数量,作为第二数量,所述目标数据对为第一数据中的预测热度值大于第二数据中的预测热度值的数据对。
在获取模块1510包括配对子模块的情况下,确定模块1520具体可以用于:在每次读取一个样本信息的热度数据之后,确定读取顺序在本次读取的热度数据之前的各热度数据与本次读取的热度数据配对得到的数据对的数量,作为第三数量;对分别在每次读取一个样本信息的热度数据之后确定的第三数量进行求和,得到所述第一数量。
确定模块1520具体还可以用于:在每次读取一个样本信息的热度数据之后,从读取顺序在本次读取的热度数据之前的各热度数据与本次读取的热度数据配对得到的数据对中,确定目标数据对的数量,作为第四数量;对分别在每次读取一个样本的热度数据之后确定的第四数量进行求和,得到所述第二数量。
可选地,每个样本信息的预测热度值属于目标区间,在此情况下,获取模块1510还可以用于:获取目标区间包括的至少两个子区间,所述至少两个子区间按照从小到大的顺序与第一数组中的数组元素一一对应,所述第一数组中的数组元素具有初始值。
装置1500还可以包括设置模块,设置模块用于在每次读取一个样本信息的热度数据之后,将所述第一数组中与本次读取的热度数据对应的第一元素设置为目标值,其中,所述第一元素是指与本次读取的热度数据中的预测热度值所处的子区间对应的数组元素。
在此情况下,确定模块1520从读取顺序在本次读取的热度数据之前的各热度数据与本次读取的热度数据配对得到的数据对中,确定目标数据对的数量,作为第四数量的方式可以为:获取与本次读取的热度数据对应的第一元素在所述第一数组中的顺序标识,作为第一标识;根据所述第一标识,从所述第一数组中确定顺序在本次读取的热度数据所对应的第一元素之前的各数组元素;根据本次读取热度数据之后确定的第三数量以及所述各数组元素的值,得到所述第四数量。
可选地,上述的设置模块还可以用于在获取模块1510依次读取每个热度数据之前,确定每个热度数据中的预测热度值所处的子区间,从所述第一数组中确定与该子区间对应的数组元素,作为与该热度数据对应的第一元素,将该热度数据中的预测热度值替换为该第一元素的顺序标识。
确定模块1520获取与本次读取的热度数据对应的第一元素的顺序标识,作为第一标识的方式可以为:获取本次读取的热度数据中的顺序标识,作为所述第一标识。
可选地,第一数组的初始值可以为0,目标值可以为1。在此情况下,确定模块1520根据本次读取热度数据之后确定的第三数量以及所述各数组元素的值,得到所述第四数量的方式可以为:确定所述各数组元素的值之和;确定所述本次读取热度数据之后确定的第三数量与所述各数组元素的值之和的差值,作为所述第四数量。
可选地,装置1500还可以包括更新模块,更新模块用于在设置模块将所述第一数组中与本次读取的热度数据对应的第一元素设置为目标值之后,访问第二数组,所述第二数组为与所述第一数组对应的树状数组,所述第二数组中的每个数组元素的值为所述第一数组中的至少部分数组元素的值之和;从所述第二数组中确定与被设置为所述目标值的第一元素对应的数组元素,作为第二元素,根据所述目标值更新所述第二元素的值。
对应地,第二获取模块确定各数组元素的值之和的方式可以为:从第二数组中查询所述各数组元素的值之和。
可选地,获取模块1510将每个样本信息的热度数据与真实热度值大于该样本信息的其他每个样本信息的热度数据分别配对为数据对的方式可以为:在每次读取一个样本的热度数据之后,若本次读取的热度数据中的真实热度值大于前一次读取的热度数据中的真实热度值,则触发执行所述将本次读取的热度数据分别与读取顺序在本次读取的热度数据之前的每个热度数据,作为一个数据对的步骤;若本次读取的热度数据中的真实热度值等于前一次读取的热度数据中的真实热度值,则将读取顺序在本次读取的热度数据之前的各热度数据中,包括的真实热度值大于本次读取的热度数据中的真实热度值的热度数据,分别与本次读取的热度数据作为一个数据对。
本申请实施例中的预测模型可以是强化学习模型。
推送模块1530用于获取所述第二数量与所述第一数量的比值,若该比值达到目标值,则将预测模型配置于信息推送平台中,该信息推送平台用于根据预测模型对待推送信息的预测热度值,选取待推送信息进行推送。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图16,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1600中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1600可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质1600包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。计算机可读存储介质1600具有执行上述方法中的任何方法步骤的程序代码1610的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1610可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
1.一种信息推送方法,其特征在于,包括:
获取数据对,所述数据对包括第一数据和第二数据,所述第一数据包括一个样本信息的真实热度值和预测模型对该样本信息的预测热度值,所述第二数据包括另一个样本信息的真实热度值和所述预测模型对该另一个样本信息的预测热度值,所述第一数据中的真实热度值大于所述第二数据中的真实热度值;
确定获取的数据对的数量,作为第一数量;
从获取的数据对中确定目标数据对的数量,作为第二数量,所述目标数据对为第一数据中的预测热度值大于第二数据中的预测热度值的数据对;
获取所述第二数量与所述第一数量的比值;
若所述比值达到目标值,则将所述预测模型配置于信息推送平台中,所述信息推送平台用于根据所述预测模型对待推送信息的预测热度值,选取待推送信息进行推送。
2.根据权利要求1所述的方法,其特征在于,所述获取数据对,包括:
分别获取至少两个样本信息的热度数据,每个样本信息的热度数据包括该样本信息的真实热度值和所述预测模型对该样本信息的预测热度值;
将每个样本信息的热度数据与真实热度值大于该样本信息的其他每个样本信息的热度数据分别配对为数据对,其中,具有较大真实热度值的热度数据为所述第一数据,具有较小真实热度值的热度数据为所述第二数据。
3.根据权利要求2所述的方法,其特征在于,所述将每个样本信息的热度数据与真实热度值大于该样本信息的其他每个样本信息的热度数据分别配对为数据对,包括:
按照真实热度值的大小,对所述至少两个样本信息的热度数据进行排序;
按照真实热度值从大到小的顺序,依次读取每个样本信息的热度数据;
在每次读取一个样本信息的热度数据之后,将本次读取的热度数据与读取顺序在本次读取的热度数据之前的每个热度数据分别配对为数据对。
4.根据权利要求3所述的方法,其特征在于,所述在每次读取一个样本信息的热度数据之后,将本次读取的热度数据与读取顺序在本次读取的热度数据之前的每个热度数据分别配对为数据对,包括:
在每次读取一个样本信息的热度数据之后,若本次读取的热度数据中的真实热度值不等于上一次读取的热度数据中的真实热度值,则触发执行将本次读取的热度数据与读取顺序在本次读取的热度数据之前的每个热度数据分别配对为数据对的步骤。
5.根据权利要求2所述的方法,其特征在于,所述将每个样本信息的热度数据与真实热度值大于该样本信息的其他每个样本信息的热度数据分别配对为数据对,包括:
按照真实热度值的大小,对所述至少两个样本信息的热度数据进行排序;
按照真实热度值从大到小的顺序,依次读取每个样本信息的热度数据;
在每次读取一个样本信息的热度数据之后,若本次读取的热度数据中的真实热度值等于上一次读取的热度数据中的真实热度值,则缓存本次读取的热度数据,并读取下一个样本信息的热度数据;
若本次读取的热度数据中的真实热度值不等于上一次读取的热度数据中的真实热度值,则将当前缓存的热度数据与读取顺序在当前缓存的各热度数据之前的每个热度数据分别配对为数据对,删除缓存的热度数据,缓存本次读取的热度数据,并读取下一个样本信息的热度数据。
6.根据权利要求3-5中任意一项所述的方法,其特征在于,所述确定获取的数据对的数量,作为第一数量,包括:
针对每次读取的热度数据,确定读取顺序在本次读取的热度数据之前的热度数据与本次读取的热度数据配对得到的数据对的数量,作为第三数量;
对分别针对每次读取的热度数据确定的第三数量进行求和,得到所述第一数量。
7.根据权利要求3-5中任意一项所述的方法,其特征在于,所述从获取的数据对中确定目标数据对的数量,作为第二数量,包括:
针对每次读取的热度数据,从读取顺序在本次读取的热度数据之前的热度数据与本次读取的热度数据配对得到的数据对中,确定目标数据对的数量,作为第四数量;
对分别针对每次读取的热度数据确定的第四数量进行求和,得到所述第二数量。
8.根据权利要求7所述的方法,其特征在于,每个样本的预测热度值属于目标区间,所述方法还包括:
获取所述目标区间包括的至少两个子区间,所述至少两个子区间按照从小到大的顺序与第一数组中的数组元素一一对应,所述第一数组中的数组元素具有初始值;
在每次读取一个样本信息的热度数据之后,将所述第一数组中与本次读取的热度数据对应的第一元素设置为目标值,其中,所述第一元素是指与本次读取的热度数据中的预测热度值所处的子区间对应的数组元素;
所述从读取顺序在本次读取的热度数据之前的各热度数据与本次读取的热度数据组成的数据对中,确定目标数据对的数量,作为第四数量,包括:
获取与本次读取的热度数据对应的第一元素在所述第一数组中的顺序标识,作为第一标识;
根据所述第一标识,从所述第一数组中确定顺序在本次读取的热度数据所对应的第一元素之前的各数组元素;
根据针对本次读取的热度数据确定的第三数量以及所述各数组元素的值,得到所述第四数量。
9.根据权利要求8所述的方法,其特征在于,在所述依次读取每个热度数据之前,所述方法还包括:
确定每个热度数据中的预测热度值所处的子区间,从所述第一数组中确定与该子区间对应的数组元素,作为与该热度数据对应的第一元素,将该热度数据中的预测热度值替换为该第一元素的顺序标识;
所述获取与本次读取的热度数据对应的第一元素的顺序标识,作为第一标识,包括:
获取本次读取的热度数据中的顺序标识,作为所述第一标识。
10.根据权利要求8所述的方法,其特征在于,所述初始值为0,所述目标值为1;所述根据针对本次读取的热度数据确定的第三数量以及所述各数组元素的值,得到所述第四数量,包括:
确定所述各数组元素的值之和;
确定针对本次读取的热度数据确定的第三数量与所述各数组元素的值之和的差值,作为所述第四数量。
11.根据权利要求10所述的方法,其特征在于,在所述将所述第一数组中与本次读取的热度数据对应的第一元素设置为目标值之后,所述方法还包括:
访问第二数组,所述第二数组为与所述第一数组对应的树状数组,所述第二数组中的每个数组元素的值为所述第一数组中的至少部分数组元素的值之和;
从所述第二数组中确定与被设置为所述目标值的第一元素对应的数组元素,作为第二元素,根据所述目标值更新所述第二元素的值;
所述确定所述各数组元素的值之和,包括:
从所述第二数组中查询所述各数组元素的值之和。
12.根据权利要求8-11中任意一项所述的方法,其特征在于,所述在每次读取一个样本信息的热度数据之后,将所述第一数组中与本次读取的热度数据对应的第一元素设置为目标值,包括:
若所述至少两个样本信息的热度数据中存在与本次读取的热度数据具有相同真实热度值的目标热度数据,则在分别针对本次读取的热度数据和所述目标热度数据确定第四数量之后,将所述第一数组中与本次读取的热度数据对应的第一元素设置为目标值。
13.一种信息推送装置,其特征在于,包括:
获取模块,用于获取数据对,所述数据对包括第一数据和第二数据,所述第一数据包括一个样本信息的真实热度值和预测模型对该样本信息的预测热度值,所述第二数据包括另一个样本信息的真实热度值和所述预测模型对该另一个样本信息的预测热度值,所述第一数据中的真实热度值大于所述第二数据中的真实热度值;
确定模块,用于确定获取的数据对的数量,作为第一数量;从获取的数据对中确定目标数据对的数量,作为第二数量,所述目标数据对为第一数据中的预测热度值大于第二数据中的预测热度值的数据对;
推送模块,用于获取所述第二数量与所述第一数量的比值,若所述比值达到目标值,则将所述预测模型配置于信息推送平台中,所述信息推送平台用于根据所述预测模型对待推送信息的预测热度值,选取待推送信息进行推送。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-12中任意一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-12中任意一项所述的方法。
技术总结