cs224 -Lecture 1:Introduction and Word Vectors

1、课程介绍

  • 了解有效的现代深度学习方法;
    - 首先回顾一些基础知识,然后介绍NLP中的关键方法:递归网络,注意力机制等;
  • 了解人类语言的全貌,以及理解和产生语言的困难;
  • 理解并有能力为NLP中的主要问题构建系统(在pytorch中);
    - 单词的意思,依赖解释(dependency parsing),机器翻译,问题回答;

2、人类语言和词义

2.1 我们怎样表达一个词的意思?

定义:meaning(韦氏词典)——对meaning的定义的解释

  • 用一个词、短语等来表示想法;
  • 一个人想要用语言、符号等来表达的想法;
  • 以文字、艺术等形式表达的思想。最常见的语言意义思考方式: 能 指 ( 符 号 ) ⇔ 所 指 ( 概 念 或 者 事 物 ) = 指 称 语 义 能指(符号)\Leftrightarrow 所指(概念或者事物)=指称语义 =

2.2 我们如何在计算机中拥有可用的意义

常见的解决方案:使用例如WordNet,一个包含同义词集和上位词(“is a” 关系)列表的同义词典;

2.3 资源的问题(例如Wordnet)

  • 作为资源很好,但缺少细微差别;
    • 如“精通”被列为“好”的同义词,这只在某些情况下是正确的;
  • 缺少单词的新含义;
    • 如邪恶,坏蛋,俏皮的向导,天才,忍者炸弹;
    • 无法保持更新;
  • 主观的;
  • 需要人类劳动来创造和适应;
  • 无法计算准确的单词相似度;

2.4 用离散符号表示单词

在传统的NLP中,我们把单词看作离散的符号:旅馆、会议、汽车旅馆——一种地方主义的表现(localist representation);

单词可以通过独热向量来表示:
motel = [0 0 0 0 0 0 0 0 0 0 0 1 0 0 ]
hotel = [0 0 0 0 0 0 1 0 0 0 0 0 0 0 ]

这存在一个问题,语言是有很多单词的,例如英语,实际上英语的单词是无限的,我们可以在现有单词的基础上衍生出更多的单词。

向量维数=词汇量(例如500000)。如果想要表示合理的大小词汇,需要很大的向量。还有一个更大的问题,理解关系和词语的意义。举个例子,在网络搜索中,如果用户搜索“西雅图汽车旅馆(Seattle motel)”,我们希望匹配包含“西雅图旅馆(Seattle hotel)”的文档。,酒店和汽车旅馆几乎是一回事。但如果使用上面讲到的独热编码,这两者之间是没有相似的关系的·。在数学上,这两个向量是正交的。

解决办法

  • 可以尝试依靠wordNet的同义词列表来获得相似性吗?
    • 但是众所周知,严重失败:不完整等等问题;
  • 在向量本身中学习编码相似性;

2.5 根据上下文来表示单词

  • 分布式语义:一个词的意思是由经常出现在它附近的词所赋予的;
    • 有了它的伙伴,你就会知道一个字;
    • 现代统计NLP最成功的思想之一;
  • 当一个单词w出现在文本中时,它的上下文是附近(在一个固定大小的窗口内)出现的一组单词 ;
  • 使用单词w的许多上下文来建立单词w的表示;

2.6 词向量

我们将为每个选择的单词构建一个密集的向量,使其与出现在类似上下文中的单词的向量相似,例如可以将单词banking表示为向量 [ 0.286 , 0.792 , − 0.177 , − 0.107 , 0.109 , − 0.543 , 0.349 , 0.271 ] [0.286,0.792,-0.177,-0.107,0.109,-0.543,0.349,0.271] [0.286,0.792,0.177,0.107,0.109,0.543,0.349,0.271]这是一个密集向量,其中所有数字都是非零的。这个例子中词向量的维度为九维,但是在实际应用中,需要使用更大的维度,一般情况下使用的维度可能是50维,300维,也可能是1000维,2000维,4000维。

提示:词向量是一种称为词嵌入或词表示的形式,它们是一种分布式表示;

2.7 词的意义作为一个神经词向量——可视化

每个单词都有一个词向量,那么就会有一个向量空间,可以在其中放置所有的单词。这个向量空间整体上不是可读的。但我们将其中一些维度进行可视化操作时,我们可以看到单词之间的一些关系。

3、Word2vec:Overview

Word2vec(Mikolov2013年提出)是一个学习词向量的框架;

想法

  • 我们有大量的文本语料库;
  • 固定词汇表中的每个单词都由一个向量表示;
  • 遍历文本中的每个位置t,其中有一个中心词c和上下文(“外部”)单词o;
  • 使用向量c和o的相似度来计算给定c的o的概率(反之亦然);
  • 不断调整单词vector来最大化这个概率;

3.1 计算 P ( w t + j ∣ w t ) P(w_{t+j}|w_{t}) P(wt+jwt)的例子窗口和过程

cs224 -Lecture 1:Introduction and Word Vectors_第1张图片
上图中的公式 P ( u p r o b l e m s ∣ v i n t o ) P(u_{problems}|v_{into}) P(uproblemsvinto)是公式 P ( p r o b l e m s ∣ i n t o ; u p r o b l e m s , v i n t o , ∣ t h e t a ) P(problems|into;u_{problems},v_{into},|theta) P(problemsinto;uproblems,vinto,theta)的缩写

3.2 目标函数

对于每个位置 t = 1 , . . . , T t=1,...,T t=1,...,T,给定中心词 w j w_j wj,预测固定大小m的窗口内的上下文单词。 似 然 函 数 = L ( θ ) = ∏ t = 1 T ∏ − m ≤ j ≤ m ( j ≠ 0 ) P ( w t + j ∣ w t ; θ ) 似然函数=L(\theta)=\prod _{t=1}^T\prod_{-m\leq j\leq m(j\neq 0)}P(w_{t+j}|w_t;\theta) =L(θ)=t=1Tmjm(j=0)P(wt+jwt;θ) θ \theta θ是所有要优化的参数,目标函数 J ( θ ) J(\theta) J(θ)是(平均)负对数似然: J ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m ( j ≠ 0 ) l o g P ( w t + j ∣ w t ; θ ) J(\theta)=-\frac{1}{T}\sum_{t=1}^T\sum_{-m\leq j \leq m(j\neq 0)}log P(w_{t+j}|w_t;\theta) J(θ)=T1t=1Tmjm(j=0)logP(wt+jwt;θ)最小化目标函数等于最大化预测精度,我们的目标是最小化目标函数。

  • 问题:怎样计算 P ( w t + j ∣ w t ; θ ) P(w_{t+j}|w_t;\theta) P(wt+jwt;θ)
  • 答案:对于每一个词 w w w,我们将使用两个向量进行表示:
    • v w v_w vw表示当 w w w为中心词时的向量表示;
    • u w u_w uw表示当 w w w为上下文词时的向量表示;
  • 对于一个中心词c和上下文词o: P ( o ∣ c ) = e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) P(o|c)=\frac{exp(u_o^Tv_c)}{\sum _{w\in V}exp(u_w^Tv_c)} P(oc)=wVexp(uwTvc)exp(uoTvc) 在公式中, e x p ( ) exp() exp()是取幂操作,取幂可以使任何数为正。 u o T v c u_o^Tv_c uoTvc是点积操作,表示向量o和向量c的相似性, u T v = u . v = ∑ i = 1 n u i v i u^Tv=u.v=\sum _{i=1}^nu_iv_i uTv=u.v=i=1nuivi,点积值越大表示两个向量之间越相似。 ∑ w ∈ V e x p ( u w T v c ) \sum _{w\in V}exp(u_w^Tv_c) wVexp(uwTvc)是对整个词汇进行归一化,给出概率分布。

对于softmax,有: s o f t m a x ( x i ) = e x p ( x i ) ∑ j = 1 n e x p ( x j ) = p i softmax(x_i)=\frac{exp(x_i)}{\sum _{j=1}^nexp(x_j)}=p_i softmax(xi)=j=1nexp(xj)exp(xi)=pi

  • softmax函数将任意值 x i x_i xi映射到概率分布 p i p_i pi
    • “max”:放大了最大值 x i x_i xi的概率;
    • “soft”:仍然给较小的 x i x_i xi赋值一些概率;
    • 频繁用于深度学习;

3.3 通过优化参数来训练模型

  • 为了训练模型,我们调整参数以使损失最小化;
  • 对于两个参数上的简单凸函数;
  • 等高线表示目标函数的级别;
    cs224 -Lecture 1:Introduction and Word Vectors_第2张图片

3.4 训练模型:计算所有向量梯度

  • 回忆: θ \theta θ在一个长向量中代表模型的所有参数;
  • 在我们的例子中是d维向量和v 个单词;
  • 记住:每个单词有两个向量,中心词向量和背景词向量;
  • 我们沿着梯度下降来优化参数;
    cs224 -Lecture 1:Introduction and Word Vectors_第3张图片

你可能感兴趣的:(CS224n课程)