你好,游客 登录 注册 搜索
背景:
阅读新闻

上海联通大数据与机器学习驱动的离网预测模型

[日期:2015-07-10] 来源:《程序员》电子刊  作者: [字体: ]

  电信运营商提供基础通信管道连接每一位用户。每天数以亿计的用户会在管道中留下通信行为数据,构成运营商大数据。如何挖掘大数据来智能支撑运营商各项业务并进行业务转型是一个需要深入思考的问题。本文主要介绍如何利用大数据与机器学习来支撑用户离网管理。

  随着通信行业竞争日益激烈,每月都有大量的用户离网,即不再使用运营商的通信服务。图1展示的是上海联通近一年预付费用户流失率统计图。从图中可以看出预付费用户由于没有绑定合约 ,流失率比后付费用户要高很多 ,平均每月有大约9.4%的预付费用户 流失,导致营收大幅下降。此外,吸引 新用户入网的成本要比维系挽留有离网倾向用户的成本要高大约 3倍,因此使用数据挖掘方法进行离网预测,稳定在网用户数是一项至关重要的任务。本文验证了使用运营商大数据能显著提高离网预测精度。上海联通对高离网倾向用户进行维挽活动 ,有效降低离网率。由于预付费离网用户基数庞 大,每降低1%离网率,就能每年额外获得数百万元 营收。同时,通过大数据驱动的离网预测模型,我们还回答了关 于大数据的三个科学问题:

  Volume:是不是训练数据量越大,预测模型精度越 高?

  Variety:是不是特征种类越多,预测模型精度越 高?

  Velocity:是不是训练数据更新越快,预测模型精度 越高?

  

  图1 预付费/后付费用户流失率统计图

  运营商大数据平台

  在大数据时代,如果把数据比作黄金的话,那么运营商就是一座大金矿,每天都会产生TB(Terabyte)级别的数据。我们使用的运营商数据大致来自两个系统,BSS(业务支持系统)和OSS(运营支持系统)。BSS是运营商向用户开展业务的主要IT组成部分。OSS是电信服务提供商用来管理通信网络的系统。

  通常,这两个系统分开独立工作并产生自己的数据 。大数据平台把两个独立系统的数据整合起来支撑数据驱动的运营业务决策。BSS的数据主要分为四个部分:用户信息/行为数据(User Base /Behavior)、投诉数据(Compliant)、账单数据(Billing)和通话/短信数据(Voice/SMS CDR)。这些数据涵盖了用户个人的信息、通话行为(包括通话连接基站号、通话时间和时长等)、短信行为、消费情况、账户情况、投诉行为等等。每天BSS能够新生成大约20GB数据。OSS的数据大致可以分为三块:电路交换数据(Circuit Switch,CS)、分组交换数据(Package Switch,PS)和测量报告数据(Measurement Report,MR)。CS数据描述的是用户的通话质量,比如掉话率、通话连接的成功率等。PS数据通常也被叫做MBB数据(Mobile BroadBand),它描述了用户连接网络的情况,比如上网速度、连接成功率和移动搜索文本信息等。MR数据来自无线电网络控制器(Radio NetworkController,RNC),这些数据可以用来粗略的给用户定位,获知用户运动的轨迹。每天OSS产生大约2TB数据,超过大数据平台存储数据的90%。除了BSS和OSS数据,我们还用爬虫获取了一些互联网数据,比如地图数据和一些社交网络数据进行整合。

  

  图2 大数据平台架构图

  图2展示的是运营商大数据平台的整体架构。我们将原始数据存储在了Hadoop分布式文件系统中(HDFS)。然后再用Hive和Spark进行特征生成和处理工作。这些构成了数据层(DataLayer),负责定期收集更新来自 BSS和OSS的数据表。数据层通过数据总线连接到能力层 (CapabilityLayer ),我们在能力层构建了两种不同的模型 ,业务部分和网络部分 。通过设计和业务相关的特征加上数据挖掘和机器学习算法 ,能力层不但能够支持内部应用 (比如精准营销、维挽用户和网络优化等 ),还能支持一些外部应用(比如数据开放等)。本文介绍由大数据驱动的离网预测模型属于应用层 (Application Layer ),图2用红色的虚线标明与数据层和能力层的关系。

  离网预测模型

  

  图3 离网预测和维挽系统

  离网预测模型的流程结构如图3所示。(1)HDFS和Spark负责原始数据的存储和管理。(2)特征工程模块将原始数据处理成和离网相关的结构化特征,用作分类器的输入。(3)利用分类器训练出来的模型预测未来有离网倾向的用户,按照离网倾向高低排名,根据这个名单进行个性化维挽。(4)将用户维挽的结果反馈到模型中形成闭环,不断提高模型预测容易维挽的离网用户精度。模型主要分为了三个主要模块:训练/验证数据标注、特征工程和分类器学习。其中最重要的是特征工程模块,当然其他两个模块也会影响最后的结果,下面就从这三个方面来分别阐述我们的工作。

  

  图4 预付费用户进入充值期后充值时间分布图

  训练/测试数据标注

  数据标注因为与需求直接挂钩,所以是数据挖掘中非常重要的一步。如果训练数据标注出现错误,那么分类器精度再高也无法满足最初的需求。在离网问题中,我们需要在历史记录中找出所有离网的用户,并标注为1,其余的在网用户标注为0,这样离网预测问题就转化为一个二值分类问题。图4显示一年内预付费用户进入充值期(欠费)后充值时间的分布。图中横轴表示预付费用户进入充值期后再充值的天数,纵轴表示用户的人数。从图中可以观察出以上的在网预付 费用户在欠费后15天内就会再充值(即在网用户)。因此 ,如果预付费用户欠费15天内还未充值 ,那么该用户就可以被定义为离网用户 。

  特征工程

  根据数据的特点不同,所设计的特征可以被分成三部分:基本特征、CS特征、PS特征。其中,基本特征主要从BSS数据中抽取,之前很多的离网预测研究都仅使用了来自BSS数据的基本特征,例如账户余额、通话频率、充值金额、投诉频率等记录。与基本特征不同,CS特征和PS特征都从OSS数据中抽取。我们选取了几种具有代表性的上网/语音质量特征和用户位置特征,比如平均数据上传/下载速率、最经常出现的位置 (通过MR数据获得 )等。此外,我们还利用一些非监督和半监督算法从原始数据中生成一些比较复杂的特征 。基于图的特征、主题特征、二阶特征。对每个用户都生成一个维度的特征向量。

  图特征

  用户是否离网可能受周围人的影响,因此我们可以通过用户之间的关系来挖掘出离网倾向。我们构建三个无向图包括通话图、短信图和共同位置图(同时出现在一个位置)。其中每个用户是一个节点,用户之间边的权重代表他们联系的强弱。例如,通话图边上的权重就是两个人在一段时间内(比如一个月)相互通话时间的总和。我们规定用户之间一定要相互通话过才能有边相连,这是为了排除一些推销和骚扰电话(单向边)的影响。我们用Hive/Spark SQL生成了上面描述的无向图,用系数矩阵ε表示,ε={wm,n≠0}。基于这个无向图 ,我们使用PageRank和 Label Propagation 算法各自生成一维特征 。由于传统的PageRank算法的边并没有权重,我们使用了加权的 PageRank 算法。Label Propagation算法将离网用户标注通过无向图边的权重向在网用户传递 。

  主题特征

  用户在投诉和移动搜索中能够产生很多文本数据,从文本信息中也能挖掘出有价值的特征。在一段时间内 (比如一个月),每个用户可以被认为是一篇文档 ,文档中是他的投诉 纪录或者是搜索关键字。依据词袋 (BagofWords )文档中单词认为是无序的,去掉一些无意思的词后,我们将投诉和搜索内容分别构建了大小为 2408和15974的单词表。由于这个矩阵是高维稀疏矩阵,不适合直接作为特征加入我们的分类器。因此我们用概率主题建模算法 LDA(Latent Dirichlet Allocation )从高维稀疏矩阵获取低维稠密特征,在人工设定主题数 K后,算法能够把每个用户高维的特征变成 K维。

  二阶特征

  在设计完全部的单项特征后,我们又在此基础上对单项特征进行组合。原来的特征向量为Xm={x1,x2,…,xi,… ,xN},二阶组合特征定义为 xixj,这可以帮助我们发现 特征之间的隐含关系。如果把这些二阶的特征全部加入的话会使特征向量的维度变得很大,因此我们使用LIBFM 模型来选择在模型中权重贡献最大的前20个二阶特征 。

  分类器

  我们使用随机森林模型作为分类器,这是目前被广泛使用的几种分类器中预测性能较好,同时适合大规模并行运算,能够快速学习稠密的特征向量。随机森林是由许多棵在特征子空间中构建的决策树组成的集合,每棵决策树是一个子分类器,随机森林平均所有子分类器的预测结果作为最终的预测结果。对于每一个待预测的用户,随机森林能够给出离网概率(也就是该用户标注为1的概率)。随机森林还能根据信息增益计算出每个特征的重要性排名,方便我们对特征进行评估,改进之前设计的特征。

  实验结果

  利用搭建的运营商大数据平台,我们验证了大数据的3V特性能够显著提高离网预测的精度。下面会从Volume、Variety、Velocity三个方面验证我们得出的结论。预测精度采用数据挖掘常用的Recall、Precision、AUC和Precision-RecallAUC指标衡量。其中,对预测离网概率从大到小排序首个用户计算Recall和Precision。

  

  

  图5 增加训练数据量使得预测精度逐步提高

  图5回答了关于大数据的第一个问题:是不是训练数据量越大,预测模型的精度越高?这个实验的训练集用的是1-6个月的数据,测试集选用第个7月。一共进行6次实验,每次都比前一次多用一个月的训练数据。为了保证实验的准确性,我们采用滑动窗口方式,又重复做了两组(第二次选用2-7月做训练集,第8个月数据做测试集),将三次得到的结果取平均值。实验结果如图5所示,可以看到在训练数据量增加到初始的4倍时,预测精度还在不断上升。这个实验也说明了训练数据量的增多确实能够提高预测的精度。

  表1 增加数据种类实验结果(U=2x105)

  

  表1回答了关于大数据的第二个问题,是否加大抽取特征的多样性,预测模型的精度就越高 。每一种特征哪怕只提供很少关于预测结果的信息 ,累积起来也能增强模型的预测精度 。实验中,我们把之前提及的特征分为大类 :F1)BSS特征;F2)CS特征;F3)PS特征 ;F4)通话网图特征;F5)短信图特征;F6)共现图 特征;F7 )主题特征(投诉);F8 )主体特征(移动搜索 );F9)二阶特征。实验共做7组(选取不同月份,与上面的实验类似 ),取结果的平均值。每组实验先只用F1做基本特征,然后再用F1+F2,F1+F3,…,F 1+F9,分别得到9组预测结果,最后将后8次预测精度 与第1次比较。实验结果如 表1所示,加大特征多样 性能够显著提升模型预测精度。

  表2 加快数据更新实验结果(U=2x105)

  

  表2回答了关于大数据的最后一个问题:是不是训练数 据越新(处理速度越快),预测模型精度越高?这个问题用到离网预测模型也可以换种说法:需要多久用新来的数据更新分类器 ,从而使能模型能够更好地捕捉用户的离网行为?为了验证这个问题,我们分别用用户 5天前、10天前、20天前和30天前的一个月数据来预测该用户接下来 30天是否会离网。实验结果如表3所示。我们发现模型更新时间间隔越小,也就是训练数据更新速度越快 ,预测精度越高。但是,预测 精度提高的幅度远远没有之前加大训练数据量和增加特征多样性那样显著。

  表3 大数据驱动的离网预测模型最终性能

  

  表3总结了大数据驱动的离网预测模型综合表现,采用4个月的训练数据,所有从BSS和OSS数据抽取的特征,模型更新速度是30天。该模型在前5万最高离网概率用户的预测精度接近0.96,在前30万最高离网概率用户的预测精度超过0.5,满足商用要求,为维系挽留用户提供了较好的决策依据。

  结论

  本文从大数据3V的角度重新探索经典的离网预测问题,展现了大数据的威力,训练数据的总量、多样性和更新速度确实能够显著提升预测精度。其中,3V中的多样性(Variety)起了最主要的作用,促使我们重视OSS数据的挖掘,而之前的研究主要集中于易于获得的BSS数据,对OSS数据并没有很好地利用。OSS数据量的庞大并有较高的潜在商业价值,如果能对OSS数据进行有效的开发,必将给运营商带来持续的收益。本文中,我们整合BSS和OSS数据特征,并取得较好的离网预测效果也证明了这一点。最后,感谢苏州大学计算机科学与技术学院两位同学黄一清和朱方舟实现并调试离网预测模型的原型。

  作者简介:

  沈可,上海联通副总经理,大数据资深专家,多年从事运营商大数据跨业应用研究,作为上海市委宣传部特聘讲师,常年对各政府机关和企事业单位讲授大数据应用相关课程,并与华为联合组建大数据应用创新实验室。

  刘志刚,上海联通互联网与存量经营部总经理,运营商大数据系统架构搭建和大数据跨行业应用专家,领导上海联通大数据能力建设,并与华为联合组建大数据应用创新实验室。

  姚健,上海联通互联网与存量经营部大数据处经理,从事大数据应用项目管理和前瞻性研究,带领团队实施上海联通存量经营大数据应用项目,实现运营商内部存量经营运营效率提升。

  袁明轩,香港科技大学博士,华为诺亚方舟实验室大数据科学家。主要研究领域包括电信/时空大数据管理、挖掘与隐私保护。

  曾嘉,香港城市大学博士,华为诺亚方舟实验室大数据科学家。主要研究领域包括电信大数据平台、挖掘算法与数据产品的商业变现。

  (责任编辑/周建丁)





收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (3)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款