一种基于海量数据的信息云系统及其关键技术研究
2012-06-27屠要峰钱煜明
屠要峰,钱煜明
(中兴通讯股份有限公司南京研发中心 南京 210012)
1 引言
互联网的迅速发展为当代信息传播提供了一条全新的途径,对传统的信息传播方式(报纸、电视等)产生了强大的冲击。尤其是Web2.0技术的出现和不断发展,使得互联网信息传播方式在时间、空间、效率方面渐渐确立了明显的优势地位。Web已经成为现代社会各种信息的载体,而且此载体的信息量是海量的,IDC(互联网数据中心)数据显示,如今全网数据已达 180万 PB(1P=250),而且 90%是非结构化的数据,2015年将达到800万PB[1],这些数据涉及新闻、招聘、广告、会议、技术信息、社交网络、论坛等各方面。
互联网在快捷、方便地传播海量信息的同时,也带来了相应的问题,如信息超载、信息不完整、信息形式不一致等。因此,通用的信息检索技术得到了迅速发展,如Google、百度,其采用关键词为基础,帮助用户获取相应的信息。搜索引擎只是部分缓解了信息检索的问题,并没有解决信息分析、信息处理的问题。同时,信息检索需要用户实时参与,对于信息的聚合、自动发现等不能实现自动化、智能化处理[2]。如何实现互联网海量数据自动采集、聚合、智能分析、自动推送等是业界主要的研究方向。如:苹果公司Siri智能机器人实现了根据用户需求进行智能分析和处理,但是并未实现信息的自动推送,仅应用在移动终端领域。RSS信息订阅解决了部分信息聚合的问题,但存在信息源缺乏、单一、信息源需要人工处理等问题。
目前,Web信息采集技术广泛应用在Web数据挖掘、搜索引擎、电子商务、页面有效性分析等领域,所应用到的领域不同,其信息采集技术也各有不同[2]。随着文本挖掘、情感分析、个性化推荐、云计算技术的发展,使得Web海量信息采集、智能分析等有了新的解决方案。本文提出了基于云计算技术构建海量数据的信息云系统,此系统采用信息自动聚合、智能分析、智能预测、自动推送技术完成整个信息处理的自动化和智能化,根据用户的标签自动挖掘出对用户有价值的信息并主动推送给用户。
2 智能信息云的架构及功能
如前面所述,智能信息云系统是为用户提供信息的自动聚合、智能分析、智能预测、自动推送结果给用户的系统,其主要通过采集互联网信息,并对信息进行聚合、分析,最终根据用户的需求完成个性化的信息推送和呈现,为用户或企业提供决策支持,使得散乱、公开的信息管理更加智能化、标准化、精细化和可视化。
2.1 智能信息云系统的核心服务
智能信息云系统是离线的非实时系统,其核心业务过程包含信息获取、信息训练和信息博弈3个部分。
(1)信息获取
信息获取主要是识别出用户输入的信息,并根据用户在本系统的历史行为,将用户输入信息转换为对信息源的订阅指令,系统根据获取的订阅指令自动到互联网上定向爬取相关的内容。
(2)信息训练
信息训练的过程就是对信息进行聚合和加工的过程,涉及数据净化、数据去重、主题发现等,经过系统处理后的数据基本是符合用户要求的结构化和可视化的数据,但是这些信息不一定能完全符合用户的期望,为了校正训练信息的期望度,系统自动监测用户对信息的使用行为,并根据用户的使用行为对信息进行回归处理。整个过程是一个自学习的过程,通过大量的数据构建自反馈的训练集,就能识别出用户关心的、期望度最高的信息。
(3)信息博弈
系统根据用户订阅策略会爬取海量的数据,希望将有价值的信息提供给用户,并不是将海量的信息充斥用户的屏幕,让用户自己再花大量的时间进行处理。系统需要提供多层次的信息过滤手段,信息与信息之间是需要博弈的,通过不停的训练,会对信息进行打分,将高价值的信息推送给相应的用户。
2.2 智能信息云系统的总体架构
智能信息云系统采用分层、分系统的设计思路和组件化的设计理念,总体架构如图1所示,智能信息云系统主要由信息分析引擎、智能处理引擎、人机交互3部分组成。
(1)信息分析引擎
信息分析引擎是本系统的主要功能子系统,提供数据采集、智能分析等功能,是本系统信息处理的工具箱,为智能处理引擎提供相应的分析能力,包含数据采集层、海量数据存储层、智能分析层。
其中,数据采集层完成从互联网采集非结构化数据。接入Web1.0静态的网络数据,如招聘网站、文档共享网站、新闻网站、论坛等;接入社交网络数据主要是微博、社交网等;接入企业内部的结构化数据,如用户数据等。数据采集层根据用户的订阅信息进行定向采集,并将采集到的数据上传到分布式文件系统。
智能分析层主要完成对采集的数据的处理、分析、挖掘等数据分析功能,包含数据加工、文本挖掘、社交网络分析、个性化推荐4个模块。智能分析层根据采集的数据以及用户的订阅需求对数据进行加工处理,完成数据到知识的处理过程。
(2)智能处理引擎
智能处理引擎提供语义分析、图分析、逻辑推理、专家知识库等功能,采用人工智能相关算法完成。根据用户输入的信息,结合专家知识库、用户画像库,完成对用户以及用户需要的信息的准确定位。
(3)人机交互
人机交互主要完成用户和信息之间的友好交互过程,本系统提供自动化的推送服务,对于一次订阅进行增量推送,只要存在用户感兴趣的信息即推送,推送方式支持邮件、微博、页面查询等方式。同时,对于企业用户,本系统提供统计报表、KPI分析、趋势预测等可视化功能,能很好地完成支撑企业对信息的掌控。
3 智能信息云的关键技术
3.1 网络爬虫
网络爬虫是一种按照一定规则,将分布在不同服务器和数据中心的网页爬取下来,存储在本地供本地程序使用。目前,主流的搜索引擎会采用网络爬虫的模式,扩展自己的网页库和索引库。网络爬虫的工作原理:从一个初始的种子URL集合出发,从中获取一个URL,下载网页,从此网页中抽取所有的URL,并将新的URL添加到URL集合中;然后,爬虫从URL集中获取另一个URL重复以上的过程,直到爬虫达到某种停止标准为止[3]。
网络爬虫的原理是如此简单,然而设计一个高性能的网络爬虫是一个挑战性的工作,一个高性能、可靠的网络爬虫需要考虑以下几方面。
(1)可伸缩性
随着互联网的发展,网页资源会成倍增长,网络爬虫要能适应海量数据的爬取,并且可以通过增加硬件资源使得爬取性能得以线性提高,并且对爬虫的程序是透明的。
(2)分布式
集中式单机架构已经不能满足当前互联网的规模,目前百度、Google等均采用了并行分布式的技术来解决目前海量数据的爬取问题。因此,支持分布式的爬行是当前网络爬虫首要解决的问题。
(3)可扩展
爬取的网页对象千差万别,尤其是随着移动互联网的发展,一些社交网站、微博等Web2.0网站的出现,需要新的爬取方法才可以获取网站内容,因此在设计网络爬虫时要考虑通用网页、垂直网站、特殊网站等多样性的问题。
(4)爬行策略
海量信息的爬取要有一定的爬取策略,需要考虑重新爬取策略、爬取调度策略、更新爬取策略、爬取平衡策略等,设计的网络爬虫要根据系统的需求和目标权衡选择相应的策略,要保证信息爬取成功以及爬取符合要求的信息。
本文根据系统需求对网络爬虫进行了个性化的设计,由调度控制器、通用网络爬取、社交网络爬虫3大子系统组成,整个系统基于云计算平台Hadoop完成,实现了分布式和并行化,如图2所示。其中,调度控制器由智能处理引擎调度,根据用户的订阅指令,调度相应的爬取策略等。社交网络是比较特殊的一类网站,其内容的爬取需要采用相应网站提供的API进行信息的获取。
3.2 智能处理引擎
智能处理引擎可以认为是本系统的大脑,它的功能如下:
·分析输入的用户请求;
·构建任务,并调度任务的执行;
·对输出结果反馈分析,发现用户隐含的分析条件,对任务进行修正;
·记住特定用户的搜索和分析习惯,提供个性化的默认分析。
智能处理引擎的基本工作模型如图3所示。
本系统的使用者为普通的用户而非专业技术人员,因此通过智能处理引擎实现了用户友好的自然语言接口,如一位HR招聘负责人提出:“帮我找出最近嵌入式开发人员的招聘情况。”首先是进行自然语言语义分析,找出本句话中的关键词,分别是“嵌入式开发人员”和“招聘”。在预先定义好的Web分类元数据中,招聘是一个key。“招聘”说明了数据来源,“嵌入式开发人员”说明了数据范围。之后,系统会下达3个任务:一个是给定向网络爬虫,爬取所有“招聘”网站包含“嵌入式”关键词的信息;一个给搜索引擎,在已获取的数据集内,搜索“招聘”和“嵌入式”关键词;另外一个是数据分析任务,待爬虫将相关数据爬取回来以后,将数据按照“嵌入式”以及“嵌入式”的同义词如embedded、Android、uclinux等进行过滤分析。得到列表向用户进行推送。用户访问系统获取到任务执行结果后,可以进一步反馈,如“按地理位置做统计”、“按公司做统计”等,结果会修正原有的统计任务,生成新的统计任务,并将这个关键词“地理位置”添加到使用者的画像库,用户使用这个偏好达到一定阈值后,用户提交类似的新任务时就会自动增加这一偏好统计。
信息结果的评分将从多个纬度对查询或数据分析的结果进行分析。
(1)单词相关性评分(S)
指维护一个词库以及根据之前大量的网页内容对词库进行分析,构建出一个单词关系网络。计算每两个单词在同一句话中出现的概率。根据关键词,查询出与该关键词相关的单词列表,并计算文本中是否存在各关联词。单词关联评分标准如图4所示。
(2)完全匹配度评分(V)
任务中的各个关键词,在文章中均有引用,则评分最高。
(3)噪声信息罚分 (E)
文章中如果大量出现与核心关联次无关的广告词等将被罚分。
每篇文章按照3种评分规则进行统一积分,并按积分多少进行排序。
除了文章本身的因素,还引入人为反馈机制,监控每位使用者阅读每个详情页的时间,来判断该信息的价值。来源网站价值=Σ(网页价值)。网站价值越高,则来源于该网站的网页价值也越高。
设u=噪音罚分权重,α=相关匹配度权重,β=完全匹配度权重,γ=来源网站价值,则信任度 f=α×Stotal+β×Vtotal-u×Etotal+γ× Mtotal。
3.3 文本挖掘
文本挖掘是指从大量文本数据中抽取事先未知的、可理解的、最终可用的知识过程,同时运用这些知识更好地组织信息以便用于决策参考。文本挖掘主要是处理大量非结构化、半机构化的文本数据,而传统的数据挖掘技术无法处理这些模糊、无固定形式、缺乏机器可理解的含义的文本数据。
文本挖掘有不同于传统数据挖掘的处理流程,其主要的处理过程是对大量文档集合的内容进行预处理、特征提取、分词、文本摘要、主题发现、文本聚类、文本分类等。图5给出了文本挖掘的一般处理过程[4]。
(1)文本预处理
目前,对文本挖掘的一般处理途径就是把非结构化的数据结构化,再利用现有的挖掘技术进行挖掘,而文本预处理就是把文本数据进行结构化的过程,包含的技术有中文分词、实体识别、词频统计、特征提取等技术。
·中文分词
中文分词是文本挖掘的基础,属于自然语言处理技术的范畴。目前,中文分词算法有:基于字符串匹配的分词方法、基于理解的分词方法、基于统计的分词方法[5]。在目前阶段基于字符串的匹配的机械式分词方法在业界被广泛使用,有 ICTCLAS、IK、Paoding等分词项目。
·实体识别
实体识别主要是识别出文本中的人名、地名等专有名称和有意义的时间、日期等数量短语并加以归类。实体识别技术是信息抽取、信息检索、机器翻译、问答系统等多种自然语言处理技术必不可少的组成部分。实体识别的主要技术方法有:基于规则和词典的方法、基于统计的方法、二者结合的方法等。本系统采用基于统计的方法,模型采用隐马尔科夫模型进行训练和识别。
·特征提取
特征提取是文本分类、文本聚类等文本式挖掘算法高效应用的前提,文本的高维特征向量对于文本挖掘算法未必全是重要、有意义的,因此特征提取就需要对文本的高维特征进行降维,一般采用的方法有文档频率法、信息增益法、互信息法、卡方校验法等方法。
(2)挖掘分析
文档转换为向量形式并经过特征选择以后,就可以进行挖掘分析了,一般的挖掘分析技术包含文本分类、文本聚类、文本摘要提取、文本关联分析和趋势预测等技术。
本系统在设计文本挖掘的功能中,对以下方面进行了重点考虑:分布式并行,基于云计算平台Hadoop;结合用户使用效果,对挖掘模型进行评价;对整个文本挖掘模块采用了可插拔的组件化设计思路,保证系统能方便地接入新的挖掘算法。
3.4 情感分析
文本情感分析是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程。按照处理文本的粒度情感分析分为词语级、短语级、句子级、篇章级或文章集合级;按照处理文本的类别分为基于新闻评论的情感分析和基于产品平台的情感分析[6]。
图6是本系统对评论进行情感分析的流程。
整个情感分析包含两个情感分析算法:基于Hownet算法的情感分析算法和基于PageRank算法的情感分析算法。
(1)基于Hownet算法的情感分析算法
基于Hownet算法的情感分析算法主要思想:假设有k对基准词,每对基准词包含一个褒义词和一个贬义词。褒义基准词表示为key_p,贬义基准词表示key_n,单词w的语义倾向值orientation(w)表示,以0作为默认阈值,最终倾向值大于阈值为褒义,小于阈值为贬义。orientation(w)数值大小代表用户对w的褒贬程度。单词w的褒贬程度定义计算式为:
最后根据计算后的褒贬程度和阈值进行比较,得到词汇的极性判断。
(2)基于PageRank算法的情感分析算法
基于PageRank算法的情感分析算法的主要思想:定义图G=
3.5 个性化推荐
个性化推荐是根据用户的兴趣特点、行为向用户推荐用户感兴趣的信息或产品。个性化推荐解决的问题就是如何在海量信息中发现用户感兴趣的信息。其形式化的描述为:假设U是系统中所有用户(user)的集合,I是系统中所有可以推荐给用户的对象(item)的集合,如电影、书籍、视频等。在实际的应用之中,U和I的规模通常都很大,如电子商务网站Amazon之中的图书多达200万本。定义f(u,i)为衡量某推荐对象i对于目标用户u的效用大小的函数。则个性化推荐系统要解决的问题就是在对象集合I中找到对任意一目标用户u效用最大的对象 i,即:
为了实现个性化推荐的目的,如何选取合适的推荐算法来设计效用函数f是推荐系统的核心问题。
常用的推荐算法一般被分为以下3种类别:基于内容的推荐(content based)、协同过滤推荐(collaborative filtering)和组合推荐。基于内容的推荐是以项的基本特征和对用户兴趣的描述作为推荐的基础,通过一种比较项之间相似性的方法来给用户做推荐[4]。协同过滤推荐,主要是依据这样一个前提假设:有着相似历史记录的用户,可以认为他们有着相似的爱好,从而可以把与目标用户相似的用户喜爱的项推荐给目标用户[3]。而组合推荐框架是为了综合以上两种方法的优点。
本系统采用的个性化推荐采用组合推荐的方式实现的,同时结合文本挖掘的结果,作为推荐公式的因子。
4 智能信息云的应用场景
本文从以下3个方面来分析智能信息云的应用特点,应用并不局限以下3个场景。
(1)政府部门
随着信息网络技术的快速发展,Web2.0时代和媒体社会来临了,借助互联网得以反映和体现的舆情也越来越丰富,借助本系统对互联网海量信息自动爬取、自动分类聚类、主题检测、专题聚焦、话题发现追踪、倾向性分析,实现对网络舆情的感知、舆情态势分析、舆情关联主题发现和分析等,形成简报、报告、图表等各种可视化结果,为客户全面掌握群众思想动态,做出正确舆论引导,提供分析依据。
(2)企业
对于企业来说,情报已经成为继资金、技术、人才之后的第4种生产要素,在这个充满竞争和挑战的时代,谁拥有了充分的、准确的情报,谁就能够在决策中立于不败之地。据可靠统计,互联网上公开的信息占据了行业信息的90%以上,如何利用好这些信息,也是企业亟需解决的问题。本系统能有效地提升企业的竞情能力,帮助企业采集、分析其所需要的信息。如可以在第一时间收集并自动反馈微博上对该企业产品的批评或负面评价等信息,能够帮助企业完成业界新产品发布的统计分析等。
(3)个人用户
目前个人用户在互联网上寻找自己感兴趣的信息,一般都是采用关键字的搜索方式获取,但是这种方式对个人用户有以下要求:很准确地用关键词描述出自己想要的信息;对于搜索引擎返回的大量、繁琐的信息网站进行查看、分析、过滤等;必须要自己手工触发搜索引擎。本系统可以只需要用户采用自然语言的方式就可以自动获取其关注的高价值信息,并可以实时地邮件或者短信推送信息,达到一次订阅多次使用的效果。如用户关注招聘信息,本系统会实时推送互联网上符合用户期望条件的最新招聘信息。
5 结束语
随着计算机技术和互联网的快速发展,个人和企业都陷入了浩瀚的信息海洋,如何从海量的数据中挖掘出有价值的信息,一直是业界亟需解决的难题。本文提出了一种基于云计算技术构建海量数据的信息云系统方法,并对所采用的关键技术进行了阐述,本系统在人工智能和文本挖掘等技术知识基础上,创新性地提出了文本挖掘与自然语言、逻辑推理相结合的方法实现信息的智能处理,并利用现有通信技术完成用户个性化的信息推送。本系统可以扩展应用到个人、企业、政府机构等多种场景进行信息分析和决策支持。
1 社交网络对大数据的解构.http://www.ciotimes.com/infrastructure/sjk/62379.html
2 何恒昌.Web挖掘中信息采集技术研究与实现.北京物资学院硕士学位毕业论文,2010
3 刘金红,陆余良.主题网络爬虫研究综述.计算机应用研究,2007,24(10):26~29
4 袁金鹏,朱东华,李毅等.文本挖掘技术研究进展.计算机应用研究,2006,23(2):1~4
5 许高建,胡学钢,王庆人.文本挖掘中的中文分词算法研究及实现.计算机技术与发展,2007,17(12):122~124