cs224n lesson1 note

可紊 提交于 2020-03-02 00:59:36

  本节课结合了旧版的前半部分(NLP的基本概念的内容)以及新版的绝大多数内容。

0. 本节课程计划

  1. NLP的基本概念和人类语言的本质。
  2. 什么是深度学习。
  3. 课程安排。
  4. 为什么NLP难?
  5. NLP的应用。
    在这里插入图片描述

1. NLP的基本概念

1.1 什么是NLP?

  NLP是计算机科学、人工智能、语言学的交叉学科。

  它的目标是让计算机理解人类语言,从而完成有意义的任务。例如:

  • 下订单或者买东西
  • 知识问答,如Siri、谷歌助手、微软小冰等

  完全理解和表达语言的内涵是极其困难的,完美的语言理解等效于实现完备的人工智能系统。
在这里插入图片描述

1.2 NLP的层次

在这里插入图片描述
  语言的输入有两种方式,一种是语音识别,一种是文本(OCR和分词)。接下来是形态学(Morphology),简单可理解为对英文单词进行形态变换,如act->action。

  接下来是语法分析和语义分析。最后是篇章处理,它更加注重于通过上下文进行理解。

  本门课主要注重于画圈的三大部分,尤其是后两部分(语法分析和语义分析)。

1.3 自然语言处理应用

在这里插入图片描述
在这里插入图片描述
  推荐和广告依然是AI在互联网行业落地最早也最为成熟的两个方向。所以将NLP技术利用于这两个方向也是顺其自然的事情。具体来说:

  • 搜索(拼写自动纠正)
  • 在线广告匹配

  现如今NLP最火热的两个方向分别是知识图谱和智能客服(聊天机器人)。

1.4 人类语言的特殊之处

在这里插入图片描述
  自然语言与信号处理、数据挖掘不同(后两者是处理数据,目的是从一堆随机数据中找出规律),自然语言都是用来传输有意义的信息的。另外,自然语言对应的系统很复杂,但是小孩子也能很快学会说话。人类语言是离散的、明确的符号系统。事实上,我们是用符号系统和别人交流,但这种富有表现力的系统可能会出现微小的差异,比如颜文字,随意的错误拼写“I loooove it”。有了符号以后,我们就可以进行可靠的远距离的传输。所以说语言文字并不仅仅是形式逻辑或传统AI的产物。
在这里插入图片描述
  当人们使用语言进行交流,尽管交流的内容包括符号,但都是通过承载在连续的载体中的。一个有趣的现象是,使用不同的载体可以表达完全相同的信息。
在这里插入图片描述  哲学、科学、人工智能的主要观点是把语言的符号体系映射到大脑。对于深度学习来说,可以把大脑想象成具有连续激活模式的大脑,上图表示的是,我们使用语言是把连续转换成符号,再转换成连续的过程。

  另外巨大的词表(每种语言最少有几万个词汇)也导致数据稀疏,是机器学习要解决的一个重要问题。

2. 如何表示词的含义

在这里插入图片描述
  这部分内容不是很好理解,包括了人类的发展史、哲学思想等等,能发明符号表示含义看起来非常容易简单,但是从0到1绝对是智慧的表现。

2.1 如何在计算机中表示含义

在这里插入图片描述
安装NLTK wordnet的方法:

pip install nltk
import nltk
nltk.download('wordnet')
  • 1
  • 2
  • 3

相同词在不同词性下的同义词

from nltk.corpus import wordnet as wn
poses = { 'n':'noun', 'v':'verb', 's':'adj (s)', 'a':'adj', 'r':'adv'}
for synset in wn.synsets("good"):
    print("{}: {}".format(poses[synset.pos()],
        ", ".join([l.name() for l in synset.lemmas()])))
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
词的逐级上位词

from nltk.corpus import wordnet as wn
panda = wn.synset("panda.n.01")
hyper = lambda s: s.hypernyms()
list(panda.closure(hyper))
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
使用WordNet存在的一些问题:
在这里插入图片描述

2.2 离散化表示

在这里插入图片描述
在这里插入图片描述
  one-hot表示的问题在于,两个向量是正交的,所以无法计算向量之间的相似度。

2.3 分布式表示

在这里插入图片描述
  通过相邻词来表示该词的含义(从小到大的阅读理解中都是使用该方法来判断新词的意思)。
在这里插入图片描述
  使用分布式表示就可以用稠密的向量来代替系数的向量,并且可以表示词与词之间的相似性。
在这里插入图片描述
  通过t-SNE将100维向量降维为2维的向量。

2.4 Word2Vec

在这里插入图片描述
  大量的文本称为是语料。每个词由向量表示,并且由随机向量进行起始表示。
在这里插入图片描述
通过中心词计算背景词的概率
在这里插入图片描述
L(θ)=Tt=1mjmjj0P(wt+jwt;θ)L(θ)=t=1Tmjmjj0P(wt+jwt;θ)L(θ)=t=1Tmjmjj0P(wt+jwt;θ)L(θ)=∏Tt=1∏−m≤j≤mjj≠0P(wt+j∣wt;θ)L(θ)=∏t=1T∏−m≤j≤mjj≠0P(wt+j∣wt;θ) L(\theta)=\prod \limits_{t=1}^{T}\prod \limits_{-m\leq j \leq m _{j} \atop j \neq 0} P(w_{t+j}|w_t;\theta)vcuoTvc=(u1,u2,)T=uo

logvw=1exp(uTwvc)vc=1vw=1exp(uTwvc)vx=1exp(uTxvc)ux=vx=1uxexp(uTxvc)vw=1exp(uTwvc)=logw=1vexp(uwTvc)vc=1w=1vexp(uwTvc)x=1vexp(uxTvc)ux=x=1vuxexp(uxTvc)w=1vexp(uwTvc)=logw=1vexp(uwTvc)vc=1w=1vexp(uwTvc)x=1vexp(uxTvc)ux=x=1vuxexp(uxTvc)w=1vexp(uwTvc)=∂log∑vw=1exp(uTwvc)∂vc=1∑vw=1exp(uTwvc)∑vx=1exp(uTxvc)∗ux=∑vx=1ux∗exp(uTxvc)∑vw=1exp(uTwvc)=∂log∑w=1vexp(uwTvc)∂vc=1∑w=1vexp(uwTvc)∑x=1vexp(uxTvc)∗ux=∑x=1vux∗exp(uxTvc)∑w=1vexp(uwTvc)= \frac{\partial {log \sum \limits _{w=1} ^v} exp(u_w^T v_c)}{\partial{v_c}}=\frac{1}{\sum \limits _{w=1} ^v exp(u_w^Tv_c)} \sum \limits _{x=1} ^{v} exp(u_x^Tv_c) *u_x = \sum \limits _{x=1}^{v} \frac{u_x*exp(u_x^Tv_c)}{\sum \limits _{w=1} ^v exp(u_w^Tv_c)}=

  本节课结合了旧版的前半部分(NLP的基本概念的内容)以及新版的绝大多数内容。

0. 本节课程计划

  1. NLP的基本概念和人类语言的本质。
  2. 什么是深度学习。
  3. 课程安排。
  4. 为什么NLP难?
  5. NLP的应用。
    在这里插入图片描述

1. NLP的基本概念

1.1 什么是NLP?

  NLP是计算机科学、人工智能、语言学的交叉学科。

  它的目标是让计算机理解人类语言,从而完成有意义的任务。例如:

  • 下订单或者买东西
  • 知识问答,如Siri、谷歌助手、微软小冰等

  完全理解和表达语言的内涵是极其困难的,完美的语言理解等效于实现完备的人工智能系统。
在这里插入图片描述

1.2 NLP的层次

在这里插入图片描述
  语言的输入有两种方式,一种是语音识别,一种是文本(OCR和分词)。接下来是形态学(Morphology),简单可理解为对英文单词进行形态变换,如act->action。

  接下来是语法分析和语义分析。最后是篇章处理,它更加注重于通过上下文进行理解。

  本门课主要注重于画圈的三大部分,尤其是后两部分(语法分析和语义分析)。

1.3 自然语言处理应用

在这里插入图片描述
在这里插入图片描述
  推荐和广告依然是AI在互联网行业落地最早也最为成熟的两个方向。所以将NLP技术利用于这两个方向也是顺其自然的事情。具体来说:

  • 搜索(拼写自动纠正)
  • 在线广告匹配

  现如今NLP最火热的两个方向分别是知识图谱和智能客服(聊天机器人)。

1.4 人类语言的特殊之处

在这里插入图片描述
  自然语言与信号处理、数据挖掘不同(后两者是处理数据,目的是从一堆随机数据中找出规律),自然语言都是用来传输有意义的信息的。另外,自然语言对应的系统很复杂,但是小孩子也能很快学会说话。人类语言是离散的、明确的符号系统。事实上,我们是用符号系统和别人交流,但这种富有表现力的系统可能会出现微小的差异,比如颜文字,随意的错误拼写“I loooove it”。有了符号以后,我们就可以进行可靠的远距离的传输。所以说语言文字并不仅仅是形式逻辑或传统AI的产物。
在这里插入图片描述
  当人们使用语言进行交流,尽管交流的内容包括符号,但都是通过承载在连续的载体中的。一个有趣的现象是,使用不同的载体可以表达完全相同的信息。
在这里插入图片描述  哲学、科学、人工智能的主要观点是把语言的符号体系映射到大脑。对于深度学习来说,可以把大脑想象成具有连续激活模式的大脑,上图表示的是,我们使用语言是把连续转换成符号,再转换成连续的过程。

  另外巨大的词表(每种语言最少有几万个词汇)也导致数据稀疏,是机器学习要解决的一个重要问题。

2. 如何表示词的含义

在这里插入图片描述
  这部分内容不是很好理解,包括了人类的发展史、哲学思想等等,能发明符号表示含义看起来非常容易简单,但是从0到1绝对是智慧的表现。

2.1 如何在计算机中表示含义

在这里插入图片描述
安装NLTK wordnet的方法:

pip install nltk
import nltk
nltk.download('wordnet')
  • 1
  • 2
  • 3

相同词在不同词性下的同义词

from nltk.corpus import wordnet as wn
poses = { 'n':'noun', 'v':'verb', 's':'adj (s)', 'a':'adj', 'r':'adv'}
for synset in wn.synsets("good"):
    print("{}: {}".format(poses[synset.pos()],
        ", ".join([l.name() for l in synset.lemmas()])))
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
词的逐级上位词

from nltk.corpus import wordnet as wn
panda = wn.synset("panda.n.01")
hyper = lambda s: s.hypernyms()
list(panda.closure(hyper))
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
使用WordNet存在的一些问题:
在这里插入图片描述

2.2 离散化表示

在这里插入图片描述
在这里插入图片描述
  one-hot表示的问题在于,两个向量是正交的,所以无法计算向量之间的相似度。

2.3 分布式表示

在这里插入图片描述
  通过相邻词来表示该词的含义(从小到大的阅读理解中都是使用该方法来判断新词的意思)。
在这里插入图片描述
  使用分布式表示就可以用稠密的向量来代替系数的向量,并且可以表示词与词之间的相似性。
在这里插入图片描述
  通过t-SNE将100维向量降维为2维的向量。

2.4 Word2Vec

在这里插入图片描述
  大量的文本称为是语料。每个词由向量表示,并且由随机向量进行起始表示。
在这里插入图片描述
通过中心词计算背景词的概率
在这里插入图片描述
L(θ)=Tt=1mjmjj0P(wt+jwt;θ)L(θ)=t=1Tmjmjj0P(wt+jwt;θ)L(θ)=t=1Tmjmjj0P(wt+jwt;θ)L(θ)=∏Tt=1∏−m≤j≤mjj≠0P(wt+j∣wt;θ)L(θ)=∏t=1T∏−m≤j≤mjj≠0P(wt+j∣wt;θ) L(\theta)=\prod \limits_{t=1}^{T}\prod \limits_{-m\leq j \leq m _{j} \atop j \neq 0} P(w_{t+j}|w_t;\theta)vcuoTvc=(u1,u2,)T=uo

logvw=1exp(uTwvc)vc=1vw=1exp(uTwvc)vx=1exp(uTxvc)ux=vx=1uxexp(uTxvc)vw=1exp(uTwvc)=logw=1vexp(uwTvc)vc=1w=1vexp(uwTvc)x=1vexp(uxTvc)ux=x=1vuxexp(uxTvc)w=1vexp(uwTvc)=logw=1vexp(uwTvc)vc=1w=1vexp(uwTvc)x=1vexp(uxTvc)ux=x=1vuxexp(uxTvc)w=1vexp(uwTvc)=∂log∑vw=1exp(uTwvc)∂vc=1∑vw=1exp(uTwvc)∑vx=1exp(uTxvc)∗ux=∑vx=1ux∗exp(uTxvc)∑vw=1exp(uTwvc)=∂log∑w=1vexp(uwTvc)∂vc=1∑w=1vexp(uwTvc)∑x=1vexp(uxTvc)∗ux=∑x=1vux∗exp(uxTvc)∑w=1vexp(uwTvc)= \frac{\partial {log \sum \limits _{w=1} ^v} exp(u_w^T v_c)}{\partial{v_c}}=\frac{1}{\sum \limits _{w=1} ^v exp(u_w^Tv_c)} \sum \limits _{x=1} ^{v} exp(u_x^Tv_c) *u_x = \sum \limits _{x=1}^{v} \frac{u_x*exp(u_x^Tv_c)}{\sum \limits _{w=1} ^v exp(u_w^Tv_c)}=

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!