[关闭]
@songying 2019-06-16T16:53:25.000000Z 字数 6450 阅读 1060

听说你急缺论文大礼包?(更新ing)

博客文章


前言

前些日子刷知乎的时候,刷到一个研究生提到,其在开学之初,老师给了他一份礼物: 论文大礼包。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 入门精选

这里的文章只选择了一些通用领域的,对于一些专用领域如对话, 多任务学习, 建议看对应的综述性文章。

入门必看:

大神综述

基本神经单元

首先,推荐张俊林大佬的一篇博客,这篇文章对比了 CNN, RNN, Transformer:

对于这些基本单元,有一篇中文Paper 讲的很详细,虽然没啥创新点:《深度学习研究综述》,推荐一看

一个入门的资料:零基础入门深度学习, 不过这些只要你好好看了吴恩达的课程和李宏毅老师的课程,这些基本不是问题。

关于 RNN, 主要是 LSTM 与 GRU 原理及二者之间的比较,看博客足够了:

关于CNN, 我个人没有看过早期的Paper,诸如 VGGNet, GoogleNet 等,如果感兴趣,你可以全都看看,我只看了最近的几篇文章如ResNet,DenseNet等。

上述之所以不推荐看的原因在于很多文章其实对于NLP领域用处不大,且 ResNet 的诞生基本上是打开了一个新天地,但有时间可以看看,万一有啥新灵感呢。

其余的一些 cnn 变体大多是用于图像领域,这里就不深入了,我也不会,,,

语言模型

如果你想研究预训练语言模型,那么语言模型的经典文章依旧有很强的研究价值,前提是,你有足够的资源,而绝大多数实验室和公司并没有。

词向量

推荐 Paper:

之所以可以不看Glove 与 Fasttext, 是考虑到词向量的时代或许在接下来的几年中完全逝去, 没必要浪费太多时间在旧的方法上,用到再看也不迟。

词向量与语言模型推荐两篇长文,写的很好,必看:

预训练语言模型

首先推荐一篇文章:

推荐Paper:

最近,对于 Bert 的一些改进文章:

Sequence to Sequence

其实就我个人看来, Seq2Seq 其实就是一个思想,并没有什么特殊之处,现在大家提到的也并不多了,其实都默认在许多模型之中了, 建议看看相关博客即可。

Attention

Attention 部分的介绍可以看我的相关文章,这方面我看的相对多一些,毕竟阅读理解中各种花式 Attention 简直亮瞎眼睛:

入门Paper:

Transformer 单独列出来是为了强调其重要性,下面三篇文章建议精读 :

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,重要性相对低一些。可以等大家入门之后,在自行专研讨论。

写这么多,真的好累,好废时间,大家觉得写的凑合,就点个赞再走吧。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注