@songying
2019-06-16T16:53:25.000000Z
字数 6450
阅读 1060
博客文章
前些日子刷知乎的时候,刷到一个研究生提到,其在开学之初,老师给了他一份礼物: 论文大礼包。emmm, 瞬间觉得自己好惨,我整个研究生涯完全是放养,自己摸索过来的, 不要说论文大礼包,老师都没见过几次,哎,说多了都是泪。
考虑到, 我国研究生现状, 估计很多人都无法遇到很合意的老师,更不要说论文大礼包了,于是,我决定,将我整个一年多来看过的,觉得值得一看的论文总结一下,给各位还在挣扎在NLP门口的各位同学一些参考。
从我的学习道路来看, 中间的确走了很多弯路, 下面我来细数一下。
机器学习:不要花太多精力
前期花在机器学习上的时间也不算少,反反复复也滤了差不多三遍,但是,记忆丢失太快,很多东西随着时间流逝就只剩下概念和思想了,一些细节实在想不起来。 对此,我的建议是,对于 NLPer 来说,机器学习算法有一定的地位,但是重点不要放在那里,因为你用到的并不多,遗忘的速度要比记忆的速度快得多。
Pytorch 完胜 TensorFlow
Pytorch 对于研究者来说,其易用性要比 TensorFlow 强十倍不止, 我当初上手 TensorFlow 用了半个多月, 而Pytorch, 只用了半天。TensorFlow 太过复杂, API 太多,往往让你不知所措,强烈建议使用 Pytorch。
文本分类 vs 阅读理解
对于初学者来说,最初选择一个相对简单的方向是最佳的,文本分类就是一个很好的选择,不仅仅是因为其简单,更是因为其在工业界也是用的最多的。
想当初,我直接上手 阅读理解,阅读理解是一个很棒的方向,但模型实在太复杂了,对于初学者来说相当不友好,如果你还使用TensorFlow,恭喜你,入门看 Paper 就得至少俩月,那段时间真的是欲生欲死。(没错,我看的第一篇Paper 就是 BiDAF, 那个时候我连 Word Embedding 还没搞清楚,结果就被虐的很惨)。
对于文本分类,可以看看我之前的文章:几个可作为Baseline的文本分类模型, 从这篇文章中涉及到的东西延伸, 一个月就足以完全摸透文本分类领域了,此时你就算真的入门了。顺便推荐一下我的仓库:TextClassification-Pytorch
代码和 Paper 同等重要
这个就不多说了,如果你非说,我是搞理论的,麻烦出门右转。 实现一些经典的 Paper 对自己是很有帮助的。
不要随随便便答应你的学姐学长
有时候,你的学姐学长会想让你帮他实现一下论文或其他, 请仔细考虑,如果你的师姐,师兄很厉害(代码牛逼或论文顶会),那你当然屁颠屁颠的帮忙去写,而大多数情况是, 你的师兄师姐,不强,潜台词我就不说了, 不要轻易浪费你的时间,学会拒绝。
如果可以,早点出去实习
现在很多公司的资源要比实验室丰富的多,大牛也多,早点实习开阔眼界,我现在就挺后悔自己当初懵懂无知,匆匆少年。
我一直认为少而精才是正道,因此,我在这里只推荐三个资源,你看完,完全足够入门了:
这三个课程大概一个多月就足够了,看完之后, 你对深度学习有一个大致的了解,这个时候,你就可以看 Paper 了。
## Paper 入门精选
这里的文章只选择了一些通用领域的,对于一些专用领域如对话, 多任务学习, 建议看对应的综述性文章。
入门必看:
2018自然处理研究研究报告:这篇报告囊括了几乎全部的NLP任务,缺点是,不够前沿,涉及到的深度学习的内容并不多,但十分值得一看。
链接:https://pan.baidu.com/s/1Rwp84EddnaVxKULxs_RzSg
提取码:faws
刘知远老师维护的仓库:主要讲述入门NLP领域时的诸多事项,主要偏向学术,强烈推荐。
https://github.com/zibuyu/research_tao
大神综述
基本神经单元
首先,推荐张俊林大佬的一篇博客,这篇文章对比了 CNN, RNN, Transformer:
对于这些基本单元,有一篇中文Paper 讲的很详细,虽然没啥创新点:《深度学习研究综述》,推荐一看
一个入门的资料:零基础入门深度学习, 不过这些只要你好好看了吴恩达的课程和李宏毅老师的课程,这些基本不是问题。
关于 RNN, 主要是 LSTM 与 GRU 原理及二者之间的比较,看博客足够了:
关于CNN, 我个人没有看过早期的Paper,诸如 VGGNet, GoogleNet 等,如果感兴趣,你可以全都看看,我只看了最近的几篇文章如ResNet,DenseNet等。
上述之所以不推荐看的原因在于很多文章其实对于NLP领域用处不大,且 ResNet 的诞生基本上是打开了一个新天地,但有时间可以看看,万一有啥新灵感呢。
其余的一些 cnn 变体大多是用于图像领域,这里就不深入了,我也不会,,,
语言模型
Distributed Representations of Words and Phrases and their Compositionality (可不看,主要介绍Word2Vec中的几个优化Trick)
我早期的一篇文章: 语言模型:从n元模型到NNLM (其实早期的文章是写在自己的网站下的,后来,懒得充钱了,就迁移过来了,可以看出写作手法很稚嫩,毕竟是一年多以前的文章了)
其实语言模型的经典文章有很多,但是,考虑到, 语言模型本身的研究价值在逐渐向预训练模型转移, 且如今情况下,预训练语言模型已经是土豪们玩的游戏,我等乞丐实验室还是早早避开,对大多数人来说,研究的价值有限。
如果你想研究预训练语言模型,那么语言模型的经典文章依旧有很强的研究价值,前提是,你有足够的资源,而绝大多数实验室和公司并没有。
词向量
推荐 Paper:
之所以可以不看Glove 与 Fasttext, 是考虑到词向量的时代或许在接下来的几年中完全逝去, 没必要浪费太多时间在旧的方法上,用到再看也不迟。
词向量与语言模型推荐两篇长文,写的很好,必看:
预训练语言模型
首先推荐一篇文章:
推荐Paper:
最近,对于 Bert 的一些改进文章:
Sequence to Sequence
其实就我个人看来, Seq2Seq 其实就是一个思想,并没有什么特殊之处,现在大家提到的也并不多了,其实都默认在许多模型之中了, 建议看看相关博客即可。
Attention
Attention 部分的介绍可以看我的相关文章,这方面我看的相对多一些,毕竟阅读理解中各种花式 Attention 简直亮瞎眼睛:
入门Paper:
Transformer 单独列出来是为了强调其重要性,下面三篇文章建议精读 :
Why Self-Attention? A Targeted Evaluation of Neural Machine Translation Architectures (可不看)
Attention 的文章很多,但大多是用在具体任务中的各种骚操作,不同的任务中采用的Attention是有较大区别的,具体的可以自己看相关领域的文章,如果你想了解超复杂的Attention, 欢迎关注阅读理解领域,保证让你欲生欲死,哈哈哈。
Memory Networks
这块目前的进展很慢, 还无法判断有没有研究价值,可以看看找找思路,当初也是比较火的方向,可是与Attention 并驾齐驱的,但现在看来,Attention 大行其道的今天,Memory Networks 已不复往日:
关于 Attention 与 Memory Network 之间的关系可以参见:Attention and Memory in Deep Learning and NLP
调参是一个经验和很耗时间的工作,因此这些论文大多都是给出建议,具体的还是要看你实际应用。
优化算法
一些最近的优化算法,目前还没有人大规模使用,需要经过时间的检验,目前用的最多的依旧是文章中提到的几种算法,足够你掌握了。
Dropout
激活函数
权重初始化
层连接
这三篇文章涉及到的思想都很棒,有相关之处,都值得一看。
Normalization
其余的一些 Normalization, 可以等到研究的时候看,目前 NLP 中用到的并不多,主要是目前网络并不深。
Tricks
上述的所有 Paper 都更偏向于基础研究,对于上层应用如文本分类,阅读理解,机器翻译等因为涉及到的文章实在太多, 这里就不列举了,感兴趣的话,后期可以分别出专题来讨论。
其实还有很多文章没有推荐,一方面是考虑到这是倾向于对于入门NLPer的文章,不应该大规模的文章轰炸,另一方面,其余的一些文章更多的是基于上述文章的一些改进或者是一些Trick,重要性相对低一些。可以等大家入门之后,在自行专研讨论。
写这么多,真的好累,好废时间,大家觉得写的凑合,就点个赞再走吧。