首页 AI学术青年与开发者社区

【中英字幕】卡耐基梅隆大学 2019 春季《神经网络自然语言处理》

开课时间:2019年3月5日
开课时长:目前仍在不断持续更新中

language is hard:语言有很多规则,要分语境,时态,要考虑上下文

解决方案:定义语法规则(不考虑机器学习),时态规则,语义分类,以及偏好

BOW:词袋模型

CBOW:连续词袋模型

 

[展开全文]

了解nlp,自然语言处理中自然的意义

希望ai研习社能找到机器学习的nlp课程

以对nlp内容打好基础

文本分类的简单问题

对每个类别进行打分 取最高分作为分类

构建函数提取组合特征

cbow连续词袋  特征组合应用

基本上这个模型是:取特征加和特征 成权重矩阵+bias 转化成得分

Deep CBOW

模型(提取组合特征 一个消极和积极的单词是否出现在一个句子里)

一句话中特征加和变成特征向量但不是使用特征向里来预测 而是通过一个几层的非线性函数运行这个模型然后基于多重特征层乘权重矩阵在加上偏差求出得分

 

 

 

ps:快通过啊 需要解锁卡看下一节

 

 

 

 

 

[展开全文]

随堂笔记:

1. 语法规则和语义理解的问难

2. 特征词的存在: 例:情感分类--love, hate;否定词;

3. 词袋模型 -> 连续词袋模型 -> 深度连续词袋

线性组合 -> 非线性表现(可提取组合特征)

4. 神经网络相关

:- 抽象于生物意义上的神经元。输入神经元,接收信号,达到激活程度,产生输出。

:- 计算图表示。

:- 神经网络框架:theano, caffe, mxnet, tensorflow(静态); dynet(适合复杂任务), chainer,  pytorch(动态)

:- 过程:创建模型->对每例,创建计算图,训练,反向传播,更新参数

静态和动态的代价取舍

静态:计算快速,移植方便
动态:操作灵活,流程简单

:- 示例(情感分类, stanford情绪):
1)读入训练集,得到单词和标签

2)定义模型(net框架),定义参数(参数=单词数量*标签数量)(权重矩阵,偏置矩阵)

3)训练,反向传播,更新参数

(和之前的基本操作过程相似,只是顺手记录)

:- 调参可以尝试不同的方式计算分数,例如修改单词的embeddings大小;设置不同的权重矩阵;修改隐藏层参数

[展开全文]

如何完成句子的分类?这个就是句子分类的任务,将句子分为5个类别,我们可以使用词袋模型来完成这个任务

 

将每一个单词使用词袋模型表示向量,每个向量的维度都是5(我是这样理解的这个语料库中词的数量只有5个,所以词典大小就是5),然后加起来就是整个句子的向量,然后我们就可以使用这个向量完成softmax的分类了,但是这样的词袋模型完成分类会有一些问题,因为我们是一个词一个词的在向量表示,很有可能出现don‘t like的情况

出现这种情况的原因是don’t‘单独向量化了,然后love单独向量化了,二者并没有结合在一起

 

而神经网络可以解决这个问题,它可以将元素特征进行组合

我们不对每一个bow向量进行相加,而是把它们放到神经网络中得到score得分,然后进行softmax分类,得到最终该文本的类别

这个是连续词袋模型,将每个词的向量加起来之后,乘以一个矩阵W,假如加起来的词的向量维度是100维,那么w的维度就是5*100,所以最终的输出维度为5维的向量,正好完成分类任务

这样处理只是降低了维度,仍然是线性表示,仍然没有组合特征,如何才能组合特征?

[展开全文]

Sentence Classification

  • Bag of Words (BOW)
    • 每个单词都有这五种element 相关度 [very good, good, neutral, bad, very bad]。
    • 最简单的做法就是将句子中每个单词对于这些 element 相关度加总,可以取最高值来当作这个句子的表现。
    • 当句子有特定字词可能会来改变结果 (例如:don't, nothing...)
    • 可以透过 neural net 来 extract combination features
  • Continuous Bag of Words (CBOW)
    • 将每个单词相转换成许多 features (例如:positive words)
    • 将 features 加总后,透过这个 features 来预测这个句子的 element
  • Deep COBW
    •  透过运算来将不同的 feature 进行 combine,再来透过这个结果来预测这个句子的 element
 
Nerual Network Frameworks
  • Static Frameworks
    • theano
    • Caffe
    • MXNet
    • TensorFlow
  • Dynamic Frameworks
    • Dynet
    • Chainer
    • PyTorch
    • 优点:有灵活操作空间
    • 缺点: 计算量大
 
Basic Process in Dynamic Neural Network Frameworks
  • Create a model
  • For each example
    • create a graph
    • calculate the result
    • back propagation an update
[展开全文]

the difficult of NLP:

(1) what's the  normal  sentence?

(2) the past tense of verb

the feature expression

how to use BOW

what's the CBOW

why use Deep CBOW

the prediction of sentiment or sentiment classifier

CBOW

not nothing

Compution graph

forward propogation

static CG: tensorflow

synytatic CG: PyTorch

some examples of code

BOW

CBOW

Structure of  this class

models of words

models of sentences

implements debug interpret of DL models

sequence to sequence model

structure prediction models

models of Tree and graph

advanced tech

models of knowledge and context

mutil-task/language learning

advanced search tech

老师会有一些课前阅读材料,也要阅读。

[展开全文]

神经网络非常强大!它是一个万能的函数逼近,可以计算任何函数。

但是,语言是很复杂的,数据是有限的!所以需要设计网络结构,训练算法或者引入偏置项

[展开全文]

最重要的三个知识点:

1bow

2.cbow

3.deep cbow

 

同时介绍的computation graph

定义好这个图结构,那么这些开发框架将会自动帮我们执行forward propagation(FP)以及backward propagation(BP)

[展开全文]

其中课程的代码在:https://github.com/neubig/nn4nlp-code

其中第一章的数据在data/classes里面

这个课程属于简介,使用了dynet这个神经网络包做了BOW(词袋模型)和CBOW(连续词袋模型)以及Deep CBOW(深度连续模型),还是很轻松的

[展开全文]

进入小组观看课程

以下为该课程相关学习小组,您可以选择任意小组加入学习课程并交流

CMU CS 11-747 2019年春季 NLP

成员:2171泡泡:2744

点击观看