NLP最新资源:论文、代码、博客、视频一应俱全
整理 | Rachel
出品 | AI 科技大本营(ID:rgznai100)
【导读】在近几年,NLP 领域得到了快速的发展,包括 ELMo ,BERT
在内的新方法不断涌现,显著提高了模型在一系列任务的表现。在本文中,作者针对主要的 NLP 模型、常用开源机器学习库和多任务学习的相关资源进行了归纳,提供了包括论文、代码、视频和博客在内的多种学习资源。
随着 NLP 领域的不断发展,大量新的机器学习模型出现,ELMo、BERT 等取得了较好的进展。在之前的文章中,营长为大家推荐过一些针对的NLP 入门资源,包括优质中文 NLP 资源汇总、初学者福利,NLP 知识结构总结、NLP 最全资料包、一文了解深度学习在 NLP 中的最佳实践和技巧等。在今天的推荐中,营长为大家整理了一份针对最新 NLP 机器学习模型的学习资源汇总,包括论文、视频、博客、代码等,帮助大家紧跟技术潮流,快速掌握最新技术。
在本文中,作者为大家整理了 NLP 的阅读清单,包括论文、博客、代码和视频。该资源主要包含了在NLP 领域的机器学习模型及相关资源,并包含了许多最新的模型,包括 LSTM,AWD-LSTM,指针模型,Attention 机制, ELMo,ULMFit,OpenAI GPT,BERT。文章对两个较常用的开源机器学习库 Pytorch 和fast-ai 的学习资料也进行了整理。另外,考虑到近几年多任务学习模型使用较多,作者对相关资源也进行了归纳。
在最近的 NLP 进展中,很多研究都通过将更大的transformer 和现有模型结合,解决多任务学习问题。并且,越来越多的论文和项目使用大规模的计算资源来进行资源计算,因此由于算力限制,我们往往需要使用开源的模型。
1、 fast-ai
视频:“快速入门深度学习”课程
提供了使用 fast-ai 开发语言模型的详细教程
视频地址:
https://course.fast.ai/videos/?lesson=4
2、LSTM
尽管目前 transformer 是主流的趋势,但在一些项目中LSTM 模型仍有应用。如果使用 LSTM 模型,建议使用AWD-LSTM 来搭建项目。
论文《LONG SHORT-TERMMEMORY》
建议快速浏览以了解模型原理及细节
论文地址:
https://www.bioinf.jku.at/publications/older/2604.pdf
博客《Understanding LSTM Networks》
该博文详细介绍了 RNN 和 LSTM 的原理及区别,并且提供了模型的可视化介绍,有助于快速理解模型;
博文地址:
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
3、AWD-LSTM
AWD-LSTM 对 LSTM 模型进行了改进,包括在隐藏层间加入dropout ,加入词嵌入 dropout ,权重绑定等。建议使用AWD-LSTM 来替代 LSTM 以获得更好的模型效果。
论文
《Regularizing and OptimizingLSTM Language Models paper》
提出了 AWD-LSTM 模型
论文地址:
https://arxiv.org/pdf/1708.02182.pdf
代码
Salesforce 提供的模型源码
GitHub 项目地址:
https://github.com/salesforce/awd-lstm-lm
fast-ai 提供的模型源码
GitHub 项目地址:
https://github.com/fastai/fastai/blob/master/fastai/text/models/awd_lstm.py
4、指针模型
尽管指针模型的应用并不多,但指针模型提供了注意力机制的最初思想,值得简单了解。
论文《Pointer SentinelMixture Models 》
提出了指针模型
论文地址:
https://arxiv.org/pdf/1609.07843.pdf
官方说明视频
论文提供的官方说明视频
视频地址:
https://www.youtube.com/watch?v=Ibt8ZpbX3D8
论文
《Improving Neural Language Models with a continuous cachepaper》
论文地址:
https://openreview.net/pdf?id=B184E5qee
提示:在一些开源的机器学习库(如 Pytorch 和Tensorflow)中,其代码使用权重衰减(weight decay)代替了正则化(regularization)。二者的差别在于,权重衰减直接对权重更新规则进行更改,正则化则调整损失函数。一些论文的作者提到使用 SGD 优化参数的效果优于 Adam 优化,一部分原因可能是其使用的机器学习库使用权重衰减替代了正则化。
5、Attention 模型
尽管注意力机制应用广泛,但该模型并不总是最优的选择。
课程:斯坦福 CS224n 课程对 attention 机制的介绍
对 attention 机制的介绍从 1:00:55 处开始
视频地址:
https://www.youtube.com/watch?v=XXtpJxZBa2c
论文《Attention is all youneed》
该论文也包含了对 Transformer 的介绍
论文地址:
https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf
博文:《The AnnotatedTransformer》
使用 Pytorch 对 Transformer 进行复现的文章,由 HarvardNLP 发布
博文地址:
http://nlp.seas.harvard.edu/2018/04/03/attention.html
视频:Google 发布的 attention 机制介绍官方视频
视频地址:
https://www.youtube.com/watch?v=rBCqOTEfxvg
博文:Google AI 对 Transformer 的介绍博文
博文地址:
https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html
视频:
论文介绍视频地址:
https://www.youtube.com/watch?v=iDulhoQ2pro
模型介绍视频地址:
https://www.youtube.com/watch?v=rBCqOTEfxvg
论文
《Transformer-XL:Attentive Language Models Beyond a Fixed Length Context paper.》
Google 提交的Transformer-XL 模型论文
该模型对 Transformer 进行了改进,但这一改进没有被 BERT 采用
论文地址:
https://arxiv.org/pdf/1901.02860.pdf
博文:Google 对 Transformer-XL 的介绍博文
博文地址:
https://ai.googleblog.com/2019/01/transformer-xl-unleashing-potential-of.html
博文
《Transformer-XL — CombiningTransformers and RNNs Into a State-of-the-art Language Model 》
对 Transformer-XL 进行了介绍
博客地址:
https://www.lyrn.ai/2019/01/16/transformer-xl-sota-language-model/
视频:对 Transformer-XL 模型进行介绍
视频地址:
https://www.youtube.com/watch?v=cXZ9YBqH3m0
博文《The IllustratedTransformer》
博文地址:
http://jalammar.github.io/illustrated-transformer/
博文《Attention and Memoryin Deep Learning and NLP》
一篇对注意力机制进行介绍的博文
博文地址:
http://www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/
博文
《Attention and Augmented Recurrent Neural Networks blog》
对注意力机制和正则化循环神经网络进行了介绍
博文地址:
https://distill.pub/2016/augmented-rnns/
代码:使用一个简单的 Transformer 模型进行序列标注
项目地址:
https://medium.com/@kolloldas/building-the-mighty-transformer-for-sequence-tagging-in-pytorch-part-i-a1815655cd8
对 Transformer 模型的其他改进
Universal Transformer
Google的介绍博文地址:
https://ai.googleblog.com/2018/08/moving-beyond-translation-with.html
Evolved Transformer
介绍博文地址:
https://www.lyrn.ai/2019/03/12/the-evolved-transformer/
现有对 Transformer 模型改进较少的原因之一是模型的算力消耗较大。一般而言, Transformer 模块的数量越多,模型训练效果越好,这就意味着如果没有足够的算力,很难对模型效果进行优化。另外,在对语言模型的训练往往需要使用更大的批处理尺寸,往往需要特殊的芯片支持。
6、对模型的其他改进
这一部分列举了一些相关的学习资源,如果只想了解最核心的内容可以略过此部分。
论文
《Character-Level Language Modeling with DeeperSelf-Attention 》
论文地址:
https://arxiv.org/pdf/1808.04444.pdf
论文
《Using the output embedding to Improve LangaugeModels 》
论文地址:https://arxiv.org/abs/1608.05859
论文《Quasi-Recurrent Neural Networks paper》
使用卷积层实现 LSTM 的并行计算,提高了 LSTM 的计算速度。提供了相关代码
论文地址:
https://arxiv.org/abs/1611.01576
fast-ai提供的代码地址:
https://github.com/fastai/fastai/blob/master/fastai/text/models/qrnn.py
Salesforce提供的代码地址:
https://github.com/salesforce/pytorch-qrnn
博文《Deep Learning for NLP Best Practices blog》
介绍了对 LSTM 模型的设计和调参方法
博文地址:
http://ruder.io/deep-learning-nlp-best-practices/
博文
《Notes on the state of the art techniques for languagemodeling blog》
对 fast-ai 中各类模型的使用进行了总结
博文地址:
https://www.fast.ai/2017/08/25/language-modeling-sota/
博文
《Language Modes and Contextualized Word Embeddings blog》
对 ELMo, BERT 及其他模型进行了一个简单的综述
博文地址:
http://www.davidsbatista.net/blog/2018/12/06/Word_Embeddings/
7、多任务学习
多任务学习可以使用一个模型解决多个任务,例如将一段文本翻译成包含部分德文的英文文段。
论文
《An overview of Multi-Task Learning in deep neural networks》
对使用神经网络进行多任务学习进行了综述
论文地址:
https://arxiv.org/pdf/1706.05098.pdf
论文
《The Natural Language Decathlon: Multitask Learning asQuestion Answering》
OpenAI GPT 是该论文的一个应用实例
论文地址:https://arxiv.org/abs/1806.08730
8、Pytorch
Pytorch 提供了一些官方教程,是非常好的学习资源。需注意的是,该教程没有包含对Transformer 的介绍。
Pytorch官方教程
教程地址:
https://pytorch.org/tutorials/#text
9、ELMo
ELMo 是第一个使用预训练模型进行词嵌入的方法,通过将需要处理的语句输入 ELMo,我们可以得到句子中每个词的向量表示。
论文
《Deep contextualizedword representations》
提出了 ELMo 模型
论文地址:
https://arxiv.org/abs/1802.05365
对 ELMo 的视频介绍
视频地址:
https://vimeo.com/277672840
10、 ULMFit
在 Kaggle 和其他竞赛中,ULMFit 的效果都超越了其他模型。
论文
《Universal LanguageModel Fine-tuning for Text Classification 》
提出了 ULMFit 模型
论文地址:
https://arxiv.org/abs/1801.06146
fast-ai 发布的模型介绍博文
博文地址:
http://nlp.fast.ai/classification/2018/05/15/introducting-ulmfit.html
课程《Cutting Edge DeepLearning course》第10课对 ULMFit 的介绍
fast-ai 发布的系列课程
课程地址:
http://course18.fast.ai/lessons/lesson10.html
11、OpenAI GPT
由于 BERT 针对 GPT1 的缺点进行了针对性改善,建议在开发中使用 GPT2。
GPT1
论文地址:
https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf
博客地址:
https://openai.com/blog/language-unsupervised/
代码地址:
https://github.com/openai/finetune-transformer-lm
GPT2
论文地址:
https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
博客地址:
https://openai.com/blog/better-language-models/
代码地址:
https://github.com/openai/gpt-2
OpenAI 发布的 GPT2 介绍视频
视频地址:
https://www.youtube.com/watch?v=T0I88NhR_9M
12、BERT
截止目前效果最好的语言模型。
论文
《BERT: Pre-training ofDeep Bidirectional Transformers for Language Understanding》
提出了 BERT 模型
论文地址:
https://arxiv.org/abs/1810.04805
博文:Google 对 BERT 的官方介绍
博文地址:
https://ai.googleblog.com/2018/11/open-sourcing-bert-state-of-art-pre.html
博文:对 BERT 介绍的系列博文
编码器介绍
博文地址:
https://medium.com/dissecting-bert/dissecting-bert-part-1-d3c3d495cdb3
BERT 提出的新结构介绍
博文地址:
https://medium.com/dissecting-bert/dissecting-bert-part2-335ff2ed9c73
解码器介绍
博文地址:
https://medium.com/dissecting-bert/dissecting-bert-appendix-the-decoder-3b86f66b0e5f
论文
《Reducing BERTPre-Training from 3 Days to 76 Minutes 》
介绍了一个新的针对语言模型的优化器,可以显著降低模型训练时间
论文地址:
https://arxiv.org/abs/1904.00962
原文链接:
https://medium.com/@kushajreal/how-to-become-an-expert-in-nlp-in-2019-1-945f4e9073c0
(*本文为 AI科技大本营编译文章,转载请微信联系 1092722531)
◆
精彩推荐
◆
6月29-30日,2019以太坊技术及应用大会 特邀以太坊创始人V神与以太坊基金会核心成员,以及海内外知名专家齐聚北京,聚焦前沿技术,把握时代机遇,深耕行业应用,共话以太坊2.0新生态。
扫码或点击阅读原文,既享优惠购票!
推荐阅读
阿里带火的中台到底是什么?白话中台战略
入门学习 | 什么是图卷积网络?行为识别领域新星
文件操作So Easy!来,一起体验下Python的Pathlib模块~
有一种青春叫高考,Python爬取历年数据,说说我们一起经历的高考
漫话:如何给女朋友解释什么是编译与反编译
超级黑幕:开发者千万别被算法迷惑了!
鲍岳桥:52 岁还在熬夜写代码! | 人物志
IBM 确认裁员约 1700 人;华为新款操作系统来了!开通 5G 服务不换卡不换号 | 极客头条
9年前他用1万个比特币买了两个披萨, 9年后他把当年的代码卖给了苹果, 成为了GPU挖矿之父

相关文章:

android在线播放音乐
2019独角兽企业重金招聘Python工程师标准>>> android在线音乐 一种方法是调用android自带的播放器 //调用系统自带播放器Intent intent new Intent();Uri uri Uri.parse("http://mul1.tximg.cn/music/group/bbs/mp3/44/100715/1279159638887.mp3?z909255638…

head和tail命令详解
基础命令学习目录首页 原文链接:https://www.cnblogs.com/amosli/p/3496027.html 当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十…

【FFmpeg】ffmpeg工具源码分析(四):filter(过滤器、滤镜)详解
1、简介 FFmpeg用来处理音视频,实现处理功能的核心就是filter(滤镜),和我们使用的美颜功能的滤镜意思差不多,FFmpeg的filter(滤镜)不仅可以处理视频,还能处理音频、字幕等。 官方说明: 在编码之前,ffmpeg可以使用 libavfilter 库中的过滤器处理原始音频和视频帧。几…

【ZooKeeper Notes 14】数据模型
转载请注明:ni掌柜 nileadergmail.com本文主要讲述ZooKeeper的数据模型,包括ZooKeeper的数据视图,节点的层次结构以及节点类型等基本属性。Zookeeper的视图结构类似标准的Unix文件系统,但是没有引入文件系统相关概念:目…

李理:为什么说人工智能可以实现?
作者 | Just出品 | AI科技大本营(ID:rgznai100)尽管市面上关于深度学习的书籍很多,环信 AI 负责人李理认为大部分只关注理论或只关注实践。于是,基于他对深度学习多年的理解,自己着整理手写了一本深度学习理论与实战书…

【FFmpeg】FFmpeg编解码H264产生马赛克、伪影的解决方法
1、问题描述 使用FFmpeg编码H264,再解码显示时,产生马赛克:有时是在画面静止时,静止时间越长,马赛克、伪影越多;有时是在画面切入切出时;有时是在网络带宽不够时 2、原因分析 2.1 丢帧 网络状况差的情况下(带宽不足),容易丢帧,在视频画面播放过程中,若I帧丢失了,…

LINUX内核升级
内核版本是2.6.18,新的内核是2.6.26。 1.下载新内核,下载网站www.kernel.org 2.copy内核到/usr/local/src下 3.解压内核 解压内核命令 tar -xjvf linux-2.6.26.tar.bz2 4.清理以前编译所生成的文件 命令为 make distclean,如果以前没有编…

我在美团的这两年,想和你分享
作者 | 石晓文来源 | 小小挖掘机(ID:wAIsjwj)012017.08.14,结束了两周的等待,如愿以偿开始了自己的美团实习生活,本来抱着三五个月走人,争取下一份实习的心态,没想到一直到转为暑期实…

【Qt】QtCreator updatePchInfo:switching to none
1、Pch名词解释 Pch(PreCompiled Headers)预编译头文件。 使用方法: CONFIG+=precompile_header PRECOMPILED_HEADER=XXX.h 2、updatePchInfo:switching to none 和QtCreator代码格式化Beautifier插件配置了clang code model有关系。 猜测:clang分析预编译头文件相关,…

学习框架、库的经验
熟悉基础语法把框架的功能过一遍,看看有哪些功能从文档的demo入口去学习上手会更快在你的开发目录要有一个专门写demo的页面,用以调试页面,试验新功能如果框架或者库提供有demo则更好,可以从中得到很多有用的东西

开源应用程序结构
2019独角兽企业重金招聘Python工程师标准>>> 给有兴趣的同学介绍的。这里面介绍了很多著名的开源软件的架构,相信读后会有所收获。 地址:http://www.aosabook.org/en/index.html 转载于:https://my.oschina.net/qinlinwang/blog/71649

免费GPU哪家强?谷歌Kaggle vs. Colab
作者 | Jeff Hale译者 | Monanfei责编 | 夕颜出品 | AI科技大本营(id:rgznai100)谷歌有两个平台提供免费的云端GPU:Colab和Kaggle, 如果你想深入学习人工智能和深度学习技术,那么这两款GPU将带给你很棒学习…

【SVN】svn“E155017工作副本的参考文件损坏、E200014文件校验和不匹配”的解决方法
1、问题描述 在执行svn提交时报错 svn: E155017: 工作副本的参考文件损坏 svn: E200014: ‘test.cpp’ 的文件校验和不匹配: 期望:xxxx 实际:xxxx 2、解决方法 2.1 拷贝 最好将提交的项目拷贝一份; 2.2 删除 使用svn rm --k…

QT程序启动加载流程简介
1. QT应用程序启动加载流程简介1.1 QWS与QPA启动客户端程序区别1.1.1 QWS(Qt Window System)介绍QWS(Qt Windows System)是QT自行开发的窗口系统,体系结构类似X Windows的C/S结构。QWS Server在物理设备上显示,QWS Client实现界面,两者…

QQ2012 Under Ubuntu
下载地址: QQ2012 Under Ubuntu转载于:https://www.cnblogs.com/ismdeep/archive/2012/08/09/2630067.html

25亿布局大湾区,创新工场的AI下一站
2019年6月5日,创新工场大湾区总部正式开业启动,集“产业投资AI 研究院商业赋能落地”三个功能为一体。当天创新工场还首次分享人工智能工程院成立两年来的成绩单,创新奇智的大湾区布局,并发布大湾区人才战略。创新工场也正式宣布第…

【TX2】TX2开发板系统默认串口有ttyS0(调试口)、ttyTHS1、ttyTHS2、ttyTHS3,通过修改设备树文件,可以新增三个串口
1、简述 TX2开发板系统默认串口有ttyS0(调试口)、ttyTHS1、ttyTHS2、ttyTHS3,通过修改设备树文件,可以新增三个串口。 2、设备树 设备树中关于串口部分的描述 2.1 基础配置 注意:在这里状态都配置成禁止ÿ…

unix的发展
转载http://blog.51cto.com/1193432/1671058转载于:https://www.cnblogs.com/vwei/p/9588823.html

让你的输入框使用Google云语音输入技术
2019独角兽企业重金招聘Python工程师标准>>> 只需一行代码,你的网站上面输入框(input),直接可以在谷歌浏览器(chrome)上面使用Google的云语音输入技术。 在你的输入框input的HTML属性里面&#…

速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法 | 技术头条
作者 | Daniel Bolya Chong Zhou Fanyi Xiao Yong Jae Lee译者 | 刘畅责编 | Jane出品 | AI科技大本营(id:rgznai100)【导读】在论文《YOLACT:Real-time Instance Segmentation》中,作者提出了一种简洁的实时实例分割全…

JSP内置对象基础知识小结
JSP提供9大内置内象:一、request内象:封装了由客户端生成的HTTP请求的所有细节,主要包括了http头信息,系统信息,请求方式,请求参数等。1、获取访问请求参数:request.getParameter("arg&quo…

一个正执行的程序如何启动另一新程序并关闭现执行程序
最简单的方法有两个函数即可实现: //启动新程序WinExec("存放另一新程序的路径", SW_SHOW);//关闭现执行软件 ExitThread(0); 若在win ce 下,用WinExec这个函数就不对了,那时就应该用ShellExecuteEx了。 SHELLEXECUTEINFO ShExecIn…

【android】java.lang.NoClassDefFoundError或classnotfount等异常错误
在android上开发,当导入一个外部的包,可能会出现这类错误,我已经两次碰到了,一次是用科大讯飞的android开发包,另一次是用Jsoup包(html 解析)。 解决方案: 先去掉加入的外部包 不要把…

Java面试题(一)部分题目
博主马上要面对几家公司的面试,故自己准备了点面试题,仅供参考! 1,线程的创建的方式:答:1,继承Thread(注意,此类其实也是实现了Runnable接口的),2,实现Runnable接口2,1. …

在win ce中如何使正在运行的软件自动升级更新
创建两个独立的程序A和B:A是现正在运行的程序,B是用于辅助新版本的A覆盖旧版A 在客户端先运行A,使A提供从服务器端下载新版A放于一临时文件夹中,并运行B,关闭A; 运行的B用于执行:用新版A覆盖旧…

刘铁岩:AI打通关键环节,加快物流行业数字化转型
导语:近日,在微软亚洲研究院创新论坛上,微软亚洲研究院副院长刘铁岩分享了关于“AI物流”行业的实践经验。以下为其发言内容。 随着时代的发展,人工智能成为了决定性的技术,我们所谈的企业数字化转型也正在从“互联网”…

Unity的三种Interceptor
Unity默认提供了三种拦截器:TransparentProxyInterceptor、InterfaceInterceptor、VirtualMethodInterceptor。 TransparentProxyInterceptor:代理实现基于.NET Remoting技术,它可拦截对象的所有函数。缺点是被拦截类型必须派生于MarshalByRe…

Python编写循环的两个建议 | 鹅厂实战
作者 | piglei(腾讯高级工程师)转载自腾讯技术工程知乎专栏循环是一种常用的程序控制结构。我们常说,机器相比人类的最大优点之一,就是机器可以不眠不休的重复做某件事情,但人却不行。而“循环”,则是实现让…

作为JavaScript开发人员,这些必备的VS Code插件你都用过吗
本文翻译自:https://www.sitepoint.com/vs-code-extensions-java-developers/转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。如今,Visual Studio Code无疑是最流行的轻量级…

matlab常遇小问题汇总
1、如何注释掉多行: 同时注释掉多行,有2种方法可行: (1)、选中所有要注释的行,按快捷键"Ctrl R" 或者 选择工具菜单"Text --> Comment"; 如果释放所有要注释的行,则按快捷键"Ctrl T&qu…