这两天又读到了一篇非常好的文章,Modeling and Predicting the Growth and Death of Membership-based Websites,作者是卡耐基梅隆大学计算机学院的:Bruno Ribeiro
下载地址:http://arxiv.org/pdf/1307.1354.pdf
引用:Bruno Ribeiro:Modeling and Predicting the Growth and Death of Membership-based Websites, WWW '14 Proceedings of the 23rd international conference on World wide web Pages 653-664 ,2014
1、作者提出了一个描述网站活跃用户增长的反应、扩散、衰减模型,这个模型只有4个参数,却能拟合很多网站的发展数据
2、用模型拟合了21个网站6年的月活跃用户数据,这些网站既有诸如facebook这样知名的、增长势头非常好的网站,同时也有一些衰败的小网站,而且这些网络战的类型异常丰富
3、对网站未来的发展情况作出了准确的预测
4、通过拟合得到的参数可以给所有的网站做分类,至少可以分成可以持续发展的和不可以持续发展的这两种,这为网站的估值提供了重要的依据。
模型:
这是一个简单的模型,用于模拟用户上某一个固定网站的过程。假设所有可能上一个网站(比如Facebook)的用户总数是一个固定的常数C。那么这些人中可以分为三类:1、活跃用户,他们天天在Facebook上发帖;2、不活跃用户,这些人虽然在网站上注册了,但是却并不活跃;3、未注册的人,它们从来没到Facebook注册过。
然后,模型假设这个网站的日活跃用户的多少主要取决于这些用户之间的互动。比如,活跃用户可能带动着不活跃用户一起玩,再次活跃起来;又可能活跃用户时间长了之后自己变成了不活跃用户,等等。总而言之,作者将这些用户之间的互动分成了一下几类化学反应:
1、将不活跃用户激活
A+I-->2A
这里,A表示一个不活跃用户,I表示一个活跃用户。那么上面的化学反应就是说一个活跃用户如果与另一个不活跃用户互动,就可能将不活跃用户激活,所以最后出现了两个活跃用户。当然,这并不是说只要一个活跃用户与一个不活跃用户相遇就一定能把它激活,所以我们要用一个参数alpha来描述这一化学反应发生的概率,alpha越大,则它越可能发生;
2、活跃变成不活跃
A-->I
发生概率是beta,即一个活跃用户有可能自己就变不活跃了
3、激活一个未注册用户
A+U-->2A
活跃用户不仅仅能自己玩,而且玩high之后就可以带动着一些未注册用户加入其中,反应概率是gamma
4、扩散:
U-->A
未注册用户良心发现,自己上这个网站玩了。反应概率是lambda
好了,有了这四个化学反应,模型就可以转起来了。可以考虑有一个大容器,这三种粒子(A,I,U)相互碰撞,转化来转化去的。研究化学的人早就知道这样的东西可以写出rate equation,即用微分方程来描述系统的动力学过程。
我们设A(t)是t时刻的活跃用户数,那么它的变化可以写为:
dA/dt=alpha A I /C - beta A + gamma A U /C + lambda U
右边这四项分别对应了四个方程。第一个方程可以增加一单位A,但是它的化学反应取决于A和I相对于C的浓度,所以是AI/C,以及反应快慢alpha。后面的三项依次类推。类似地,我们也可以写出制约I(t)的方程。于是经整理我们可以得到:
注意到A+U+I=C,所以式子中没有出现U。
求解
下面就是要解这个方程。作者考虑了两种近似的情况。一种情况是,假设模型运行了很长时间了,这样可以想象,容器中的所有U都没有了,都成了A或者I。所以这个时候就可以对它进行简化,得到如下方程和求解:
我们看到,最后就会出现两种情况,一种是A(t)为0,这说明这个网站死掉了;另一种是A(t)=C(1-beta/alpha),说明网站没死,维持到了一个持续水平。这两种情况的出现取决于参数 \beta 和alpha的大小。回忆一下,alpha刻画的是A+I->A的快慢,而beta刻画的是A->I的快慢。也就是说如果活跃成员增加的比减少的快,则网站就有可能保持不死,这就是为为什么很多大网站都要保持活跃成员的原因。这个解的图如下:
另外,作者也讨论了网站在一运行的初始情况,这又可以根据参数gamma和lambda分成两种情况。一种是gamma远远大于lambda,表示的是活跃用户带未注册用户的速度很快。也就是网站靠口耳相传,网络传播来增长。另一种情况则是lambda远远大于gamma,表示的是未注册用户自己变成活跃用户的速度很快,这可能要归功于网络公司投放广告的宣传工作。在这两种情况下,增长曲线为: