这几个月都在比较专注的做一个题目,几个月过后,一个听上去很可行的模型在实验中被验证无效。
回想当初刚拿到这个题目的时候,顿时被题目美好的目标吸引住了。经过初步的调研,我得到了一个错误的直觉,把一个原本很难、广度也相对比较小的题目,当作了一个很少人做的简单而且新颖的题目。然后就开始想尽办法开始炮制自己的模型。经过“不懈努力”终于得到了一个听上去很美的模型和若干华丽的特征。怀着对美好的憧憬,带着要发牛paper的动力,就开始“噼里啪啦”的做一个不小的实验。
最终,就有了开头提到的结果。
其实在以前和astroguo师兄讨论的时候,他就提到了这个题目的困难性。而我却打肿脸充胖子的做一些无力的argue。原本就经验不足,再加上求“功”心切,怀着对牛会paper的渴望,抱着一个有些牵强的模型,撞到了墙,虽然又努了努力,想绕过去,却发现其实是个死胡同。
即使对我这样“一无所有”的家伙,发paper也不应该成为做研究的指挥棒。
静下心来,纯真一些。
最后再引用QQ师兄的一句话:
把事情做好。
前天晚上在水房洗衣服时和一个朋友聊天,聊到了做研究。
其间谈到了实验失败的共同感受。
朋友做了这样一个比喻:
做研究就像挖坑,
有大牛,眼光敏锐,瞅准了地方,在一个地方挖了个坑,挖到了水,然后拿个桶打上水,到别的地方去灌水;然后众小牛们也都跟着跳进了大牛挖的坑,继续挖坑,打水,灌水,坑越来越深,水越来越少。
毫无疑问,这些牛们是幸福的。
如果不幸挖到了石头,就只能把土添回去,然后踩平,再然后拍拍手上的灰,也没有人知道你曾充满热情并努力的挖过这个坑。
一个即将进入问答方向的师弟问我有什么问答方向的论文推荐给他看,记得自己刚进入这个领域时也有着很多类似的困惑,虽然只有一年的短浅经历,但我斗胆写下下面的文字,希望这些文字对他以及和我们有着同样困惑的初学者有所帮助。以下的文字不是说教,只是一些经历和思考的片段。
在IR、NLP领域中,现在的一般看法,大家都把QA归类为信息检索中的一个Open Problem。因为目前的检索系统都是通过输入一堆关键词,然后系统返回一堆候选结果,而人们更期望于用人类的自然语言提问,来得到一个精确的答案。可能这里的QA任务的来由与AI中的QA系统定义有所区别,但我想算是异曲同工。
为了完成以上终极目标,或者说为了得到更好的检索效果,人们开始研究NLP技术来帮助改进检索。自然语言处理技术主要分为两大流派,一种是基于规则的方法,即人根据自己的先验知识来手工制定规则;另一种是基于统计的方法,即在大规模的语言现象中,利用机器,自动的统计其中的潜在的规律。基于规则的方法缺点显而易见,需要大量的专家利用大量的人力时间来制定规则,规则也不一定是完备或者正确的,也因为自然语言本身就非常灵活。基于统计的自然语言处理方法随着近些年统计机器学习的发展,而逐渐占据了主流。
其中,概率与统计、线性代数等构成了统计机器学习的基础。
另外,统计机器学习中一大类问题是讨论模式分类。 综上,我们可以得到下面的一幅图。无箭头的边代表包含关系,有箭头的边代表支持关系。

关于自然语言处理、统计机器学习和概率三者的关系存在着这样一个笑话式的说法:三流的统计学家做机器学习,三流的机器学习专家做自然语言处理。我也时常在反思并与前辈、同僚们进行讨论,我们所从事的事情,是否只是因为工业界经济效益的带动,而形成的一个华丽的坑。我们在做这样的应用研究时,总是会存在这样一个“模式”,拿到某个问题,然后对其进行观察、分析,建立模型,而这个模型的理论、求解等通常都已经是机器学习专家、数学家为我们解决了的。因此我们不免会担心,离这些基础远了,我们所做的事情是否只是高劳动力低价值、低影响力的,是否只有去做那些基础科学能产生很大影响力的学问才算做是有价值的呢,甚至我们所做的事情是否属于伪科学。然而以我目前浅薄的眼光来看,应用研究,观察与抽象出事物的本质是最关键的,我更愿意把它称作为一门实验科学。我觉得以上疑问可以在与物理对人类进步的推动、数学和物理的关系进行类比来得到一个答案。信息检索、自然语言处理不就正在改变人们的生活么?随着基础设施的完善,也许我们会距离终极目标越来越近。
QA是一个异常困难、庞大的题目,因此人们尝试开始从各个方面来攻克它。以TREC为例,在TREC的QA main Task中,有Factorid QA、List QA、Definitional QA三种相对来讲比较简单的subtask。然而这三种QA所覆盖的范围也远小于实际中的QA所包含的各种形式。起初我在知道自己以后要做QA的时候,感觉到有些诚惶诚恐,认为这几乎就是一个美丽的泥潭,寸步难行。但是进入这个领域一年以后,我又有了不同的看法。我认为QA,在现有的条件下,可以多做一些tractable的工作。跟踪一下近几年IR/NLP related top conferences中有关QA的论文,我们不难发现,一些新的贴近应用的QA任务被提出,其中不少都是extraction problem。碰巧的是我最近做的两个工作也都是extraction based method。似乎,这样看来这类QA多了些Data Mining的味道,呵呵。
因为QA任务本身的特点,导致有关QA的论文,关于各种问题的,很多、很杂。所以,如果没有什么目的性的看QA论文,就犹如同大海捞针。因此,我认为可以不用太着急看QA的论文,不妨先打好上面说的那些基础。有了比较明确的题目后,再来有针对性的阅读论文。当然,这不是一个规定好的顺序,我们也不可能总是以这样一个理想的方式去学习、做研究。book driven、task drivern、paper driven,我们更多的是在这样一个混合的滚雪球的方式中沉淀、成长。
最后,我推荐个书单吧(前两本我也没看过,从Dahua Lin的blog里看来的推荐,打算最近开始读):
[Gilbert Strang] Introduction to Linear Algebra (3rd Ed.)
[V.N.Vapnik] The Nature of Statistical Learning Theory
统计学习理论的本质
[Duda et al] Pattern Classification (2nd Ed.)
模式分类
[Mitchell] Machine Learning
机器学习
[D.Manning et al] An Introduction to Information Retrieval
[D.Manning et al] Foundations of Statistical Natural Language Processing
统计自然语言处理基础
[J.Han et al] Data Mining Concepts and Techniques (2nd Ed.)
数据挖掘概念与技术
还有一篇众牛合写的QA survey:
[John Burger et al] Issues, Tasks and Program Structures to Roadmap Research in Question & Answering (Q&A)
