产品健康度模型之打分I

  在这个项目上,大家可能会发现,很多做法比较主观,但是原因我认为”健康度“本身就是一个主观概念,哪里去找真正的”产品健康度“呢?这和离网用户分析就形成了鲜明的对比,离网用户预测准确率就是一个客观数值,而健康度打分,什么是好,什么是不好,很难界定(如果真的需要所谓实际值,那就需要大量的调研反馈,那对企业来说又是不可接受的),所以说问题本身很难形式化成一个典型的机器学习问题——这也是我在这个项目中最困扰的地方。
  但是,在处理的时候,我们在经验范围内不做蠢事,这就是最好的结果啦——但求问心无愧呗!

根据指标记录打分

  按照对方的要求,我们还是需要根据每个指标给出一个打分(也就是说对于新来的指标值,要给出其打分)。
  这里举一个实际的例子,比如对于短信接收延时这个指标(现在我们仅仅考虑只有一个用户),比如第一期指标有三个值d11,d12,d13d_{11},d_{12},d_{13},dxyd_{xy}表示第xx期的第yy个指标,比如还有第二期的指标 d21,d22,d23,d24d_{21},d_{22},d_{23},d_{24},以及第三期的指标 d31,d32d_{31},d_{32},这里一期指标是指一次性入库的指标(由于指标数据量太大,往往会将一部分暂存在服务器上,然后批次的上传到集群之上)。现在来了一个新的实时指标值dnewd_{new},怎么用该指标进行打分呢?
  首先一点,技术人员告诉我们(不告诉也可以想见)短信接收的延时是越小越好,也就是说这个指标和健康度在大小上是负相关的。
  然后我们怎么根据一系列的历史值来给出现在的打分呢?接下来我们要明确两个要点和一个观察。

打分的要点和观察

  要点一,利用历史记录进行打分,也就是说从指标值到分数的打分映射要从历史记录中算出来。
  要点二,不能存在满分和零分的情况,因为如果出现了比满分值更好或者更坏的情况,分数岂不是要溢出?也就是说,对于“极好”的指标值,我们可以给一个接近满分的打分,但是不能打满分。并且要交代的是,这边的模型不是“在线”的,也就是,实时产生的指标并不参与打分映射的建模,我们用来建立打分映射的只能是库中的nn期指标。
观察:用户对指标变化造成的感知不是均匀变化的,这里我们用一张表来阐述这个问题:

延时(s) 0.2 0.5 0.9 1.2 3.0 5.7 8.5 10.2 15.6 23.8 38.9 78.0 126.9 230.2 328.7
打分 4.8 4.8 4.6 4.3 3.9 3.6 3.2 2.8 2.8 2.7 2.7 2.6 2.5 2.5 2.2

  从表中我们可以看出,延时的变化导致打分的变化并不是均匀的,1s——10s这一段区间是“敏感区”,不管是从1s变化到3s,还是6s变化到8s,用户对延时的变化都很敏感,而到了10秒往后,用户的体验变化就不那么敏感了,即使是几十秒的延时差距,用户的打分变化不大。如下图:

从用户的角度分析,我们可以这样理解:当延时在10秒以内的时候,用户对延时的感知比较敏感,而过了这个区间,用户的感觉反正是延时太大,几十秒到几分钟的时差对用户来说反而不重要了:

这里我们为什么要从用户体验的角度去分析呢,因为唯一可能和用户的营销指标(使用量,消费量)相关的就是用户的使用体验,当然,其他因素一是不可控,而是在运维指标中也无从反映。
不难看出,指标值和打分分值的曲线类似于一个三次曲线,但是如果我们真的用三次曲线去模拟存在两个缺陷:1. 没有打分样本进行建模,2. 并不是所有的指标都存在这种模式。
我们考虑的做法是拟合样本的分布来打分:分值就是样本的积分值,这样做满足了要点一和要点二了,但是怎么满足我们对用户指标敏感度的观察呢?
在指标分析的过程中我们发现一个规律:用户对指标敏感的区域,往往也是用户指标分布比较密集的区域。
比如对于短信延时指标,其概率分布如下图:

更多的指标分布满足这样的分布:

对概率密度进行积分,我们可以返现其大概的形状都是:

上面的图和我们的打分图的形状已经很相似了,如果考虑到指标和用户满意度的负相关关系,把图做一下左右手的镜像,就是一样的曲线了。
这里之所以说“大概的形状”,是因为对于我们的短信时间延时的例子,指标值较小时对应的平坦的部分就是不存在的,其概率密度积分函数如下图:

但是该图作为打分函数的近似也是可以的,为什么呢?——还是敏感区域的问题,因为真正会影响健康度的就是敏感区域的指标变化,那么如果我们的模型对敏感区域足够敏感就行(而敏感区域的样本密度大这一特性保证了这一性质的成立),至于其他区域的打分,只要满足正负的相关关系以及不要让模型打分溢出就行了。

核密度估计

  我们的思想已经明确,拟合样本的分布,然后计算概率密度的积分,然后用积分作为打分(当然要配合正负相关的知识)。
当然,还不能出现满分的情况,这里我们选择的方法是“核密度估计”(kernel density estimation),也叫Parzen窗方法。其具体内容可以参照维基百科。
为了说明问题,我们还是把公式放上来:
(x1,x2,…,xn)(x1, x2, …, xn)是独立的数据样本,隶属于概率密度函数ƒ. 我们现在要估计的就是ƒ,那么他的核函数估计函数就是:
  f^h(x)=1n∑ni=1Kh(x−xi)=1nh∑ni=1K(x−xih)\hat{f}_h(x) = \frac{1}{n}\sum_{i=1}^n K_h (x - x_i) \quad = \frac{1}{nh} \sum_{i=1}^n K\Big(\frac{x-x_i}{h}\Big)
  其中hh是带宽,而Kh(x)=1/hK(x/h)Kh(x) = 1/h K(x/h)是核函数,带宽的实际理想估计值是:
  
  这里需要说明的是,为了防止分数溢出,我们选择的是高斯核函数,至于带宽,我们选择是相对来说较小的带宽(理想值的1/8)——因为太大的带宽将会使我们损失更多的样本分布的信息,而由于样本量很大,我们并不怕模型产生多大的variance。

总结

  利用基于高斯核函数的核密度估计,我们就满足了所有打分的要点和观察。
  
  

产品健康度模型(4) 打分I相关推荐

  1. 产品健康度模型(5) 打分II

    产品健康度模型之打分II 上一节我们介绍了怎样凭借单独指标进行打分,这一节我们进一步介绍怎样根据用户的在线操作得到最后的打分. 目前计算的结果 到目前为止,我们已经计算了,对于每个运营指标,各个运维指 ...

  2. 产品健康度模型(2) KPI、KQI

    产品健康度模型之KPI.KQI 这一节我们介绍运营商面对这些指标通常的做法,我们健康度模型的可行性,以及我们预备怎么做. 原来他们怎么做? 原来运营商怎么解决这个问题呢?说白了两个字--人工. 对于一 ...

  3. 产品健康度模型(3) 指标关联性分析

    产品健康度模型之指标关联性分析 我们这里做关联性分析的目的就是找出运维指标和运营指标的相关程度.这里重新贴一下指标的结构图: 指标离散化 这里需要说明的是,这些指标可能是连续的,也有可能是离散的,比如 ...

  4. 产品健康度模型(1) 任务介绍

    产品健康度模型之任务介绍 随着OTT(Over The Top)业务的繁荣,电信运营商基本上成了局外人,折让他们很是捉急,所以正如我们所见的,运营商们也在不断推出自己的OTT业务(动感地带购物商城.天 ...

  5. 运维系统常用健康度模型浅析

    0. 监控系统目的:为了避免业务系统不可用导致关键业务的运营受到影响,减少业务系统停机时间,提升业务系统可用性,最终提高用户的满意度. 为此,运维人员需要做到: 1. 通过对可能影响业务系统可用性的因 ...

  6. 兔老大的系统设计(一)健康度系统

    本系列用大白话,手把手带你实现上百个BAT公司内部真实的常用中型系统.评论抽奖送书 与培训班/营销号/忽悠人的低水平作者,不同的是: 保证听懂(小白也可以,这是我的一贯风格,字典式小白式的输出,大家容 ...

  7. 产品管理者人才模型详解

    第一篇:产品管理者人才模型-个人素养要求 在阿泡认为的产品管理者人才模型中,首先需要的是个人素养的要求,在个人素养中,阿泡大致把它分为五个具体的方面,参见图1: 关于对个人素养以及所包含的五个方面的说 ...

  8. SaaS公司健康度指标: Rule of 40

    张三跳槽想进入SaaS行业,王五想投资SaaS股票,但哪家公司更有潜力? 你也想知道! 我们展开聊聊. 1.VC用40法则投资SaaS 在2020年中国数字化的基础建设为SaaS企业带来了更多发展机遇 ...

  9. 基于GRU和am-softmax的句子相似度模型 | 附代码实现

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 前言:搞计算机视觉的朋友会知道,am-softmax 是人脸识别中的成果.所以这篇文章就是借鉴人脸 ...

最新文章

  1. Android Studio 代码注释插入图片
  2. 【转贴】利用 Javascript 获取 URL 参数(适合IE、FF)
  3. Equivalent Strings
  4. 鸿蒙系统暗黑2,暗黑破坏神2为什么被称为神作!看看装备强化系统就知道有多完美...
  5. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)签到题E Evil Coordinate
  6. html语言代码大全,html常用代码大全 寻找最全的HTML语言代码大全
  7. linux与电脑ping通配置方法
  8. 体系结构:Cache Coherence
  9. 微信语音amr文件转mp3
  10. python基础----Day06
  11. 项目的运筹帷幄—项目进度、质量和成本最优决策理论探讨
  12. OpenStack Cinder特性之Volume-backed image介绍与验证
  13. Ocr 图文识别技术——基于百度云OCR技术学习与总结
  14. 端午送粽子祝福微信小程序源码下载支持打赏模式带背景音乐
  15. APICloud使用记录——创建项目
  16. VTD 监视器航向角与 53-2017国标 航向角对齐
  17. debian安装离线源
  18. 报错:Now you can provide attr `wx:key` for a `wx:for` to improve performance
  19. 鸿蒙之境的称号,神都夜行录鸿蒙之境如何玩 鸿蒙之境阵容选择
  20. 6824入门坑 go build 错误

热门文章

  1. nodejs实现微信小程序支付功能及相关问题总结
  2. Ubuntu虚拟机中VCS安装和启动过程中遇到的问题总结
  3. SitePoint播客#65:是否拥有IE6?
  4. 转:作为一个HR,说说应届生及一两年往届生的注意情况。
  5. 手把手教你以太坊ENS域名注册,抢做一个3000万的发财梦!
  6. 跬智信息(Kyligence)荣获浦东新区人工智能创新应用大赛一等奖
  7. 详述Deep Learning中的各种卷积(二)
  8. C五子棋---心态是如何到绝望的.....
  9. 谷歌浏览器上传文件崩溃
  10. UVM之TLM port基础