博观而约取,厚积而薄发。 -----苏轼
尽管书的名字是《大数据智能》,实则内容则是互联网时代的机器学习和自然语言处理技术的综述。对于nlper,读一读受益匪浅。抑或是仅仅当科普读物一读,也未尝不可。
深度学习
应用分类
- 垃圾邮件过滤
- 图像分类
结构分类
- 句法分析
- 情感分析
- 机器翻译
分类
- 语言模型也是一个特殊的回归任务
知识图谱
构建
-
大规模知识库
-
互联网链接数据
-
互联网网页文本数据
-
多数据源的知识融合
- 实体融合
- 关系融合
- 实例融合
应用
-
理解查询
-
自动问答
- 下一代的搜索引擎能直接回大人们提出的问题
-
文档表示
- 最简单的方案:将文档表示为基于知识图谱的一个子图,即用改文档中出现或涉及的实体及其关系所构成的图表示该文档
主要技术
-
实体链指
将互联网网页与实体之间建立链接关系。并不局限于实体与文本之间
-
实体识别
- 从文本中发现实体
-
实体消歧
-
-
关系抽取
从互联网网页文本中抽取实体
-
知识推理
-
知识表示:基础技术
前景与挑战
- 知识的类型与表示
- 知识获取
- 知识融合
- 知识应用
大数据系统
高性能计算技术
-
超级计算机
- 计算节点
- 存储节点
- 管理节点
-
并行计算的系统支持
-
常见并行编程组件
- Pthreads
- OpenMP
- xdfc
-
虚拟化技术
- 虚拟化技术是指创建虚拟的事物,包括计算机硬件平台、操作系统、存储设备、计算机网络,是云计算的支撑技术
云计算技术
-
美国国家标准技术研究所认为:云计算是通过网络使得一组可配置的计算资源(网络、计算机、存储、应用程序、服务等)能够在任何地点方便地、按需地进行访问的模型,资源的提供和释放可以快速完成,管理开销低,与提供商的交互简便易行
-
三种服务模型
-
软件即服务 Software as a Service SaaS
- 常见的有亚马逊的AWS、微软的Azure、阿里云
-
平台即服务 Platform as a Service PaaS
- 常见的有Google App Engine(GAE)、新浪App Engine、RedHat的OpenShift等
- GAE给开发者提供了包括Python、Java、Go、php等多种语言的开发和运行环境,用于编写Web应用程序,开发者只需专注于应用程序的功能实现,部署到GAE后,应用程序的性能将由平台来保证
-
基础架构即服务 Infrastructure as a Service IaaS
-
-
根据受众进行分类
- 私有云
- 社区云
- 公有云
- 混合云
-
常见的云服务
- Elastic Compute Cloud(EC2)虚拟云主机服务
- Simple Storage Service(S3)基于Web服务的存储
- Elastic Block Store(EBS)为EC2提供的持久化块存储
- DynamoDB 可扩展、可延迟的NoSQL数据库服务
- Relational Database Service(RDS)关系型数据库服务
- Route53 高可靠的域名系统服务(DNS)服务
- CloudFront 内容分发服务
- Elastic MapReduce (EMR) 在EC2和S3的基础上用Hadoop搭建的MapReduce
基于分布式计算的大数据系统
-
Hadoop生态系统
-
HDFS(Hadoop Distributed File System)
- 分布式文件系统,将文件按一定大小切块,然后把每个块以多个副本的形式保存在不同的数据节点上
-
YARN(Yet Another Resource Negotiator)
- Hadoop的计算资源管理和调度系统,接受任务请求,并根据请求的需要来分配资源,调度任务的执行。
-
MapReduce
- Google提出的并行程序编程模型,适合对数据进行统计、分类等处理
-
HBase
- 基于列的分布式存储,数据以表的形式组织,每个表可以有很多行,每行可以有若干列簇,每个列簇可以包含多个列
- HBase可作为数据仓库存储有一定结构的海量数据,数据可以发生修改,但不要很频繁,否则会影响效率
-
Hive、Pig
- 能够让用户用较为简便的方式来查询保存在HDFS或HBase中的数据
-
ZooKeeper
- 提供了编写分布式软件所需的常用工具
-
Tez
- 比MapReduce更一般化的数据流编程框架
-
Storm、S4
- 建立在Hadoop上的流式处理引擎
-
Mahout
- Hadoop实现的机器学习算法库,包括聚类、分类、推荐以及线性代数常用的算法
- 新版本的Mapout主要用一种支持线性代数操作的领域特定语言(Domain Specific Language DSL)来实现
-
Giraph
- 在Hadoop上实现了类似于Google的Pregel这样的图计算引擎,用于处理Web链接关系图、社交网络等类型的数据
-
Sqoop
- 一个命令行工具,用于在Hadoop和传统的关系型数据库之间传输数据
-
三种安装模式
- 单机模式
- 伪分布模式
- 全分布模式
-
-
Spark
-
设计核心:一种叫做可靠分布式数据集(Resilient Distributed Dataset,RDD)的数据结构
-
Spark SQL
-
Spark Streaming
- 提供流式处理的功能
-
MLlib
- 机器学习算法库
-
GraphX
- Spark的图计算框架
-
-
典型的大数据基础架构
- GFS
- Cosmos
- SCOPE
大规模图计算
-
分布式图计算框架
- Pregel
- GraphLab
-
高效的单机图计算框架
- GraphChi
- X-Stream
- GridGraph
NoSQL
-
分类
-
基于列的存储
- 常见的有HBase
-
基于文档的存储
- 常见的有MongoDB、CouchDB
-
键值对存储
-
单机内存型
- 数据持久化在磁盘上,强调单机读写性能,数据一般按照键排序
- 常见的有Berkeley DB、LevelDB
-
单机内存型
- 数据主要存放在内存中,一般用作数据的缓存
- 常见的有memcached、redis
-
分布式
- 数据经划分后存放在不同的机器上,同一项数据可以在不同的机器上存有副本
- 常见的有Dynamo、Riak
-
-
图数据库
- 数据以图的形式组织,数据项是图中的顶点,每个顶点可以带属性,数据项之间的联系用边来表示,边上也可以带属性
- 常见的有Neo4j
-
多模型
- 同时支持上述若干模型,例如OrientDB、ArangoDB
-
-
NoSQL的理解
- 一开始是No SQL 后来添加了对SQL的部分支持,变为Not only SQL
-
MongoDB
- 基于文档的存储,数据以文档为单位组织
- 存储的数据分为数据库、集合和文档三级,一个数据库可以包含若干集合,而一个集合可以包含若干个文档
- 文档在表达上采用JSON格式
- 基本操作包括文档的插入、更新、删除和查询,另外还可以单独对文档的某个属性进行修改,还可以进行增加、倍增这样的原子操作
- 可以单机使用也可以在分布式的环境中使用
- 还具有一定的数据分析能力,可以对数据进行统计
智能问答
问答技术对于用户提出的问题予以理解,并找到答案回答给用户。经典案例:Siri等,人工智能的一个重要分支:专家系统
问答系统的输入部分即问题更不容易被计算机理解,输出部分需要更准确,此外答案的来源更加——即知识也多种多样,既有结构化的信息也有非结构化的信息,因此问答系统的难度更大
问答系统的组成
-
问题理解
- 理解问题是什么,比如北京的温度是多少和太阳的温度是多少根本不是一个领域的问题
-
知识检索
-
答案生成
文本问答系统
-
最基本的一类问答系统
-
问题理解
-
问题理解的内容
- 常见分类体系:UIUC体系、Moldovan等人的分类体系、单层的平面分类和根据垂直领域的分类
-
问题理解的方法
- 最直观的方法:模板匹配策略。优点在于逻辑清晰可见,易于理解和编写,缺点在于形式固定,对于千变万化的自然语言不容易灵活适应
- 灵活的技术则要从词法、句法的分析入手,做词性标注,做句法分析,找出命名实体。
-
问题扩展
- 同义词造成的多样性
- 在词的级别上,可以借助《同义词词林》、知网(HowNet),这样的同义词词典及词语知识图谱可以扩展我们的词库
-
-
知识检索
-
非结构化信息检索
- 非结构化的信息,通常是指没有或很少标注的整篇文章组成的集合
- 最直观的理解便是使用搜索引擎,提取出问题的关键词,查询索引,找出与这些关键词相关的文档,最后经过筛选和提取步骤,生成最终答案
- 在挑选出的多篇文档的多个段落中,也需要找出更可能包含答案的段落或局部段落,也因此要对这些文本块排序
- 问答系统中的经典做法是采用标准基数排序,排序指标的常见的三个因素:相同顺序的关键词数目、最远关键词间距和未命中关键词数
-
结构化知识检索
-
主要侧重于一个实体的各个属性以及他们之间的关系
-
结构化知识分类
- 百科类知识
- 关系类知识
-
-
-
答案生成
- 可以考虑答案与问题的相似程度,如问题的关键词和答案词之间语义联系的远近,此外,答案与问题也可能存在句式的联系
社区问答系统
-
一些比较著名的有国外的Quora和国内的知乎、百度知道和搜狗问问等
-
社区问答系统的结构
- 问题理解
- 答案生成
-
相似问题检索
-
一般的问答系统是用问题检索,而社区问答中是用问题去找问题。问题的相似性问题与问题扩展所解决的问题是类似 的,同样需要词义的扩展、句式的扩展。
-
问题相似性度量的几种方式
-
模板匹配
-
基于统计机器翻译
-
基于词典的方法
- 主要是基于同近义词的知识来扩展关键词,从而识别相似问句
-
基于信息距离
- 可以借助信息论中的柯尔莫哥洛夫复杂性来定义一系列语义度量,来衡量两个问题语义的相似性
-
-
-
答案过滤
- 根据答案提供者的权威性选择答案
- 根据答案内容本身评估质量
多媒体问答系统(Multimedia Question Answering)
- 问答的内容不仅仅限于纯文本内容,多媒体内容的表现力更强、更直观,易于理解
- 需要计算机视觉、信号处理等多媒体技术,才能分析出多媒体所表达的内容,属于比较前沿的课题
体会
- 对话系统比问答系统更难,问答系统涉及的技术较多,既包含语义分析,又有信息检索,还涉及到知识的挖掘与管理,若想成为全才,必须在方方面面都下功夫
自然语言处理
基本任务
- 文档分类
- 文档摘要
- 关键词抽取
XMind: ZEN - Trial Version