记EMNLP2020投稿
小插曲
这篇文章在投稿完EMNLP2020的晚上就想动手写来着,但是将看了一遍又一遍的文章投出去之后满是疲惫,根本没有精力去完成别的事情。满脑子想的就是睡觉睡觉,且马上要赶去火车站,时间实在是紧迫了一些。等我到达车站已经10点多钟了,不知道是因为疫情原因还是确实时间太晚了,人很少。我很快便在人工窗口取好了票,进去站台等布不知道等了多久,无意间撇了一眼自己的火车票,“深圳站”!才想起来我慌忙改签的时候没有注意到达站是什么,拿起12306刷了一下发现凌晨26分有一趟到深圳东的火车,这样回学校坐地铁就不用换乘了。看到距离火车出发还有一个半个小时,匆忙回到售票处想去退票,“我想退票,然后改签到凌晨12点26分的这一趟”,售票员说了句不让改签,我争辩了一下,我重申我的意思就是“退票,然后重新买下一趟”,售票员有些不耐烦,问我是哪一趟,我说T2331,并把显示这趟的详情页的手机递给了她,说尽量买中铺。拿到票之后看也没看便收了起来。因为很晚了,又困,在站台坐着睡了会,随后车到站了,顺利的到达9号车厢,进车厢才发现刚刚售票员给我的票是第二天早上的票。。。。实在困得受不了,只能上车补票。躺下的时候我就在想,平时打字的时候我就经常打错别字,这次买票是不是也算是一种“错别字”,那些科研上没有成功的idea是不是也是一些“错别字”,有的错别字不影响人理解,有的就会导致语义完全变化,都还没来记及把错别字引申到人生路上的错别字,我就应该已经睡着了。第二天醒来也完全没有了当时的感慨。
投稿原因
今年由于疫情缘故,太部分时间都是在家,本应该是好好刷题学习的时间,但是意外的EMNLP准备时间超过了今年上半年准备找实习的时间,这是一件很诡异的事情,因为年初的时候我想的就是好好找实习,然后搞个实习经历,再开心的秋招。计划总是赶不上变化,由于一开始被小蜜打击了之后,就投了一个头条相对边沿的部门,加上头条效率很高,很快就拿到了头条的实习offer。拿到了offer之后,懒散的情绪很快就占据了整个大脑,刷题、复习的事情马上就被我仍到一边,科研热情再次被燃起(可能是因为面试的时候被问了为啥ACL你不是一作),因此想在研究生期间能够自己有一篇顶会,尽管前不久我想的是论文也没啥用。。。
Pointer Network 指向了失败
不管怎么说,在家干活,都必须要考虑到一个效率低的问题,因此如果在家产出一篇文章的概率就会大打折扣,但是自从很想获得一篇顶会之后,我的思考能力似乎有了一定的提高,很快便在和竹哥、宇瀚哥讨论过程中想到了一个利用Pointer Network去做情感-原因对抽取(Emotion-Cause Pair Extraction,ECPE),直观感觉上还是挺靠谱的,加上和范创师兄一讨论,得到肯定。心里觉得“这事稳了一半了”。马上便动手噗呲噗呲地写了起来,心里想的还挺美,觉得到emnlp截稿还是有时间的,代码一定要往可扩展性上写,一定要可读性高,一定要做对比实验的时候比较方便,一定要...,在代码结构上花了还是挺大的功夫的,大概花了一周多的时间,把网上的Pointer Net在NLP一些有关的文章稍微看了看,并且按照自己的想法,把PointerNet用在了ECPE上,在还没有跑代码之前自我感觉良好,毕竟解决一个又一个的BUG,觉得自己马上就要稳了,但是最终实验结果很不理想,经过多次分析都是觉得在Decoder部分的输入太相似了,没有足够的信息进行解码。期间想了各种办法,包括换结构,利用上一些乱七八杂的信息,终究还是没有用,后续零零散散的时间用在上面皆是失败告终。
Supervised Self-Attention不是出路
此时在内心是已经放弃了的,要不是师兄不找我让我写一篇ACL推广文约稿(后续我会补上这篇文章),估计这个事情就已经到这里终结了。说来也很凑巧,师兄让我参考的写作规范的一篇文章[1]是做ABSA中实体-意见二元组的,这和我们要做的ECPE任务很相似,我从中收到了一些启发,便开始和师兄说了带监督机制的自我注意力模型去做ECPE,再次得到师兄更加牛逼的肯定。师兄:“这个想法简单,直观,挺好的,赶紧试一下!”我内心觉得有点骄傲,“哇,难道我真的要投顶会了吗?”(尽管只是投,但对我这样的废物也很好了)。倘若这个idea看起来不是那么靠谱就好了,实验之后的差效果也就不会让人如此难受了,加上时间已经非常紧急了,还是有点急躁,另外在准备的过程中,发现了两个和我想法非常相似度的文章,简直让我没法做下去,和师兄商量之后,师兄让我把融合方式改了一下,加上hinge loss来突出文章重点,尽管有那么一点点效果,还是比不上SOTA。假设一个情景,还有两三个星期要截稿了,你的实验还没跑通,你会是什么样的状态?我很急,师兄也急着(毕竟提供了那么多想法让我去实现之后都没有用),我多次怀疑自己代码有问题(让宇瀚哥帮忙review了一下也不行)。此时已经不是放弃不放弃的事情了,接连的两个idea实现都出问题让我对自身水平感到怀疑(这种想法是很糟糕的想法,菜鸡也要有自信好吧?),幸好后面师兄自己实现了一下这个简单idea之后和我实现效果差不多,根本达不到SOTA才让我感到缓和一点(EMNLP可以不投,但是自我怀疑/否定是很让人难受的一件事情)。心里放松了起来,反正还有一个星期就要截稿了,也来不及了,idea没用就没用吧,可以好好玩游戏了。故事本来的结局应该是这样的,毕竟我都已经开始找刘哥打游戏了,安排返校/实习的事情了。
Sequence Labeling 过程很曲折
岂料,有一个早上师兄打过电话来问我,“咱们ACL文章当初有个Baseline的方法,效果挺好的,可以重新改一下跑一下实验弄起来吗?”“没问题,代码和数据都还有呢”,便开始了第三次启程。尽管这个时候只剩下一个星期了,但是由于以前就写好了代码,也不是很慌,本来我以为压力全在师兄这里,毕竟文章全是师兄负责在写,还是需要修改很多的。岂料真的是屋漏偏逢连夜雨,某天早上八点多查看实验结果的时候,发现服务器登不上了,我一开始怀疑是断网了,需要重连frp,这一推断是基于我早上六点多还起来记录了一次实验结果。但是万万没想到是学校的网络进行光线改造[2]导致无法用外网,千算万算没算到这一茬,内心比较奔溃,但还是师兄心态比较好,让我先干别的,等网好了再跑,尽管等网好了之后就剩三天不到的时间。焦急的等待期过了,到了通知上的时间还是没有好,加上是周日,网络中心没人上班(这到底是什么神仙运气?)第二天上班后打过电话沟通也是让我等着,有人排查去了,一直到了六一下午两点才解决这个问题,距离UTC时间的六一截稿日期就剩二十几个小时。幸好这个实验还算顺利,差不多熬了个通宵,第二天就中午就收尾了。到下午快提交的时候,师兄通知我EMNLP推迟48小时(ps. 美国不愧是世界灯塔国,铁老大了,因为动乱就说延期,要是其他国家怎么可能有这样的权力),就把模型时间分析的实验放到后面再去做了,另外考虑这次EMNLP强调论文的可复现性,就对代码和模型重新整理了一下并且重新跑了部分实验(最后分析来不及做了,没用上,我猜测是因为时间突然的充裕让我有点不适应,好几个安排都很不合理)。在最后的实验结果分析阶段,要感谢一下健哥和竹哥的帮忙,这些帮助让师兄和我终于把这篇文章投出去了。后面几个小时林林总总的论文修改阶段大可不题,毕竟只能算是一些大风大浪中的小雨滴。 写流水账还是挺有意思的,都不知不觉写了快两个小时了。这文章就是随便记一下该EMNLP投稿的历程,圆了我的投稿梦。(我个人觉得中的概率取极限值就等于0了。。。为师兄和我合作花太多时间感到不值,不然也许能出更好的工作,而不是把时间花在一篇失败的文章上面)
备注
人都会不自觉夸大自己在某份工作中的作用,也许你把我上面提到的东西乘上50%的权重也不过,毕竟这篇文章完全是师兄带我的,感激一下! 最后套用一句好听的话,问题不大,一切向好!