会员中心
用户名:
密 码:
 
  忘记密码
数据通信
Hadoop云计算技术在垃圾短信过滤中的应用与实现
文章来源:本站原创  发布时间:2014-08-18  浏览次数:886
作者:孙大鹏
(辽宁省通信管理局 网络信息安全处110035)
摘 要:基于内容分析的垃圾短信过滤技术存在复杂度过高、易导致信息网络阻塞等不足。针对这一缺点,本文分析了基于内容过滤器所使用的云计算技术平台,发现其可以通过云计算的Hadoop开源实现方案中的MapReduce 编程模型来实现。
关键词:垃圾短信,云计算,Hadoop,MapReduce
1.引言
      调查显示,有85.7%的人接收过广告短信;有33.5%的人收到过色情内容短信,有45.8%的人接收到其它不同形式的垃圾短信。研制智能垃圾短信过滤的技术方案,为广大手机用户建立起一个可靠、准确、高效、智能的短信管制过滤平台,对手机短信实施有效的管制。不仅具有重要的社会价值,还具有巨大的商业价值。
2.现有的垃圾短信过滤技术
      从技术上可以为两种,一种是基于关键词的,只要短信中包括的敏感词汇超过一定数目就被认定为垃圾信息。一种是基于短信内容的过滤,基于内容的垃圾短信过滤是采用机器学习方法把短信自动分为正常短信和垃圾短信。目前用于短信自动分类的机器学习方法主要有朴素贝叶斯[1]、SVM[2]、KNN[3]、人工神经网络算法[4]等。
      目前比较可行的解决方案在在移动服务运营商一端来做信息过滤器,通过在短信转发的服务器内安装相应的过滤程序来实时地对短信进行过滤,还可以通过把短信的接收和转发放到两个服务上来完成,而两中间加装任意规模服务器集群来进行信息过滤, 在这种方式下可进信息可以实施多种过滤策略,加强过滤的准确度。
2.1 基于黑白名单过滤
      黑名单(Black List)和白名单(White List)分别是已知的垃圾短信发送者和信任的发送者的电话号码列表。“黑名单”的方法立足于排除,在黑名单的短信用户是被禁止发送任何短信。“白名单”的方法是包含,它主要用来确认合法的短信来源,减少黑名单排除失误的情况。具体实现中是在白名单中的短信用户发送短信不受限制,默认发出的短信均为正常短信。
2.2 基于规则过滤
      规则过滤技术主要是通过设定某种规则来判断当前短信发送号码是否为垃圾短信,一般来说主要有流量规则,回复率规则,发送成功率规则等。
2.3 基于关键词过滤
      基于关键词的过滤技术,是通过建立一个敏感的词汇库,然后通过在收到信息内搜索关键字并计数,如果数目超过系统设定的阀值,则就认为是垃圾短信。基于关键字过滤技术的重点在于构建一个好的词汇库,词库的质量好坏直接过滤的准确性。
2.4 基于内容过滤
      以上三种过滤方案都具有很大局限性,因此现在对垃圾过滤技术研究主要集中在基于内容的过滤技术。基于内容的过滤技术是指用机器学习的方法来自动对短信进行分类的过程。主要采用的技术有,基于朴素贝叶斯分类法、SVM、人工神经网络法等。
      此类方法都具有一个明显的学习过程,因此学习资料的好坏直接影响到后期分类的效果。同样由于知识库的存在,此类方法在时间复杂度和空间复杂方面相对比于简单的过滤方法要复杂的多。本文提出的基于云计算的过滤器实现方案就是在这方面进行努力的结果,使过滤器更具有实用性。
3.云计算技术
3.1 Hadoop云计算
      Hadoop 由 Apache Software Foundation 开源组织于 2005 年秋天作为 Lucene的子项目 Nutch 的一部分提出的一个分布式计算开源框架。它有两个核心技术组成为别为 MapReduce 和 HDFS 及后来加入的 HBase。如上文所说它们是基于Google 公司的相关技术,对 Google 公司的相关技术开源实现。其中 MapReduce的计算模型是借鉴于 Google 公司对此发表的一遍论文。HDFS 实现了 Google 的GFS,HBase 则对应于 Google 的 BigTable。
      虽然 Hadoop 只是一个对于云计算相关技术的一个开源实现,但是它本身还是具有很多优点的,这是为什么本文采用它作为实现短信过滤器的原因。它的优点如下所列:
构建成本低:这个要从软硬件两方面来说,在软件使用方面,由于其软件本身不仅开源的实现方案,部署目标平台 Linux 也是开源的,所以不存在软件授权费等方面的问题。在硬件方面,它没有对硬件环境提出任何限制,故应用普通的PC 机便可以根据实际需要组成相应的云计算平台。综合以上两点可以看出Hadoop 在成本方面是非常有优势的。
      可靠性:Hadoop 具有非常可靠的容错机制。因为在实现的时候它认为所有节点的节点都有可能会发生计算或者存储失败,它在节点群中维护了很多工作副本,所以一旦节点发生意外它能立即重新分布计算存储任务。
      Hadoop 还具有较强的可伸缩性,能非常容易增添计算存储资源,所以在计算规模上没有任何限制。
      Hadoop 采用原生 Java 技术来实现,这一点是非常重要的,现在 Java 的应用非常流行,开发技术相对成熟,而且开发人员相对较多,这使 Hadoop 不仅非常容易使用,而且还非常有利于其自身的发展。
3.2 MapReduce
3.2.1 MapReduce 理论基础
      MapReduce 从本质来说可以用一句话来概括[5],“任务切分和规约”,从其名称上就可以看出,它有两个动词“Map”和“Reduce”来分别控制切分和规约过程。从技术创新的角度来讲它并不算是什么创新技术,这种概念在以前的多进程及线程编程中就出现过,在哲学里系统往往被看成一个个小系统的组合,小系统也可以再继续划分,把放到编程的世界里,就一个计算任务可以被分若干份,一一解决换取整体任务的完成。
3.2.2 MapReduce 编程模型实现
      Hadoop 实现方案有两类服务器和客户机组成。下面用一个作业例子从整体上介绍一下 Hadoop MapReduce 的工作流程,一个作业从提交到完成可分以下几个步骤:
(1) 客户机初始化作业实例:
      首先客户机生成 JobConf 类的实例,对 Job 进行相关的配置工作,配置内容要有 Job 的名字,输入、输出文件信息,输入输出格式,Maper/Reducer 类信息及用户自定义的初始化信息。然后用 JobConf 实例创建 JobClent 类实例。
(2) 提交到作业服务器
      提交作业可采用两种方法,一种是调用结束后直接阻塞程序直至整个 Job 完全结束,第二种是通过返回一个 RunningJob 对象来获取整个过程执行情况。在客户机和 JobTracker 服务器之间遵循 JobSubmissionProtocol 协议。
(3) 作业服务器分配任务服务器,并等待任务服务器反馈
      在这个环节内,JobTracker 首先创建一系列的对象用来描述 Job,然后根据相应的优先级算法来分配任务“给”TaskTracker。这里给加引号的意思是任务不推出去的,而是 TaskTracker 主动拉过去的。在 JobTracker 和 TaskTracker 之间遵循InterTrackerProtocol 协议。
(4) 任务服务器完成各自任务产生 MapTaskTracker 根据获得来的 Task 描述信息来初始化 Maper 工作对象,然后执行工作。
(5) 作业服务器处理任务服务器反馈在得到 TaskTracker 的 Maper 任务结束信息之后,同样也需要按优先级分配TaskTracker 来分配 Reducer 任务。
(6) 作业服务器获取相应 Map 块以完成任务
      Reduce 任务从各个 Map 块所在的机器上获得相应的 Map 块,然后根据用户所编写的代码进行规约。

      三种服务通过各种协议相互联系,如图1所示:


图1 服务器之间相互通信图
4. 基于云计算的短信过滤器实现
4.1 方案总体分析设计

      短信分类器的设计有两部分:训练过滤部分和实时过滤部分的实现。如图2所示:


图2过滤器模型图
      可以看出分类器训练过程(虚线框标注)和分类过程(实线框标注)都是一个串行过程,站在宏观的角度来看分类器训练任务的话,可以把每一条训练数据的处理过程作为一个执行单元来看待,这样一来每个执行单元对一个条训练样本数据,它们之间便不再有前后执行顺序的制约了,同样在分类工作时也可以这样来分拆问题,有这样考虑也就为用 MapReduce 编程模型实现其算法提供了可能性。可以用图3来描述这种设计概念模型。

图3基于云计算的分类模型
4.2 分类器构建
      在云计算的技术环境下可以分四个步骤来完成分类器的训练工作:对样本进行分词以及去噪声处理;把样本存储样本到 HBase 中;基于 MapReduce 编程模型计算样本各个特征(分词)的概率;把运算结算整理存储到 HBase 中。流程如图4所示:

图4分类器训练示意图
4.3 短信分类过滤
      分类器在时做所的工作就是把输入的短信息与库中特征信息进行相互比对以此来决定输入的短信息是否为垃圾信息。具体的实现步骤如图5所示:

图5信息过滤流程图示
4.4 实验与分析
      实验过程的硬件环境:五台实验机器(PC 机),一台做 NameNode , master 和 jobTracker。另外四台做 DataNode、slave、taskTracker、HBase 服务器。具体配置信息如表1所示:
表1 实验环境中的硬件配置情况

      表中的 A 代表此机器做 NameNode、master 和 jobTracker;B 代表做DataNode、slave、taskTracker 、HBase 服务器使用。
      Hadoop、HBase 安装配置:
      安装好 Hadoop 后需要对相关配置文件进行配置才能使 Hadoop 能够运行起来。
(1) 导入 Java 环境:设置 conf/hadoop-env.sh(A 种机器和 B 种机器设置一样)
(2) 配置 conf/masters 和 conf/slaves 文件( 只在 A 种机器上配置 )配置信息如下:
      masters: 192.168.1.100
      slaves: 192.168.1.101、192.168.1.102
(3) 分别配置 conf/core-site.xml, conf/hdfs-site.xml 及conf/mapred-site.xml,因配置信息较长在此不再列出。
      采用四种计算环境进行实验,处理结果如表 2所示:
      方案 A:单机单线程(使用 A 类型机器),数据量为 2500 条
      方案 B:单机双线程(使用 A 类型机器),数据量为 2500 条
      方案 C:一台 A 类机器二台 B 类机器
      方案 D:一台 A 类机器四台 B 类机器
表2 实验结果数据

      可以发现在添加计算线程或者是新计算容量的情况下,系统的两个重要指标并没有发生变化。单机环境的加速比:1.061,云计算环境的加速比为:1.288。如果仅仅从加速比的角度来看,云计算环境并没有太大的优势。
5 总结
      本文把云计算在垃圾短信过滤应用作为主要的研究对象,针对各种算法在实现上的不足,提出了基于 Hadoop 云计算平台的短信过滤模型。对云计算的相关概念技术及其实现做了研究分析,主要对 Hadoop 云计算平台两个核心技术(MapReduce、HDFS)和 HBase 做了分析介绍,设计了适合在云计算环境中使用的算法实现模型。最后在 Hadoop 台上实现了相应设计,并做了相关实验,验证了设计。
参考文献
[1] D.D.Lewis.Naive(Bayes)at forty:The Independence Assumption in information Retrieval.Inproceedings of 10 European Conference on machine Learning,New York,1998.4~15
[2] T.Joachims.Text categorization with support vector machines:Learning With many RelevantFeature.In proceedings of 10 European Conference on machine Learning 1998 137~42
[3] 李荣陆,胡运发.基于密度的 KNN 文本分类器训练样本裁剪方法[J].计算机研究与发展,2004,41(4):539~545
[4] E.Wiener.A neural network approach to topic spotting.In Proceedings for the 4th AnnualSymposium on Document Analysis and Information Retrival(SDAIR),Las Vegas,nv,1995 12~13
[5] InfoQ.com.分布式计算开源框架 Hadoop 介绍 http://www.infoq.com/cn/artiles/hadoop-intro
网站首页 关于我们免责声明联系我们
版权所有:辽宁省通信学会  备案号:辽ICP备11005629
联系电话:024-22517766  地址:沈阳市沈河区北站路72号


网站建设:恒昊互联网络