您的位置:365bet在线投注官网 > 社会科学 > NLP应该如何学、如何教?斯坦福大学大牛Dan Jur

NLP应该如何学、如何教?斯坦福大学大牛Dan Jur

发布时间:2019-02-11 12:49编辑:社会科学浏览(95)

      原标题:NLP应该如何学、如何教?斯坦福大学大牛Dan Jurafsky教授专访

      雷锋网 AI 科技评论按:自然语言处理是一个高度跨学科的领域,包含了语言学、计算机科学、统计学等等许多传统学科的内容。在课堂中,自然语言处理的教师者们要根据课程长度、学生的水平、领域近期发展、课程目标甚至教师的个人兴趣选在涵盖哪些内容。形成的结果就是,同样是针对自然语言处理的课程,不同老师在不同学校教授的课程可能会完全不一样。

      而自然语言处理课程很多时候是学生们接触到现代人工智能技术的第一门课程,这对他们未来的人生发展可能会有深远的影响!密歇根大学信息学院助理教授 David Jurgens 就对不同老师教授的课程中的区别非常感兴趣,或者说他也很关心这些老师们是如何看待这个领域、如何看待自己的教学的,毕竟这直接关系着这个领域未来几十年的人才会如何成长。他和自己的学生 Lucy Li 一起打算对教授自然语言处理的教授们做一系列采访,解答自己的问题,也是从这个常被忽略的角度向大众展现这个领域的现状。

      他们 NLP 教育系列访谈邀请到的第一位嘉宾是斯坦福大学语言学和计算机科学的 Dan Jurafsky 教授,他的研究主要集中在 NLP、语言学和社会科学的交叉学科。Dan 可以说是这个系列博客最合适的开篇之人,是因为本文作者之一的 Lucy 正是从 Dan 的课程 《CS 124/LING 180:从语言到信息》开始了她的 NLP 之旅。这个课程也是以下高级课程的入门良选,如 CS 224N(NLP深度学习),224W(社交网络),224U(自然语言理解),276(信息检索),224S(语音和对线(数据挖掘)。目前,它是一个Flipped Classroom(翻转课堂)的模式,即在课外时间观看一些讲座视频,课堂时间专门用于做项目。根据斯坦福公报的存档,自2004-2005学年以来,Dan 一直在斯坦福大学教授 NLP 入门课程。他还与 James·H·Martin 共同发行了畅销教科书《语音和语言处理》,目前该著作的第三版正在修订中。

      问:我们将从您为大二年级开设的课程《CS 124:从语言到信息》开始聊起,您为什么选择将课堂设置为翻转课堂的模式呢?

      Dan:首先是看 Daphne Koller 和 Andrew Ng (吴恩达)的课让我有所启发,然后我开始阅读教育文献,尤其是有心理学家家得出结论,翻转课堂是一种更好的教学方式。这是让我确信我应该这样做的部分原因,而其他原因则是出于想偷懒和图方便。Chris Manning 和我完成了 NLP MOOC 课程,一旦我们完成了这些讲座,很明显我们可以将其中一些用于 CS 124 中,而我们也可以使用 CS 124 来测试一些MOOC 讲座。

      问:开放式课程如何改变了您的教学方法?您是否认为提供在线资料会对未来的学生产生长期影响?

      Dan:目前我 20 个讲座中有 8 个现场直播,其余的在 EdX 上可在线观看,然后我用其余的课堂时间进行小组练习和实验,意在加强概念性理解。

      对于翻转课堂,我看到了两大好处。一个是这种模式迫使我以 8 分钟为时间块思考每个主题,并明确学习目标。这有助于解构我希望学生真正学到的东西。另一个好处是,我本需要对课堂内部分的主动学习花费心思:他们需要了解的概念性内容是什么,以及如何让他们在课堂上或团队里为学习到一些东西进行概念性思考,而在这方面翻转课堂可以做的更好。

      开放式课程的缺陷是这样的,因为准备,录制和编辑单个录制讲座需要 20-30 个小时,所以课程中的资料更新很容易就会变得不及时,那么就只能告诉学生「哦,请暂时忽略该视频的最后一点,」这其实挺不好的。我现场演讲的 8 个讲座资料有许多全新的资料,或者多年来发生了很多变化的资料,因为是现场讲,所以这 8 个讲座几乎每年都有更新。

      今年我正在重新设计两个现场讲座,并取代其中一个录制的讲座,目的是在早期课程中加入深度学习和嵌入。

      问:您使用您的教材作为课程的基础,但此书中涵盖的主题比您在十周课程中涵盖的主题更多,那么您如何选择课程主题呢?

      Dan:由于斯坦福大学的奇怪设置,我们的班级不仅仅是一个 NLP 班级,它涵盖了 NLP 的研究生课程的介绍,也包括了社交网络课程、IR、推荐系统的介绍。每个主题都有不同的课本,现在我将我的教材用于 NLP 部分,并用其他教材来教其他部分。

      Chris Manning 创建我的课程的最初想法是吸引人们参与斯坦福大学的信息/数据科学课程以及 AI / NLP 课程等。我认为这是一个非常成功,有趣的想法,但在斯坦福就有点特殊化。如果我只是开设一个本科的NLP 课程,我不会讲协同过滤,我可能不会讲所有的 IR,当然我也不会讲社交网络。我可以看到当前这种设置更适用于其他地方(如信息科技学院),或者可能只为每个主题开设单独的本科课程。

      Dan:最近没有多少。除此之外,我尝试在 NLP for Social Good 上做一个演讲,我也经常要求我的博士后和学生在那里展示他们的工作。最大的例外是,我在讲课中的特别素材来自教科书的写作,所以我当然会使用我的教材章节演讲教学。我在教科书中的观点肯定是在课堂上得到的,但我的研究论文从中得到的观点很少,因为它只是一个本科课程。

      问:斯坦福大学 224D 的深度学习 NLP 课程和 224N 的研究生 NLP 课程在过去两年合并。这会影响你的 124 计划吗?

      Dan:总的来说,这个领域发生了变化,因此 NLP 课程必须包含深度学习!斯坦福大学目前没有一般的本科人工智能课程,相反,我们有 3 门独立的课程:视觉,语言和机器人,现在学生们直到研究生学校才开始深度学习是很疯狂的一件事。

      但我也非常希望我的目标受众——二年级和三年级学生可以访问该课程。所以我正在努力重编课程。今年夏天,我正在编写教材中的深度学习章节,因此在秋冬季,我可以就此章节编写 cs124 课程的深度学习部分。目前的计划是在明年冬天做这件事,并增加 3 个「深度学习」讲座和一个「嵌入」讲座,然后把拼写检查作业换成逻辑回归作业,把问答的作业换成一个深度学习版本的,对本科生只教前馈网络,把循环网络留给研究生。

      困难的部分是我们没办法给所有学生提供 GPU,我不想每年都向商业公司寻求 GPU。另外,我也不希望学生花费整个季度的时间仅用来调参——这更适合机器学习方向的研究生课程。我希望他们直观的理解深度学习中的分类器,所以就要设计一个可行且有趣的作业,并且希望深度学习实际上比逻辑回归效果更好。而事实证明,如果你不能使用 GPU,逻辑回归优于大多数深度学习的东西。作业的结果就是得出我们不想要的结论,「嘿,深度学习为何比回归效果更差?你为什么不给我们更多的 GPU,这样我们才能得到更好的结果?」

      Dan:目前没有这个问题,我认为当前的主要问题是深度学习需要放在课程中。也许一个完美的情况就是,我可以在去年的课程中及时完成新的章节和讲座!

      问:除了您目前计划将深度学习引入现有内容之外,如果您可以扩展 CS 124来涵盖额外的 NLP 主题的课程,您想添加什么课程?

      Dan:选择空间没有限制的话我至少会放入一些核心 NLP 内容:词性标注,命名实体识别,语法解析和机器翻译。虽然我不知道它们的排序如何,但在这四个话题中机器翻译绝对是最有趣的,大家都因为机器翻译很有趣而喜欢机器翻译,而且在机器翻译中你可以仔细地辨析语言。所以如果我只能加一个课程,我可能会选择机器翻译。如果我可以加两个,我会选词性标注和实体标注,以帮助学生建立对单词和单词组的一些基本原理的理解。然后,如果我还有空间,我会添加语法解析。

      问:我们查看了大量 NLP 课程的教学大纲,发现包括你的 NLP 课程在内的很多 NLP 课程都常以 n-gram (多元组)和正则表达式作为开头部分。你对此有什么看法?

      Dan:嗯,我认为,作为教材中的第一章节,人们先教正则表达式是很正常的,我们之所以把它放在第一位,是因为它可以自然的引出有限状态自动机,而当时有限状态自动机是 NLP 的重要组成部分。虽然现在人们不经常教他们这部分内容了,但我怀疑他们可能还要返回来学! Chris Manning 和我都很喜欢 Ken Church UNIX 工具,而我们在课堂上教如 grep 和正则表达式等 UNIX 工具的课程,这可能是学生可以从语言中汲取到的最实用的东西,这对于他们之后的职业生涯非常有用,所以教正则表达式非常有必要。事实上,对话系统仍然主要是 ELIZA 加上一堆附加功能和更多的正则表达式,因此正则是一个很有价值的行业工具。

      N-gram 也是我们刚开始必用到的工具,因为它们是教授学生概率论的一种非常简单的方法,它们可以非常直观地计算,它们是朴素贝叶斯模型。所以我们完全可以用它得到非常可靠的概率,并从中深刻且直观地理解它们,然后你可以直接从那里引入神经语言建模。

      问:即使现在有很多神经网络的方法,你是否仍然认为语言模型建模是一个重要的教学内容?

      Dan:好问题!我一直在思考这个问题,因为所有的研究,包括我们自己的研究,都专注于更强大的神经语言模型(LMs)。然而,对于许多任务,n-gram LMs 仍然比神经 LM 更好。对于相同数量的数据来说,神经 LM 更好,但训练大神经 LM 非常慢,学习大规模的老式 n-gram 模型就不一样了。因此,大规模老式 n-gram 最终成为人们在大数据系统中仍在使用的东西。它们是非 NLP 的机器学习课程中没有教授的东西,所以它对语言来说是独一无二的。

      最重要的是,我想现在,是的,我仍然会做语言建模,但我不会做高级平滑的东西,只做基础的东西并跳过所有的 Kneser-Ney 和 Good-Turing。也许一旦训练神经语言模型变得足够快,几年内人们就会停止使用 N-gram LMs?也许吧。在那种情况下,N-gram 那一章可能会被取消,我将不得不弄清楚如何重新编排章节,可能使用朴素贝叶斯概率,然后直接进行神经语言建模?问题是即使对于朴素贝叶斯进行文本分类,bigrams 仍然是一个非常有用的特征。看过语言模型后,学生们习惯于思考二元组和三元组,因此语言建模教会他们使用双字和三字组块的想法。我认为答案是,N-gram 在我的课程所占比重会越来越小,但仍然存在不会取消。

      Dan:测验是数学,家庭作业是编程。在CS 124中,每周测验是多项选择。测验是为了概念性理解,并确保学生动手完成数学计算。编程的家庭作业让你知道如何构建朴素贝叶斯和语言模型等工具;我们希望你可以通过知道如何构建工具来牢牢的掌握这些知识。。

      Dan:课程规模现在变大了,起初它是 20 人,现在它有 350 人。一开始,它是一个偏向 NLP 的课程并包括了我们在 Chris Manning 的研究生课程名中没有涉及的 NLP 内容。那时候,Chris 教授语法解析,机器翻译和信息抽取,而我负责其他课的教授,包括词汇语义、共现、话语和对话行为,我让他们构建了一个聊天机器人。因此,所有不在研究生课程中的内容在本科课程中都有。我为本科生做了一些易于理解的课程,这与我们的课程结构明显不同。

      然而,后来我创建了一个面向研究生的自然语言理解课程,以便处理一些缺失的内容,然后创建了一个面向研究生的对话课程。这意味着 CS 124 的角色发生了变化,现在它可以作为 NLP 之外的多个主题的简介,因此我们仍然需要所有内容都涉及一点,但不希望家庭作业会与研究生课程完全重叠。因此每次研究生课程改变时,我们的作业也会受到影响。例如,其中 3 门课程现在有关于嵌入的作业,并且有太多的重叠。但是,嵌入对于一切都非常重要,所以只要你没有完全相同的作业就可以了。

      Dan:我肯定会尝试在 NLP 课程中加一些语言学,部分原因是,在课程结束时学生常常会说,「我没有系统地学习语言」或「我不了解性别指代或情感。」我这里就有很多语言学专业和符号系统专业背景的学生,他们在参加了一系列系统课程后,最终成为了CS 专业的学生。CS 124 就是他们的启蒙课。对于 AI 学生来说,它仍然是斯坦福大学人工智能课程中所有课程中最以人为本的。通过该课程,我的目的肯定是想让 CS 的学生在学过我的课之后继续学更多的人文科学和社会科学的课程。出于这个原因,我尽可能地涵盖语言学,尤其是最新的社会语言学。在我上课的时候,我也会讲很多类型学和语言变种以及形态学上的语言差异的内容,因为这对于机器翻译很重要,我想让他们系统地思考语言。

      Dan:这个问题很好,因为两者之间有很多重叠;在很多 NLP 任务中,我们把机器学习作为一种工具。之前我把梯度下降分在机器学习的课程里,但我现在已经把它添加到了 NLP 的教材中,所以我可能还会把它添加到我的课程中。从某种程度上来说,这只是我的主观意见,但也可能会改变。

      一般来说,在我的课程中,我不会做任何证明,学生们也不会花很多时间从头开始构建机器学习算法,如 SVM、LSTM等,那些应该是工具,所以你只需要了解它们,但不需要从底层一点点动手构建。

      还有一部分原因是,我们要看深度学习是否会取代所有 NLP 可能涉及的算法,这样未来就只需要一种机器学习方法即可;但这似乎不太可能发生,而这就是我们认为会在 20 世纪 90 年代发生的事情,但当时并没有发生。事实证明,视觉、语言和机器人有他们自己的重重约束和学科自己带来的偏倚。

      Dan:哦,从 1988 年来看大概是无监督聚类或无监督学习。大家都认为你只能使用 EM 来完全无监督地引出语言结构,所以在这个领域,大家都普遍看好 EM。并且有些早期的论文提出 EM 用于学习词性标注,然后结果证明只需要一点点训练数据就可以了。现在,我们知道如果你有可以在一两个小时内就完成标注的一千个标记的观察结果或类似的东西,那么你可以做得比使用拥有大量数据的无监督 EM 效果更好。一切都很快转向监督机器学习,然后所有研究都集中在架构和特征上,但实际的机器学习算法就像标准回归或 SVM 一样,所以没有什么研究可以教你如何构建 SVM 或 CRF,只需要知道它们的一些应用以及如何构建这些特征。

      问:许多常见的 NLP 技术现在已经在包中预先实现了,如果所有内容都已经为他们构建好了,那么学生最终能够理解他们在课堂上学到的技术细节吗?

      Dan:这事挺复杂的。在这堂课中,直到现在我都要求学生自己搭建框架所以他们不能用库。例如他们要从底层实现朴素贝叶斯模型并玩转它,这让他们对贝叶斯思想、先验、可能性等概念有了非常直观的理解。但我认为,当加入深度学习时,我可以调用更多的库来使用,因为在 10 周内你没有时间去完成机器学习所有基础知识的作业。

      Dan:嗯,一般来说我们的做法是,我们去找使用这本教材上课的教授的教学大纲,看看他们需要哪些章节。你可以很快知道哪些东西该被舍弃,比如没有一个人在自己的课上教乔姆斯基层次结构,即便它在我们的书里 —— 说实在的,可能全世界只有他自己会需要把需要乔姆斯基层次这一章作为 NLP 课程的一部分。所以我们删除了它。你可以立刻说出人们正在做什么,比如每个人都在做语法解析,以前每个人都在做 n-gram。现在,很明显,每个人都在教深度学习,所以他们也用 Yoav Goldberg 的书,这本书写的真的不错,或者人们会将我们的书和 Yoav 的书结合使用。这就是告诉我们我们需要编写神经网络章节的内容。

      但是,对于到底要删掉什么,我们还是要谨慎一点的,你早些时候曾问过是否要继续教 n-gram。是时候舍弃 n-gram 模型了吗?我不确定。在我看来,不应该舍弃,但也许我会再次精简它。或者另一个例子,如果所有 NLP 人员都转向依存句法解析,我们是否还需要成分句法分析?我还是会把它放进去,因为人们可能会二选一。一些实验室会选择一种方法,但我们真正应该做的是调查,看看第三版的哪些章节正在使用。如果事实证明没有人在教消歧或别的某种东西,那么也许这就该被删减掉了。

      Dan:我不知道,这是一个很好的问题。第三版要到明年才能完成,所以我仍然无法确定当前的主题。例如,Jim 现在正在编著的序列建模章节使用的是 LSTM,但当然人们构建序列模型的方式会发生变化,也许你需要的是注意力机制,或者可能会发现我们应该使用扩张卷积或其他东西。因此,我并不认为明年不会出现最简单,最通用的算法,sequence-to-sequence 模型随着时间的推移会发生很大的变化,从 HMM 到 MEMM,到 CRF 再到 RNN ......。或者人们可能会发现,在输入或其他部分加非常简单的前馈网络会有很好的表现,因为有人可能会提出相关的一些简化方法。

      问:NLP 正在快速变化。你如何确保你在不久的将来以及十年或二十年后为学生做好准备?

      Dan:不能做到20年,但你可以尽力。您可以尝试向学生传授重要的思想,如训练集和测试集、监督机器学习、数据查看以及语言思考。你希望那些东西是通用的,并且会在十年内都会存在,但你不知道是否如此。

      Dan:显然,当下研究生的课程将以深度学习为基础。但是你还需要确定你真正想要涉足 NLP 的哪些方向,这是一个艰难的决定。你是否要涵盖对话的内容,或将其放在另一个课程中?在过去对话有不同的数学方法,旧方法是 POMDP,现在是强化学习。你做了多少语义分析?你是否要涵盖使用嵌入的词语语义分析和语义分析中常见的逻辑语义分析。即使最好的算法是神经网络,你也要确保覆盖重要的内容,现在确保学生学习非神经网络的基础知识如 n-gram 和 TF-IDF 仍然很重要。

    转载请注明来源:NLP应该如何学、如何教?斯坦福大学大牛Dan Jur