使用结构化分解的线性模型预测 dau

作者:陈辉

dau(Daily Active User)毫无疑问是互联网产品里最重要的指标之一(或许‘’之一‘’也可以去掉),每天的dau数据都会牵动着整个产品团队的心。因此,如果能对未来的dau进行预测,了解未来的发展趋势,根据预测结果,寻找增长规律,发现增长瓶颈。另外,对业务来讲,单纯地知道dau的一个预测结果价值也有限,最好是能在预测过程中揭示一些规律,指导产品的规模发展。

对类似于dau的这种数值预测问题,最常见的是采用时间序列分析的预测方法。但这种方法是单纯地依赖数据的规律,只能给出一个预测结果,不能解析其中的影响因素。而其他的一些非线性的回归方法,通过较为复杂的特征处理,也许能达到较高的预测精度,但也很难去对预测过程进行解析,就更不用谈指导产品的规模发展了。因此,我尝试了最简单的线性模型,通过对PCQB浏览器的dau的用户进行结构化的分解,分别建立线性预测模型,发现最终的结果也达到了可解析性与预测精度的一个平衡。而整个建模过程只需要一款老少皆宜的神器-- excel,是不是很简单?

1.对dau进行分解

对于一款成熟的产品,在渠道稳定的情况下,新增用户未来每天的留存率是基本稳定的。如果产品的用户是从0开始,各渠道也恒定,那只要出拟合新增用户的留存率曲线,就可以得到未来每天的dau了。即如果拟合出来新增用户的留存率表达式是:

第i天的新增量是Newi,则n天后的dau为:

这个预测方法是特别简单。但现实面临的问题是产品已经发展多年,现在的渠道跟产品刚开始发布的渠道已经是千差万别,对PCQQ浏览器而言,3年之前的数据都找不到了。

更进一步,既然目前和预见的未来的渠道是稳定的,那么就可以对新增用户采用上述的办法进行预测。将每天的dau分解成两部分:新增用户和非新增用户。接下来的问题就是非新增用户的留存预测,如果非新增用户的留存率也是稳定的,那问题不就迎刃而解了?

事实上采用上述的分解方法,非新增用户的留存率并不稳定。因为非新增用户中含有最近一段时间新增的用户和新增了很久的用户的,这两部分用户的规律一般是有不小的差别的。就是一部分还算新手,一部分已经是老油条了,他们两部分人群肯定有较大的差别,混合在一起去预测他们的总体留存,误差也肯定大。有没有更好的分解办法?

沿着这个思路,接下来就是我使用的分解办法了。假设新增用户达到一定时间后就跟老用户没差别,也就是老油条与老一点的油条而已,然后对老用户按沉默的天数进行切分。

2.模型假设

经过统计,发现60天都不活跃的用户再回流的只占当天dau的1%,可以认为60天都不活跃的用户再回流是一个小概率事件。当然,时间取得越长这个概率越来越小,取60天的误差也足够小。基于此结果,选定一个起点时间,假设起点当天的dau是最近60天内的非新增用户(以下称为老用户)的回流与最近60天内的新增用户的留存所组成。后续每天的dau就是上诉两部分用户及未来的新增用户的留存共同构成,同时认为每天老用户的回流率与新增用户的留存率不变(外部环境基本不变的情况下)。

某天dau中第n()天前回流用户的定义:对该天而言,沉默了n-1天后在当天活跃的用户。如对11.6而言,第2天前的回流用户为:所有只在11.4和11.6活跃的用户,并且在11.5不活跃。如下图所示:

某天dau中第n天前的所有老用户定义为:距离前1天沉默了n-1天的所有用户。如对11.6而言,第2天前的所有老用户即为,所有最后一次活跃天为11.4的用户。如下图所示:

根据上诉定义,老用户的回流率:

该指标反映的是沉默了n天的用户中有还会回流的用户的概率。

根据历史数据分别拟合老用户的回流率与新增用户的留存率,就可以对未来的dau进行预测。

3.拟合老用户的回流率模型

由于所需数据较少,拟合两个留存率的模型使用大众神器—excel就可以解决了。

先拟合老用户的回流率模型。首先选定一个起点,从历史数据中跑出60天的回流用户数及其老用户数,存放到excel里。计算一下每天的回流率,插入一列“天数”,如下图所示:

然后绘制散点图,如下图:

然后在散点图中右键选择“添加趋势曲线”,选择合适的曲线,对回流率曲线,我这边得出的结论是基本符合幂规律,并选择“显示公式”、”显示R平方值”,然后就会得到一条非常优美的幂规律曲线,而且该规律的R方值很高(>0.94),也就是拟合的曲线非常好地解析了原数据的方差。如果不放心excel的拟合结果,也可以用R来验证一下,我这边的验证结果是R给出的拟合结果与excel的完全一致。

当然了,该曲线也有一定的欺骗性。由于是老用户的回流曲线,沉默的天数越多的基数也就越大,我这边统计的数据,第1天的老用户是第二天的2倍多。因此实际上更关注的是沉默了前几天的回流率的拟合程度,但excel里曲线拟合过程对所有点是平等的,因此对于这个用这个结果来预测仍然会有较大的误差。实际上,看图上的拟合结果,你就会发现那些散点在曲线周围的波动是有明显的周期性的。进一步思考你就会发现这就是显著的工作日和假期规律。因此可以对老用户的回流率做进一步的分解,分别拟合工作日和假期的规律,发现R方值有进一步的提高:

如果你发现拟合的规律还不满意,可以进一步的把回流率按星期规律拆分成7条。

3.拟合新增用户的留存率模型

对于新增用户的留存率模型,采用上述方法继续分解成工作日和假期进行留存率曲线的拟合。新增用户的留存率通常更符合对数模型:

新增用户的留存有个问题是由于当天的新增留存较高,新增留存率相对于其他天而言是个孤立点,也就是第0天的新增留存率是个孤立点。我的处理方法是认为所有工作日和假期的第0天新增留存率是相同的,实际上统计了部分数据后的确误差在1%以内。

4.dau预测计算

选定了预测起点后,就可以对后续天的dau进行迭代预测。预测第k天的dau,先预测第k天老用户的回流总量:

m<sub>i </sub>表示第 i 天前的所有老用户,ro<sub>i </sub>表示第 i 天前的老用户回流率。

第k天的新增用户留存总量:

n<sub>i</sub>表示第 i 天前的所有纯新增用户,rn<sub>i </sub>表示第 i 天前的纯新增用户的回流率。

根据模型假设,则第k天的dau为:

对接下来预测k+1天的dau时,因为之前第i天已经有的用户回来到当天,则第i天前的老用户总量需要重新更新为:

5.预测效果验证

选定2015.11.6为起点,计算了2015.9.7-2015.11.5共60天内的老用户,使用上诉方法对2015.11.6 - 2016.1.31的dau进行了预测。所有天的平均绝对值误差在4%以内,误差较大的天为8%左右。误差较大的那几天主要是些特殊的日子,并且我们自己也有些特殊的运营手段刺激,如11.11,12.12,这个后续可以对这些特殊日子附加一个增益即可提高精度。预测值与真实值的效果如下图所示:

6.模型解析

首先一个问题,老用户回流率曲线是幂规律,新增用户的留存率曲线是对数规律,为啥说他们都是线性模型呢?实际上,通过适当的变换,他们都可以变成线性形式,而且程序里实现幂规律和对数规律的拟合时都是变换成线性形式求解的。对幂规律,其表达式为:

(1)

等式两边去log,(1)式变成:

(2)

以logy和logx为新的自变量,令Y=logy,X=logx,(2)式就成了熟悉的一次线性表达式:

(3)

对于对数规律,其变换过程也类似,也会变成一个一次线性表达式。

7.模型对实际业务的指导意义

通过建立的上述预测模型,可以清晰的反映了老用户的回流规律与新增用户的留存规律,从中可以发现一些有意思的指标。比如对于我们的业务,老用户沉默3天内有20%左右的回流概率,14天后回流的概率已经低至5%以内,由此产生的一个策略就是对沉默3天内的用户应该是免打扰,沉默14天以上的用户应该进行强运营。

通过该模型也可以给出一些量化的预期。比如希望加大新增投入来提高dau,以前是只能拍脑袋给个估计,现在就可以根据新增增加的量来预测对dau带来的确切提升量。当然,由于新增的渠道差别较大,单纯这么预估还是有较大的误差。接下来就可以对新增用户分渠道来拟合新增留存率,这样就可以较为准确地预估不同渠道的新增量对dau的量化影响。

8总结

把dau分解为老用户与新增用户后,就可以采用简单的线性模型对dau进行较为有效的预测,预测误差大部分都能控制在4%以内,并且整个建模过程在excel里就能解决。

这个预测方法主要有以下优点:模型只反映最近一段时间内的规律,不会受到太多历史因素的影响;模型训练简单,也能较快地反映最近的变化趋势,更新非常方便;容易解析。

当然,模型的缺点也非常明显:预测精度一般;预测过程比较复杂,需要迭代预测,造成误差累积;对特殊日子需要手动处理,增加偏置。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网高可用架构

小目标运动物体检测算法-Pipeline

1313
来自专栏人工智能头条

让机器搞懂100万种隐含语义,腾讯Peacock大规模主题模型首次全揭秘

1574
来自专栏机器之心

现在,所有人都可以在18分钟内训练ImageNet了

该团队的主要训练方法是:fast.ai 用于分类任务的渐进式调整大小和矩形图像验证;英伟达的 NCCL 库,该库整合了 PyTorch 的 all-reduce...

801
来自专栏麻文华的专栏

证件识别技术进化史

当我们在手机APP端绑定银行卡、认证个人资料时,用拍照代替手工录入,手机神奇滴识别了我们的证件类型和格式,并从中找到了它所想要的信息,这一点是否也是很智能的呢?

1.4K1
来自专栏AI科技评论

动态|99.80%!腾讯优图刷新人脸识别新高度

AI科技评论消息,在国际权威人脸识别数据库LFW上,腾讯优图实验室在无限制条件下人脸验证测试(unrestricted labeled outside data...

3087
来自专栏Tencentcloud

神经网络小游戏——泥煤排球

我记得在当年Java小程序仍然很受欢迎的时候有个游戏叫“软泥小排球”。虽然这个游戏在物理上面有一些投机取巧的部分,但是许多跟我一样的孩子却被它深深的吸引了,并且...

2388
来自专栏新智元

【历史最高A轮?】Bengio联合创立的Element AI融资1.375亿美元

【新智元导读】谷歌今天开源了MobileNets,它是一类用于手机等移动设备的视觉应用的高效模型,能够最大限度利用有限的资源实现高准确性。 地址:https:/...

2857
来自专栏AI研习社

Facebook 的数据预测工具 Prophet 有何优势?用贝叶斯推理一探究竟

编者按:2月23日,Facebook开源了一款基于 Python 和 R 语言的数据预测工具——“Prophet”(详细报道请看 AI 研习社此前文章 :支持P...

3816
来自专栏媒矿工厂

【视频编码】 Content Aware ABR技术(三)

本系列的前面贴子中,我们梳理了Netflix和YouTube在ABR方面的一些进展,本文将简要介绍一下编码优化领域的一位新贵—Beamr的技术动态。 ? Bea...

2795
来自专栏AI科技评论

干货 | 中科院孙冰杰博士:基于网络化数据表示学习的重叠社区发现研究

AI科技评论按:网络是大数据的重要组织形式,然而网络化的数据由于缺少高效可用的节点表示,而难于直接应用。网络化数据表示学习通过将高维稀疏难于应用的数据转化为低维...

2844

扫码关注云+社区