如何给一条 Twitter 消息建立衰变模型?

pestwave · 2011-05-19
有时流量数据会让人上瘾。谁不想看看到底谁在浏览自己的网页呢?但你肯定没有见过《连线》作者  Rhett Allain 这么玩儿数据的:为一条含有链接的推讯建立衰变模型。 bit.ly 会给任何 bit.ly 链接提供即时数据。你只需在 bit.ly 链接后面加上一个“+”即可以看到该页面的访问信息,比如这个: http://bit.ly/loMBP9+。很酷吧。

如何给一条 Twitter 消息建立衰变模型?

有时流量数据会让人上瘾。谁不想看看到底谁在浏览自己的网页呢?但你肯定没有见过《连线》作者 
Rhett Allain 这么玩儿数据的:为一条含有链接的推讯建立衰变模型。

如何给一条 Twitter 消息建立衰变模型?bit.ly 会给任何 bit.ly 链接提供即时数据。你只需在 bit.ly 链接后面加上一个“+”即可以看到该页面的访问信息,比如这个:
http://bit.ly/loMBP9+。很酷吧。

上面这些数据来自Rhett的一个
链接,流量高峰几乎可以肯定是因为《连线》官推(@wired)发了一条含有该链接的推讯,该账户有85万粉丝。而 Rhett(
@rjallain)只有500多粉丝。

##可以像考虑衰变问题那样为上述流量建模吗?

Rhett当时的第一反应就是这些数据看上去像是放射性衰变。于是他打算计算出一条转发推讯的半衰期。什么是半衰期呢?

他假定有某种东西,比如放射性原子或啤酒沫。假设这种东西数量为 (
N),并且假定这些东西减少的速度与其数量成比例。在给定的时间间隔 Δt 内,可以表达如下:

如何给一条 Twitter 消息建立衰变模型?

如果 Δt 趋于零,我们可以得到一个导数。数量是时间的函数:

如何给一条 Twitter 消息建立衰变模型?

这一点很容易验证。只要看数据是否满足某个指数函数。当然,除了连线官推(
@wired)带来的流量之外,还有其它因素,但几乎可以忽略不计。

下面是流量数据和指数函数的拟合情况(通过 Vernier 的 Logger Pro 软件模拟而成):

如何给一条 Twitter 消息建立衰变模型?

拟合函数和拟合参数如下:

如何给一条 Twitter 消息建立衰变模型?

点击基准数为 Logger Pro 自动添加。这表明在指数衰变模型下,Rhett每分钟能获得约20次点击。
N 并非总点击数,而是每分钟点击数。把点击数作为时间的函数,可以得到一条plot曲线。

如何给一条 Twitter 消息建立衰变模型?

似乎衰变模型并不适合这种情况。每分钟点击次数的减少速度似乎和每分钟点击数无关。于是他打算换个方法。

##另一个流量模型

接着 Rhett 采用了一种完全不同的办法,假定如下:

*@wired 转发了这个链接。

*有85万关注者可能会看到这个链接。此处忽略了那些看到链接的非关注者。将此变量设为 
F。

*这些关注者中的确有些会查看自己的 Twitter 消息。假定这部分关注者为 
w。

*这些看到链接的关注者中还有一部分会打开链接,假定这部分人为 
c。

*还有些人会通过其它途径点击该链接,但和连线官推无关,假定这部分人为 
B。
用图表可表示如下(大圈为总关注者数,中圈为查看者,小圈为点击者):

如何给一条 Twitter 消息建立衰变模型?

也就说是只有一部分关注者会看到这个链接,并且其中只有一部分会点击链接。

含有链接的推讯发出一分钟后,所获得点击数如下:

如何给一条 Twitter 消息建立衰变模型?

那么下一分钟呢?还有 
F 个关注者,但如果他们点击过的话不会再次点击。担忧例外,比如 Rhett 的老爸通常一个链接会点击两次,因为他认为只有这样才能打开链接。

w也可能生变。但这里假定其近似为常量。

那么点击链接的人数 
c呢?这部分人更少。假定你是一名 Twitter 用户,第一分钟内没有点击该链接。现在你在看到这个链接之前已经看过20条推讯。那么你点击这条含有链接的连线官推的几率有多大呢?这取决于推讯的多少,以及你的冲动程度。但显然不是线性函数关系,因为如果是的话过一段时间之后几率会变成零。

假定你是一名看到这个链接的人,并假定每分钟你都会在feed中看到一个新链接。Rhett 假定你点击某个链接的几率和链接总数成比例。所以,前两分钟内:

如何给一条 Twitter 消息建立衰变模型?l 是某个常量,代表增加的推讯数。0.25 是一个假定比例,针对没有链接被点击的情况。

在这里假定其它点击次数(
B)也为常量。还有另一个假设,有些点击者会转发该链接,假定其为二阶效应,可以忽略不计。

由此得出第二分钟内的函数关系:

如何给一条 Twitter 消息建立衰变模型?

N
1 代表第一分钟内的点击次数。然后Rhett
在 Google 文档内对该模型进行了研究。得出以下参数:

*w = 0.02

*B = 15
对于 
c,取 
l0 = 25,亦即假定每分钟普通推友能看到25条新推讯。通过这些推讯,Rhett得出一个概率系数0.45。结果好于预期。

如何给一条 Twitter 消息建立衰变模型?

拟合的不错,但 Rhett 相信可以找出一个通用模型。

##另一起事件

推友 
@majornelson 更新了一条含有 Rhett 文章链接的推讯此人友24万粉丝。

如何给一条 Twitter 消息建立衰变模型?

Rhett 打算通过这次事件验证上面的出的模型。假定两者粉丝情况类似,以便得出相同的 
w 和 
c。同样假定
B=5,这样变量只有一个 
F。

如何给一条 Twitter 消息建立衰变模型?

拟合度并不理想。可能原因如下:

*模型本身问题。

*两者粉丝截然不同。这意味着 Rhett 模型的某些参数有所不同。

*和每天中的时间段有关。连线发推是在中午12点左右,而后者在3:30左右。Rhett 的模型没有考虑到时间段。
Rhett 首先验证第二点。这种可能性很大,后者粉丝明显少于前者,但在第一分钟内点击次数类似。Rhett把
@majornelson事件中的 
w 从 0.02 调高到 0.055,得到下面的曲线:

如何给一条 Twitter 消息建立衰变模型?

还不错吧。Rhett 认为 
@majornelson 的粉丝更有可能查看自己的 Twitter feed。他觉得这说得过去。或许很多连线的粉丝都真正注意吧。

来源:
《连线》

Rhett Allain 为东南路易斯安那大学物理学助理教授,喜欢教授和讨论物理学。有时把东西拆散了无法组装回原样。你可以在 Twitter 上关注他(
@rjallain)。

 

+1

好文章,需要你的鼓励

参与评论
登录后才能参与讨论哦...
后参与讨论
提交评论0/1000

请回复有价值的信息,无意义的评论将很快被删除,账号将被禁止发言。

pestwave氪星老友

写点什么,介绍下你自己吧

下一篇

非要用一句话来描述  Zaarly,那就是「‘移动版’的Craigslist、赶集、58同城」。通过信息化技术,把供需双方更好的结合在了一起——这种 O2O 模式的移动电商真是商机无限啊! Zaarly 的概念很简单。首先由有需求的用户发出需求,比如我想要买一台Mac 电脑,打算什么时候、大概多少钱买,位置在哪里等。你的需求会通过Zaarly 发布到本地社区中,用户也可以选择发布的同时更新到Twitter 等社交网络。

2011-05-19

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

为你推送和解读最前沿、最有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚集全球最优秀的创业者,项目融资率接近97%,领跑行业