移动通信中数据套餐推荐模型的设计与实现
2014-12-26黎建文王锐深李成奇
黎建文+王锐深+李成奇
【摘 要】对东莞移动数据套餐的现状进行了分析,通过离散型系统建模方法,建立了用户数据流量需求预测模型、单个标准月套餐推荐模型以及基于标准月套餐和叠加套餐的推荐模型,并设计了相关的数据结构和算法。实施推荐后,数据流量经营指标显著提升,投诉指标明显改善。
【关键词】数据套餐推荐 数据流量需求预测 数学建模 数据流量经营
中图分类号:TP399 文献标识码:B 文章编号:1006-1010(2014)-22-0082-05
Design and Implementation of Recommended Model for Data Traffic Combo in Mobile Communications
LI Jian-wen, WANG Rui-shen, LI Cheng-qi
(China Mobile Group Guangdong Co., Ltd., Dongguan Branch, Dongguan 523129, China)
[Abstract]This paper firstly analyzes the current status of data traffic combo in Dongguan branch of China Mobile, as well as builds the prediction model of user data traffic demands, the recommended combo model of single month and the recommended model of superposed combos through discrete system modeling. Then, related data structures and algorithms are designed. Through implementing the recommended models, operating indicators of data traffic are highly enhanced and complaints indicators are significantly improved.
[Key words]recommended data traffic combo demands on data traffic prediction mathematical modeling data business
1 现状分析
1.1 业务规则简介
东莞移动的GPRS套餐分为基本套餐、标准月套餐、闲时套餐和叠加套餐。其中,基本套餐是指动感地带网聊卡、全球通新商旅等已捆绑包含流量的套餐[1];标准月套餐是指不限使用时段和地域,全品牌均可办理的套餐,用户每月只能使用1个标准月套餐;闲时套餐限定用户使用时间,用户1个月只能办理1个闲时套餐;叠加套餐也有多档,但每档叠加包用户在1个月内只能办理1个,同一个月可以办理多个不同档的数据流量叠加套餐。对于套餐外的数据流量,每1MB收费1元。
1.2 数据流量经营和用户投诉现状
随着智能手机的普及,用户对数据流量的需求越来越大,但是大部分用户对自己的数据流量需求都缺乏较好的感知。如用户只办理10元70MB的标准月套餐,但当月消耗的流量达到100MB,用户需为套餐外的流量支付额外的30元。东莞移动数据套餐现状如表1所示:
表1 东莞移动数据套餐现状统计数据
统计指标 6月 7月 8月
数据套餐投诉用户数/有效上网用户数 7.75% 7.36% 8.26%
产生套餐外流量用户数/有效上网用户数 10.87% 9.21% 11.70%
产生套餐外流量并投诉的用户数/产生套餐外流量用户数 26.57% 29.77% 26.28%
产生套餐外流量下月升级套餐的用户数/产生套餐外流量用户数 2.76% 3.10% 2.73%
办理了叠加包的用户数/有效上网用户数 11.63% 11.04% 12.39%
根据每个用户的数据流量使用情况,推荐适合其使用的数据流量套餐组合,有利于减少其套餐外数据流量,降低用户支付的费用,提升用户满意度。
2 数据流量套餐推荐模型
2.1 用户数据流量需求预测模型
手机上网产生的数据流量受用户使用习惯、资费、营销推广、手机终端等多因素的影响,其中用户的使用习惯是最主要的因素[2]。有些用户套餐内流量越多使用也越多,而有些用户使用的流量则相对固定。
为了区别日常使用的月份,定义M=1表示1970年1月份,M=2表示1970年2月份,以此类推。针对M月份,用L(M)表示用户使用的流量,A(M)表示用户可用的套餐数据流量,定义套餐数据流量使用饱和度G(M)来评价该月用户的使用习惯,则有:
G(M)=L(M)/A(M) (1)endprint
例如,用户2013年8月份套餐内可用流量为30MB,使用了6MB的数据流量,则M=524,G(M)=0.2。对连续3个月均未产生套餐外流量但每日均有流量产生的用户的流量数据做统计,发现月平均饱和度为93.63%,这可视为一个合理的饱和度,既满足每日的上网需求,又在合理的范围内。取过去m个月的G(M)的平均值作为用户M+1月份G(M+1)的预测值,m的值越大预测就越准确,则有:
(2)
如果用户仍然使用M月份的套餐配置,则可以预期该用户M+1月份的数据流量需求为:
L(M+1)=A(M)G(M+1) (3)
2.2 推荐模型1:单个标准月套餐推荐模型
参考离散系统的建模方法[3],先考虑一种最简单的场景:用户只使用标准月套餐,没有基本套餐、也不办理闲时套餐和数据流量叠加套餐。用x表示标准月套餐的档,x=1,2,…,n。P(x)、Q(x)分别表示x档的资费和包含的流量。对于i
预测用户M+1月份的数据流量需求为L(M+1),用户选择套餐为x,如果x包含的流量不小于L(M+1),则用户支付的费用为x的资费;否则,还要超出套餐外流量,L(M+1)-Q(x)。用公式表示用户的费用如下:
(4)
向用户做标准月套餐的推荐就是寻找一个x,使得P(L(M+1))取得最小值。下面给出求解的方法:
设1≤k
如果向用户推荐k档和i档,用户需要支付的费用分别为P(k)+K[L(M+1)-Q(k)]和P(i)+K[L(M+1)-Q(i)]。显然,当满足:
[P(i)-P(k)]/[Q(i)-Q(k)]≤K (5)
推荐i档比推荐k档用户需支付的费用更少。在当前资费标准下,所有满足1≤k
使P(i)+K[L(M+1)-Q(i)]≤P(i+1)+K[L(M+1)-Q(i+1)]成立的条件,即推荐i档的条件为L(M+1)≤
KQ(i)+P(i+1)-P(i);否则,推荐i+1档。
考虑到边界条件,取P(0)=0,Q(0)=0,则当1≤i≤n时,向用户推荐i档套餐的条件是:
KQ(i-1)+P(i)-P(i-1)
表2展示了在当前资费标准下根据上述模型制定的推荐方案:
表2 当前资费标准下的GPRS标准月套餐推荐方案
L(M+1) 推荐x 套餐费/元 包含流量/MB
5
35
80
180
550
550
2.3 推荐模型2:基于标准月套餐和叠加套餐的推
荐模型
据统计,90%以上的有效上网用户都会选择标准月套餐和叠加套餐的组合作为自己的套餐配置。因此,设计基于标准月套餐和叠加套餐的推荐模型更具应用价值。
用变量x表示标准月套餐的档,共n档;用变量y表示叠加套餐的档,共m档。设有d1,d2,…,dm,如果用户选择第i档数据流量叠加套餐,则di=1;否则,di=0。
对某一选择组合z={x,d1,d2,…,dm},用户的总费用为,总流量为。假设用户选择的组合为z,则有:
(7)
基于标准月套餐和叠加套餐的推荐就是寻找一个组合z,使得P(LNEED(M+1))取得最小值。对比式(4)和(7),它们具有类似的结构,因此求解问题的方法也类似。
用户选择一个标准月套餐共有种选法。再选择一个或多个数据流量叠加套餐,但每档数据流量叠加套餐最多选择一个,选择的方法有种。那么所有的组合方法就有n2m种。在当前的资费标准下,n=6,m=7,则所有可能的套餐组合为768种。对于这种离散结构且计算量较大的问题,可以借助计算机求解。
3 基于标准月套餐和叠加套餐的推荐模
型的程序实现
3.1 数据结构设计
如图1所示,定义结构体struct GPRSPackage来表示一个标准月套餐和数据流量叠加套餐的组合。所有的可用组合以双向链表的形式连接起来[4-5],特别定义链表的Head节点(包含0MB价格为0元)和Tail节点(包含无限大的数据流量和无限高的价格)。
图1 一个套餐组合节点的数据结构
3.2 算法实现
算法第一步:产生所有适合向用户推荐的套餐组合
虽然根据上文的计算,在当前的资费标准下所有可能的套餐组合为768种,但并非这些组合都适合向用户推荐。例如,有组合A和组合B,A包含的总数据流量比B多,但总价格比B低,那么推荐A会比推荐B对用户来说更划算,这时B就需要剔除。另外,当满足2个前提:A.z_Total_P
(1)从Head到Tail方向各节点按照包含的总流量从小到大排序。
(2)对于链表中任意2个节点A和B,如果A.z_Total_Q
(3)对于A往Head方向的前一个节点C,有(A.z_Total_P-C.z_Total_P) ≤K*(A.z_Total_Q-C.z_Total_Q)。endprint
产生每种标准月套餐和数据流量叠加套餐的可能组合方式并以链表节点存储,这使用一个多重循环便可实现,最重要的是如何将节点插入到链表中正确的位置。如图2所示,对每个新产生的组合可通过6个步骤将其插入到链表合适的位置。
(1)从Head到Tail方向逐个区间扫描,确定left和right满足条件left. z_Total_Q
(2)new与right比较,如果new的价格不低于right,则舍弃new。结束。
(3)从left开始往Head方向搜索,标注所有满足包含流量比new少但价格比new高的节点,直到不满足该条件为止。back为包含流量比new少但价格比new低的流量最大的节点。
(4)将back-left段(不含back但含left)从链表中删除,推荐new比推荐这些节点更划算。
(5)new与back比较,如果不满足条件(new. z_Total_P-back. z_Total_P)≤K*(new. z_Total_Q-back. z_Total_Q),则舍弃new,将back与right重新链接。结束。
(6)如果满足条件(new. z_Total_P-back. z_Total_P)≤K*(new. z_Total_Q-back. z_Total_Q),则将back、new和right链接起来。结束。
算法第二步:生成推荐方案
由式(6)可得,推荐的每档套餐都对应一个流量的左边界值和右边界值。如图3所示,定义结构体类型struct GPRSRecomended来表示一个推荐方案。其中,Left_Q、Right_Q分别表示一个推荐方案的左边界值和右边界值。申请一个动态数组来存放推荐方案,遍历算法第一步生成的套餐组合链表,设置数组各元素的Package域。然后再从头扫描动态数组,分别设置各个推荐组合的左边界值和右边界值。
表3展示了当前资费标准下的标准月套餐和流量叠加套餐组合推荐方案的一部分。
显然,根据算法求解出来的推荐方案可能包含个数太多的套餐,要求用户接受这种推荐方案是不切实际的。一个折中的方案是:在套餐组合生成时,按照一定的阀值,将数目多于该阀值的套餐组合剔除,再进行推荐。取3组流量使用习惯相似的用户,分别进行2、3和4个套餐的推荐,发现推荐2个套餐时接受推荐的用户数占总推荐用户数的比例约为75.4%,推荐3个套餐时比例降到66.7%,推荐4个套餐时比例迅速降到29.2%。由此可见,就推荐效果而言,向用户推荐的套餐个数最好不超过3个。
4 总结
在2013年8月末基于标准月套餐和叠加套餐的推荐模型实施了大规模的套餐推荐。经统计,推荐效果明显,目标用户进行套餐升级基本符合推荐套餐,有效地减少了用户超数据流量使用的情况并减低该主题的万用户投诉率。
4.1 推荐效果分析
如表4所示,对比8、9月份的流量经营指标和投诉指标都得到了显著改善。产生套餐外流量和流量投诉的用户明显减少,升级月套餐和办理叠加包的用户明显增多。考虑到东莞移动巨大的用户数,指标每提升1个百分点都意味着上万到十万的用户受益。
表4 东莞移动数据套餐现状统计数据推荐效果分析
统计指标 8月 9月 指标改善
数据套餐投诉用户数/有效上网用户数 8.26% 5.36% 减少2.90%
产生套餐外流量用户数/有效上网用户数 11.70% 9.17% 减少2.53%
产生套餐外流量并投诉的用户数/产生套餐外流量用户数 26.28% 20.10% 减少6.18%
产生套餐外流量下月升级套餐的用户数/产生套餐外流量用户数 2.73% 8.06% 增多5.33%
办理了叠加包的用户数/有效上网用户数 12.39% 16.52% 增多4.13%
4.2 创新点
(1)定义了套餐数据流量使用饱和度,采用套餐数据流量使用饱和度来评估用户对数据流量的使用习惯,并提出了基于套餐数据流量使用饱和度的用户数据流量需求预测模型。
(2)基于用户数据流量需求预测模型,先设计了单个标准月套餐的推荐模型,再设计了基于标准月套餐和叠加套餐的推荐模型,该模型经计算机编程后可方便求解。
参考文献:
[1] 中国移动广东有限公司官网. 手机流量套餐资费标准[EB/OL]. (2014-02-01)[2014-05-10]. http://gd.10086.cn/commodity/options/detail/GPRS_FUNCTION_10.shtml.
[2] 网易科技. 专栏:应用流量包月将改变手机使用习惯[EB/OL]. (2013-04-24)[2014-05-10]. http://tech.163.com/13/0424/05/8T6VNC0D00094N0U.html.
[3] 费培之,程中瑗层. 数学模型实用教程[M]. 四川: 四川大学出版社, 1998.
[4] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京: 清华大学出版社, 2008.
[5] 谭浩强. C语言程序设计[M]. 2版. 北京: 清华大学出版社, 2002.endprint
产生每种标准月套餐和数据流量叠加套餐的可能组合方式并以链表节点存储,这使用一个多重循环便可实现,最重要的是如何将节点插入到链表中正确的位置。如图2所示,对每个新产生的组合可通过6个步骤将其插入到链表合适的位置。
(1)从Head到Tail方向逐个区间扫描,确定left和right满足条件left. z_Total_Q
(2)new与right比较,如果new的价格不低于right,则舍弃new。结束。
(3)从left开始往Head方向搜索,标注所有满足包含流量比new少但价格比new高的节点,直到不满足该条件为止。back为包含流量比new少但价格比new低的流量最大的节点。
(4)将back-left段(不含back但含left)从链表中删除,推荐new比推荐这些节点更划算。
(5)new与back比较,如果不满足条件(new. z_Total_P-back. z_Total_P)≤K*(new. z_Total_Q-back. z_Total_Q),则舍弃new,将back与right重新链接。结束。
(6)如果满足条件(new. z_Total_P-back. z_Total_P)≤K*(new. z_Total_Q-back. z_Total_Q),则将back、new和right链接起来。结束。
算法第二步:生成推荐方案
由式(6)可得,推荐的每档套餐都对应一个流量的左边界值和右边界值。如图3所示,定义结构体类型struct GPRSRecomended来表示一个推荐方案。其中,Left_Q、Right_Q分别表示一个推荐方案的左边界值和右边界值。申请一个动态数组来存放推荐方案,遍历算法第一步生成的套餐组合链表,设置数组各元素的Package域。然后再从头扫描动态数组,分别设置各个推荐组合的左边界值和右边界值。
表3展示了当前资费标准下的标准月套餐和流量叠加套餐组合推荐方案的一部分。
显然,根据算法求解出来的推荐方案可能包含个数太多的套餐,要求用户接受这种推荐方案是不切实际的。一个折中的方案是:在套餐组合生成时,按照一定的阀值,将数目多于该阀值的套餐组合剔除,再进行推荐。取3组流量使用习惯相似的用户,分别进行2、3和4个套餐的推荐,发现推荐2个套餐时接受推荐的用户数占总推荐用户数的比例约为75.4%,推荐3个套餐时比例降到66.7%,推荐4个套餐时比例迅速降到29.2%。由此可见,就推荐效果而言,向用户推荐的套餐个数最好不超过3个。
4 总结
在2013年8月末基于标准月套餐和叠加套餐的推荐模型实施了大规模的套餐推荐。经统计,推荐效果明显,目标用户进行套餐升级基本符合推荐套餐,有效地减少了用户超数据流量使用的情况并减低该主题的万用户投诉率。
4.1 推荐效果分析
如表4所示,对比8、9月份的流量经营指标和投诉指标都得到了显著改善。产生套餐外流量和流量投诉的用户明显减少,升级月套餐和办理叠加包的用户明显增多。考虑到东莞移动巨大的用户数,指标每提升1个百分点都意味着上万到十万的用户受益。
表4 东莞移动数据套餐现状统计数据推荐效果分析
统计指标 8月 9月 指标改善
数据套餐投诉用户数/有效上网用户数 8.26% 5.36% 减少2.90%
产生套餐外流量用户数/有效上网用户数 11.70% 9.17% 减少2.53%
产生套餐外流量并投诉的用户数/产生套餐外流量用户数 26.28% 20.10% 减少6.18%
产生套餐外流量下月升级套餐的用户数/产生套餐外流量用户数 2.73% 8.06% 增多5.33%
办理了叠加包的用户数/有效上网用户数 12.39% 16.52% 增多4.13%
4.2 创新点
(1)定义了套餐数据流量使用饱和度,采用套餐数据流量使用饱和度来评估用户对数据流量的使用习惯,并提出了基于套餐数据流量使用饱和度的用户数据流量需求预测模型。
(2)基于用户数据流量需求预测模型,先设计了单个标准月套餐的推荐模型,再设计了基于标准月套餐和叠加套餐的推荐模型,该模型经计算机编程后可方便求解。
参考文献:
[1] 中国移动广东有限公司官网. 手机流量套餐资费标准[EB/OL]. (2014-02-01)[2014-05-10]. http://gd.10086.cn/commodity/options/detail/GPRS_FUNCTION_10.shtml.
[2] 网易科技. 专栏:应用流量包月将改变手机使用习惯[EB/OL]. (2013-04-24)[2014-05-10]. http://tech.163.com/13/0424/05/8T6VNC0D00094N0U.html.
[3] 费培之,程中瑗层. 数学模型实用教程[M]. 四川: 四川大学出版社, 1998.
[4] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京: 清华大学出版社, 2008.
[5] 谭浩强. C语言程序设计[M]. 2版. 北京: 清华大学出版社, 2002.endprint
产生每种标准月套餐和数据流量叠加套餐的可能组合方式并以链表节点存储,这使用一个多重循环便可实现,最重要的是如何将节点插入到链表中正确的位置。如图2所示,对每个新产生的组合可通过6个步骤将其插入到链表合适的位置。
(1)从Head到Tail方向逐个区间扫描,确定left和right满足条件left. z_Total_Q
(2)new与right比较,如果new的价格不低于right,则舍弃new。结束。
(3)从left开始往Head方向搜索,标注所有满足包含流量比new少但价格比new高的节点,直到不满足该条件为止。back为包含流量比new少但价格比new低的流量最大的节点。
(4)将back-left段(不含back但含left)从链表中删除,推荐new比推荐这些节点更划算。
(5)new与back比较,如果不满足条件(new. z_Total_P-back. z_Total_P)≤K*(new. z_Total_Q-back. z_Total_Q),则舍弃new,将back与right重新链接。结束。
(6)如果满足条件(new. z_Total_P-back. z_Total_P)≤K*(new. z_Total_Q-back. z_Total_Q),则将back、new和right链接起来。结束。
算法第二步:生成推荐方案
由式(6)可得,推荐的每档套餐都对应一个流量的左边界值和右边界值。如图3所示,定义结构体类型struct GPRSRecomended来表示一个推荐方案。其中,Left_Q、Right_Q分别表示一个推荐方案的左边界值和右边界值。申请一个动态数组来存放推荐方案,遍历算法第一步生成的套餐组合链表,设置数组各元素的Package域。然后再从头扫描动态数组,分别设置各个推荐组合的左边界值和右边界值。
表3展示了当前资费标准下的标准月套餐和流量叠加套餐组合推荐方案的一部分。
显然,根据算法求解出来的推荐方案可能包含个数太多的套餐,要求用户接受这种推荐方案是不切实际的。一个折中的方案是:在套餐组合生成时,按照一定的阀值,将数目多于该阀值的套餐组合剔除,再进行推荐。取3组流量使用习惯相似的用户,分别进行2、3和4个套餐的推荐,发现推荐2个套餐时接受推荐的用户数占总推荐用户数的比例约为75.4%,推荐3个套餐时比例降到66.7%,推荐4个套餐时比例迅速降到29.2%。由此可见,就推荐效果而言,向用户推荐的套餐个数最好不超过3个。
4 总结
在2013年8月末基于标准月套餐和叠加套餐的推荐模型实施了大规模的套餐推荐。经统计,推荐效果明显,目标用户进行套餐升级基本符合推荐套餐,有效地减少了用户超数据流量使用的情况并减低该主题的万用户投诉率。
4.1 推荐效果分析
如表4所示,对比8、9月份的流量经营指标和投诉指标都得到了显著改善。产生套餐外流量和流量投诉的用户明显减少,升级月套餐和办理叠加包的用户明显增多。考虑到东莞移动巨大的用户数,指标每提升1个百分点都意味着上万到十万的用户受益。
表4 东莞移动数据套餐现状统计数据推荐效果分析
统计指标 8月 9月 指标改善
数据套餐投诉用户数/有效上网用户数 8.26% 5.36% 减少2.90%
产生套餐外流量用户数/有效上网用户数 11.70% 9.17% 减少2.53%
产生套餐外流量并投诉的用户数/产生套餐外流量用户数 26.28% 20.10% 减少6.18%
产生套餐外流量下月升级套餐的用户数/产生套餐外流量用户数 2.73% 8.06% 增多5.33%
办理了叠加包的用户数/有效上网用户数 12.39% 16.52% 增多4.13%
4.2 创新点
(1)定义了套餐数据流量使用饱和度,采用套餐数据流量使用饱和度来评估用户对数据流量的使用习惯,并提出了基于套餐数据流量使用饱和度的用户数据流量需求预测模型。
(2)基于用户数据流量需求预测模型,先设计了单个标准月套餐的推荐模型,再设计了基于标准月套餐和叠加套餐的推荐模型,该模型经计算机编程后可方便求解。
参考文献:
[1] 中国移动广东有限公司官网. 手机流量套餐资费标准[EB/OL]. (2014-02-01)[2014-05-10]. http://gd.10086.cn/commodity/options/detail/GPRS_FUNCTION_10.shtml.
[2] 网易科技. 专栏:应用流量包月将改变手机使用习惯[EB/OL]. (2013-04-24)[2014-05-10]. http://tech.163.com/13/0424/05/8T6VNC0D00094N0U.html.
[3] 费培之,程中瑗层. 数学模型实用教程[M]. 四川: 四川大学出版社, 1998.
[4] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京: 清华大学出版社, 2008.
[5] 谭浩强. C语言程序设计[M]. 2版. 北京: 清华大学出版社, 2002.endprint