先看一张图。
  
  
  这张图反映的是浙江移动号码进行点对点群发的情况。从图中可以看出:从2007年10月开始浙江的点对点群发量迅速下降,至今一直保持在较低水平。
  浙江移动所用的办法就是:号码离散度分析法。
  
  (一)分析原理
  一项技术要被用来打击点对点群发,须满足以下要求:
  1、准确:必须能够准确地将群发号码揪出来,不会误伤正常用户。
  2、高效:以浙江为例,每月短信次数超过50亿,这要求处理程序必须非常高效,否则可能影响计费系统正常运行。一般来说,唯有简单,才能高效。
  3、及时:必须及时发现群发号码,太晚发现就没有意义了。
  
  号码离散度分析法就是一种能够满足以上要求的技术。
  号码离散度分析法基于以下两个基本常识:
  1、一个人的交往圈总是有限的。
  2、一个正常用户基本上都要打电话。
  
  所以若一个号码在短时间内向过多对象发送短信,却不通话,那么这个号码基本上就是群发号码。这就是号码离散度分析法的基本原理。
  
  (二)分析过程
  显然,短信群发监控最好能够做到实时。但这往往是没有真正接触过计费系统的人的幻想,因为这样做的代价实在过于高昂。从这些年的分析经验来看,实时监控并无必要性,只要能做到按天监控,基本上就能达到99%的控制效果。
  号码离散度分析法具体过程如下:
  1、找到嫌疑号码
  每天凌晨,分析程序自动扫描前一天的短信话单表,找出交往圈超过门限值(比如300)的号码,插入嫌疑号码表中。
  完成这个操作核心的语句只有一条SQL,示意如下:
  SELECT 手机号码, COUNT(DISTINCT 对端号码)  对端个数,COUNT(1) 群发次数
    FROM  CDR_SMS_XX_XX
    WHERE  短信类型 = ‘点对点’
    GROUP BY 手机号码
    HAVING COUNT(DISTINCT 对端号码)>=300;
  
  从浙江这边情况下,在每天1.8亿短信话单情况下,串行执行时间大概两个小时左右。若分地区并行执行,那么30分钟能够搞定。由于该程序在凌晨执行,与计费处理的高峰是错开的,所以并不会显著增加计费系统的系统开销。
  除该步骤外,后续步骤都不需要接触话单表,都是回绕找出的少量嫌疑号码来进行分析和处理,保证了整个分析法的性能。
  
  2、排除正常号码
  第一个步骤找出的嫌疑号码中可能存在正常的号码,特别是在节假日的时候,所以需要依据一些其他信息进行正常号码的排除。
  当然,也可以采取不进一步排除,或仅作白名单号码排除,但在节假日期间暂停后续处理的方法。不过我个人建议还是采取排除的办法,因为这么做维护工作量较小。
  一个比较好的排除办法是:判断这个号码上月以及本月是否有通话。该判断依据的是现成的汇总结果,可以很迅速地完成排除工作,而且该方法可以排除节假日误伤正常号码的可能,更具通用性。
  考虑到群发商获悉该方法后,可能采取应对措施,比如拿着每个号码先打几个电话。所以该方法实际应用时也要进行监控和调节。当发现被排除的号码量上升时,要检查是否群发商在应对。若发现群发商在搞鬼,可以修改相应条件,比如将有无通话改成通话量在一定分钟数以上。
  考虑到目前个别企业向员工发短信时也在用群发机,所以各省短期内可以采取白名单的办法来对这些号码进行过滤。不过对于这种情况,应该引导企业采用相关的集团产品。
  白名单的管理一定要严格,否则很容易演化成“只许州官放火,不许百姓点灯”。而且白名单也很容易变成内外勾结、权力寻租的工具,不可不慎。我建议将加入白名单的号码最多设置三个月的有效期,三个月重新审批。对白名单中号码用于群发并引发投诉的,追究相关人员的责任。
  
  3、取消短信功能或做管理停机
  对于确认是群发的号码,取消短信功能是一种比较温和的办法。该方法存在一定问题,因为群发商可以凭借电子渠道自己再次将短信功能开出来,所以比较彻底的办法是做管理停机,这样可以防止群发商自行操控号码。
  考虑到无论什么样的方法都不可能尽善尽美,存在误伤的可能,所以对这些号码的处理一定要通过短信通知到这些号码。并且这些号码被叛成群发号码的信息应该融入各个客户接触点,以便无论哪里都能解释。对于有争议的情况,建议在客服设定专席进行处理。
  
  (三)应用效果
  从2004年开始,我就用该方法分析短信、彩信群发行为,结果也多次展现在相关分析报告中。不过该方法正式跟停机关联起来,真正用到对垃圾短信的打击上,还是在2007年下半年。从开头的那张图可以看出,效果还是很显著的:与高峰期相比,垃圾短信减少了98%。
  当然该效果的取得并非全部归功于该办法,短信资费的梳理和整治也是重要一环,这个从源头上减少了可用于群发的号码。
  
  (四)推广建议
  号码离散度分析法是一个极度简单的分析方法,关键代码就一条SQL,而核心代码全部加起来也就200来行左右,所以毫无门槛,极易推广。
  这些年,虽然浙江移动自己号码发送的垃圾短信数量大大减少了,但是浙江用户收到的垃圾短信还是没有减少。问题的关键在于外省移动、其他运营商并没有一起采取相应措施。
  垃圾短信的治理是个系统工程。短信群发治理若不能做到全国步伐一致,那么就会出现按下葫芦浮起瓢的问题。若这个时候对短信、彩信业务量相关的指标进行考核,这对于浙江这样的省份极不公平,必将沉重打击各省治理垃圾短信的积极性。
  所以我的建议有两点:
  1、在全国推广号码离散度分析法。
  2、全国上下一律取消所有与短信、彩信业务量相关的考核指标及通报指标。

====================================================================
    对于垃圾短信治理系列,初步准备写八篇博文:
    1、垃圾短信治理的总体思路:上篇

2、网内点对点群发治理:本篇
    3、网间点对点群发治理:计划
    4、号码集中度分析法在打击端口群发中的应用:计划
    5、第三方群发及对冲不均衡分析:计划
    6、黑网关群发现象及应对建议:计划
    7、资费套餐、渠道酬金等对群发的影响:计划
    8、手机广告的商业模式:计划

**********************************************************************

附录:下面是我实际在用的查找点对点群发嫌疑号码的PL/SQL代码

/* ============================================================ *
   GET_P2P_WN: 网内点对点群发分析
 * ============================================================ */
PROCEDURE GET_P2P_WN(p_开始日期 CHAR,p_结束日期 CHAR DEFAULT NULL) IS
  v_开始日期     DATE;
  v_结束日期     DATE;
  v_日期         CHAR(8);
  v_天数         INTEGER;
  v_表名         VARCHAR2(30);
  v_sms          VARCHAR2(2000);
  v_mms          VARCHAR2(2000);
  v_SQL          VARCHAR2(2000);
  v_num          INTEGER;
BEGIN
  v_开始日期 := TO_DATE(p_开始日期,'YYYYMMDD');
  IF p_结束日期 IS NULL THEN
    v_结束日期 := v_开始日期;
  ELSE
    v_结束日期 := TO_DATE(p_结束日期,'YYYYMMDD');
  END IF;
  v_天数 := TRUNC(v_结束日期 - v_开始日期) + 1;

v_sms := '
    INSERT INTO DM_JH_P2P_WN
      SELECT ''#月份'',''#日期'' 日期, ''短信'',''#地区代码'' 地区代码,
             USER_NUMBER 手机号码,MAX(TRADEMARK) 品牌类型,
             COUNT(DISTINCT OPP_NUMBER) 群发对象数,
             COUNT(*) 群发次数,SUM(CHARGE1)/1000 通信费,COUNT(*),NULL 备注
      FROM JF.#表名@DBLINK
      WHERE CALL_TYPE = 0 and moc_bill_type like ''0000%''
      GROUP BY USER_NUMBER
      HAVING COUNT(DISTINCT OPP_NUMBER)>=100 ';

v_mms := '
    INSERT INTO DM_JH_P2P_WN
      SELECT ''#月份'',''#日期'' 日期,''彩信'', HPLMN2 地区代码,
             USER_NUMBER 手机号码,MAX(TRADEMARK) 品牌类型,
             COUNT(DISTINCT RECEIVE_ADDRESS) 群发对象数,
             COUNT(*) 群发次数,SUM(CHARGE1)/1000 通信费,
             SUM(DECODE(SEND_STATUS,1,1,0)) 成功次数,NULL 备注
      FROM JF.DR_MMS_L_#日期@DBLINK
      WHERE MM_TYPE=0 AND APP_TYPE=0
      GROUP BY HPLMN2,USER_NUMBER
      HAVING COUNT(DISTINCT RECEIVE_ADDRESS)>=100 ';

FOR v_day IN 1..v_天数 LOOP
    v_日期 := TO_CHAR(v_开始日期 +v_day-1,'YYYYMMDD');

-- 短信群发汇总
    DELETE DM_JH_P2P_WN WHERE 日期 = v_日期 AND 备注='短信';
    FOR rec IN (SELECT * FROM ETL_CFG_REG) LOOP   
      SELECT 'DR_SMS_'||地区名缩写||'_'||v_日期 INTO v_表名 FROM DIM_PUB_REG WHERE 地区代码 = rec.地区代码;
      v_SQL := REPLACE(v_sms,'#表名',v_表名);
      v_SQL := REPLACE(v_SQL,'#日期',v_日期);
      v_SQL := REPLACE(v_SQL,'#月份',SUBSTRB(v_日期,1,6));
      v_SQL := REPLACE(v_SQL,'#地区代码',rec.地区代码);
      v_SQL := REPLACE(v_SQL,'@DBLINK',rec.计费库);
      EXECUTE IMMEDIATE v_SQL;
      COMMIT;
    END LOOP;

-- 彩信群发汇总
    DELETE DM_JH_P2P_WN WHERE 日期 = v_日期 AND 备注='彩信';
    v_SQL := REPLACE(v_mms,'#日期',v_日期);
    v_SQL := REPLACE(v_SQL,'#月份',SUBSTRB(v_日期,1,6));
    EXECUTE IMMEDIATE REPLACE(v_SQL,'@DBLINK','@boss_jf1');
    EXECUTE IMMEDIATE REPLACE(v_SQL,'@DBLINK','@boss_jf2');
    COMMIT;

PUB_LOG.LOG_MSG('完成网内点对点群发统计:'||v_日期);
  END LOOP;
END GET_P2P_WN;

-- 嫌疑号码表
CREATE TABLE  DM_JH_P2P_WN(
  月份                  CHAR(6)         NOT NULL,
  日期                  CHAR(8)         ,
  业务类型              VARCHAR2(10)    ,
  地区代码              CHAR(3)         ,
  手机号码              NUMBER(15,0)    ,
  品牌类型              NUMBER(2,0)     ,
  群发对象数            NUMBER(8,0)     ,
  群发次数              NUMBER(8,0)     ,
  计费通信费            NUMBER(8,2)     ,
  成功次数              NUMBER(8,0)     ,
  备注                  VARCHAR2(20)   
  )

号码离散度分析法在打击点对点群发中的应用相关推荐

  1. 软件测试除了边界值还有什么,在软件测试中,假定 X 为整数,10≤X≤100,用边界值分析法,那么 X 在测试 中应该取( )边界值...

    北方猎人(cnitpm.com) 10:58:42 在软件测试中,假定 X 为整数,10≤X≤100,用边界值分析法,那么 X 在测试 中应该取( )边界值. A.X=9,X=10,X=100,X=1 ...

  2. 集对分析 预测matlab,MATLAB熵权集对分析法在新乡市地下水水质评价中的应用

    MATLAB熵权集对分析法在新乡市地下水水质评价中的应 用 □徐争1 张颢文2 [摘要]文章针对地下水水质综合评价中水质分级标准与评价指标之间的不确定性,将集对分析理论应用于地下水水质的综合评价中.首 ...

  3. ahp层次分析法软件_层次分析法在历史街区研究中的应用简析

    摘要 AHP (Analytic Hierarchy Process)层次分析法通常被运用于解决多目标.多标准.多要素.多层次的非结构化的复杂决策性问题,特别是战略决策性问题,在建筑.规划.风景园林等 ...

  4. matlab计算层次法的权重,层次分析法计算权重在matlab中的实现

    信息系统分析与设计作业 层次分析法确定绩效评价权重在matlab中的实现 小组成员:孙高茹.王靖.李春梅.郭荣 1 程序简要概述 编写程序一步实现评价指标特征值lam.特征向量w以及一致性比率CR的求 ...

  5. ahp层次分析法_层次分析法在历史街区研究中的应用简析

    摘要 AHP (Analytic Hierarchy Process)层次分析法通常被运用于解决多目标.多标准.多要素.多层次的非结构化的复杂决策性问题,特别是战略决策性问题,在建筑.规划.风景园林等 ...

  6. proe输入数字时成双出现_职场数据控系列,超市基础篇,商品双ABC分析法及应用...

    在上一篇文章中介绍了:商品ABC分析法,本篇文章中就对商品ABC分析后的又一拓展应用:双ABC分析及应用做基础介绍:请超市行业的同行朋友们指正,觉得有帮助的,恳请关注收藏,油条小编将持续更新零售超市相 ...

  7. 成本、利润分析法在企业管理中的应用

    1 .成本.利润分析法的主要内容 成本.利润分析法主要是指,利用数学模型,对关于企业成本.利润的要素分析,然后计算出要素的改变对企业成本.利润的影响,进而对企业决策提出建议的一种方法.在成本.利润分析 ...

  8. 数据结构—— 构造散列函数的六种方法【直接定址法-数字分析法-平方取中法-折叠法-除留余数法-随机数法】

    目录: 一:直接定址法 二:数字分析法 三:平方取中法 四:折叠法 五:除留余数法 六:随机数法 这些方法原理都是将原来数字按某种规律变成另一个数字 一:直接定址法 取关键字的某个线性函数值作为散列地 ...

  9. 层析分析法(AHP)

    层析分析法(AHP) 建模比赛中最基础的建模之一,其主要运用与解决评价类问题(例如选择哪种方案最好.运用那位员工表现最优秀等等) 1.模型介绍 指标选择 实例演示 高考报考时小明纠结于是选择华中科技大 ...

最新文章

  1. Bioinformatics: Assembling Genomes (week 1-2)
  2. 线性表的链式表示——循环链表
  3. flask 注册路由和蓝图
  4. XAML Namespace http://schemas.microsoft.com/expression/blend/2008 is not resolved
  5. 网易云信携手海信S7,新社交开拓电视领域新未来
  6. zemax验证高斯公式_ZEMAX 实验讲义
  7. 竹间智能B轮3000万美元融资,打造业内领先的对话机器人及多模态情感计算平台...
  8. java中如何获得方法中的参数名
  9. c语言5.9.2字符型变量,C语言教程[5-2][转载]
  10. 亿图图示最新po解直装版(附教程)
  11. http-server 简介
  12. 朋友圈刷屏了,Clubhouse为什么这么火?
  13. linux登录提示文件 motd 有趣的motd
  14. Android 腾讯地图 选点定位,仿微信发送位置
  15. Invalid property 'driver_class' of bean class
  16. python libusb_libusb介绍和使用示例
  17. 使用高德API接口查询两个地址之间的距离
  18. 解决浏览器突然上不了网的问题
  19. Qt事例: QScrollArea滚动区域
  20. 【有利可图网】PS实战教程35:用PS快速抠透明的水花

热门文章

  1. 教师资格证面试计算机教案模板,小学信息技术教师资格证面试教案模板:《漂亮的剪贴画》...
  2. 2.14浪漫情人节求婚表白PPT
  3. 百度统计出现不属于自己网站的域名搜索词及数据怎么处理
  4. Kithings如何选择Wi-Fi物联网芯片(第一篇)
  5. 坎坷的2018,2019王者荣耀要借电竞还魂?
  6. 修复Windows 7 Aero特效无法显示
  7. 寒假“最小生成树”题解
  8. 人工智能和大数据技术,在内容安全领域,主要的应用场景是什么?
  9. RS232 RS485 TO ETH TCP-Modbus 测试
  10. java spring 使用GuideController实现信息的多步采集