重磅干货丨互联网数据挖掘导论

本文说的主题是关于「数据挖掘」,以下为内容大纲,让大家对互联网搜索与挖掘有一个宏观的了解,即知道要做什么和怎么做。注:本文的框架来源于北京大学万小军开设的互联网数据挖掘 Web Data Mining 课程,笔者对内容进行了筛选和编排,用来作为『不周山之数据挖掘』系列的导论部分。

任务目标

  • 了解搜索和自然语言处理的基本知识
  • 熟悉数据挖掘的流程与各个步骤所用的技术
  • 对数据挖掘的应用场景有基本的认识

写在前面

随着互联网的日益蓬勃发展,如何从广袤的信息海洋中提取出有价值的信息、模式和关系,逐渐成为了一门新的领域 —— 数据挖掘。作为一门交叉学科,数据挖掘融合了信息检索、互联网、数据库、机器学习、自然语言处理等不同的学科,用多样技术完成具体的数据挖掘应用。常见的应用有:垂直搜索、推荐系统、智能问答、机器翻译、舆情监测、情报收集等等,可谓是深入到了我们日常生活的方方面面。

接下来我们会从基础技术说起,从以下三个方面来了解数据挖掘:

  • 搜索技术
  • 数据挖掘技术
  • 具体应用

搜索

搜索其实是一个很大的主题,但是核心问题其实并不复杂,一是如何去表示文档,二是在这样的基础上如何去检索文档。具体的评价标准是『效果』和『效率』。效果指的是如何准确匹配查询与文档,一般来说会基于检索模型进行。效率值得是如何快速返回检索结果,一般来说是基于索引进行的。

文档表示

文档表示一般有两种方法:手动或自动

手动方法,主要依靠人工标注,结果比较可靠,而且标注的词汇是预先设定好的关键词,检索起来效率比较高。但是人工标注无论是时间成本还是人力成本都较高,一般来说难以大批量使用。这类人工标注的信息一般称为文档的元描述(Meta-descriptions),除了包含域信息(author, title, date)外,还回包含关键词和分类。

自动方法,最有代表性的是词袋(Bag of Words)技术,即使用文档中出现的词的集合来表示一篇文档。但是这种方法也有很多不足之处,因为是词语的无序集合,句法信息首先已经丢失了,另外针对不同的语言会有不同的难点。

对于中文来说,如何进行分词(即把句子分成词)就是一个很大的难点,尤其是层出不穷的网络热梗,如何保证准确和实时就是非常大的挑战。对于英文来说,虽然没有分词的问题,但是大小写、单复数、时态、词根等等同样让人头疼。这也导致了大部分搜索引擎都不会考虑词根问题,一是因为文档太多,进行二次处理得不偿失,二是因为对于搜索结果来说影响没有那么大,自然就没有太大的动力去做。

但是无论是中文还是英文,有一个操作是一定会做的,就是去掉停用词(Stop Words),也就是去掉那些不具有内容信息的词,比如对于中文来说『的地得』,对于英文来说的『a, an, the』。但需要注意的是这样一个简单的操作虽然可以大幅减少索引的大小,缩短检索时间,但实际上不能提高检索效果,具体挺用词表的确定也需要根据不同的文档集合和应用具体对待,没有一个一概而论的方案。

文档索引

表示了文档之后,我们需要对其进行索引,不然每次检索如果需要用户等太久,体验就很糟糕了。而具体到用什么进行检索,最终人们选择了用词而不是短语来作为索引,这里一个比较有代表性的工具就是 Lucene,现在互联网上广为应用的 Elasticsearch 和 Solr 都是基于 Lucene 的。

Lucene 最重要的技术就是倒排索引(inverted index),可看做链表数组,每个链表的表头包含关键词,其后序单元则包括所有包括这个关键词的文档标号,以及一些其他信息,如该词的频率和位置等。这里关键词查询一般采用 B-Tree 或哈希表,文档列表组织一般采用二叉搜索树。

文档检索

文档检索的思路也很简单:如果一篇文档与一个查询相似,那么该文档与查询相关。相似性一般根据字符串匹配来判定,比方说相似的词汇或相同的语义。

最初人们常用的是基于布尔代数的匹配,虽然比较简单,但是对查询的要求很高;并且匹配标准过于严格,容易导致过少或过多的检索结果。尽管布尔模型不再用作主流文档检索模型,但其思想常用于实现高级(综合)检索功能。

现在最常用的是向量空间模型(Vector Space Model),其思路是文档与查询都是高维空间中的一个向量,用户自由输入文本也是一个向量,利用向量空间的相似性进行查询。具体的相似性同样可以用两种方法来确定:内积或者夹角。因为是空间,所以度量距离的时候会采用不同的描述距离的方式,有 Minkowski metric, Euclidian distance, Jacquard measure 和 Dice’s coefficient 等等。

同一篇文档中不同词语其实也会有不同的权重,这里我们比较常用的是 TF-IDF 算法,其中 TF 表示词语出现的频率,而 IDF 则能区别不同词语的重要性。

文档收集

前面介绍了文档检索的各种概念,但是现在问题来了,文档从哪里来呢?这就要提到我们最常听见的爬虫(Web Crawler)了,它能够快速有效地收集尽可能多的有用 Web 页面,包括页面之间的链接结构。

随着 Web 2.0 的兴起,脚本语言生成的动态内容和各类多媒体内容给爬虫增加了许多难度,但基本的页面爬取策略没有太大的改变,一般以以广度优先为主,深度优先为辅, 需要具体的特性主要有:

  • 健壮 Robustness, 避免进入死循环
  • 友好 Politeness, 遵守服务器的采集协议
  • 分布式 Distributed, 多台机器分布式采集
  • 可扩展 Scalable, 爬虫架构方便扩展
  • 性能与效率,有效利用系统资源
  • 质量 Quality, 倾向于采集有用的页面
  • 新颖 Freshness, 获取网页的最新版本
  • 可扩充 Extensible, 能够处理新数据类型、新的采集协议等

链接分析

除了页面的内容本身,超链接其实也能提供非常多有价值的信息。一条从页面 A 指向页面 B 的链接表明 A 与 B 相关且 A 推荐/引用/投票/赞成 B。Google 当年最重要的 PageRank 算法,其实就是这个问题的最初且最成功的解决方案。

这里有一个很有趣的现象叫做排序沉入(Rank Sink),页面 A 引用了页面 B,页面 B 也引用了页面 A,就形成了一个闭环,不再向外传播分数了。这是我们在实际运用中需要避免的情况。

数据挖掘

数据挖掘根据应用的不同,分为不同的子领域,这些子领域又和机器学习、概率统计、模式识别等有着千丝万缕的关系。接下来先介绍基本概念,然后聊聊一些常见的应用。

主要任务

数据挖掘的任务主要包括两类,一类是基于一些变量预测其他变量的未知值或未来值,称为预测型任务,常用的技术是分类(Classification),回归(Regression)和偏差分析(Deviation Detection)。另一类是发现描述数据的人们可解释的模式,称为描述型任务,常用的技术是聚类(Clustering),关联规则挖掘(Association Rule Discovery)和摘要(Summarization)。

为了完成上述任务,整个数据挖掘的流程为:获取数据 -> 选择数据 -> 预处理数据 -> 数据规整 -> 数据挖掘 -> 模式识别。不同阶段会使用不同的技术,但一定要把整个流程走通,数据挖掘才有意义。

随着数据量的增大,如何让数据挖掘更加容易拓展效率更高,如何去挖掘有上下文关系的数据,如何从复杂、异构、网络化数据中挖掘复杂知识,如何挖掘低质量数据,如何保证安全性和隐私,都是未来数据挖掘需要努力的方向。

常用工具

开源的工具有:

  • Weka
  • GATE
  • Carrot2
  • NLTK
  • Orange
  • RapidMiner
  • KNIME

商用的应用主要有:

  • IBM InfoSphere Warehouse
  • Microsoft Analysis Services
  • SAS Enterprise Miner
  • STATISTICA Data Miner
  • Oracle Data Mining

自然语言处理

自然语言处理是人工智能和语言学领域的分支学科指的是利用计算机对人类特有的书面形式和口头形式的自然语言进行各种类型处理和加工的技术。其中最关键的任务有:自动分词、命名实体识别、词性标注、句法分析、语义分析和篇章分析。主要应用在:机器翻译、文本分类、情感分析、信息检索与过滤、自动问答、信息抽取、自动文摘和人机对话等领域。

推荐教材:

  • Foundations of Statistical Natrual Language Processing
  • Speech and Language Processing

统计自然语言处理

这里主要以汉语为例子说说分词。一般认为词是最小的、能够独立运用的、有意义的语言单位。但是汉语分词有许多挑战,比如:

  • 词和词组的边界模糊
  • 新词(未登陆词)
  • 切分歧义

汉字串 AJB 被称作交集型切分歧义,如果满足 AJ, JB 同时为词,此时汉字串 J 被称作交集串

汉字串 AB 被称作组合型切分歧义,如果满足条件 A, B, AB 同时为词

真歧义:存在两种或两种以上的真实存在的切分形式

具体的分词方法目前主要有以下几种,前两天也有一个利用深度学习的解决方案开源了,可以关注一下:

简单的模式匹配

正向最大匹配(FMM)、逆向最大匹配(BMM, 比正向更有效)、双向匹配(BM, 比较两种方法的结果,大颗粒词越多越好,非词典词和单子词越少越好,可以识别出交叉歧义)

  • 基于规则的方法
  • 最少分词算法
  • 基于统计的方法

统计语言模型分词、串频统计和词形匹配相结合的汉语自动分词、无词典分词

第一步是候选网格构造:利用词典匹配,列举输入句子所有可能的切分词语,并以词网格形式保存

第二步计算词网格中的每一条路径的权值,权值通过计算图中的每一个节点(每一个词)的一元统计概率和节点之间的二元统计概率的相关信息

最后根据图搜索算法在图中找到一条权值最大的路径,作为最后的分词结果

优缺点:可利用不同的统计语言模型计算最优路径,具有比较高的分词正确率;但算法时间、空间复杂度较高

常见应用

接下来介绍数据挖掘的积累常见应用:

智能问答技术

智能问答技术起源于信息检索社区,简单来说就是根据用户的提问给出简短的答案或提供答案的证据。根据不同的划分标准,我们可以总结出如下的几类问题类型:

  • 根据答案类型划分
  • 事实型问题(Factual questions)
  • 观点型问题(Opinions)
  • 摘要型问题(Summaries)
  • 根据问题言语行为(question speech act)划分
  • 是否型问题(Yes/NO questions)
  • WH 问题(WH questions)
  • 间接请求(Indirect Requests)
  • 命令(Commands)
  • 复杂/困难问题
  • 为什么/怎么样(Why, How questions)
  • 什么(What questions)

遗憾的是,目前大部分理解问题的技术都是基于正则表达式的,毕竟在自然语言理解这块,暂时还没有突破性进展。

传统自动问答技术主要是基于语料库的自动问答或基于知识库的自动问答,基本包括三个步骤:

  • 问题分析(分类、模板匹配、语义分析)
  • 段落检测(段落抽取、排序)
  • 答案抽取(实体识别、模板匹配、排序)

社区问答主要是应用与诸如知乎和 Quora 这类网站,目前主要的方向是问题分类、问题推荐、信誉评估和知识抽取等等。

情感分析与观点挖掘

情感分析与观点挖掘主要应用于产品比较与推荐、个人与机构声誉分析、电视节目满意度分析、互联网舆情分析和反恐与维稳。目前很多互联网平台(如淘宝、大众点评)都已经利用这种技术帮助提取用户评价中的关键词以提供更好的用户体验。

基本的框架如下所示:

  • 应用层:情感检索,情感摘要,情感问答
  • 核心层:情感要素抽取,情感倾向性分析,主客观分析/观点文本识别
  • 基础层:NLP 基本模块,情感资源收集与标注
  • 来源:产品评论,电影评论,新闻评论,博客,微博

而具体应用中,会将文本按照所表达的总体情感进行分类,可能的分类主要有如下三种,一般会从词、句子、文档三中粒度来进行分析:

主客观分析/观点文本识别

  • 客观:反映关于世界的事实信息
  • 主观:反映个人情感、信念等

倾向性分析(可看作主客观分析的细粒度处理)

对包含观点的文本进行倾向性判断

一般分为三类:褒义、贬义、中性(在一些问题不考虑中性)

情绪分析

愤怒、高兴、喜好、悲哀、吃惊等等

而对于观点挖掘来说,一个观点表示为一个五元组:目标对象, 目标对象特征, 观点的情感值, 观点持有者, 观点表达时间。实际上,观点抽取任务是很困难的,我们重点关注两个子任务:

特征抽取与聚类(aspect extraction and grouping)

抽取对象的所有特征表达,并将同义特征表达聚类。每个特征类表示了关于该对象的独一无二的某个特征

特征情感分类(aspect sentiment classification)

确定观点针对每个特征的情感倾向:正面、负面、中性

信息摘要

信息摘要指的是对海量数据内容进行提炼与总结,以简洁、直观的摘要来概括用户所关注的主要内容,方便用户快速了解与浏览海量内容。遗憾的是,研究 50 多年,有一定进展,但仍不能令人满意。一般来说实现思路有两种:

抽取式:从文档中抽取已有句子形成摘要。这种方法实现简单,能保证句子的可读性

生成式/混合式:生成新的句子,或者对已有句子进行压缩、重构与融合。这种方法难度更大,但更接近摘要的本质

抽取式文档摘要的典型工作流程是:文档集 -> 文档理解 -> 句子重要性计算与排名(利用词语句子的各类特征,基于机器学习) -> 句子选择 -> 摘要句子排序 -> 摘要

目前摘要总体性能不高,需要方法上的突破。

社交网络分析

社交网络作为 Web 2.0 的典型代表,用户生成的内容相当多,可以看作是某种程度上的群体智慧和在强交互性基础上构造的异构网络。

社交网络分析主要是基于社交关系、结构进行挖掘,比如社区检测、连接预测、影响力分析。而社交内容挖掘则是基于文本等内容数据进行挖掘,比如摘要、关键词、情感分析。因为每个人在社交网络上可以抽象为一个元素,于是他们之间的关系可以用矩阵表示。另一种表示的方式是使用图,其中节点 = 成员,边 = 关系。

比较常见的任务有:

社交网络抽取(Social Network Extraction):从数据源中抽取、构建社交网络

网络中心性分析(Network Centrality Analysis):识别社交网络上最重要的节点(重要性的定义由目的、环境所定)

输入为一个社交网络,输出为最重要的节点列表,一般方法是为节点计算分数或排序,反映节点的重要性/专业性/影响力

对于点重要性的评估可以采用网络中心性测度(Centrality measures)方法,具体中心性的定义可能是度数中心性(朋友最多)、中介中心性(处在信息流动关键节点)或亲近中心性(离所有节点平均距离最短)

用户画像:根据用户特点给用户群体分类

链接预测(Link Prediction):给定一个社交网络,预测哪些节点相互连接。例如: facebook 中的好友推荐

病毒式营销(Viral Marketing):找出若干用户,为其提供优惠或折扣,从而影响网络上的其他用户,使得收益最大化

试一试

尝试在网络寻找应用了数据挖掘的产品,并思考不同公司是如何使用的

对于大数据时代的个人隐私问题,你怎么看?

总结

这一讲,我们简单了解了数据挖掘及应用的方方面面,当然,如果有很多不明白的概念,建议简单看看维基百科了解一下,不过实在不明白也没关系,随着之后的实践,应该会有恍然大悟的一天。

本文作者:佚名

来源:51CTO

时间: 2024-09-10 15:42:53

重磅干货丨互联网数据挖掘导论的相关文章

干货丨5个问题鉴定大数据安全分析真伪!

我们先解释一个名词,大数据安全分析. 这种安全并不是保护数据本身的安全,而是用大数据技术进行安全分析. 当前网络与信息安全领域,正在面临着多种挑战.一方面,企业和组织安全体系架构的日趋复杂,各种类型的安全数据越来越多,传统的分析能力明显力不从心:另一方面,新型威胁的兴起,内控与合规的深入,传统的分析方法存在诸多缺陷,越来越需要分析更多的安全信息.并且要更加快速的做出判定和响应.信息安全也面临大数据带来的挑战. 干货丨5个问题鉴定大数据安全分析真伪! 如何鉴别所谓的大数据安全分析是真的呢?在摩根大

【重磅干货】俸旻老师:你所不知道的的量化交易?

嘉宾介绍: 俸旻,北京大学数学学院学士和博士,曾任职于微软亚洲研究院副研究院,从事网络安全.信息安全研究:曾任职于华为技术有限公司,从事无线通讯技术研究,开发了全球第一套TD-LTE Relay样机:拥有专利国内国际专利20余项. 演讲全文: 俸旻:非常荣幸来到这儿给大家做一个讲座,这么多人,还有点小紧张.其实这个市场有很多做得比我好的,可能大家接触的比较少,但是我接触的比较多,因为我数学系出身,我的同学里面有很多在这一行做得非常好的.当然还有带我入门的清华计算机系的一个师兄,也做得非常好,希望

一分钟了解互联网数据挖掘流程

  1.爬虫抓取网络数据 真实的数据挖掘项目,一定是从获取数据开始的,除了通过一些渠道购买或者下载专业数据外,常常需要大家自己动手爬互联网数据,这个时候,爬虫就显得格外重要了. Nutch爬虫的主要作用是从网络上抓取网页数据并建立索引.我们只需指定网站的顶级网址,如taobao.com,爬虫可以自动探测出页面内容里新的网址,从而进一步抓取链接网页数据.nutch支持把抓取的数据转化成文本,如(PDF.WORD.EXCEL.HTML.XML等形式)转换成纯文字字符. Nutch与Hadoop集成,

纯干货:大数据挖掘方法及案例介绍(以后不会再被忽悠了)

1.数据挖掘的引入 面对山一样高的,海一样广的数据,我们该怎么办? 数据挖掘中的5W问题 为什么要使用数据挖掘? 数据挖掘是什么? 谁在使用数据挖掘? 数据挖掘有哪些方法? 数据挖掘使用在哪些领域? 百度百科中关于数据挖掘的定义如下: 数据挖掘(英语:Data mining),又译为资料探勘.数据采矿.它是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤.数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程.数据挖掘是一

干货丨城市数据中心热面临的虚火与软肋

当前,"互联网+"的社会运行模式正在深刻改变着人们的生产生活方式,数据中心作为一种新型基础设施,已成为支撑城市建设和经济运行的中枢系统.随着"网络强国"战略的全面实施和新型城镇化步伐的加快,城市数据中心的作用和战略价值将更加突出.为此,各省市积极抢抓新一代信息基础设施建设的重要机遇,加快城市级数据中心的建设布局,大力支撑新型智慧城市建设,且希望借机带动新兴产业的发展.与此同时,城市数据中心热也带来了重复建设.资金浪费.标准缺乏等一系列问题.国脉互联作为一流的信息化咨

演讲干货丨大数据的“上半场”与“下半场”

科技放大了我们的能力,但是也同时增加了我们的烦恼.我们要用数据做更精准东西的时候,会发现数据的质量非常重要. 从PC互联网到移动互联网,再到智能互联网,技术背后更多体现的是解决问题的思维方式的变革. 当大数据被广泛应用并逐渐走到下半场的时候,对于公司或产品,我们面临怎样的机会和问题,我们又当如何科学的对待? 红杉资本中国基金专家合伙人.原阿里数据委员会会长车品觉,在上月举办的第十一届艾瑞上海峰会上发表题为<大数据,颠覆存在与思维>的演讲,他说人类的经验和数据的驱动应该更好的相处. 不用担心当数

干货 :互联网应该如何做流量,只有大胸是不够的

中介交易 SEO诊断 淘宝客 云主机 技术大厅 做流量.做用户不是一劳永逸的,必须是一个机动化.持久化.长期的运作. ▌为什么要做流量? 首先,做流量本质上是做用户,做产品. 这不是雇几个小孩,花钱买广告,或雇几个商务运营就可以自动解决的事情.本质上需要CEO.产品经理自己去想,而这里面其实误区非常多. ➣一个错误是,简单化冲指标. 当年的互联网公司,无论是视频网站还是财经网站,经常在网盟里放一些丰胸.裸女这种火爆的标题,把流量导到自己的网站.他们投入很多来提升自己网站近期的运营指标.但是,这真

干货丨大数据系统数据采集产品的架构分析

任何完整的大数据平台,一般包括以下的几个过程: 数据采集 数据存储 数据处理 数据展现(可视化,报表和监控) 其中,数据采集是所有数据系统必不可少的,随着大数据越来越被重视,数据采集的挑战也变的尤为突出.这其中包括: 数据源多种多样 数据量大,变化快 如何保证数据采集的可靠性的性能 如何避免重复数据 如何保证数据的质量 我们今天就来看看当前可用的一些数据采集的产品,重点关注一些它们是如何做到高可靠,高性能和高扩展. Apache Flume Flume 是Apache旗下,开源,高可靠,高扩展,

【重磅干货】看了此文,Oracle SQL优化文章不必再看!

听"俊"一席话,胜读十年书.看了这篇由DBA+社群联合发起人丁俊大师(网名:dingjun123)分享的SQL优化大作,其他Oracle SQL优化文章都不必再看了!   专家简介    丁俊 网名:dingjun123 DBA+社群联合发起人   性能优化专家,Oracle ACEA,ITPUB开发版资深版主.8年电信行业从业经验,在某大型电信系统提供商工作7年,任资深工程师,从事过系统开发与维护.业务架构和数据分析.系统优化等工作.擅长基于ORACLE的系统优化,精通SQL.PL/