来源:机器
人圈作者:Phil Blunsom(牛津大学计算机科学系副教授)等人
本文长度为3700字,建议阅读7分钟
本文为你列出牛津大学2017春季提供的关于深度自然语言处理课程的幻灯片和课程说明。
前言
这是一门关于自然语言处理的高级课程。自动处理自然语言输入和产生语言输出是通用人工智能的关键组成部分。人类传播中固有的模糊性和噪音使得传统的符号AI技术无法表示和分析语言数据。最近基于神经网络的统计技术在自然语言处理方面取得了一系列显著的成功,在很大程度上引起了学界和学术界对此领域的浓厚兴趣。
这是一门应用课程,侧重于使用循环神经网络分析并生成语言和文本的最新进展。我们会介绍相关机器学习模型的数学定义,并推导出相关的优化算法。该课程涵盖了神经网络在NLP中的一系列应用,包括分析文本中的潜在维度,将语音转录为文本,语言翻译和问题问答。这些主题分为三个高级主题,使其成为一个过程,从理解用于序列语言建模的神经网络的使用,到了解它们作为用于转导任务的条件语言模型的用途,最后是将这些技术与其他机制相结合形成的高级应用的方法。在整个课程中,还讨论了在CPU和GPU硬件上这些模型的实际实现。
本课程由Phil Blunsom主讲,并与DeepMind自然语言研究小组有着紧密合作。
讲师
Phil Blunsom(牛津大学和DeepMind)
克里斯•戴尔(卡内基梅隆大学和DeepMind)
Edward Grefenstette(DeepMind)
卡尔•莫里茨•赫尔曼(DeepMind)
Andrew Senior(DeepMind)
Wang Ling(DeepMind)
Jeremy Appleyard(英伟达)
助教
Yannis Assael
Yishu Miao
布伦丹•希林福德
Jan Buys
时间表
实习
第1组:周一,9:00-11:00(第2-8周)
第2组:周五,16:00-18:00(第2-8周)
实践1:word2vec(https://github.com/oxford-cs-deepnlp-2017/practical-1)
实践2:文本分类(https://github.com/oxford-cs-deepnlp-2017/practical-2)
实践3:用于文本分类和语言建模的循环神经网络(https://github.com/oxford-cs-deepnlp-2017/practical-3)
实践4:自由实践(https://github.com/oxford-cs-deepnlp-2017/practical-open)
讲座
公开讲座在星期二和星期四(除了第八周),16:00-18:00(Hilary Term周末1,3-8)在数学研究所的演讲厅1号厅举行。
讲座材料
1.讲座1a——介绍[Phil Blunsom]
本讲座介绍课程,并强调了深度学习技术来学习语言处理的乐趣所在。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%201a%20-%20Introduction.pdf)
视频:
(http://101.96.8.164/media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_1b_friends.mp4)
2.讲座1b——深神经网络是我们的朋友[Wang Ling]
该讲座修正了学生在开始本课程之前应该了解的基本机器学习概念。
幻灯片:
(http://101.96.8.164/media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_1b_friends.mp4)
视频:
(http://101.96.8.164/media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_1b_friends.mp4)
3.讲座2a——词级语义学[Ed Grefenstette]
词汇在语言中有着核心意义,表示和学习词汇的意义是NLP中的一项基本任务,在本讲座中,引入将单词嵌入的概念使其作为一个实践和可扩展的解决方案。
幻灯片:
(https://github.com/oxford-cs-deepnlp2017/lectures/blob/master/Lecture%202a-%20Word%20Level%20Semantics.pdf)
视频:
(http://101.96.8.164/media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_2a_lexical_semantics.mp4)
阅读:
嵌入基础知识
Firth,John R《语言学理论的概要,1930-1955》(1957):1-32。(http://annabellelukin.edublogs.org/files/2013/08/Firth-JR-1962-A-Synopsis-of-Linguistic-Theory-wfihi5.pdf)
Curran, James Richard《从分布到语义相似》(2004年)。
(https://www.era.lib.ed.ac.uk/bitstream/handle/1842/563/IP030023.pdf?sequence=2&isAllowed=y)
Collobert,Ronan等人《自然语言处理(几乎)从零开始》机器学习研究学报12. Aug(2011):2493-2537。
(http://www.jmlr.org/papers/volume12/collobert11a/collobert11a.pdf)
Mikolov,Tomas等人《单词、短语及其组合的分布式表达》。神经信息处理系统的进展, 2013。
(http://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf)
数据集和可视化
Finkelstein, Lev等人《在情境中搜索:概念的重新审视》,第十届万维网国际会议论文集。 ACM,2001。
(https://www.tugraz.at/institute/isds/thesis/cguetl_diss/literatur/Kapitel07/References/Finkelstein_et_al._2002/p116-finkelstein.pdf)
Hill,Felix,Roi Reichart和Anna Korhonen《Simlex-999:用(真实的)相似度估计来评估语义模型》,计算语言学(2016)。
(http://www.aclweb.org/website/old_anthology/J/J15/J15-4004.pdf)
Maaten,Laurens van der和Geoffrey Hinton《使用t-SNE可视化数据》,机器学习研究杂志9.Nov(2008):2579-2605。
(http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf)
博客帖子
深度学习,NLP和表征,Christopher Olah。
(http://colah.github.io/posts/2014-07-NLP-RNNs-Representations/)
在Javascript,使用t-SNE来可视化顶部Tweep,Andrej Karpathy
(http://karpathy.github.io/2014/07/02/visualizing-top-tweeps-with-t-sne-in-Javascript/)
进一步阅读
Hermann,Karl Moritz和Phil Blunsom《用于组合分布式语义的多语言模型》,arXiv preprint arXiv:1404.4641(2014)。
(https://arxiv.org/pdf/1404.4641.pdf)
Levy,Omer和Yoav Goldberg。 《神经元词汇嵌入作为隐式矩阵分解》,神经信息处理系统的进展,2014年。
(http://101.96.8.165/u.cs.biu.ac.il/~nlp/wp-content/uploads/Neural-Word-Embeddings-as-Implicit-Matrix-Factorization-NIPS-2014.pdf)
Levy,Omer,Yoav Goldberg和Ido Dagan《通过词汇嵌入的经验教训改进分布相似性》,计算语言学协会3(2015):211-225。
(https://www.transacl.org/ojs/index.php/tacl/article/view/570/124)
Ling和Wang等人《用于语法问题的Word2Vec的两个/太简单的应用》,HLT-NAACL,2015年。
(https://www.aclweb.org/anthology/N/N15/N15-1142.pdf)
4.讲座2b——实践概述[Chris Dyer]
这个讲座强调的是该课程的实践部分。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%202b%20-%20Overview%20of%20the%20Practicals.pdf)
视频:
(http://101.96.8.164/media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_2b_practicals.mp4)
5.讲座3——语言建模和RNN第1部分[Phil Blunsom]
语言建模是许多NLP应用程序中非常实用的重要任务。本讲座介绍了语言建模,包括传统的基于n-gram的方法和更多的当代神经学方法。特别引入流行的循环神经网络(RNN)语言模型,并描述其基本的训练和评估算法。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%203%20-%20Language%20Modelling%20and%20RNNs%20Part%201.pdf)
视频:
(http://101.96.8.165/media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_3_modelling_1.mp4)
阅读:
教科书
深度学习,第10章
(http://www.deeplearningbook.org/contents/rnn.html)
博客
《循环神经网络的不合理有效性》,Andrej Karpathy。
(http://karpathy.github.io/2015/05/21/rnn-effectiveness/)
《字符级语言模型的不合理有效性》,Yoav Goldberg。
(http://nbviewer.jupyter.org/gist/yoavg/d76121dfde2618422139)
《解释和说明循环神经网络的正交初始化》,Stephen Merity。
(http://smerity.com/articles/2016/orthogonal_init.html)
6.讲座4 ——语言建模和RNN第2部分[Phil Blunsom]
本演讲是对上一讲的继续补充,并考虑了产生一个有效实施RNN语言模型所涉及的一些问题。描述了梯度消失和爆炸的相关问题,并介绍了诸如长短期记忆网络(LSTM)的架构解决方案。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%204%20-%20Language%20Modelling%20and%20RNNs%20Part%202.pdf)
视频:
(http://101.96.8.164/media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_4_modelling_2.mp4)
阅读:
教科书
深度学习,第10章(http://www.deeplearningbook.org/contents/rnn.html)
消失梯度,LSTM等
《关于训练循环神经网络的难点》Pascanu等人,ICML 2013。
(http://101.96.8.165/jmlr.csail.mit.edu/proceedings/papers/v28/pascanu13.pdf)
《长短期记忆网络》Hochreiter和Schmidhuber,Neural Computation 1997。
(http://dl.acm.org/citation.cfm?id=1246450)
《用于统计机器翻译的使用RNN编码器的学习短语表征》,Cho等人,EMNLP 2014。
(https://arxiv.org/abs/1406.1078)
博客:理解LSTM网络,Christopher Olah。
(http://colah.github.io/posts/2015-08-Understanding-LSTMs/)
处理大词汇
《可扩展的分层分布式语言模型》,Mnih和Hinton,NIPS 2009。
(https://papers.nips.cc/paper/3583-a-scalable-hierarchical-distributed-language-model.pdf)
《一种用于训练神经概率语言模型的快速简单算法》,Mnih和Teh,ICML 2012。
(https://www.cs.toronto.edu/~amnih/papers/ncelm.pdf)
《使用非常大的目标词汇来进行神经机器翻译》,Jean 等人,ACL 2015。
(http://www.aclweb.org/anthology/P15-1001)
《探索语言模型的极限》,Jozefowicz等人,arXiv 2016。
(https://arxiv.org/abs/1602.02410)
《GPU的高效softmax近似》,Grave等人,arXiv 2016。
(https://arxiv.org/abs/1609.04309)
《在噪声对比估计和负采样中的注意事项》,Dyer,arXiv 2014。
(https://arxiv.org/abs/1410.8251)
《机器翻译中的语用神经语言建模》,Baltescu and Blunsom,,NAACL 2015
(http://www.aclweb.org/anthology/N15-1083)
正则化和dropout
《dropout在循环神经网络中的理论基础应用》,Gal和Ghahramani,NIPS 2016。
(https://arxiv.org/abs/1512.05287)
博客:深度学习中的不确定性,Yarin Gal。
(http://mlg.eng.cam.ac.uk/yarin/blog_2248.html)
其他相关知识
《循环 Highway Networks》 Zilly 等人,arXiv 2016。
(https://arxiv.org/abs/1607.03474)
《循环神经网络的能力和可训练性》Collins等人,arXiv 2016。
(https://arxiv.org/abs/1611.09913)
7.讲座5 ——文本分类[Karl Moritz Hermann]
本节课讨论了文本分类,从基本的分类器(如朴素贝叶斯分类器)开始,然后慢慢延伸到RNN和卷积网络。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%205%20-%20Text%20Classification.pdf)
视频:
(http://101.96.8.164/media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_5_text_classification.mp4)
阅读:
《用于文本分类的循环卷积神经网络》,Lai等人,AAAI 2015。
(http://www.aaai.org/ocs/index.php/AAAI/AAAI15/paper/download/9745/9552)
《一个用于句子建模的卷积神经网络》,Kalchbrenner等人,ACL 2014。
(http://www.aclweb.org/anthology/P14-1062)
《通过递归矩阵向量的语义组合》,Socher等EMNLP 2012。
(https://nlp.stanford.edu/pubs/SocherHuvalManningNg_EMNLP2012.pdf)
博客:了解用于卷积神经网络,Denny Britz。
(http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/)
论文:组成语义学的分布式表征,Hermann(2014)。
(https://arxiv.org/abs/1411.3146)
8、第6讲——基于Nvidia GPU的深度NLP [Jeremy Appleyard]
本讲座介绍了图形处理单元(GPU)作为一种替代CPU执行的深度学习算法。讨论GPU的优缺点以及了解内存带宽和计算对RNN的吞吐量的影响的重要性。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%206%20-%20Nvidia%20RNNs%20and%20GPUs.pdf)
视频:
(http://media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_6_nvidia_gpus.mp4)
阅读:
优化GPU上循环神经网络的性能 Appleyard等人,arXiv 2016。
(https://arxiv.org/abs/1604.01946)
Persistent RNN:基于芯片储藏循环权重Diamos等人,ICML 2016
(http://jmlr.org/proceedings/papers/v48/diamos16.pdf)
GPU的高效softmax近似 Grave等人,arXiv 2016
(https://arxiv.org/abs/1609.04309)
9、讲座7 ——条件语言模型[Chris Dyer]
在本讲座中,我们将语言建模的概念扩展到先前的信息中。通过调整输入表示上的RNN语言模型,我们可以生成与内容相关的语言。这个很通用的方法,可以应用于将序列转换成用于任务的新序列,例如翻译和总结,或将图像转换成描述其内容的字幕。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%207%20-%20Conditional%20Language%20Modeling.pdf)
视频:
(http://media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_7_conditional_lang_mod.mp4)
阅读:
循环连续翻译模型 Kalchbrenner和Blunsom,EMNLP 2013
(http://anthology.aclweb.org/D/D13/D13-1176.pdf)
序列学习与神经网络 Sutskever等,NIPS 2014
(https://arxiv.org/abs/1409.3215)
多模态神经语言模型 Kiros等,ICML 2014
(http://www.cs.toronto.edu/~rkiros/papers/mnlm2014.pdf)
显示和讲述:神经图像字幕生成器 Vinyals等人,CVPR 2015
(https://arxiv.org/abs/1411.4555)
10、讲座8——注意力生成语言[Chris Dyer]
本讲座介绍了深度神经网络中最重要和最有影响力的机制之一:注意力机制。注意力增强了能够对输入的特定部分进行调整的循环网络,并且是在机器翻译和图像字幕等任务中实现高性能的关键。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%208%20-%20Conditional%20Language%20Modeling%20with%20Attention.pdf)
视频:
(http://media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_8_conditional_lang_mod_att.mp4)
阅读:
通过联合学习以对准并翻译的神经机器翻译。Bahdanau等人,ICLR 2015
(https://arxiv.org/abs/1409.0473)
显示,参与和讲述:视觉注意力的神经图像字幕生成。 Xu et 等人,ICML 2015
(https://arxiv.org/pdf/1502.03044.pdf)
将结构对准偏差纳入注意力神经翻译模型。 Cohn等人,NAACL 2016
(http://www.aclweb.org/anthology/N16-1102)
BLEU:机器翻译自动评估方法。 Papineni等人,ACL 2002
(http://www.aclweb.org/anthology/P02-1040.pdf)
11、讲座9——语音识别(ASR)[Andrew Senior]
自动语音识别(ASR)是将口语的原始音频信号转换为文本记录的任务。这个讲座涵盖了ASR模型的历史,从高斯混合到注意力增强RNN,语音的基本语言学以及经常使用的各种输入和输出表示。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%209%20-%20Speech%20Recognition.pdf)
视频:
(http://media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_9_speech_recognition.mp4)
12、讲座10——从文本到语音(TTS)[Andrew Senior]
本讲座介绍了将书面语言转换成口语(文本到语言)的算法。TTS是ASR的逆向过程,但在应用的模型中有一些重要的区别。在这里,我们回顾传统的TTS模型,然后更多地介绍最近的神经元方法,如DeepMind的WaveNet模型。
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%2010%20-%20Text%20to%20Speech.pdf)
视频:
(http://media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_10_text_speech.mp4)
13、讲座11——问答[Karl Moritz Hermann]
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%2011%20-%20Question%20Answering.pdf)
视频:
(http://media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_11_question_answering.mp4)
阅读:
教机器去阅读并理解Hermann等人,NIPS 2015
(http://papers.nips.cc/paper/5945-teaching-machines-to-read-and-comprehend)
回答句选择的深度学习Yu et等人,NIPS Deep Learning Workshop 2014
(https://arxiv.org/abs/1412.1632)
14、讲座12——记忆[Ed Grefenstette]
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%2012-%20Memory%20Lecture.pdf)
视频:
(http://media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_12_memory.mp4)
阅读:
使用具有动态外部记忆的神经网络的混合计算。Graves et al., Nature 2016
(http://www.nature.com/nature/journal/v538/n7626/abs/nature20101.html)
具有神经注意力的蕴涵推理过程。 Rocktäschel等人,ICLR 2016
(https://arxiv.org/abs/1509.06664)
学习无界记忆转化 Grefenstette等,NIPS 2015
(http://papers.nips.cc/paper/5648-learning-to-transduce-with-unbounded-memory)
端到端记忆网络 Sukhbaatar等,NIPS 2015
(https://arxiv.org/abs/1503.08895)
14、讲座13——神经网络的语言知识
幻灯片:
(https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture%2013%20-%20Linguistics.pdf )
视频:
(http://media.podcasts.ox.ac.uk/comlab/deep_learning_NLP/2017-01_deep_NLP_13_linguistic_knowledge_neural.mp4)
Piazza
我们将在课堂中使用Piazza以此促进课堂讨论。而不是直接通过电子邮件发送问题,我鼓励你在Piazza上发布你的问题,由同学、导师和讲师来回答。但请注意,本课程的所有讲师都自愿花费时间参加,并不总是能够及时回复。
查找我们的课程页面:https://piazza.com/ox.ac.uk/winter2017/dnlpht2017/home
评估
本课程的初步评估作业将在学期结束后发布。这项作业所问的问题可以借鉴课程中讨论的概念和模型,以及选定的研究出版物。问题的性质将包括分析模型的数学描述,并提出对这些模型的扩展、改进或评估。该作业还可能要求学生阅读特定的研究出版物,并在课程背景下讨论他们提出的算法。在回答问题时,要求学生既要提出连贯的书面论证,也要使用适当的数学公式,并可能使用伪代码来说明答案。
课程的实践部分将以常见的方式进行评估。
致谢
如果没有DeepMind、牛津大学计算机科学系、Nvidia大学的支持以及来自Microsoft Azure的GPU资源的慷慨捐赠,这个课程是不可能实现的。
牛津大学是一所英国研究型大学,也是罗素大学集团、英国“G5超级精英大学”,欧洲顶尖大学科英布拉集团、欧洲研究型大学联盟的核心成员。牛津大学培养了众多社会名人,包括了27位英国首相、60位诺贝尔奖得主以及数十位世界各国的皇室成员和政治领袖。2016年9月,泰晤士高等教育发布了2016-2017年度世界大学排名,其中牛津大学排名第一。