​让硕士生活更加精彩

​让硕士生活更加精彩

来源:《中国计算机学会通讯》第7期《专栏》

 

作者:裴文哲

硕士生的生活是很多学生研究生涯的开始。与博士生不同的是,硕士生的学习和研究时间相对较短,这导致很多学生对硕士阶段学习的意义产生了诸多疑惑。一方面有找工作的压力;另一方面又有科研工作的挑战,短短两三年的时间似乎无论做什么都显得有些不够。作为国内一名典型的“土硕士”,我也曾经有过同样的疑惑和迷茫。不过,在我攻读硕士学位的三年时间里,我对如何做研究以及如何找到一份满意的工作渐渐有了一些心得体会,在这里与大家分享。

我的科研经历

我的硕士学位是在北京大学信息科学技术学院获得的,我的研究方向为自然语言处理,通俗地讲,就是研究如何让计算机理解人类语言。第一次接触自然语言处理是在本科三年级的时候,那时我在哈尔滨工业大学网络智能实验室跟关毅老师做WI输入法1,当时我负责做的是拼音输入法的智能纠错功能。在这期间了解了语言模型和隐马尔科夫模型的概念。尽管当时还没有深入地理解其深刻的原理,但我立刻就被其背后所蕴藏的智慧迷住了,从此决定这就是我的研究方向。到了大四的时候,我获得了百度自然语言处理(Natural Language Processing, NLP)部门实习的聘用,这次实习对我的人生规划产生了巨大的影响。尽管当时我已经被保送到北大读研,但是和大多数同龄人一样,我对应该继续读书还是直接工作犹豫不决。带着试试看的想法,我决定先去实习感受一下。当时实习所在的部门“大牛”云集。随着实习的进行,我进一步感受到了自然语言处理的魅力,同时希望有一天我也能够设计自己的模型,并使其上线,从而改变亿万人的生活。但“理想很丰满,现实很骨感”,我开始意识到自己的知识储备十分不足。于是我坚定了自己的决定——读研。

既然选择了读研,就要为读研做充分的准备。在本科毕业后的暑假,我没有选择到处旅游,而是选择把自己关在家里补充各种知识。当时看了斯坦福大学教授吴恩达的公开课和Coursera的公开课,看完了大半本英文原版的《语言识别和语言处理》(SpeechRecognition and Language Processing),看了一遍《模式识别与机器学习》(PatternRecognition and Machine Learning)。当然,我第一遍看完这两本书后也只看懂了其中30%的内容,所以读研后又读了多遍。直到现在,我大概读了4遍《模式识别与机器学习》。但说实话,对于这本“圣经”,我到现在可能也只能真正理解其中60%~70%的内容。

由于实习时受到的“刺激”,我在读研之初就踌躇满志,决心一定要利用好研究生的三年时光,做最顶级的研究。在开学的第一天,我给导师发了一封邮件,立志要在读硕士期间发表一篇顶级会议论文。这个目标当时对我来说简直是痴人说梦,因为实验室的历史上几乎没有硕士生能够在读研期间发表顶级论文。这里不得不提我的导师常宝宝,如果没有他,我的目标不可能实现。在我发完那封慷慨激昂的邮件后,导师给予我极大的鼓励。他对我们的研究内容从不做强制规定,也不要求我们去做外面的项目。相反,他鼓励我们寻找自己的研究方向、做自己感兴趣的内容。同时,他的学术水平也非常高,能在我遇到困难时给予详细的指导。这些优良的外部条件为我后续的研究铺平了道路。

研一上学期,因为知识储备有限,我与导师讨论了要研究的内容。导师建议做主题模型(topic model)相关的内容,原因在于相对来讲主题模型比较好入门。经过几番讨论后,我形成了自己人生中第一个论文思想并很快完成了代码的编写,实验效果也不错。于是,我开始了人生中的第一次投稿,计划将其投到2013国际计算语言学协会年会(Annual Meeting of theAssociation for Computational Linguistics, ACL)。我的英文写作能力其实并不好,当时写完论文后,导师几乎全部推翻重写了一遍。令我印象深刻的是那时候还正好赶上过年,我记得是大年初一的晚上,导师和我还在电话里远程讨论如何修改论文。经过无数次的雕琢,我的第一篇论文“Inducing Word Sense with Automatically Learned Hidden Concepts”诞生了。我兴冲冲地投了稿,满怀期待,但最终结果是:拒稿。论文被拒,心情自然沮丧,我一直认为审稿人没有理解这篇论文的核心思想,心中愤愤不平。但常老师教导我无论结果如何,都要以平和的心态面对,积极修改论文。就这样,我的研一上学期以一篇被拒的论文结束了。

研一下学期,我继续修改这篇论文,并且随着上课和平常读论文的积累,知识量有了进一步的提升,自己也有了想法,而且实验效果不错。鉴于上次投稿被拒,我决定先从国内的会议试试,导师也表示支持。于是投稿到全国计算语言学学术会议(China National Conference on Computational Linguistics, CCL)。同时和大四保研的师弟一起对那篇被拒的论文进行改进,增加了新的模型,将其投到自然语言处理实证方法会议(Conference on Empirical Methods in Natural Language Processing,EMNLP)。结果是CCL的论文被录用,EMNLP的论文又被拒了。我迎来了自己人生中第一篇论文的录用,很开心,但由于离自己心中顶级会议的目标还差很远,自然心有不甘。论文连续两次被拒让我怀疑自己的思路是不是真的有问题,以至于我开始渐渐对这篇论文失去了信心,所以也没有再进一步修改它。研一眼看着就要结束了,自己还没有一个独特的研究方向,于是我开始广泛阅读各种文献。这时,我看到了深度学习的一些内容,不过当时深度学习的研究并没有像今天这么全面爆发。我觉得这应该是一次千载难逢的机会,于是开始专注于阅读与深度学习相关的文献。

研二上学期是欢乐的一学期。我师兄的一篇论文被自然语言处理国际会议(the International Joint Conference on Natural Language Processing,IJCNLP)录用,但师兄已经毕业不能参会,于是导师决定派我参加。这是我第一次参加国际会议并且第一次做口头报告(oralpresentation)。会议在日本召开,令我感触最深的是与同行老师、同学们的交流。我感受到出国参会并和领域的“大牛”们交流思想是件多么令人愉快的事情。这次会议促使我再次下定决心发表一篇属于自己的顶级会议论文。参会回来后,我趁着兴奋劲儿产生了自己在深度学习方面的第一个想法——基于深度学习的分词模型。在当时(即使现在),深度学习在结构化模型中的应用还很少。所谓的结构化模型是指模型的输出不是简单的分类,而是一个具体的结构,例如序列标注模型、句法分析。当时,我阅读了大量这方面的文献,觉得既然最大熵可以扩展为条件随机场(Conditional Random Field, CRF),普通感知机模型可以扩展为结构化感知机模型,那么神经网络也一定可以扩展为结构化的神经网络模型。分词当然是最简单的序列标注模型,受深度学习界著名学者理查德·索切(RichardSocher)的启发,我针对序列模型的特点,提出了最大间隔的张量神经网络(Max Margin TensorNeural Network)。有了研一写文章的经验,这篇文章很快就完成了,之后又是几经修改。最后在截稿之前,我将此篇论文与之前那篇屡投屡被拒的文章一起投到ACL 2014。

研二下学期是丰收的一学期。我终于有了自己第一篇ACL论文《基于最大间隔张量神经网络的中文分词》(Max Margin TensorNeural Network for Chinese Word Segmentation),论文成果的来之不易可能只有投过稿的人才能体会到吧。从写论文、改论文、投稿、初审,到揣测审稿人心思,到回复,再到焦虑地等待。当打开邮件,看到论文录用的一刹那,我高兴得眼泪都流出来了,赶紧向导师报喜。至于另一篇论文依旧是被拒⋯⋯导师和我基本上已经放弃了希望,于是改也没改就投了计算语言学国际会议(International Conference onComputational Linguistics, COLING),没想到居然录用了。在这学期,我还和师弟一起做了一个无监督分词的模型,后来投到EMNLP也被录用了。之后,我参加了ACL和COLING会议。刚开始,我不敢说话,后来鼓起勇气与那些领域的“大牛”们交流时,我发现他们非常和蔼,而且都热情鼓励我们这些年轻的研究者。这些会议不仅让我大开眼界,也极大地提高了我的交流能力。

幸福来得太快,我有些飘飘然。这时导师找我谈话,希望能再接再厉,不要骄傲,继续在深度学习领域前行。研三上学期,我开始尝试许多想法,但大多数都夭折了。后来我决定在依存句法分析(dependency parsing)领域尝试深度学习模型的效果。这也是我当初给自己选择的方向中一个重要的分支——基于树结构的结构化模型。当时,我对依存句法分析只了解一些基本的概念,对很多前人的工作并没有深入研究。于是,我找来大量文献,每天把自己扎在文献堆里,了解他人的方法以及各种算法,实现前人的模型;后来逐步形成了自己的初始想法,通过实现发现效果确实不错,就这样我的第二篇ACL文章《基于图的有效神经网络依存句法分析模型》(An EffectiveNeural Network Model for Graph-based Dependency Parsing)诞生了。

我的科研心得

做科研的第一要素是知识的积累,无论我们从事的是什么方向的研究,都必须掌握所研究领域已有的工作和最新的动态。在三年的硕士生学习生活中,我的体会如下:

1.首先要补充研究方向的基础知识。我们很幸运地处在互联网时代,知识的传播和分享都比十几年前方便很多。我们可以很容易地下载相关的书籍、讲义以及国外名校的公开课。随着MOOC(Massive Open Online Course,大规模开放在线课程)的兴起,还可以在Coursera、edX、网易公开课等网站上找到自己研究方向的基础课程。所以,在开始深入研究之前,我们可以先上一些公开课并阅读一些与研究方向有关的经典教材,为后续的研究打好基础。

2.在有了一定的基础知识后,就需要阅读领域内的一些经典学术论文。这些论文的数量通常不会很多,它们支撑了整个研究领域的研究框架,阅读这些论文能够对整个研究领域有一个宏观的了解。当然,大家更关心的是如何获取这些论文。首先,我们在阅读教材时,教材里会给出很多经典的文献;其次,可以向导师咨询,由导师提供一些好的论文;第三,从网上可下载很多名校的讲义,讲义后面通常会列出参考文献。这些文献基本上都是领域内的经典论文。

3.上述两个步骤通常在研一阶段就能完成了,如果比较上进的话,甚至可以在大四阶段完成。在了解了领域内的基本知识结构之后,我们就要开始紧跟学术前沿的动态了。这里没有特别好的办法,只能搜集大量的论文来阅读。与大部分同学一样,我开始在读这些论文的时候也看不懂,久而久之就产生了厌烦感。但我们千万不要放弃,古人云“书读百遍,其义自见”。很多时候我们会发现一篇论文在读了十遍甚至几十遍之后,会突然有一天领悟了论文的思想。另外,如果实在是缺乏一定的背景知识,那我们可以根据论文的参考文献先阅读一些前人的论文,做好铺垫之后,再回头继续读这篇论文。

4.无论我们对基础知识、领域框架、前沿动态有多少了解,那些都是别人的工作。既然是“研究”生,我们当然要开展自己的研究工作。在阅读文献时,我们要有科学工作者应该有的批判式思维。批判式思维的含义是,不要把前人的工作当作“圣经”,在接纳新思想的同时,也要尽力找到论文的缺点、局限,甚至错误。这些往往是我们研究的突破口。

5.文章不是写得越高深就越容易被录用,相反,能够被录用的论文通常都讲得通俗易懂。在最初投稿的时候,我追求一些“高大上”的词汇,罗列的公式尽量显得高级。但事实证明,审稿人是不可能有时间细细地去看公式、揣测模型的。所以我们写论文时一定要用最通俗的语言,解释清楚我们的动机,解释为什么我们的模型更好。

6.对于我们这些经验尚浅的研究人员,创新点的来源通常有两种:老方法新任务,老任务新方法。我采用的是老任务新方法的策略。自己很幸运能够很早就赶上深度学习这个大潮,并抓住了机会。

7.永远不要觉得自己的想法不够新颖就放弃。其实大部分的工作都是在已有的工作上做些改进,很少有能够产生颠覆性影响的模型。只要有一定的改进思路,我们就可以尝试去做,并写成文章。很多时候,觉得自己的想法不好是因为我们太了解自己的研究领域,以至于觉得自己的想法应该是显而易见的。然而实际上,对于圈外人而言,这些想法很可能是有其自身价值的。

8.要多读英文的参考资料。一方面,大部分的资料都是直接用英语撰写的,看翻译过来的内容难免会有信息的丢失;另一方面,大量阅读英文的资料对我们的语感会有很大帮助,这样写论文时才能做到下笔有神、表意清晰。

9.审稿人的水平是有差异的,很多时候审稿人的确会提一些比较奇怪的问题。即使这样,在回复的时候也不要言辞激烈,一定要不卑不亢、平心静气,认真回答审稿人提出的问题。一般来讲,审稿人都是刀子嘴豆腐心,最终的结果可能没有我们想象的那么糟糕。

回首自己三年的研究生生活,能够完成个人目标除了上面的客观因素外,还有两个不可或缺的因素:导师无私的支持以及运气。

以我的观察,不可否认,国内研究生导师的研究水平参差不齐,同时还有部分导师并没有尽到应尽的义务,有些导师甚至有着“硕士生就是干活的,没必要搞科研”这种偏颇的思想。正是这种原因导致很多硕士生沦落为导师在外面接项目干活的免费劳动力。所以,在呼吁同学们攻读硕士阶段努力搞科研、提升技术水平的同时,也衷心希望导师们不要将硕士生当作苦力来培养。任何一个学生只要在伯乐的栽培下都有希望成为一匹千里马。我相信,国内的导师们只要端正态度,就会成为伯乐。

要想实现自己的目标,努力是不可或缺的必要条件,想不努力就获得成功几乎是不可能的。但努力不是充分条件,很多时候论文是否被录用,找工作是否能够拿到录用函取决于“天时地利人和”。所以即使我们被拒了也不要气馁,很可能就是这次运气稍稍差一点。我认为“越努力,越幸运”,即所谓厚积薄发。

科研与找工作

硕士生的压力,除了来自科研以外,还有一个就是找工作。大部分硕士生可能并没有长期从事科学研究的打算,之所以读硕士是想多学习一些技术和知识,为自己找到一份好工作增加筹码。正因为如此,很多同学认为硕士生搞科研是徒劳的,多在外面实习、做项目才是王道。不可否认,出去实习当然是一种提高技术水平的有效手段,但从我自身的经验来看,如果把时间都用在实习上而不在硕士阶段真正培养一些独特的能力,就不如不读研。做好科研其实比实习更重要。

如果把找工作比作“相亲”,那么学历、获奖、项目经验等就是我们的脸,而自身的技术水平则是我们的内在修养。

从“内在修养”的角度来看,一个人只有一张漂亮帅气的脸是不足以在“相亲”中获得青睐的,比“脸”更重要的是我们的内涵。有些同学可能担心如果做科研,自己的工程能力就会退化,不能在面试中取得好成绩。其实,从我的经验来看,科研不仅没有降低我的工程能力,反而还提升了我在其他方面的能力。

首先,一篇顶级论文的发表意味着我们需要实现大量的模型。在这个过程中,我们自然会用到很多算法和数据结构,如果能够高效地实现这些模型,那我们自然也能从容应对那些复杂的面试题。以我个人为例,由于我的研究方向是自然语言处理,因此我在很早的时候就接触了维特比算法用于序列标注模型的解码,这里面涉及了很多算法和知识点,例如动态规划算法、避免浮点数下溢的处理等。而恰好在我到脸谱(Facebook)面试的时候,面试官出了一道同样思想的题,当时我很快便给出了答案。面试官看后非常满意,告诉我:我是他当天面试的所有人中唯一考虑到所有边界情况的人。我相信,如果没有做科研时自己实现模型的那些经验,我是不可能答得如此好的。 

其次,科研还意味着“推销”自己的工作。由于我多次参加国内外的顶级会议,并在会上介绍自己的工作、与同行交流,这使我的表达能力得到了很大的提高。找工作的面试不是考试,把面试题做对不等于被聘用,面试考察的还有面试者和面试官进行沟通的能力,考察面试者是否能够把自己的思想讲清楚。尤其在进行英文面试时,英文表达能力就显得尤为重要。多次国际会议的经验让我在英文面试时能从容应对,清晰地表达自己的想法,甚至在一次面试中我还成功地“推销”了我的论文,面试官表示回去要好好读一读,这显然给我的面试结果增了很多分。

综上所述,科研不会给找工作拖后腿,反而会成为我们找工作的重要筹码。相信只要利用好硕士阶段的时间,每个人都能在科研和找工作两方面获得丰收。■

脚注:

1WI输入法是哈尔滨工业大学计算机学院语言技术研究中心网络智能研究室开发的iPhone/iPad/iPod Touch/Android平台上的智能拼音语句输入法。它支持语句输入、全拼智能按键纠错、模糊音输入、简拼输入以及多种双拼输入方式。

作者:

 裴文哲

北京大学硕士生。主要研究方向为深度学习在自然语言处理中的应用。

 

posted @ 2015-07-14 18:45  菜鸡一枚  阅读(950)  评论(0编辑  收藏  举报