这篇东西本质上是我自己想要解决一个假象的问题而鼓捣出来的计算稿。
由于这方面的东西所涉及的知识都不深,所以可以在不查文献和前人工作的情况下自己从零开始硬推所有结论。这样的做法当然比较浪费自己的时间,但也算是熟悉一下里面整个逻辑脉络的好方法吧。
先从我们已经熟悉的东西开始入手。
一篇文章A,假定我们知道它有p的可能使得看过它的人为其点赞,那么最后当有n人看时,点赞数为x的概率就是二次分布:
反过来,假定我们已经知道A在有n人看时有x人为其点赞,那么A使得一个新的人看后为其点赞的概率p的分布就满足Beta分布:
这是一个静态的情况,所以也是很简单的。
我们当然可以考虑其动态的拓展,比如说在所有前提条件都不变的情况下,假定在t1时刻有n1人看过A,点赞数位x0,而在t2时刻有n2人看过,那么求此时点赞数x的分布。
这个问题也很简单:
事实上,这个代表了从< n0, x0 >分布态到< n, x >分布态的“跃迁”的结果并不考虑这个“跃迁”过程究竟是如何发生的,它所关心的仅仅是数量。这就表示,在t1到t2这个时间段里无论n和x是匀速改变还是变速改变,都不影响结果。
于是,我们就可以自然地问下一个问题了:
假定单位时间里阅读文章A的人的数量为l,点赞的概率为p,那么请问t时刻有x人为文章点赞的概率为多少?以及,如果t时刻有x人点赞,那么文章A吸引人点赞的概率为p的概率为多少?
这个问题当然也是很简单的:
你看,是不是一点技术含量都没有?
下面,我们接着修改问题:
假定,增速l每经过单位时间就下降一定的百分比,那么此时会发生什么?
这个问题当然也是一点都不难的:
是不是依然LOW到爆?
我们可以将问题本身进一步“复杂化”,比如我们可以考虑点赞的人会为阅读量带来变化的情况:
每一次点赞都有q的概率引起一个新人(或者可以等价地说都有可能引起q个新人)来阅读。
在这个情况下,问题就变得有趣了。
我们先考虑最简单的情况,即此时单位时间新增的阅读人数的基本值是固定的,而在基本值之上则是因为上一个时间点上点赞的人而带来新增量。
先不考虑分布,单独来看“最概然”的情况,此时Δmt=pΔnt,从而结果很简单明了:
而此时点赞人数与总人数之间的关系是不会因为点赞导致更多的人阅读这件事所干扰的,因此我们有:
接着,考虑分布的情况:
其中nt代表了t时刻文章的总阅读数,而mt则是t时刻文章的总喜欢数,从而Δnt就是t时刻新增的阅读数,Δmt就是新增的喜欢数。因此,很容易就可以给出当新增阅读数Δnt给定时新增点赞数Δmt的分布:
我们将组合系数用Γ函数拓展:
这么一来,很显然现在分布函数P对所有参数都可以连续取值:
当x从0到n连续变化时,该函数可以做一个额外的归一化,这个归一化因子就是上述式的积分,其解析结果一下子没算出来,不过基本是非常接近1的,所以下面我们既当1来算。
现在,我们可以给定t时刻新增阅读数Δnt时t+1时刻的新增阅读数Δnt+1的分布:
这就是说,假定在t时刻,总阅读数nt的分布为P(i,t),而新增阅读数Δnt的分布为ΔP(i,t),那么下一刻的新增阅读数分布就是:
进而对于总阅读数的分布就有:
可见这里的关键就是递增分布ΔP(i,t),掌握了ΔP(i,t)自然也就掌握了P(i,t)。
已知ΔP(i,1) = δ(i-l),从而我们自然就可以得到以下结果:
其中2F1是高斯超几何函数,从而这个结果我们可以用Mathematica等工具来求出(而且可以求导任意精度哦),但却没法写出比这个形式更简洁的解析结了(当然是在l和i都不给具体值的情况下)。
我们可以预期,随着t的增长,ΔP(x, t)的形状依然是和二次分布相似的钟形,但可能会更缓和或者更尖锐,从而最终影响到的是我们计算其熵分布以及Wilson上下限的位置——这点让人很不爽。
所以,我们下面的人物就是尽可能找出这个近似解。
从上面给出的ΔP(i, 3)开始这个任务。
从简单的分析可以知道,由于ΔP(i, 2)非零的范围为l到l(1 + q),因此ΔP(i, 3)的非零范围为l到l(1 + q + q2)。而ΔP(i, 2)对i的预期为l(1 + pq),ΔP(i, 3)对i的预期为l(1 + pq + (pq)2),因此我们可以猜测ΔP(i, 3)的近似表达为:
当然,事实上这样的表示当然只是近似的。
比如说,由于q很可能不是1,所以事实上我们有如下性质:
其中用到了上面提到过的归一化的结论。
因此,前面给出的近似表达实际上必然是先对世界结果做了归一化的。当然这并不影响结论。
更主要的方面,就是我们利用Mathematics对部分情况做数值模拟后,会发现上述近似只能在一定程度上表示分布的最概然位置< x >,整个分布形态与真实分布依然是存在差异的,一个更好的近似是如下形式:
推广开去就是:
这个近似表达在t小的时候会较好,尤其是峰值左侧,峰值右侧的偏离会较大。但其有点是期望值与峰值与实际情况相符,尤其是期望值这部分(峰值会存在一个小偏离,但不算很离谱,毕竟存在高斯超几何函数)。
我们依然采用这个近似,从而现在可以得到这么一个结果:
和之前的结果一样,这个近似结果在t变大后会有误差,但总体来说还是可以在一定程度上对结果进行刻画的。而且这个结果也还没有归一化。
进一步,我们就得到t时刻的点赞数分布:
可见,当p确定时,i的分布是t的函数,而且几乎就是二次分布。
但,反过来,如果在t时刻我们已知道点赞数为x,那么此时p的分布为何呢?
这是一个非常复杂的分布,因为nt本身就是p的函数,而且还是一个很复杂的函数。
由于nt的形式
通过分析我们可以知道它随着pq的增加而增加,同时也随着t的增长而增长,是一个单调函数。从而x的最大值为
当q小于1时,这个函数渐近为t的线性函数;而当q等于1时,该函数为t的二次型函数;当q大于1时,则是一个指数函数。
我们现在比较好奇与关心的,是该函数的期望值与最大值的位置,这两个一般并不一致,尤其在某些极端情况下。
我们这里主要考虑极大值所在的位置。
由于真正的p的分布是关于Beta分布的积分式,非常难以分析,而近似的结果中由于nt显含p,所以也是一个非常难以下手的东西,直接通过寻常的手段来求极大值的位置显然是难以完成计算的,所以我们不妨换个思路。
在x的分布中,我们知道在x=np的时,其概率达到最大值,因此一个很直接的想法就是:对于p的分布来说,其最大值应该也是出现在x=ntp的位置上,从而这是一个代数方程:
其中P = pq
。
分析方程的左右两边,我们发现它们都有一个必过的点:P = 1。
方程在P < 1的部分与P > 1的部分都有可能有解。
对于P < 1的部分,左边的曲线y = Pt+2很有可能是接近“」”形的,同时左边的曲线在P=0的位置上非零,所以有解的条件就是左边的二次曲线的最低点落在[0,1]区间,且最低点要“几乎”不超过0。其中第一个要求很容易满足,第二个要求则最终给出:
当然,事实上这个条件可以进一步利用右侧函数最低点时左侧函数值随着t的下确界来进一步细化:
很显然,这个由下确界得到的条件,也只有在t很大的时候才会满足了。
另一方面,在P > 1的部分,由于t必然是大于0的,所以方程左边总会从某个P开始超越方程右边,从而这个P就是解,而要出现这个局面,就要求在P = 1这个点上方程右边的增长速度必须比左边快。
通过简单分析可以知道,两个函数的一阶导在P = 1这个点上是相同的,都是t + 2,因此我们直接比较二阶导,从而有解的条件为:
其中条件三来自P的最大值为q——这个同时也给出了前面就给出过的xmax,所以其实是自然满足的。
同时,我们可以注意到,这个条件实际上要求了左边曲线在P = 1的右侧是位于右边曲线之下的,这也就是说在P = 1的左侧,左边曲线在右边曲线之上,而我们又知道P = 0的位置上,右边曲线在左边曲线之上,这结合之前关于P < 1部分的“几乎不超过零”要求就可以知道,在现在这个要求满足的情况下,两条曲线的焦点会发生在左边近“」”形曲线那翘起的尾部。
也就是说,条件二同时给出了P < 1和P > 1有解的条件,而条件一只是给出了在平缓段有解的条件。
从而,也就是说,满足条件二时,上述方程会有三个解,一个是P < 1的解,一个是P = 1的解,而另一个是P > 1的解;如果条件二不满足,条件一满足,那么上述方程依然会有三个解,其中两个是P < 1的解,一个是P = 1的解;如果条件一也不满足,那么我们只能确定在P = 1上有一个解,在P < 1的区域可能有也可能没有解。
当然,上面仅仅是从方程是否有解的角度来做判断,实际的积分函数中由于代数方程的解附近的p对于积分都有贡献,所以实际上是代数方程左侧所给出的曲线与右侧所给出的曲线的“足够接近”的区域中的p都会给出贡献,从而并不完全符合上述代数方程——尤其在条件一与条件二都不满足的区域,这种情况给出了不局限在pq = 1
处的解——即p分布的最大值所在位置。
我们可以先将上述代数方程简化为如下形式:
从而,对于pq < 1
的部分,我们可以做近似,取左侧只保留p2项,从而有解:
这个解在P很小即使pbar的时候符合得很好。
另一方面,我们知道这个方程必有P=1的解,于是在该点附近做展开:
因此,我们可以获得在P=1附近的“中段”解:
以及,最后,我们考虑P远大于1的区域,从而可以的大近似解:
从而,我们现在分解将P很小、P在1附近和P很大这三个区域的近似解找到了:
将上述三段曲线结合起来的方案有很多,这里采用如下的近似形式:
这个方案就是用P1本身的a次幂作为P2的权重因子,因为我们知道P1在pq远大于的区域是趋于1的,所以其本身就可以用作权重。
至此,我们终于找到了当x已知时p的最概值的近似函数,从而也就找到了我们所要求解的p的分布:
这个近似分布,与实际情况的问题度还是很让人满意的。
有了分布,那么我们接下来当然可以讨论“最大熵值”的问题了,即在分布中处于峰值的1/e大小的p值,在通讯中就可以看做是“半波宽”。
在《点赞的有多少人喜欢?》一文中已经对一个最简单的情况做过了分析,这里采用完全相同的手段来获取这个最大熵下限p。
对于前面所得到的近似分布,其最大值当然是出现在我们所计算出的p的峰值近似值的位置,从而我们可以构造如下函数:
很显然,这个函数在目标峰值附近的时候是近似为1的,从而我们所要求的最大熵值就是该函数为1/e时的值:
它在nt足够大的时候可以做Taylor展开得:
或者参照之前提到的那篇文章中的方案,加上一个额外的修正项:
从而,我们现在有了关于在知道x和t的情况下,p的合理估计了:
因此,至此,我们关心的分布与p值随着时间的演化问题,就算是有了一个初步的结果了。
当然,很显然的,有了这些其实问题距离最后的解决还有很远。因为我们一般而言对于这样的系统,知道的是x,t都未必是已知的,更别说q了。
我们往往需要做的,是在一个t足够大以至于不再重要的情况下,并认为q是一个系统性参数从而不随文章的不同而不同,这么一个情况下来从x获得p。
面对这样的问题,显然我们还有很长的路要走。
通过本协议,您可以分享并修改本文内容,只要你遵守以下授权条款规定:姓名标示 、非商业性、相同方式分享。
具体内容请查阅上述协议声明。
本文禁止一切纸媒,即印刷于纸张之上的一切组织,包括但不限于转载、摘编的任何应用和衍生。网络平台如需转载必须与本人联系确认。
如果喜欢简书,想要下载简书App的话,轻戳这里~~
<small>私人推荐订阅专题:《有意思的文章》、《严肃码匠圈》</small>