2008年4月2日

Graph + MapReduce + PythonPapers

知道这两个东西的朋友一定会问,这两个东西牛头不对马嘴,怎么被你放在一块儿了啊 :)

哈哈,事情是这样的。晚上和sandacn讨论了一下我们共同关注的牛人Lin Dahua的最新一篇blog,提到了做研究的境界问题。我们一致认为最顶级的研究应该是对问题本质有深入剖析的结果,越是牛人,越是做出深入剖析的结果。而不是目前流行的:想个新方法,试试好不好使,不好使再改改模型的结构,最后还不好使就用编程模型参数穷举的方法(此法甚为暴力,穷举后几乎都能在baseline上提高,我猜想如果baseline上也穷举一下的话,没准儿新方法只能靠边站),找到最好的一个结果,然后给出所谓的contributions。

随后我们谈到了近来NLP中会出现的研究趋势。我提到Graph,sandacn提到MapReduce。Graph的情况可以参看Mining Graph Data一书以及Hypergraph一书。sandacn提到的MapReduce倒是引起了我的高度关注。因为闲谈以及简单搜索后发现,MapReduce适合提高程序的运行速度,可以将一些非常复杂的问题快速解决。

其实在NLP目前的趋势看来,大规模计算已经成为必然的需求,以往的解决方案就是买大规模的服务器或者机群,然后将程序中能够并行起来的部分并行运行,最后将结果合并。我感觉采用MapReduce可以在现有并行环境(找几个机器组装或者有个配置相当差的cluster)下,可以极大的提高运行的效果。

这方面的工作NIPS2006上有相关论文(估计很难再有关于MapReduce的高水平论文了,因为坑被占了,下一又是什么坑,会被你占么),Apache上也有相关的开源项目,更为惊讶的是IBM居然推出了支持MapReduce开发的Eclipse插件,Python社区也出现了Python架构的MapReduce。忽然感觉这个时代真是很紧凑啊,有个什么新的概念大家都一拥而上。

还想到,如果基于MapReduce来搭建一个速度更快、性能更好的自然语言处理平台,肯定会得到更大的应用,并且有可能基于此实现我梦想过的高速高性能NLP Web Service。那样就对NLP相当有共享了。当然,基于目前的形式,我猜想,即使这个平台做出来了,肯定也不能算是研究水平有多高,只能算是工程能力很强,因为目前的Research共同体就是这样的 :)

还是觉得提出新概念的人才是最牛的 :)  正如提出HyperGraph的法国数学家近代图论之父Claude Berge。

在查看Python版的MapReduce时发现了Python居然出了期刊,就叫做PythonPapers。感兴趣的朋友赶紧跟进啊,好在现在才出到第三卷第一期。

4 条评论:

Wanxiang 说...

blogspot终于解封了,庆祝一下:)

MapReduce是个好东西,有空好好玩玩。

Bill Lang 说...

看到你这么快留言,我都吓了一跳.

恭喜blogspot解封啊,但是不知道这次解封会不会是历史的重演。

感觉MapReduce适合用来改进咱们的LTP。一旦做成前途不可限量啊~!

王鹏 说...

你说的python版本的mapreduce,具体的链接在哪里,叫什么名字呀?

Bill Lang 说...

具体我也记不清了,你可以google一下“python mapreduce”。另外,mapreduce是一个框架和实现技术,很多语言都能有实现的吧。