通过参加计算所的实培项目,我完成了本科阶段的第一遍论文,现在论文已经投稿,在此写下自己的收获与反思。
收获主要是两个方面,一是学习技能,二是磨练意志。先从前者说起,科研论文的产出步骤主要包括阅读论文,产生创新点,实验验证和论文写作这几个部分。在第一步中,需要精读领域中的经典论文,通过阅读经典论文了解该领域所要解决的问题,以及大致的解决方法。例如在网络表示学习中,要解决的问题就是将网络中的节点用低维向量表示,即提取网络中节点的特征,解决的方法包括利用随机游走,深度广度优先搜索,元路径,元图,图神经网络等等。然后去泛读各类增量型的论文,如何锦上添花,即在现有工作的基础上进行扩展。例如,在某个算法的基础上制定新的规则,使得新方法提取的特征更全面,在某些下游任务中表现更好,或是利用网络表示学习方法来完成推荐任务等。对增量型论文的总结也很重要,一是多了解别人从哪些方面开辟新思路有利于自己创新点的产生,二是此时的积累对完成相关工作有很大帮助。在阅读了一定量的文章之后可以开始结合现有的数据集来思考自己能做的事情,继续优化网络表示学习算法或是将其应用在实际场景中。为什么要结合数据集呢?因为再好的点子如果没有实验的验证也不能支撑论文,而实验是在数据集上跑的。因为我对网络表示学习算法理解的太浅薄,并且时间紧张,于是决定用网络表示学习做论文推荐。有了想法之后就开始进行实验了,实验主要考察的就是工程能力,将想法用代码实现出来,然后计算实验指标。
实验做完了之后就进入论文写作环节了,在这一步中一定要想明白的是自己想要解决的问题是什么以及自己的创新在哪里,因为整篇论文就是围绕这两点展开的。一般论文都分为摘要,引言,相关工作,本文方法,实验验证和总结几个部分。首先在摘要中背景,难点,本文方法(这里的本文方法和上文不同,上文的指的是单独一节,这里指的是摘要中的一部分)和结果各一句话,不应过长阐述,详细的应该在正文中讲。其中难点应和本文方法对应,描述结果时不能太笼统,最好可以定量描述。引言则是对摘要中四个要点的展开,其中最重要的是问题部分,要根据难点进行分析,在陈述本文方法时,可以按照本文的主要贡献包括…的形式,前两点写自己针对前面问题难点提出的解决方法,最后一点写实验结果。之前听老师的论文写作课时讲到,相关工作是最能体现作者阅读量的地方,在自己写论文时我才明白确实是这样。相关工作中主要讲述别人如何完成这件事的,并且要进行分类和总结优缺点。老师的课中提到可以从业务角度,技术角度和模型角度进行分类,在我这篇文章中则是按照技术角度进行分类的,即推荐的各种方法。在分类时最好能做到正交,即任意一种方法只能属于其中的一类,而不能是多类。最后总结优缺点时,切记不要说自己解决不了的问题,提出了问题却没解决,就出现了逻辑漏洞。在相关工作部分中一般都会有比较多的参考文献,参考文献应该多找近几年发表的论文。在本文方法这一节中,要先给出一张本文方法的结构图,将方法流程在图中展示出来,并和下文描述的对应上。然后给出定义(问题定义或者概念定义)并描述本文方法(按步骤或按模块)。其中一定要注意公式中出现的变量,图和自己的设计要有解释,例如我在文中说设计元路径APCPA,那么就应该解释设计这条元路径的原因,即为什么是这条元路径而不是别的。然后是实验部分,先介绍实验用的数据集和对比方法,然后讲实验是如何设计的,最后展示实现结果并分析结果。在最后的总结中,简单概况一下本文的贡献,然后讲未来的工作方向。总的来说就是先告诉读者自己要解决的问题,然后讲述自己的方法,最后通过实验证明自己方法的有效性。
回首这段经历,我慢慢学会了坐住板凳和调整心态的能力,认识到了环境对个人发张的重要性。在大学的前三年,上课之外的时间自己可以随意安排,但是在这里我需要大量的时间坐在椅子上,读文章,写代码或改论文,对我来说是一种挑战但这些早已是计算所里学生和工作人员的家常便饭了。其中有一个大哥,我每天八点多到都能看到他坐在椅子上,眼睛盯着屏幕在思考什么,那个椅子的椅背已经发黄,每次看到他我都觉得自己下的功夫还是太少了。这里每个人的工位上都有工具书,甚至不用去网上看评论也可以知道哪些是必读书籍,去上厕所时看看周围人基本上都在干这几件事,写代码,写ppt,看技术博客,或者读论文。大家平时聊天的话题也离不开找工作,技术难点和股票基金。我还听师兄说他室友为了发顶会,每天三四点钟回宿舍,八九点钟再来干活,虽然我不太赞同这样,但是能受的住这种强度的同学实在令人佩服。在这种环境下,我更能投入到工作和学习中,培养坐得住板凳的能力。但是在学校,认真学习的同学占少数,其中还混杂着装作学习的,打球谈恋爱的氛围更浓,虽说自己的行为很大程度上取决于自律,但是一个良好的氛围更能激发人的潜能,对人产生深远的影响。在参加实培项目的期间,我发现身体和精神状态对工作学习的影响尤为重要。刚开始每天的工作和通勤让我感觉很疲倦,我甚至不能坚持周一到周五每天按时到岗,后来发现工作和通勤确实很累,重要的是如何调整身体和心情。在北京地铁上不难发现,大多数人的脸上写满了疲惫,早上起床就要挤地铁,到了单位又被领导安排干活,等到晚上戾气自然很重,虽然我的工作并不很多但有时候也会很烦躁,这时候我就会想到那篇从高中就开始听的乔布斯在斯坦福的演讲,虽然每个人都知道stay hungry stay foolish,但更重要的是他在之前提到的要找到自己热爱的事情并相信这个事情的意义与价值,这样才会愈挫愈勇,不断探索,如果你很厌烦自己的工作,那么可能因为每天盼望着吃饭而stay hungry,不想探索进步而stay foolish了。对我来说,我觉得机器学习这个东西真的能贴近生活,也真的在帮助人们解决实际问题,可应用的方面也很广,所以这个工作是有意义的,并且它和数学的相关性很大,虽然现在我数学忘得差不多了,但是觉得也学的进去。这样的话,即使遇到困难和挫折,也不会太难受。
这次实培经历也反映出了我的不足之处。第一点是积累太少,想不出该做什么。一开始我读的论文太少,对自己要做的丝毫没有头绪。师兄帮我给了我一个思路,我也没太理解就直接照做了,后来才一点点理解自己做的事情。第二点是最严重的问题,没有想明白自己所面对的问题,我做的是把论文库中与某专家最匹配的论文推荐给他,因为专家自己的论文和他最匹配,所以在实验时是通过给专家推荐自己的论文来验证,而我把论文初稿写出来之后还愚蠢地认为我做的工作是把专家的论文推荐给自己。如果我以这个问题作为论文的核心,实在没有很大意义。在以后的工作中,一定要先想清楚要解决的问题,并且这个问题要有实际意义,然后再写论文。第三点是相关工作调研不足,正确的思路是阅读文献,然后结合现有的分类对这些文献进行分类整理,再写相关工作。而我因为读的文章太少,只能借鉴综述里的分类和参考文献,这篇综述还是一篇比较古老的,参考意义不大。可见平时的积累,总结和整理的重要性。第四点是坚持学习,每次在论文有稍许进展的时候我都想休息放松一下,有的时候甚至直接不去了,但是师兄们即使在闲暇时间也坚持学习各种课程。希望以后能做到适度放松,持续学习,严格约束自己。
在计算所的这段时间是我大学阶段最为难忘的学习经历,开阔了视野,看到优秀的人,同时认识到自己的渺小,希望以后能用这段经历勉励自己,保持严谨的治学态度和坚定的毅力。