本发明属于互联网统计领域,具体地,涉及一种新闻点击率预测算法。
背景技术:
互联网的出现,意味着"信息大爆炸",用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题,各种各样的排名算法,是目前过滤信息的主要手段之一。对信息进行排名,意味着将信息按照重要性依次排列,并且及时进行更新。排列的依据,可以基于信息本身的特征,也可以基于用户的投票,即让用户决定,什么样的信息可以排在第一位,基于点击率的热门排行榜的应用非常普遍,比如贴吧帖子的热度,新闻网站新闻的热度等。目前已经实现的包括:一、美味书签delicious网站的热门书签排行榜:统计过去60分钟内被收藏的次数进行排名,每60分钟统计一次;二、hackernews社会化新闻网站的帖子热门排行榜:同时考虑用户的投票与时间因素进行排名,排名随时间衰减。
具体地,一、delicious网站的热门书签排行榜算法,其优点为比较简单,容易实现,内容更新相当快,而缺点为排名变化不够平滑,波动大,前一个小时还排名靠前的内容,往往第二个小时就一落千丈,另一方面,缺乏自动淘汰旧项目的机制,某些热门内容可能会长期占据排行榜前列。二、hackernews社会化新闻网站的帖子热门排行榜算法,其优点为同时考虑时间因素与用户投票,防止热门内容长期占据排行榜前列,但缺点是内容更新慢,算法实现复杂度高。
而目前并没有一种能够解决上述问题的技术方案,具体地,缺少一种新闻点击率预测算法。
技术实现要素:
针对现有技术存在的技术缺陷,本发明的目的是提供一种新闻点击率预测算法,基于已观测到的点击次数ci、展示次数ii对新闻点击率ri进行预测,所述新闻点击率ri通过如下公式计算:
ri=(ci α^)/(ii α^ β^);
其中,所述α^为参数α的估计,所述β^为参数β的估计。
优选地,通过求解如下最大似然函数来计算所述α^以及所述β^,其中,误差在第一阈值范围内的α^和β^的解为所述最大似然函数的解:
p(c1,c2,...,cn|i1,i2,...,in,α,β);
其中,所述(c1,c2,...,cn)为观测到的点击数据,所述(i1,i2,...,in)表示广告被展示的次数。
优选地,通过如下步骤求解所述最大似然函数:
a.基于与所述参数α相关联的第一初始值、与所述参数β相关联的第二初始值,构造似然函数的一个下界函数,其中,所述下界函数可以求得所述下界函数最大值处的闭式解;
b.将上述闭式解作为新的估计,并重复上述步骤a,直至收敛。
优选地,所述第一初始值和/或所述第二初始值通过如下步骤计算获得:
α=[mean*(1-mean)/var-1]*mean;
β=[mean*(1-mean)/var-1]*(1-mean);
其中,
mean=e(x)=α/(α β);
var=d(x)=αβ/(α β)2(α β 1)。
优选地,通过sparkstreaming程序将用户行为记录在zookeeper节点上,其中,所述用户行为至少包括所述点击次数ci。
优选地,通过kafka分布式消息中间件对所述用户行为进行采集,其中,所述用户行为至少包括所述点击次数ci。
优选地,所述用户行为还至少包括如下操作或指令中任一种或任多种:
-滑动窗口;
-对窗口执行放大、缩小操作;以及
-下拉滚动条。
优选地,基于已观测到的点击次数ci、展示次数ii以及时间衰减对新闻点击率ri进行预测,所述新闻点击率ri还可以通过如下公式计算:
ri=(ci α^)/(ii α^ β^)(t 1);
其中,所述α^为参数α的估计,所述β^为参数β的估计,所述t为第一次曝光距离现在的时间。
本发明基于已观测到的点击次数ci、展示次数ii对新闻点击率ri进行预测,本发明旨在应用于迷你页弹窗的新闻点击,而迷你页弹窗是一个为用户提供新闻资讯的工具,热点资讯点击率远高于普通咨询,所以捕获真正的热点成为了迷你页提升点击率的核心,本发明旨在解决上述技术问题,通过矩估计与不动点估计相结合的方法,进而获取到接近真实点击率的估计值,同时,本发明基于与所述参数α相关联的第一初始值、与所述参数β相关联的第二初始值,构造似然函数的一个下界函数,所述下界函数可以求得所述下界函数最大值处的闭式解,将上述闭式解作为新的估计,并重复上述步骤,直至收敛。本发明使用方便、功能强大、能精准的计算新闻点击率,具有极高的商业价值。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出了本发明的具体实施方式的,求解所述最大似然函数的具体流程示意图。
具体实施方式
为了更好的使本发明的技术方案清晰地表示出来,下面结合附图对本发明作进一步说明。
针对现有技术存在缺乏自动淘汰旧项目的机制、内容更新慢、算法实现复杂度高等等技术缺陷,本发明旨在提供一种能够将矩估计与不动点估计相结合的方法,从而更为精准的计算新闻点击率,本发明旨在服务于迷你页弹窗的新闻点击,但这并不代表其不能使用于其他技术领域。
具体地,本发明提供一种新闻点击率预测算法,基于已观测到的点击次数ci、展示次数ii对新闻点击率ri进行预测,所述新闻点击率ri通过如下公式计算:ri=(ci α^)/(ii α^ β^);其中,所述α^为参数α的估计,所述β^为参数β的估计,本发明所记载的实施方案优选地使用智能终端来完成,所述智能终端包括但不限于移动智能终端,即本发明优选地采用移动终端作为实施载体,在这样的实施例中,所述已观测到的点击次数ci即为用户通过浏览新闻时,对某新闻产生兴趣后所采取的用户行为:点击,所述展示次数ii则代表系统随机或有目的的向用户进行推送的新闻信息,即在一个优选地实施例中,系统向用户终端发起弹窗,并共计展示有10则新闻,而用户可以根据自己的喜好选择其中的任意或全部进行点击,则将点击数除以展示数即可大致得出新闻点击率,而在本发明中,由于需要考虑到数据的稀疏性,需要对其进行平滑处理,在此,可以引入参数来对其点击率进行数据修正,即参数α以及参数β,更为具体地,参数α以及参数β为一定的取值范围,如何从多个取值中选取最优解作为上述公式最后的代入,即为选取所述α^以及所述β^的过程。
本领域技术人员理解,所谓数据的稀疏性,是指数据会因为“分子”、“分母”之间的差距过大或过小而造成数据的偏差,进一步地,新闻点击率ctr是度量一个用户对于一个新闻的行为的最好的度量方法,新闻点击率可以定义为:对于一个新闻的被点击(click)的次数于被展示(impression)的次数的比值,在计算ctr时由于数据的稀疏性,利用上述的计算方法得到的ctr通常具有较大的偏差,这样的偏差主要表现在如下的两种情况:1、例如展示impression的次数很小,如1次,其中,点击的次数的数值也很小,如1,按照上述的ctr的计算方法,其ctr为1,此时的点击率就被估计过高。2、展示的次数很大,但是点击的次数很小,此时,利用上述的方法求得的ctr就会比实际的ctr要小得多,出现上述两种现象的主要原因是对分子impression和分母click的估计不准确引起的,部分原因可能是曝光不足等等,对于这样的问题,本发明通过相关的一些新闻的展示和点击数据对ctr的公式进行平滑处理。
进一步地,本发明首先通过用户行为数据实时收集来确定用户行为数据的获取,再通过用户行为数据实时处理对数据进行解析,最后,基于点击率算法实现新闻点击率的计算,具体地,在用户行为数据实时收集中,用户在迷你页上的行为包括但不限于弹第三方迷你页资讯,通过用户点击迷你页,下拉滑动等这些有效行为实时的发送到kafka,所述kafka是分布式消息中间件,具有高吞吐,低延时,分布式,可容错等特性,保证了数据接收的稳定性。
紧接着,在用户行为数据实时处理中,实时处理是对用户的实时行为数据进行解析,进行算法建模,技术上采用sparkstreaming流式计算框架,所述sparkstreaming是spark生态圈中实时计算的框架,具有分布式,高可用,高性能,可扩展等特性。sparkstreaming与kafka的结合保证了数据接收与处理不会存在性能瓶颈,但是kafka默认的消息偏移量管理方式无法做到数据只处理一次,经过调研本发明开发了一种基于zookeeper的偏移量管理方式(sparkstreaming流式计算框架 kafka的结合的改进),zookeeper是一个开源的分布式协调服务,典型的应用场景就是解决数据一致性。sparkstreaming程序通过将消费的kafka偏移量记录在zookeeper节点上,保证数据处理的exactly-once,不丢不重。
进一步地,作为本发明的核心,基于点击率算法实现新闻点击率的计算,所述新闻点击率ri通过如下公式计算:ri=(ci α^)/(ii α^ β^),而在后述的实施例中,本发明将对如何确定α^以及β^做进一步地描述。
进一步地,通过求解如下最大似然函数来计算所述α^以及所述β^,其中,误差在第一阈值范围内的α^和β^的解为所述最大似然函数的解:p(c1,c2,...,cn|i1,i2,...,in,α,β);其中,所述(c1,c2,...,cn)为观测到的点击数据,所述(i1,i2,...,in)表示广告被展示的次数。
本领域技术人员理解,本发明通过滑动窗口与贝叶斯平滑相结合的的点击率计算方式,所述滑动窗口操作是统计单位时间内新闻的点击率,与全局的热点新闻不一样,这种统计方式使得热点更新相当快,能将在短时间点击量多的新闻捕捉成为热点,从而推送给用户,达到提升点击率的目的。而所谓贝叶斯平滑是对滑动窗口内新闻点击率的一种修正,假设(c1,c2,...,cn)为观测到点击数据,(r1,r2,...,rn)为隐含的ctr的值,为点击率,点击率在此是一个隐含的参数,新闻是否被点击满足二项分布,即binomial(ii,ri),其中,ii表示广告被展示的次数,贝叶斯思想认为,隐含的参数不是一个具体的值,而是满足某个分布,我们知道贝叶斯参数估计的基本过程为:先验分布 数据的知识=后验分布。
进一步地,已知二项分布的共轭分布为beta分布,对此,有以下的两点假设:1、对于一个新闻,其点击ci符合二项分布binomial(ii,ri),其中ii表示的是展示的次数,ri表示的是新闻被点击的概率;2、对于所有的新闻,有其自身的ctr,其ctr满足参数是α和β的贝塔分布beta(α,β)。点击率ri不仅与(ii,ci)相关,而且与参数α和参数β相关,我们可以通过计算得到参数α和参数β的估计α^和β^,一旦α^和β^被确定后,则ri的估计为:ri=(ci α^)/(ii α^ β^)。
进一步地,求解参数α和参数β的估计α^和β^,首先构造最优化目标函数,机器学习中的很多问题都可以形式化成目标函数的最优化求解问题:点击c的似然函数为:p(c1,c2,...,cn|i1,i2,...,in,α,β),根据最大似然估计理论,在似然函数取最大时统计模型最合理,所以使用点击c的对数最大似然估计作为目标函数,然后求解目标函数的极值,这些将在后述具体实施方式中作进一步地描述,在此不予赘述。
图1示出了本发明的具体实施方式的,求解所述最大似然函数的具体流程示意图,具体地,本发明通过如下步骤求解所述最大似然函数:
首先,进入步骤s101,基于与所述参数α相关联的第一初始值、与所述参数β相关联的第二初始值,构造似然函数的一个下界函数,其中,所述下界函数可以求得所述下界函数最大值处的闭式解,在这样的实施例中,所述与所述参数α相关联的第一初始值即为通过矩估计而得出的参数α的最优解,所述与所述参数β相关联的第一初始值即为通过矩估计而得出的参数β的最优解,通过两个所述最优解构造似然函数的一个下界函数,然后在步骤s102中,将上述闭式解作为新的估计,并重复上述步骤s101,直至收敛。
本领域技术人员理解,所述第一初始值和/或所述第二初始值通过如下步骤计算获得:α=[mean*(1-mean)/var-1]*mean;β=[mean*(1-mean)/var-1]*(1-mean);其中,mean=e(x)=α/(α β);var=d(x)=αβ/(α β)2(α β 1)。
在这样的实施例中,求解目标函数的极值将用到两种方式,第一种:矩估计,矩估计的方法要追溯到19世纪的karlpearson,是基于一种简单的“替换”思想建立起来的一种估计方法,其基本思想是用样本矩估计总体矩.由大数定理,如果未知参数和总体的某个(些)矩有关系,我们可以很自然地来构造未知参数的估计。
具体计算步骤如下:1)根据给出的概率密度函数,计算总体的原点矩(如果只有一个参数只要计算一阶原点矩,如果有两个参数要计算一阶和二阶)。由于有参数这里得到的都是带有参数的式子。比如,有两个参数时,需要先计算出:期望,方差。在beta分布中,可以计算得到,e(x)=α/(α β),d(x)=αβ/(α β)2(α β 1)。2)根据给出的样本,按照计算样本的原点矩。通常它的均值mean用x表示,方差var用s表示;3)让总体的原点矩与样本的原点矩相等,解出参数。所得结果即为参数的矩估计值。这里有,mean=e(x)=α/(α β),var=d(x)=αβ/(α β)2(α β 1)。于是乎,我们可以求得α,β:α=[mean*(1-mean)/var-1]*mean;β=[mean*(1-mean)/var-1]*(1-mean)。
进一步地,第二种为不动点估计,在数值分析中,函数的不动点是指被这个函数映射到其自身的一个点。也就是说,c是函数f(x)的不动点,当且仅当f(c)=c,具体计算步骤如下:1)首先给出参数的一个初始值(通常可以使用矩估计得到的结果作为初始值)。2)在初始值处,构造似然函数的一个下界函数。这个下界函数可以求得其最大值处的闭式解,将此解作为新的估计用于下一次迭代中。3)不断重复上述(2)的步骤,直至收敛。此时便可到达似然函数的stationarypoint。如果似然函数是convex的,那么此时就是唯一的最优解。
本发明结合上述两种方式,综合矩估计与不动点估计,对数似然函数分别对α与β进行求导,令其等于0,统计前一天的新闻点击率的均值与方差来计算矩估计中的α和β,再使用矩估计得到的α,β作为初始值来求解不动点估计,最终得到误差在一定范围内的α^和β^的解就是最大似然函数的解。本发明不同于现有技术中基于带滑动窗口贝叶斯网络的自适应软测量预测方法,本发明虽然与其存在一定相似度,但是本发明是假设新闻点击率ctr服从一个beta分布,新闻的点击曝光服从二项分布,根据二项分布和贝塔分布的共轭特性,利用贝叶斯参数估计的方法,即使用的是矩估计 不动点估计的结合方法,去求解后验分布的参数,从而获取到接近真实点击率的估计值,而上述专利中使用的是贝叶斯网络来预测co2的含量,本质参数估计方式是em算法,与本申请的技术方案存在本质的不同。
进一步地,所述用户行为还至少还包括滑动窗口、对窗口执行放大、缩小操作以及下拉滚动条等等操作。
进一步地,基于已观测到的点击次数ci、展示次数ii以及时间衰减对新闻点击率ri进行预测,所述新闻点击率ri还可以通过如下公式计算:ri=(ci α^)/(ii α^ β^)(t 1);其中,所述α^为参数α的估计,所述β^为参数β的估计,所述t为第一次曝光距离现在的时间。在这样的实施例中,作为本发明的一个变种实施例,其还增加了时间的参数,即增加了时间对于整体点击率的影响的考量,具体地,公开了一种基于时间衰减的全局新闻点击率的计算,全局的新闻点击率计算只考虑用户的点击行为,所以不会存在曝光少导致的偏差问题,但是只考虑点击的排行榜会出现热门内容长期占据排行榜前列的问题,而为了解决这个问题,我们加入新闻热度时间衰减机制。
进一步地,在sparkstreaming程序中维护新闻的第一次曝光时间的状态,同时累计新闻的点击次数,即基于已观测到的点击次数ci、展示次数ii以及时间衰减对新闻点击率ri进行预测,所述新闻点击率ri还可以通过如下公式计算:ri=(ci α^)/(ii α^ β^)(t 1);其中,所述α^为参数α的估计,所述β^为参数β的估计,所述t为第一次曝光距离现在的时间,我们可以通过公式得知,随着时间的推移,新闻点击率会不断衰减,但如果点击率仍然一直在升高或者保持一定的点击量,新闻点击率可能会维持在一定的范围内波动,但本实施例的初衷还是希望随着时间的推移,新闻热度会逐渐衰退。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
1.一种新闻点击率预测算法,基于已观测到的点击次数ci、展示次数ii对新闻点击率ri进行预测,其特征在于,所述新闻点击率ri通过如下公式计算:
ri=(ci α^)/(ii α^ β^);
其中,所述α^为参数α的估计,所述β^为参数β的估计。
2.根据权利要求1所述的算法,其特征在于,通过求解如下最大似然函数来计算所述α^以及所述β^,其中,误差在第一阈值范围内的α^和β^的解为所述最大似然函数的解:
p(c1,c2,...,cn|i1,i2,...,in,α,β);
其中,所述(c1,c2,...,cn)为观测到的点击数据,所述(i1,i2,...,in)表示广告被展示的次数。
3.根据权利要求2所述的算法,其特征在于,通过如下步骤求解所述最大似然函数:
a.基于与所述参数α相关联的第一初始值、与所述参数β相关联的第二初始值,构造似然函数的一个下界函数,其中,所述下界函数可以求得所述下界函数最大值处的闭式解;
b.将上述闭式解作为新的估计,并重复上述步骤a,直至收敛。
4.根据权利要求3所述的算法,其特征在于,所述第一初始值和/或所述第二初始值通过如下步骤计算获得:
α=[mean*(1-mean)/var-1]*mean;
β=[mean*(1-mean)/var-1]*(1-mean);
其中,
mean=e(x)=α/(α β);
var=d(x)=αβ/(α β)2(α β 1)。
5.根据权利要求1所述的算法,其特征在于,通过sparkstreaming程序将用户行为记录在zookeeper节点上,其中,所述用户行为至少包括所述点击次数ci。
6.根据权利要求1所述的算法,其特征在于,通过kafka分布式消息中间件对所述用户行为进行采集,其中,所述用户行为至少包括所述点击次数ci。
7.根据权利要求5或6所述的算法,其特征在于,所述用户行为还至少包括如下操作或指令中任一种或任多种:
-滑动窗口;
-对窗口执行放大、缩小操作;以及
-下拉滚动条。
8.根据权利要求1所述的算法,其特征在于,基于已观测到的点击次数ci、展示次数ii以及时间衰减对新闻点击率ri进行预测,所述新闻点击率ri还可以通过如下公式计算:
ri=(ci α^)/(ii α^ β^)(t 1);
其中,所述α^为参数α的估计,所述β^为参数β的估计,所述t为第一次曝光距离现在的时间。
技术总结