深度学习与自然语言处理_斯坦福cs224d Lecture 2

Posted 寒小阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习与自然语言处理_斯坦福cs224d Lecture 2相关的知识,希望对你有一定的参考价值。

原文作者:Rohit Mundra, Richard Socher
原文翻译:@熊杰(jie.xiong.cs@gmail.com) && @王昱森
内容调整与校对:寒小阳 && 龙心尘
特别鸣谢:@面包包包包包同学的帮助
时间:2016年6月
出处:http://blog.csdn.net/han_xiaoyang/article/details/51648483
http://blog.csdn.net/longxinchen_ml/article/details/51648532
声明:版权所有,转载请联系作者并注明出处

说明:本文为斯坦福大学CS224d课程的中文版内容笔记,已得到斯坦福大学课程@Richard Socher教授的授权翻译与发表

课堂笔记:第2部分

——————————————————————————————————–

关键词:内部任务评价(Intrinsic Evaluation)和 外部任务评价(extrinsic evaluations)。超参数影响下的类比评价任务。人类决策和词向量距离的相关性。结合上下文处理歧义。窗口分类。

这个课堂笔记我们将会对词向量(也就是词嵌入)的内部任务评价和外部任务评价方法进行讨论。主要的内容是单词类比(word analogies)技术,我们会把它当做内部任务评价的技术并展示其相关示例,它会在词向量的调谐(tune)中发挥重要作用。我们还会讨论如何训练模型的权重/参数,并关注用来进行外部任务评价的词向量。最后,我们会简单地提到人工神经网络,它在自然语言处理中表现极好。

1、词向量的评价

在前面的Lecture1中,我们讨论了Word2Vec和GloVe等词嵌入的方法。它们用来训练和发现词汇在语义空间中的向量表示。今天我们来探讨如何对词向量的效果进行评价。

1.1 内部任务评价

内部任务评价是对在特定子任务(如完成单词类比)中生成的词向量进行的评价,这些词向量可以由词嵌入技术(如Word2Vec和GloVe)生成。这些子任务往往很简单,计算速度很快,可以帮助我们理解生成这些词向量的系统。一个内部任务评价往往返回一个数值,来表示这些词向量在子任务上的表现。



图1:左侧子系统(红)训练消耗较大,通过替换为一个简单的内部任务评价子系统(绿)来优化。

内部任务评价的特点如下

  • 一般是在一个特定的子任务中进行评测
  • 计算很快
  • 有助于理解相关的系统
  • 在实际的NLP任务中表现好坏,可能需要外部关联实际应用

咱们考虑一个例子,比如我们的目标是要建立一个以词向量为输入,能够回答问题的系统。一种方法是训练一个机器学习的模型,主要步骤如下:

  1. 输入词语
  2. 将词语转换成词向量
  3. 将词向量作为一个复杂的机器学习系统的输入
  4. 把系统的输出映射到自然语言词汇
  5. 生成词语组成答案

显然,为了训练这样一个问答系统,我们需要为下游机器学习系统(比如深度神经网络)建立一个最优的词向量表示。这在实际操作中,就需要我们调节Word2Vec 子系统中的许多超参数(如向量维度)。 尽管最理想的方法是每次调整参数后重新训练整个系统,但这在工程上是不现实的。因为这里的机器学习系统(第3步)一般都是一个含有几百万参数的深度神经网络,需要极长时间去训练。等得花儿都谢了。 所以,我们希望有一个简单的内部任务评价方法来评价词向量生成系统的好坏。显然,其中一个要求是内部任务评价结果和整个系统的最终精度是正相关的。

 1.2 外部任务评价

外部任务评价是对在实际任务中产生的词向量进行的评价。这些任务通常是很复杂的,且它们的计算过程比较缓慢。在我们前面使用的例子中,允许基于问题对答案进行评估的系统是一种外部任务评价系统。一般来讲, 优化外部评价系统的时候我们无从知晓是哪个子系统除了问题,所以需要进一步进行内部任务评价。

外部任务评价的特点如下

  • 在一个实际任务中进行评测
  • 需要花很长的时间来计算精度
  • 不太清楚是否是某个子系统或者其他子系统,又或是几个子系统互相作用引起的问题
  • 如果替换原有的子系统后获得精度提升,则说明替换很可能是有效的

1.3内部任务评价示例: 词向量类比

一个比较流行的内部任务评价是词向量类比的。 在词向量类比中,我们先输入一组不完整的类比: