大数据目前是一个行业热点,实际上大家每天使用的搜索引擎就是大数据,互联网产生了海量数据,如何从中找到需要的信息就是一个大数据的命题。搜索引擎正好解决这一问题,网络爬虫首先从数以千亿级的网页中搜集信息,建立网页数据库。当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户查询语句相符的网站,便采用排序算法——通常根据网页中关键词的匹配程度、出现的位置、频次、链接质量综合计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。
大数据衍生新型搜索服务
搜索引擎的诞生,从一定程度上满足了用户在海量互联网数据中查找信息的需求,但是还存在很大的优化空间。传统的搜索引擎根据查询词返回相关网页文档链接,需要用户自己去阅读大量网页内容才可获得他们想要的信息。尤其是对于手机等移动终端,用户浏览大量的网页和摘要内容很不方便。为了克服传统搜索引擎的弊端,人们正尝试探索一种更高效、更人性化的搜索引擎技术:直搜或者叫知识图谱搜索,直接提问或者输入关键词,然后系统直接提供答案,而不是包含答案信息的链接或者相关文档。比如用户输入问题“姚明的身高”,“刘德华的妻子是谁”,“减肥蔬菜有哪些”等等问题,系统自动完成答案抽取,帮助用户快速定位所需要的信息,直接给出答案,从而节省了用户阅读大量网页、文档的时间。
为了达到这一目的,首先需要理解这些查询问题,同时要了解问题所对应的答案。答案需要从海量垂直网站(如百度知道)或者用户搜索词中挖掘。百度在知识挖掘方面研发了基于半监督学习的新词及专名挖掘、面向垂直领域定向抽取的三元组挖掘、基于用户行为日志数据的实体关联挖掘、基于搜索引擎的实体语义标签挖掘等。这里解释一下“三元组”,其是指“实体”、“属性”和“属性值”构成的知识表示形式,例如“姚明,身高,2.26米”便是一条三元组。三元组是知识库中最为重要的组成部分,因为用户的很多知识型的搜索需求都需要基于三元组知识来回答。百度已经通过海量知识挖掘积累三元组规模数亿条,实体数千万条。
此外为了解决自动挖掘结果的数据质量问题、多来源知识的融合问题、同名实体的歧义问题等等,需要借助语义计算来解决这些问题,百度研发了三元组相似度计算、三元组自动噪声过滤、相关实体消歧等技术模块。此外,百度目前正在搭建一套完善的知识库存储和查询架构,能够更好的在此基础之上实现知识库的存储、更新、查询、推理等功能,并进而提供各项实际产品的应用。在产品层面,百度知识谱图产品已经在“人物”、“影视”等部分类目上线,快速提供搜索答案、极大地提高了用户体验。
大数据产品,服务商业与社会
除了大数据带来的新型搜索体验,百度还直接提供大数据产品,供客户或者互联网用户使用。这是因为百度每天要响应来自全球几十亿次搜索,从这些搜索词中,我们可以透析出当前社会热点,用户在关心什么话题,关心商品的什么特性。比如通过百度的大数据分析,可以预测出在五一假期某个景点的热度,游客都是分布在哪些区域,可以为游客与景区机构提供参考,提前做好准备。用户通过搜索行为告诉百度背后的趋势,我们再把这些趋势反馈给用户,基于这样的逻辑,百度提供了百度指数、指数专业版、百度风云榜等相关数据产品。
百度指数是以百度网页搜索和百度新闻搜索为基础的免费海量数据分析服务,用以反映不同关键词在过去一段时间里的“用户关注度”和“媒体关注度”,以及分析信息关注点和人群分布特征。发现、共享和挖掘互联网上最有价值的信息和资讯,直接、客观地反映社会热点、网民的兴趣和需求。百度指数通过科学、标准的运算,以直观的图形界面展现,帮助用户最大化的获取有价值信息。
此外,百度还提供了风云榜大数据产品,风云榜是以数亿网民的每日搜索行为作为数据基础,分析出关键词排行榜与分类热点门户。百度搜索风云榜覆盖十余个行业类别,可根据用户喜好个性化推荐信息;小时级更新数据,提供最新最火爆的热点;人群&地域榜单对比,多维度分析数据;中间页优质资源聚合,一站式解读热词;深度挖掘关键词信息,展示丰富有趣的兴趣图谱。
大数据驱动的基础设施创新
无论是新型搜索引擎还是百度指数等大数据产品,实际上都是海量互联网数据通过价值挖掘,又反馈给互联网,形成良性正循环。但是从另一方面来说,大数据也给互联网企业带来很大的挑战,尤其是在基础设施方面。百度目前的日处理数据近100PB,而总数据量近1000PB,数据的存储与计算对基础设施提出了巨大的挑战,节约能耗、提升效率成为永恒追求的主题。并且和PC模式相比互联网大数据模式也发生了很大变化,比如从单用户多任务到多用户单任务的环境变化,数据中心成为一台巨型计算机。IT硬件、软件的变化还没有及时跟得上互联网大数据带来的需求,因此百度基于自身需求定制了针对大数据优化的基础设施,这其中包括全球首家规模化部署的ARM服务器、国内首次规模部署的整机柜服务器、自研万兆交换机、自主研发的新一代SSD等等。下面选择ARM服务器、新一代SSD以及深度神经网络GPU加速详细介绍。
ARM服务器
基于节约能耗、提高存储效率的考虑,百度通过集成X86和ARM平台,调整和迁移代码指令集,提高ARM服务器的利用率,让32位ARM服务器的优势在数据中心里得以充分发挥。基于ARM的服务器的功率要求甚至比最节能的X86服务器还要低得多。基于ARM的服务器使数据中心的总拥有成本(TCO)降低了25%,提高存储密度的70%。百度已经获得开发基于ARM的服务器的10项专利。
自研新一代SSD
此外百度还自研了新一代SSD,全球首家客户自主研发及规模应用新一代SSD。和PCIE Flash相比,性能提升2倍,成本降低40%;和SATA SSD相比性能提升6倍,成本降低 10%。创新点如下:
硬件多通道对上层软件可见:SSD存储介质由多个flash芯片组成,一个或者多个flash芯片组成一个通道,他们共用一条数据总线,单通道的数据带宽很低,多个通道并发可以达到比较高的数据带宽。传统的SSD虽然硬件层面具有多通道,但是对于上层软件只看到一个独立的存储设备,SSD控制器向上层软件屏蔽了多通道信息,读写操作时,由控制器控制数据的分布和并发访问。这样会增加控制器的复杂度,而且由控制器决定的数据分布不一定是合理的数据分布,不合理的数据分布会影响多通道之间的并发性。百度的新一代SSD里面,硬件通道对软件可见,每个通道可以看成一个独立的子设备,软件多线程可以并发访问各个通道,由此能最充分利用多通道的并发性,软件也可以根据自己的需求采用最合理的数据分布策略。
和超大规模互联网存储系统读写模型深度结合:传统的SSD都是面向通用的存储模型设计的,需要考虑随机读,随机写,顺序读和顺序写4种模型,为了减轻随机写带来的写放大问题,需要预留7%~25%的空间,而且磨损平衡策略更复杂,这都增加了硬件成本,降低了性能。超大规模互联网存储系统里面,没有随机写操作,随机写的数据块大小是硬件flash一个块大小的整数倍,因此没有写放大问题,也不需要额外的预留空间。另外,静态磨损平衡操作是有上层软件发起的,应用层可以在系统空闲的时候发起静态磨损平衡,消除了静态磨损平衡时对系统性能的影响。
深度神经网络语音识别GPU加速
除了以上的为大数据优化定制的基础设施,还有一些技术创新则成就了新型的移动互联网应用形态。在移动互联网迅速发展的今天,手机虽然携带方便,但是输入并没有PC那样方便,因此自然语音交互成为一种必然的选择。。语音识别技术虽然发展多年,但并没有取得突破性的发展,直到近些年DNN(深度神经网络)技术的成熟。百度是国内首家将DNN引入语音识别,作为语音训练的模型。而一个语音训练的深度神经网络,原始权重因子就有4千万个,训练样本多达10亿个,在通用CPU处理架构下,数据计算量巨大,其训练过程时间可能达数年之长,根本无法实现商用。
考虑到这个训练模型包含大量矩阵运算,而在图形处理领域,也是矩阵计算密集型的应用居多,为提高计算速度,很多厂商提供了适用图形计算的专门处理器——GPU。现今GPU已经不再局限于3D图形处理了,其在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能。深度神经网络几乎全部为矩阵计算,非常容易进行数据级并行加速,百度将GPU加速引入DNN语音识别。实际上也正是基于这样的技术创新,才可以完成大数据的计算,使精确语音识别成为可能,只有技术创新配合互联网大数据才可以更好地促进互联网的发展演进,带给用户更好地体验。
写在最后
从大数据的角度来说,百度公司只是从互联网搜索的角度,积累的海量数据,并从中提取知识和价值,服务于社会,百度的数据只是众多大数据种类很小的一部分。除了百度这样的公司,在大数据中我们看到另外两个很重要的来源:
第一个是政府,比如在2012年7月美国交通部开放了全美航班起飞、到达、延误的数据,有人利用这些数据开发了一个航班延误时间的分析系统。相关数据发布在Data.gov上,在该网站上还有很多各种各样的政府披露的数据。
其次是个体,每个人都可以成为数据生产者和采集员,比如美国有众多哮喘病患者,这些病人可能会对空气中的某些物质产生过敏,因此就有公司让哮喘病人成为空气质量检测的采集员,而同时可以使用别人采集的数据,哮喘病人可以根据这些众多个体采集的空气数据,尽量避免去过敏原含量很多的地方。由于这些人出于自身利益的考虑,因此他们就很愿意去采集数据并分享出来,是一个双赢的行为。
互联网公司搜集了部分大数据,并且为了自身的商业需求,生产了大数据产品,反馈给互联网用户,形成正循环。而真正的大数据则需要全社会的努力,或者需要一个数据交换、共享平台,让每个人都成为大数据的生产者,同时又是受益者。