现在的社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。
有人把数据比喻为蕴藏能量的煤矿。煤炭按照性质有焦煤、无烟煤、肥煤、贫煤等分类,而露天煤矿、深山煤矿的挖掘成本又不一样。与此类似,大数据并不在“大”,而在于“有用”。价值含量、挖掘成本比数量更为重要。对于很多行业而言,如何利用这些大规模数据是赢得竞争的关键。
大数据分析的困境
不过,“大数据”在经济发展中的巨大意义并不代表其能取代一切对于社会问题的理性思考,科学发展的逻辑不能被湮没在海量数据中。著名经济学家路德维希·冯·米塞斯曾提醒过:“就今日言,有很多人忙碌于资料之无益累积,以致对问题之说明与解决,丧失了其对特殊的经济意义的了解。”这确实是需要警惕的。
然而,分析大数据集可能会产生问题。首先,大数据是大规模的,有时太大,不能通过常用的分析工具有效地处理。
麻省理工学院 Andrew and Erna Viterbi 电气工程与计算机科学院的教授、人工智能实验室(CSAIL)的主任 Daniela Rus、博士后 Mikhail Volkov 和曾在 Rus 科研小组的博士后、以色列海法大学机器人大数据实验室主任 Dan Feldman 针对这个问题,提出了一个解决方案,将大数据变成可管理的数据。InfoQ 整理并分享出来,以飨读者。
大数据困境破解之道
处理大数据的一种方法是缩减它。如果您可以确定大数据的一个子集,用于保留大数据最重要的数学关系,那么就可以进行有用的分析,不然对整个大数据集来说将是非常耗时,不实用。
然而,用于提取这样的“核心集”的方法根据应用程序而有所不同。研究人员提出了一种提取可由大量常用数据分析工具使用的核心集的新技术,适合自然语言处理、推荐系统、天气预报、金融和神经科学等。
“这些都是在许多应用程序中使用的非常通用的算法,”Danilla Rus 表示,“它们是这么多问题的基础。通过为这些工具确定出一个巨大矩阵的核心集,人们就可以进行以前根本不可能的计算。”
例如,在他们的论文中,研究人员将他们的技术应用于矩阵(也就是表格),它将英语版维基百科上的每篇文章映射到网站上出现的每一个单词。这个矩阵,将有140 万篇文章和440 万列的单词。
维基百科的这个矩阵实在太大了,以至于不能使用低秩近似来进行分析,该算法可以识别自由格式文本的主题。但是一旦提取出来核心集,研究人员就能够使用低秩近似来提取维基百科上最常见的100 个主题的单词集群。例如,包含“服装”、“新娘”、“伴娘”和“婚礼”的集群表示婚礼的主题;包含“枪”、“开枪”、“卡住”、“手枪”和“枪击”的集群显示指定了枪击事件的主题。
让大数据可管理的思路
研究人员的核心集新技术对于一系列工具非常有用,如奇异值分解、主成分分析、潜在语义分析。但它们共同之处是缩减:它们采用具有大量的变量数据集,并且用更少的变量找到它们的近似值。
在这里,这些工具的作用与核心集类似。但是,核心集是特定应用程序,而dimension-reduction 工具是通用的。这种共性使它们的密集型计算比核心集更多:对于大型数据集的实际应用来说计算量过于庞大。
研究人员认为,他们的技术可以用于用例如从数百万变量中嗅出数据集:例如根据他们使用的词语对维基百科页面的描述——只有几千个单词。在这一点上,诸如广泛使用的主成分分析技术可以将变量的数量减少到几百个,甚至更少。
维基百科矩阵有440 万列,每列代表一个不同的单词。维基百科上的任何文章只会使用几千个不同的单词。所以在任何给定的行:这意味着在任何一篇文章,只有几千个矩阵插槽中的440 万将会有内容。在稀疏矩阵中,大多数值为零。
至关重要的是,这项新技术保留了稀疏性,这使得它的核心集更容易进行计算处理。如果它们涉及零的大量乘法和加法,计算将会变得更容易。
新的核心集技术使用所谓的合并和归约过程,它开始取数据集中的20 个数据点,并选择其中10 个作为满20 个数据点的最具代表性的点。然后它对另外20 个数据点执行相同的过程,合并这两个所减少的10 个数据点,形成新的20 个数据点的数据集,然后它进行另一个缩减的过程,从20 个下降到10 个。
即使该过程检查巨大数据集中的每个数据点,因为它每次只处理数据点的小集合,它仍然保持了很高的计算效率。在他们的论文中,研究人员证明,对于涉及一系列通用缩减工具的应用,他们提供的缩减方法提供了对完整数据集非常好的近似结果。
该方法取决于数据的几何解释,涉及称为超球面的概念,它是圆的多维模拟。任何一个多变量数据可以看做是多维空间中的一个点。以同样的方式,数字对(1,1)定义二维空间中的点:在X 轴上的点和Y 轴上的点——就是维基百科表中的一行,其440 万个数字,定义了一个440 万个圆的空间上每一个点。
研究人员的缩减算法从找到数据点子集的平均值开始——比如说20 个,那就要进行缩减。这也定义了高维空间中的点,称之为初始点。然后将20 个数据点中的每一个“投影”到以初始点为中心的超球面上。也就是说,算法在数据点方向上找到超球面上的唯一点。
该算法选择超球面上的20 个数据投影之一。然后选择最远离第一个的超球面上的投影。它找到两者之间的中点,然后选择距离中点最远的数据投影;然后它再找到这两点之间的中点,并选择距离它最远的数据投影; 如此循环。
研究人员能够证明通过这种方法选择的中点将非常快地收敛在超球面的中心。该方法将快速选择其平均值接近20 个初始点的点的子集。这使得它们特别合适核心集中的候选者。
感谢杜小芳对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论