具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
随着互联网技术的发展,信息快速增长,如何对信息进行快速有效地筛选,从而将适合用户的个性化内容(如商品、广告、新闻资讯、APP等等)准确地推荐推荐给用户,是当前一个重要研究课题。为了解决这个问题,基于特征工程(Feature Engineering)的推荐系统应运而生。推荐系统能有效帮助用户快速发现感兴趣和高质量的信息,其是自动联系用户和物品的一种工具,能够在信息过多的环境中发现令用户感兴趣的信息,并将信息推送给用户。
请参阅图1,图1示出了本申请实施例提供的信息推送方法的应用场景的示意图。如图1中所示,用户终端100和服务器200位于无线网络或有线网络中,用户终端100和服务器200进行数据交互。服务器200可以是单独的服务器,也可以是服务器集群,可以是本地服务器,也可以是云端服务器。
服务器200能够通过用户终端100收集用户数据。其中,用户数据可以包括用户基础数据、用户兴趣数据、用户终端数据、用户终端操作数据以及用户应用数据等。其中,用户基础数据可以包括用户的身高、体重以及性别等基础信息,该用户基础数据可以是用户通过用户终端100发送至服务器200并存储的,例如,用户在注册登录该用户终端100的帐号的时候,录入的数据并且发送至服务器200,由服务器200将该数据与用户身份标识对应存储。用户兴趣数据可以是用户兴趣标签,该用户兴趣标签可以是用户通过用户终端100录入服务器200内并存储的。该用户兴趣标签可以包括美食、音乐、视频、游戏等用户经常关注的内容。用户终端数据可以包括用户所使用的终端的属性信息,例如,内存容量、电池容量或屏幕尺寸等,服务器获取该用户终端数据的方式可以是用户上报或者通过用户终端内的SDK组件采集。用户终端操作数据为用户操作用户终端的操作数据,则该操作数据可以是用户操作用户终端的电源键、音量键等物理按键或者用户终端的系统应用或者操作系统等所产生的数据,服务器获取该用户终端操作数据的方式可以是通过用户终端的操作系统内的SDK组件收集。用户应用数据可以是用户操作安装在用户终端内的应用程序的操作数据,例如,用户在视频应用内所观看的视频、用户在地图APP内搜索的目的地以及用户在浏览器内浏览的网页等数据,服务器获取该用户应用数据的方式可以是用户上报或者通过用户终端内的各个应用程序内的SDK组件采集。
上述推荐系统可以部署在服务器内,并且服务器能够基于用户数据,并通过推送系统为用户推送内容。如图2所示,图2示出了一种推送系统的示意图。该推荐系统20包括用户画像模块201、召回模块202、CTR预估模块203和重排模块204。
其中,用户画像模块201用于提供上述用户数据,召回模块202、CTR预估模块203和重排模块204用于根据用户数据由海量内容中确定推送给用户的内容。
召回模块202用于从内容池内初步筛选出一部分内容,相当于对内容池内的内容粗排序,则筛选出的内容可以作为待推送内容,然后将待推送内容发送至CTR预估模块203。具体地,召回模块202根据用户数据对内容池粗排序。假设内容池内的内容是新闻、博客或者帖子等文章,则召回模块202可以先根据上述用户数据所包含的用户的性别从内容池内初步筛选出待推送内容。例如,对于女性用户,涉及到美妆的文章,在粗排序结果的靠前的位置,然后,依据粗排序的结果将排序靠前的美妆相关的文章作为待推送内容以推送给女性用户,同理,涉及到体育的内容推送给男性用户。另外,召回模块202也可以由内容池中筛选出热度较高的内容作为待推送内容。
CTR预估模块203用于对召回模块202输出的内容进一步筛选,即对召回模块202召回的内容精排序。其中,CTR为点击率,即Click-Through-Rate,该CTR预估模块203能够根据特征列表和排序模型对待推送内容进行点击率预估计算,其中,排序模型可以是逻辑回归(Logistic Regression,LR)模型,也可以是因子分解机(Factorization Machine,FM)模型,还可以是神经网络(Neural Network,NN)模型。其中,特征列表可以是输入至CTR预估模块203的特征向量。例如,特征列表可以是召回模块202输出的待推送内容以及用户数据等。CTR预估模块203能够对召回模块202输出的待推送内容中的每个内容计算得到该内容对应的点击率,根据每个内容的点击率进行排序,以得到精排序之后的多个内容。在一些实施例中,按照每个点击率的大小,由大到小的排序可以得到精排序之后的结果,然后,将精排序结果中排名靠前的多个内容,作为推荐内容。即,CTR预估模块203将精排序后得到的推荐内容发送至重排模块204。
重排模块204用于根据用户数据对推荐内容重新排序,以增加所推荐内容的多样性和样式混排效果。例如,推荐内容包括多个类型,例如,体育类、美食类以及服装类等,重排模块204可以将体育类的内容中点击率靠前的n个内容、体育类的内容中点击率靠前的m个内容以及体育类的内容中点击率靠前的k个内容组成一个推送内容集合,并将该集合内的内容推送给用户,用户所获取的多个内容中包含了体育类、美食类以及服装类的内容,增加了内容的多样性。
由上述记载可知,CTR预估模块203起到了重要的作用,而CTR预估模块203依赖于排序模型,排序模型的优劣直接影响了推荐结果的准确性。目前,排序模型常采用双模型结构。例如,该双模型结构包括第一模型和第二模型,通常,第一模型和第二模型所使用的策略可以不同,例如,第一模型可以根据用户的长期兴趣来预测用户感兴趣的内容,第二模型可以依据用户短期内的行为来预测用户感兴趣的内容,所以,将待推送内容输入第一模型能够得到一个预测结果,将待推送内容输入第二模型能够得到另一个预测结果,然后结合着每个模型的预测结果确定是否将该内容推送给用户。
然而,发明人在研究中发现,目前将每个模型得到的兴趣结果结合的策略不够完善,使得推送结果不够准确。这是因为,目前的双模型结构只是将两个模型得到的预测结果简单相加或者加权之后再相加,将相加之后的结果作为输出结果。其中,加权参数的设置常常依赖于经验而设置,且加权参数是固定的。因此,加权参数无法与待推送内容和用户数据相关联,使得依据该加权参数得到的融合结果不够准确,并且,依据经验设置的加权参数出现误差的可能性很大,而加权参数设置有误差的话,会减弱双模型的组合效果,不能很好的发挥出双模型的作用。
因此,为了克服上述缺陷,本申请实施例提供了一种信息推送方法,如图3所示,该信息推送方法包括S301至S304。其中,该方法的执行主体可以是上述的服务器。
S301:获取待推送内容和与用户对应的用户数据,依据推送模型得到第一兴趣因子和第二兴趣因子,以及依据注意力模型得到兴趣权重,所述兴趣权重包括与所述第一兴趣因子对应的第一权重和与所述第二兴趣因子对应的第二权重。
作为一种实施方式,将待推送内容与用户对应的用户数据输入推送模型,得到第一兴趣因子和第二兴趣因子,将所述待推送内容与所述用户数据输入注意力模型,得到兴趣权重。
其中,待推送内容可以是待推送的视频、文章等内容。作为一种实施方式,该待推送内容可以是由上述召回模块202由内容池内粗排序之后得到的内容。用户对应的用户数据可以是用户标识对应的用户数据,该用户数据可以是前述用户数据。
其中,用户标识可以是用户在客户端内登录时所使用的用户帐号,也可以是用户终端的终端标识。其中,该客户端可以是于用户终端内安装的应用程序,服务器通过该客户端将内容推送给用户,而用户也可以通过客户端将用户数据录入服务器。用户终端的终端标识可以是用户终端的设备ID,也可以是用户终端的MAC地址等能够作为用户终端的身份标识的信息。其中,设备ID可以是用户终端的处理器标识。
服务器在获取到用户标识对应的用户数据之后,将用户标识与用户数据对应存储,以便根据用户标识查找该用户对应的用户数据。
其中,推送模型可以是双模型结构,也可以是多模型结构,其中,多模型结构是指包括3个以及3个以上的模型。
于本申请实施例中,该推送模型是双模型结构,由两个模型组成。作为一种实施方式,该两个模型不同,两个模型各自依据不同的预测策略预测用户对待推送内容的兴趣度,即待推送内容的点击率。
假设双模型结构的推送模型中的两个模型分别为第一模型和第二模型,且第一模型和第二模型的预测策略不同,将待推送内容与用户对应的用户数据输入第一模型,得到第一模型根据第一模型的预设策略得到的待推送内容的第一点击率,将该待推送内容的第一点击率记为第一兴趣因子。将待推送内容与用户对应的用户数据输入第二模型,得到第二模型根据第二模型的预设策略得到的待推送内容的第二点击率,将该待推送内容的第二点击率记为第二兴趣因子。则输入第一模型和第二模型的数据可以相同,也可以不相同,而即使输入两个模型的用户数据相同,则由于第一模型和第二模型的预测策略不同,也可以得到两个不同的预测结果。
于本申请实施例中,两个模型各自依据不同的预测策略预测待推送内容的点击率,且输入两个模型的用户数据也不相同。
在一些实施例中,用户数据包括用户画像数据和用户浏览数据。其中,用户画像数据就是与该用户相关联的数据的可视化的展现,可以理解为,用户信息标签化,其可以包括用户兴趣数据、用户基础数据、用户社交圈数据以及其他数据等,以用户画像数据为基础,可以构建推荐系统、搜索引擎、广告投放系统等,提升服务的精准度。
于本申请实施例中,该用户画像数据可以包括用户基础标签和用户兴趣标签。其中,用户基础标签可以是根据前述用户基础数据标签化而获取的,用户兴趣标签除了可以包括前述的用户通过用户终端录入方式获取之外,该用户兴趣标签还可以包括服务器根据用户在第一参考时间段内浏览的数据而统计得到的兴趣标签。其中,该参考时间段可以根据需求而设定,例如,该参考时间段可以是一年内或者一个月内。假设,所浏览的数据为文章,服务器收集用户在第一参考时间段内浏览的多个文章,可以收集每个文章对应的关键字,并统计每个关键字出现的次数,获取次数较多的高频关键字对应的类型,根据该类型得到用户兴趣标签。作为一种实施方式,可以将高频关键字对应的类型作为用户兴趣标签。例如,关键字“NBA”出现的次数较多,则该关键字对应的类型是体育或者篮球,将“篮球”这个标签作为用户兴趣标签。
其中,用户浏览数据为用户在第二参考时间段内浏览的内容。其中,该内容可以是新闻、博客或者帖子等文章,还可以是视频或音频多媒体数据。作为一种实施方式,用户浏览的内容是指用户查阅的内容。其中,每个内容在用户终端的应用程序内显示的时候,该内容对应操作区域。例如,针对文章,该操作区域可以是应用程序在显示该文章的内容时所显示的“评论”、“点赞”、“转发”、“分享”或“全文展示”等用于提供与用户之间的交互功能的触控区域或触控按键,如果用户触发该操作区域,用户终端能够记录本次触发,并确定用户查阅该内容,则将本次触发所对应的内容作为用户浏览的内容。因此,用户浏览数据可以记录在显示该内容的应用程序对应的用户应用数据内,统计该用户应用数据所包括的用户针对应用程序的上述操作区域的操作,能够得到用户浏览数据。
其中,第二参考时间段小于第一参考时间段,在一些实施例中,第二参考时间段可以依据第一参考时间段而设置,第一参考时间段为第二参考时间段的N倍,其中,N为大于9的正数。例如,N为10,第一参考时间段为30天,则第二参考时间为3天。在另一些实施例中,第二参考时间段可以是一个固定值,例如,该第二参考时间段为1天。其中,第二参考时间段的截止时间为当前时刻,则相比依据第一参考时间段所统计的用户兴趣数据,该用户浏览数据为用户近期浏览的数据。
作为另一种实施方式,用户浏览数据为当前时刻之前用户浏览的M个数量的内容,其中,M为正整数,可以依据实际需求而设定。例如,M为10,用户浏览数据为用户近期浏览的10个内容。
在一些实施例中,第一模型的预测策略为根据用户的长期兴趣来预测待推送内容的点击率,第二模型的预测策略为依据用户短期内的行为来预测待推送内容的点击率。将待推送内容与用户数据输入双模型结构的推送模型,得到第一兴趣因子和第二兴趣因子的实施方式可以是,,获取所述待推送内容和所述用户画像数据,依据所述第一模型,得到所述第一兴趣因子;获取所述待推送内容和所述用户浏览数据,依据所述第二模型,得到所述第二兴趣因子。
在一些实施例中,该第一模型可以是FM模型、场感知因子分解机(Field-awareFactorization Machines,FFM)、deepFM模型或者其他的基于因子分解机算法的模型。该第二模型可以NN模型、递归神经网络(Recurrent Neural Network,RNN)或其他的基于神经网络算法的模型。
于本申请实施例中,第一模型可以是FM模型,FM模型可以根据输入的待推送内容、用户画像数据和上下文特征,得到第一兴趣因子,该第一兴趣因子为FM模型预测得到的待推送内容的点击率。其中,上下文特征用于表示当前环境信息。当前环境信息可以包括当前访问时间以及当前网络类型等,例如,该上下文特征可以表征用户何时何地使用各种型号的终端登录客户端以及使用Wi-Fi还是4G网络与服务器通信。其中,待推送内容可以记为I(即item)特征,用户画像数据可以记为U(即user)特征,上下文特征可以记为C(即context)特征。
FM模型的函数表达式为:
其中,yfm的值为该FM模型的输出结果,即第一兴趣因子,w0为初始权重,也可以称为偏置,xi为第i个输入向量,xj为第j个输入向量。该输入向量为上述的I特征、U特征和C特征拼接而成的向量,wi为与xi对应的权重。<vi,vj>表示vi和vj的内积,用于表示xixj的融合参数,xixj为xi和xj的组合特征。
其中,
代表一阶特征线性组合,在该线性组合内将各个特征看作是相互独立的特征,即待推送内容和用户画像数据相互独立。
其中,
代表二阶交叉特征组合,考虑了特征的相关性,即x
ix
j为x
i和x
j的相关性。
于本申请实施例中,第二模型可以是NN模型。该NN模型可以包括多个全连层。例如,该多个全连层为两个,且分别为第一全连层和第二全连层,第一全连层为128维,即包括128个神经元,第二全连层为1维,即包括1个神经元。根据输入的待推送内容与用户浏览数据在第一全连层可以得到多个点击率预测结果,然后,第二全连层从第一全连层所得到的多个点击率预测结果中确定一个结果,作为NN模型预测得到的待推送内容的点击率,即第二兴趣因子。其中,NN模型所依据的算法可以是潜在语义算法、贝叶斯算法、聚类算法或协同过滤算法等。于本申请实施例中,NN模型所以依据协同过滤算法预测得到待推送内容的点击率。其中,协同过滤算法基于用户浏览数据和待推送内容之间的相似度,找出用户喜欢的内容,并预测用户对待推送内容的评分,就可以找到评分最高的待推送内容推荐给用户。
作为另一种实施方式,两个模型各自依据相同的预测策略预测待推送内容的点击率,但是,输入两个模型的用户数据不同。例如,两个模型都是依据用户短期内的行为来预测待推送内容的点击率,而输入第一模型的用户数据为用户最近浏览的10个内容,而输入第二模型的用户数据为用户最近一天内浏览的所有内容。虽然两个模型的预测策略相同,但是,输入两个模型的用户数据不同,也可以得到两个不同的预测结果。
其中,所述兴趣权重包括所述第一兴趣因子对应的第一权重和所述第二兴趣因子对应的第二权重。
注意力模型(Attention Model),本质来自于人类视觉注意力机制。人们视觉在感知东西的时候一般不会是一个场景从头看到尾每次全部都看,而往往是根据需求观察注意特定的一部分。而且当人们发现一个场景经常在某部分出现自己想观察的东西时,人们会进行学习在将来再出现类似场景时把注意力放到该部分上,将更多的注意力聚焦到有用的部分,注意力模型的本质就是加权,即是一种权重参数的分配机制,目标是协助模型捕捉重要信息。Attention模型可以计算每个输入的特征的权值,然后对特征进行加权求和,其中,特征的权值越大,则该特征对当前识别结果的贡献就越大。例如,给定一组<key,value>,以及一个目标(查询)向量query,通过计算query与每一组key的相似性,得到每个key的权重系数,再通过对value加权求和,得到最终输出结果。
通过注意力模型得到的第一权重与第一兴趣因子对应,则第一权重可以作为注意力模型对第一模型预测得到的待推送内容的点击率的辅助,从而第一兴趣因子和第一权重结合的时候,能够使得第一模型预测得到的点击率更加准确,更加贴合用户的兴趣。
同理,通过注意力模型得到的第二权重与第二兴趣因子对应,则第二权重可以作为注意力模型对第二模型预测得到的待推送内容的点击率的辅助,从而第二兴趣因子和第二权重结合的时候,能够使得第二模型预测得到的点击率更加准确,更加贴合用户的兴趣。
作为一种实施方式,根据上述分析,输入第一模型和第二模型的用户数据可以是相同的,而第一兴趣因子对应的第一权重和所述第二兴趣因子对应的第二权重也可以相同。例如,将待推送内容与所述用户数据输入注意力模型得到一个权重,该权重可以作为第一权重,也可以作为第二权重。
作为另一种实施方式,输入第一模型和第二模型的用户数据可以是不相同的,例如,输入第一模型的用户数据为用户画像数据,输入第二模型的用户数据为用户浏览数据。则将所述待推送内容与所述用户数据输入注意力模型,得到兴趣权重的具体实施方式为,将待推送内容与用户画像数据输入注意力模型,得到与第一兴趣因子对应的第一权重,将所述待推送内容与所述用户浏览数据输入注意力模型,得到与第二兴趣因子对应的第二权重,具体的实施方式在后续实施例中介绍。
S302:至少根据所述第一兴趣因子、所述第二兴趣因子和所述兴趣权重,得到所述待推送内容的用户兴趣度。
其中,待推送内容的用户兴趣度可以作为是否将待推送内容推送给用户的判断依据,即服务器可以依据该用户兴趣度将待推送内容推送给用户。第一兴趣因子作为第一模型预测的用户对待推送内容的点击率,第二兴趣因子作为第二模型预测的用户对待推送内容的点击率,则第一兴趣因子和第二兴趣因子分别代表通过两个不同的角度所预测得到的待推送内容的点击率,而如果将第一兴趣因子和第二兴趣因子融合,所得到的融合结果能够将两个模型得到的结果结合,从而更加准确的得到待推送内容的点击率。其中,融合的方式可以是相加或者计算平均值,第一权重和第二权重分别表示第一兴趣因子和第二兴趣因子在融合过程中的占比。也就是说,至少根据所述第一兴趣因子、所述第二兴趣因子、所述兴趣权重,得到所述待推送内容的用户兴趣度的过程可以看作是,第一权重对第一兴趣因子在融合中的占比的影响而得到的一个兴趣度,第二权重对第二兴趣因子在融合中的占比的影响而得到的另一个兴趣度,然后,再至少根据两个兴趣度得到待推送内容的用户兴趣度。
在一些实施例中,至少根据所述第一兴趣因子、所述第二兴趣因子、所述兴趣权重,得到所述待推送内容的用户兴趣度的实施方式为,根据所述第一兴趣因子和所述第一权重得到第一兴趣度;根据所述第二兴趣因子和所述第二权重得到第二兴趣度;根据所述第一兴趣度和所述第二兴趣度得到所述用户兴趣度。
作为一种实施方式,可以将第一兴趣因子和所述第一权重的乘积作为所述第一兴趣度。作为另一种实施方式,也可以基于第一兴趣因子和所述第一权重的乘积的基础上,得到第一兴趣度。例如,将该乘积的算数平方根作为第一兴趣度。因此,第一兴趣度可以作为结合第一模型和注意力模型预测得到的待推送内容的点击率。
同理,作为一种实施方式,可以将第二兴趣因子和所述第二权重的乘积作为所述第二兴趣度。作为另一种实施方式,也可以基于第二兴趣因子和所述第二权重的乘积的基础上,得到第二兴趣度。例如,将该乘积的算数平方根作为第二兴趣度。因此,第二兴趣度可以作为结合第二模型和注意力模型预测得到的待推送内容的点击率。
作为一种实施方式,可以将所述第一兴趣度和所述第二兴趣度之和作为所述用户兴趣度。作为另一种实施方式,也可以将第一兴趣度和所述第二兴趣度的平均值作为所述用户兴趣度。
于本申请实施例中,将所述第一兴趣因子和所述第一权重的乘积作为所述第一兴趣度,将所述第二兴趣因子和所述第二权重的乘积作为所述第二兴趣度,将所述第一兴趣度和所述第二兴趣度之和作为所述用户兴趣度。因此,第一权重和第二权重并非是根据经验设定的固定值,而是与待推送内容以及用户数据相关,使得双模型结构的推送模型得到的第一兴趣因子和第二兴趣因子能够被注意力模型影响,从而注意力模型能够提高第一兴趣度和所述第二兴趣度之和的准确性。因此,根据待推送内容在第一模型和第二模型中用户数据的注意力分布情况,动态的设置第一模型和第二模型的融合比例,不再依赖经验设置的加权参数,而是通过注意力模型来确定加权参数的大小,从而做到动态调整,发挥出双模型的最佳融合效果。
S303:根据所述用户兴趣度推送所述待推送内容。
作为一种实施方式,在获取到待推送内容的用户兴趣度之后,判断该用户兴趣度是否大于指定数值,如果大于指定数值,则推送所述待推送内容。其中,指定数值可以是根据经验而设定的数值,如果待推送内容的用户兴趣度大于该指定数值,表明该推送内容被用户点击的概率比较高,则可以被推送给用户。
作为另一种实施方式,服务器会依据上述方法获取多个待推送内容的用户兴趣度,然后依据每个待推送内容的用户兴趣度将多个待推送内容排序。
在一些实施例中,用户兴趣度为一个数值,则该数值越大,表明该用户兴趣度对应的待推送内容被用户点击的概率越高,则依据每个待推送内容的用户兴趣度,按照多个用户兴趣度由大到小的顺序,对多个待推送内容排序,得到推荐序列,然后,将推荐序列内排名靠前的M个待推送内容按照推送策略推送给用户。其中,M为正整数,具体的取值可以根据实际需求而设定的。
在另一些实施例中,用户兴趣度的数值越小,表明该用户兴趣度对应的待推送内容被用户点击的概率越高,则依据每个待推送内容的用户兴趣度,按照多个用户兴趣度由小到大的顺序,对多个待推送内容排序,得到推荐序列,然后,将推荐序列内排名靠前的N个待推送内容按照推送策略推送给用户。其中,N为正整数,具体的取值可以根据实际需求而设定的。
其中,推送待推送内容的实施方式可以是,将待推送内容推送至用户对应的用户终端,用户终端将该待推送内容在目标客户端的目标界面内显示。其中,目标客户端可以是该推送内容对应的客户端,其中,该推送内容对应的客户端是指该推送内容由该客户端对应的服务器推送。例如,某某新闻是某个APP的服务器推送的,则该目标客户端就为该APP,即在用户终端内安装该APP的时候,能够通过该APP接收和显示该推送内容。
其中,目标界面可以是该目标客户端内用于显示服务器为用户推送的内容的界面。例如图4所示,该目标客户端可以是某新闻客户端,则该目标界面可以是某新闻客户端的“要闻”界面。
在一些实施例中,在用户终端内启动该目标客户端的时候,会发送一个信息至服务器,服务器通过该信息能够知悉用户终端内的目标客户端已经启动,然后将待推送内容发送至该用户终端,并且在该目标客户端的目标界面内显示该待推送内容。
进一步地,服务器能够统计该目标客户端本次启动是在统计时间段内的第几次启动,即服务器能够获取在统计时间段,该目标客户端本次启动之前的启动次数,如果该启动次数大于指定次数,则停止将待推送内容发送至该用户终端,或者,依然可以将待推送内容发送至该用户终端,但是指示用户终端不将该待推送内容在目标客户端的目标界面内显示,避免用户在统计时间段内多次接收到相同的内容。其中,统计时间段和指定次数可以是预先根据需求而设定的。例如,该统计时间段可以是24小时,该指定次数可以是3次,从而能够避免一天内重复多次向用户推送相同的内容。
在一些实施例中,上述的目标客户端被启动,是指目标客户端处于前台运行状态且目标客户端当前显示的界面为目标界面。其中,客户端的状态包括前台运行状态、后台运行状态和未运行状态。前台运行状态,是指客户端在屏幕上由界面运行,用户能够通过界面与该客户端互动,例如,输入执行指令或由界面观察到一些信息等。后台运行状态,是指客户端在系统的资源管理器里运行,但是一般没有界面。用户在首次启动客户端的时候,该客户端在屏幕上运行,即处于前台运行状态,在用户点击home键的时候,或者将其他应用切换至前台或者将用户终端锁屏时,该客户端的状态变更为后台运行状态。未运行状态是指该客户端未启动,即不处于前台运行状态,也不处于后台运行状态,具体地,可以是当客户端在前台或者后台运行的时候,该客户端的进程被杀死,则此时客户端处于未运行状态,也称为关闭状态。
因此,在用户终端监测到目标客户端本次首次在前台运行且所显示的界面为目标界面的时候,记为该目标客户端启动一次,而在目标客户端在前台运行,但是所显示的界面并非是目标界面,如图5所示,该目标客户端所显示的界面是“视频”界面,则虽然该目标客户端在前台运行,但是,不会统计启动一次。例如,预先设置一个启动参数,用于记录启动次数,该启动参数的初始值为0,目标客户端本次首次在前台运行且显示图4所示的界面,启动参数修改为1,然后目标客户端的界面被切换到图5所示的界面,启动参数依然是1,之后目标客户端的界面又被切换回图4所示的界面,启动参数被修改为2。因此,相比通过统计目标客户端处于前台运行状态作为一次启动或者统计目标客户端由未运行状态切换至运行状态为一次启动,而通过在前台运行且所显示的界面为目标界面的时候记为该目标客户端启动一次,能够更加精确的统计用户通过目标客户端看到待推送内容的次数。
另外,需要说明的时候,根据该推送内容的种类不同,该目标界面也可以不同。例如,该待推送内容是视频类内容,则该目标界面可以是图5所示的“视频”界面。
作为另一种实施方式,该目标客户端可以是用户终端设定的用于显示待推送内容的默认客户端,即该用户终端默认打开该待推送内容的客户端。用户终端获取到服务器发送的待推送内容之后,确定该待推送内容对应的默认客户端,作为目标客户端,在该目标客户端的目标界面显示待推送内容。
作为又一种实施方式,该目标客户端可以是用户终端内安装的具有显示该待推送内容的功能的客户端。在一些实施例中,服务器获取用户终端当前安装的所有客户端的类型,并且确定待推送内容的类型,查找所有客户端的类型与待推送内容的类型匹配的类型,将所匹配的类型对应的客户端作为目标客户端。如果所匹配的类型对应多个客户端,可以由该多个客户端内选择一个客户端作为目标客户端。例如,选择该多个客户端使用最频繁的客户端作为目标客户端,或者由该多个客户端内随机选择一个客户端作为目标客户端。其中,客户端的类型可以是客户端所支持处理的内容的类型。例如,客户端的类型是视频类,则表示该客户端支持播放视频内容。
需要说明的是,该客户端的类型可以是多个。作为一种实施方式,每个客户端对应一个类型描述内容,该类型描述内容用于记录客户端的类型。例如,类型描述内容为(类型1,类型2,类型3,类型4,类型5),且该类型描述内容内的多个类型是按照该客户端的处理数据的类型的次数而排序的,如前述(类型1,类型2,类型3,类型4,类型5),表示该客户端可以处理的数据的类型包括类型1、类型2、类型3、类型4和类型5,但是,最常处理的数据的类型为类型1,其次是类型2。其中,该多个类型的排序可以根据统计该客户端所处理的数据的类型的次数而确定。
因此,在上述匹配结果得到的客户端为多个时,可以确定所匹配的类型在每个客户端的类型描述内容中的排序,将所匹配的类型为最常处理的数据的类型的客户端作为目标客户端。例如,待推送内容为类型1,所匹配的客户端包括客户端1、客户端2和客户端3,其中,客户端1、客户端2和客户端3的类型描述内容中类型1的排序分别为1、3、2,则可以确定客户端1为最常处理类型1数据的客户端,则将客户端1作为目标客户端。
另外,上述客户端的类型可以是客户端的类别,该客户端的类别为该客户端的分类,例如,游戏类、视频类、社交类、新闻类和浏览器等。服务器查找所有客户端的类型与待推送内容的类型匹配的类型的实施方式可以是,在服务器内预先存储有每个内容类型对应的匹配类型,该匹配类型为能够处理该类型的内容的客户端的类型。例如,该待推送内容的类型为文章,则该待推送内容对应的匹配类型为社交类、新闻类和浏览器。
其中,客户端的类别,可以是客户端的开发商在开发的时候为客户端设定的类别,也可以是客户端在安装在用户终端上之后,用户为客户端设定的类别,例如,用户在用户终端上安装某个客户端,在安装完成并进入该客户端之后,会显示一个对话框,指示用户为客户端设定类别。则客户端具体属于哪个类别,可以由用户根据需求而设定,例如,用户可以将某社交软件设置为音频类,或者设置为视频类,或者设置为社交类。
另外,如果有些客户端的功能多样化,则需要根据客户端的具体操作行为而确定该客户端的类别。如果有些客户端能够播放视频,也能够播放音频,例如,一些视频播放软件,可以播放纯音频文件,也可以播放视频,则该客户端的类别可以根据客户端的具体操作行为而确定,即根据该客户端的一定时间段内的使用记录,确定用户使用该客户端是倾向于播放视频还是更倾向于播放音频。
具体地,客户端对应的服务器为数据服务器,数据服务器获取多个用户对该客户端在目标时间段内的操作行为数据,其中,多个用户是指安装过该客户端的用户,则该操作行为数据可以由客户端对应的数据服务器内获取。也就是说,用户在使用该客户端的时候,会使用用户对应的用户帐号登录该客户端,而用户帐号对应的操作行为数据会发送至客户端对应的数据服务器,则数据服务器将所获取的操作行为数据与用户账号对应存储。在一些实施例中,用户终端发送针对客户端的操作行为查询请求发送至该客户端对应的数据服务器,数据服务器将一定预设时间段内的所有用户的操作行为数据发送至电子设备。
该操作行为数据包括所播放的音频文件的名称和时间、以及所播放的视频文件的名称和时间,通过分析该操作行为数据就能够确定在一定时间段内该客户端播放的音频文件的数量以及总的时间,也可以得到该客户端播放的视频文件的数量以及总的时间,则根据音频和视频文件的播放总时长在该预定时间段内的占比,确定客户端的类别。具体地,获取音频和视频文件的播放总时长在该预定时间段内的占比,为方便描述,将音频文件的播放总时长在该预定时间段内的占比记为音频播放占比,将视频文件的播放总时长在该预定时间段内的占比记为视频播放占比,如果视频播放占比大于音频播放占比,则将客户端的类别设定为视频类型,如果音频播放占比大于视频播放占比,则将客户端的类别设定为音频类型。例如,预设时间段为30天,即720小时,而音频文件的播放总时长为200小时,则音频播放占比为27.8%,视频文件的播放总时长为330小时,则视频播放占比为45.8%,则视频播放占比大于音频播放占比,则将客户端的类别设定为视频类型。
再者,在一些实施例中,服务器可以设定一个指定时间点,在该指定时间点推送所述待推送内容至用户终端。其中,服务器可以统计用户使用目标客户端时间比较久的时间段,即统计用户集中使用该目标客户端的时间段,根据该时间段确定指定时间点。例如,用户集中使用该目标客户端的时间段为8:00至9:00,则将每天的8:00至9:00作为指定时间段。
在另一些实施例中,服务器还可以根据用户终端的位置信息推送所述待推送内容至用户终端。例如,服务器获取用户终端当前的位置信息,确定该位置信息与待推送内容之间的关联性,其中,该关联性表明用户在该位置信息查看待推送内容的可能性,即关联性越高,表明用户在该位置信息查看待推送内容的可能性越大。
作为一种实施方式,服务器可以统计用户使用该目标客户端时用户终端的位置信息,将频繁出现的位置信息作为目标位置信息,则服务器获取用户终端当前的位置信息,如果该位置信息与目标位置信息匹配,则判定该位置信息与待推送内容之间的关联性为强关联,从而将待推送内容推送至用户终端,如果该位置信息与目标位置信息不匹配,则判定该位置信息与待推送内容之间的关联性为弱关联,则不将待推送内容推送至用户终端,避免资源的浪费。
作为另一种实施方式,服务器获取用户终端的当前的位置信息附近的商业信息,确定该商业信息与待推送内容是否匹配,如果匹配,则判定该位置信息与待推送内容之间的关联性为强关联,从而将待推送内容推送至用户终端,如果不匹配,则判定该位置信息与待推送内容之间的关联性为弱关联,则不将待推送内容推送至用户终端。其中,商业信息与待推送内容是否匹配的实施方式可以是,商业信息包括售卖的商品类型,则判断商品类型与待推送内容的类型是否匹配,如果匹配,则判定商业信息与待推送内容匹配,否则,判定商业信息与待推送内容不匹配。例如,商品类型为水果,如果待推送内容是与水果相关的文章,则该商品类型与待推送内容的类型匹配。或者,如果待推送内容是与水果相关的视频内容,则该商品类型与待推送内容的类型匹配。
需要说明的是,上述推送该待推送内容的方式可以是,目标客户端在启动推送功能的情况下,以该目标客户端的推送模式推送该待推送内容,例如,由用户终端的顶部状态栏弹出待推送内容对应的消息。
请参阅图6,图6示出了本申请实施例提供的一种信息推送方法,,该方法的执行主体可以是上述的服务器。如图6所示,该信息推送方法包括S601至S606。
S601:获取所述待推送内容和所述用户画像数据,依据所述第一模型,得到所述第一兴趣因子。
作为一种实施方式,服务器将所述待推送内容与所述用户画像数据输入所述第一模型,得到所述第一兴趣因子。
S602:获取所述待推送内容和所述用户浏览数据,依据所述第二模型,得到所述第二兴趣因子。
作为一种实施方式,将所述待推送内容与所述用户浏览数据输入所述第二模型,得到所述第二兴趣因子。
在一些实施例中,如图7所示的双模型结构的推送模型的计算过程,待推送内容和用户画像数据输入FM模型,得到第一兴趣因子,待推送内容和用户浏览数据输入NN模型内的拼接函数,输出待推送内容和用户浏览数据拼接之后的向量,然后依次经过第一全连层和第二全连层之后输出第二兴趣因子。
服务器可以直接根据第一兴趣因子和第二兴趣因子得到待推送内容的用户兴趣度,例如,将第一兴趣因子和第二兴趣因子之和作为待推送内容的用户兴趣度。如图7所示,用户兴趣度的计算公式为:y=y_fm+y_clk_seq,其中,y_fm为第一兴趣因子,y_clk_seq为第二兴趣因子,y为待推送内容的用户兴趣度,即双模型结构的推送模型预测得到的待推送内容的点击率。
可以看出,该公式中,y_fm的第一权重为1,y_clk_seq的第二权重也为1。也就是说,将第一兴趣因子和第二兴趣因子融合的时候,只是简单地将第一兴趣因子和第二兴趣因子相加,且所使用的权重是固定值,会存在前述所提及的缺陷。因此,本申请实施例中,通过注意力模型确定第一兴趣因子和第二兴趣因子的权重,从而做到动态调整,发挥出双模型的最佳融合效果,具体的请参阅后续描述。
S603:获取所述待推送内容和所述用户画像数据,依据所述注意力模型,得到所述第一权重。
作为一种实施方式,服务器将所述待推送内容与所述用户画像数据输入所述注意力模型,得到所述第一权重。
其中,第一权重与第一兴趣因子对应,因此,输入第一模型的待推送内容与用户画像数据也输入注意力模型,从而由注意力模型根据待推送内容与所述用户画像数据预测得到待推送内容的点击率,作为第一权重。
在一些实施例中,注意力模型处理该待推送内容与所述用户画像数据之前,需要将所述待推送内容与所述用户画像数据转化为向量。则获取所述待推送内容和所述用户画像数据,依据所述注意力模型,得到所述第一权重的实施方式可以是,由所述第一模型获取与所述待推送内容对应的特征向量以及与所述用户画像数据对应的特征向量,依据所述注意力模型,得到所述第一权重。
其中,将待推送内容与所述用户画像数据向量化的方式可以是词频统计方法或者独热编码(One-hot encoding)方法。
另外,假设第一模型是FM模型,FM模型能够将待推送内容与用户画像数据向量化,例如,FM模型将待推送内容与用户画像数据先通过独热编码的方式生成多个一维向量,然后,再将该多个向量转换成嵌入向量,即Embedding向量。其中,embedding向量是指将特征表示为分布式向量。其中,对于FM模型,上述的vi或vj就是embedding向量。
作为一种实施方式,待推送内容对应的特征向量记为PredictAid Embedding_1,用户画像数据对应的特征向量记为UserEmbedding_1,将PredictAid Embedding_1和UserEmbedding_1输入注意力模型得到第一权重,记为attention_score_long。
其中,注意力模型对应的注意力函数为:
Q、K和V分别对应向量query、向量key和向量value。
注意力模型的计算流程如图8所示,图8中的Matmul函数用于计算两个矩阵的乘积,Scale函数用于将Matmul函数输出的结果进行向量标准化,Softmax函数用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率,从而来进行多分类。则Q和K作为Matmul函数的输入,Matmul函数的输出结果输入到Scale函数内得到标准化的向量,并且输入到Softmax函数得到query与每一组key的相似性,得到每个key的权重系数,再通过对value加权求和,得到最终输出结果。
将所述待推送内容对应的特征向量赋值给Q,将所述用户画像数据对应的特征向量赋值给K和V,dk为K的维度,即用户画像数据对应的特征向量的维度。则所得到的结果Attention(Q,K,V)为第一权重。
S604:获取所述待推送内容和所述用户浏览数据,依据所述注意力模型,得到所述第二权重。
作为一种实施方式,服务器将所述待推送内容与所述用户浏览数据输入所述注意力模型,得到所述第二权重。
同理,第二权重与第二兴趣因子对应,因此,输入第二模型的待推送内容与用户浏览数据也输入注意力模型,从而由注意力模型根据待推送内容与所述用户浏览数据预测得到待推送内容的点击率,作为第二权重。
在一些实施例中,注意力模型处理该待推送内容与所述用户浏览数据之前,需要将所述待推送内容与所述用户浏览数据转化为向量。则获取所述待推送内容和所述用户浏览数据,依据所述注意力模型,得到所述第二权重的实施方式可以是,由所述第二模型获取所述与所述待推送内容对应的特征向量和与所述用户浏览数据对应的特征向量,依据所述注意力模型,得到所述第二权重。
其中,将待推送内容与所述用户画像数据向量化的方式可以是词频统计方法或者独热编码(One-hot encoding)方法。同理,第二模型也可以将待推送内容与所述用户浏览数据先向量化,然后转换成嵌入向量,即Embedding向量。
作为一种实施方式,待推送内容对应的特征向量记为PredictAid Embedding_2,用户浏览数据对应的特征向量记为UserEmbedding_2,将PredictAid Embedding_2和UserEmbedding_2输入注意力模型得到第二权重,记为attention_score_short。
第二权重的计算依然使用上述注意力函数,将所述待推送内容对应的特征向量赋值给Q,将所述用户浏览数据对应的特征向量赋值给K和V,dk为K的维度,即用户浏览数据对应的特征向量的维度。则所得到的结果Attention(Q,K,V)为第一权重。
S605:根据所述第一兴趣因子、所述第二兴趣因子、所述兴趣权重,得到所述待推送内容的用户兴趣度。
其中,兴趣权重包括所述第一兴趣因子对应的第一权重和所述第二兴趣因子对应的第二权重。如图9所示的双模型结构的推送模型的计算过程,图9中的两个全连层即为图7中的第一全连层和第二全连层。待推送内容和用户画像数据输入FM模型,得到第一兴趣因子,待推送内容和用户浏览数据输入NN模型内的拼接函数,输出待推送内容和用户浏览数据拼接之后的向量,然后依次经过第一全连层和第二全连层之后输出第二兴趣因子。由FM模型内得到待推送内容对应的特征向量和用户画像数据对应的特征向量并输入至注意力模型,注意力模型输出第一权重。由NN模型内得到待推送内容对应的特征向量和用户浏览数据对应的特征向量,并输入至注意力模型,注意力模型输出第二权重。
则服务器得到用户兴趣度的公式为:
y=y_fm*attention_score_long+y_clk_seq*attention_score_short。
其中,y_fm为第一兴趣因子,attention_score_long为第一权重,y_clk_seq为第二兴趣因子,attention_score_short为第二权重。
y_fm*attention_score_long和y_clk_seq*attention_score_short分别为第一兴趣度和第二兴趣度,y为用户兴趣度。对比图9和图7可以看出,本申请实施例中根据FM模型中的待推送内容对应的特征向量和所述用户画像数据对应的特征向量输入注意力模型得到y_fm的权重attention_score_long,并且,根据NN模型中的待推送内容对应的特征向量和所述用户浏览数据对应的特征向量输入注意力模型得到y_clk_seq的权重attention_score_short。
S606:根据所述用户兴趣度推送所述待推送内容。
需要说明的是,上述方法步骤中为详细描述的部分,请参考前述实施例,在此不再赘述。
请参阅图10,其示出了本申请实施例提供的一种信息推送装置1000的结构框图,该装置可以包括:获取单元1001、确定单元1002和推送单元1003。
获取单元1001,用于获取待推送内容和与用户对应的用户数据,依据推送模型得到第一兴趣因子和第二兴趣因子,以及依据注意力模型得到兴趣权重,所述兴趣权重包括与所述第一兴趣因子对应的第一权重和与所述第二兴趣因子对应的第二权重。
确定单元1003,用于至少根据所述第一兴趣因子、所述第二兴趣因子和所述兴趣权重,得到所述待推送内容的用户兴趣度。
推送单元1004,用于根据所述用户兴趣度将所述待推送内容推送至用户终端。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参阅图11,其示出了本申请实施例提供的一种信息推送装置1000的结构框图,该装置可以包括:获取单元1110、确定单元1120和推送单元1130。
获取单元1110,用于获取待推送内容和与用户对应的用户数据,依据推送模型得到第一兴趣因子和第二兴趣因子,以及依据注意力模型得到兴趣权重,所述兴趣权重包括与所述第一兴趣因子对应的第一权重和与所述第二兴趣因子对应的第二权重。
进一步地,双模型结构的推送模型包括第一模型和第二模型,所述用户数据包括用户画像数据和所述用户对应的用户浏览数据。
获取单元1110还用于获取所述待推送内容和所述用户画像数据,依据所述第一模型,得到所述第一兴趣因子;获取所述待推送内容和所述用户浏览数据,依据所述第二模型,得到所述第二兴趣因子。
进一步地,获取单元1110包括第一权重子单元1111和第二权重子单元1112。
第一权重子单元1111用于获取所述待推送内容和所述用户画像数据,依据所述注意力模型,得到所述第一权重。
进一步地,第一权重子单元1111还用于由所述第一模型获取与所述待推送内容对应的特征向量以及与所述用户画像数据对应的特征向量,依据所述注意力模型,得到所述第一权重。
进一步地,第一权重子单元1111还用于将所述待推送内容对应的特征向量和所述用户画像数据对应的特征向量代入注意力函数,以得到所述第一权重,其中,所述注意力函数为:
其中,Attention(Q,K,V)为第一权重,Q为所述待推送内容对应的特征向量,K和V均为所述用户画像数据对应的特征向量,dk为用户画像数据对应的特征向量的维度。
第二权重子单元1112用于获取所述待推送内容和所述用户浏览数据,依据所述注意力模型,得到所述第二权重。
进一步地,第二权重子单元1122还用于由所述第二模型获取所述与所述待推送内容对应的特征向量和与所述用户浏览数据对应的特征向量,依据所述注意力模型,得到所述第二权重。
进一步地,第二权重子单元1122还用于将所述待推送内容对应的特征向量和所述用户浏览数据对应的特征向量代入注意力函数,以得到所述第二权重,其中,所述注意力函数为:
其中,Attention(Q,K,V)为第二权重,Q为所述待推送内容对应的特征向量,K和V均为所述用户浏览数据对应的特征向量,dk为用户画像数据对应的特征向量的维度。
确定单元1120,用于至少根据所述第一兴趣因子、所述第二兴趣因子、所述兴趣权重,得到所述待推送内容的用户兴趣度。
进一步地,确定单元1120还用于根据所述第一兴趣因子和所述第一权重得到第一兴趣度;根据所述第二兴趣因子和所述第二权重得到第二兴趣度;根据所述第一兴趣度和所述第二兴趣度得到所述用户兴趣度。
进一步地,确定单元1120还用于将所述第一兴趣因子和所述第一权重的乘积作为所述第一兴趣度;将所述第二兴趣因子和所述第二权重的乘积作为所述第二兴趣度;将所述第一兴趣度和所述第二兴趣度之和作为所述用户兴趣度。
推送单元1130,用于根据所述用户兴趣度将所述待推送内容推送至用户终端。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图12,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备10可以是智能手机、平板电脑、电子书、计算机等能够运行应用程序的电子设备。本申请中的电子设备10可以是上述的服务器,可以包括一个或多个如下部件:处理器110、存储器120、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图13,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1300中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1300可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1300包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1300具有执行上述方法中的任何方法步骤的程序代码1310的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1310可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。