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

作者:寒小阳 && 龙心尘
时间:2016年6月
出处:
http://blog.csdn.net/han_xiaoyang/article/details/51567822
http://blog.csdn.net/longxinchen_ml/article/details/51567960
声明:版权所有,转载请联系作者并注明出处

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

特别鸣谢:@Fantzy同学对部分内容翻译的帮助
课堂笔记:第一部分

春季2016

关键词:自然语言处理(NLP).词向量(Word Vectors).奇异值分解(Singular Value Decomposition). Skip-gram. 词组的持续爆(CBOW),负采样样本(Negative Sampling)

这是本课程的第一节,我们会先介绍自然语言处理(NLP)的概念和NLP现在所面对问题;然后开始讨论用数学向量代表自然语言词组的设想。最后我们会讨论现行的词向量构造方法。

1. 自然语言处理简介

在最开始咱们先说说什么是NLP。NLP的目的是设计出算法,让计算机“懂得”人类的自然语言,从而为人类执行任务。这些任务分为几个难度等级,例如

容易的任务

  • 语法检查
  • 关键词搜索
  • 查找同义词

中等难度的任务

  • 从网站,文件或其他来源中提取信息

比较有挑战的任务

  • 机器翻译(例如:中译英)
  • 语意分析(提问者说的意思是什么)
  • 指代分析(例如. “他”或“它”在一个特定文件中指的是什么)
  • 回答问题(例如.回答“Jeopardy Questions”一种涉及人类社会各个方面的综艺问答)

在处理所有NLP任务的时候,我们首先需要解决非常重要的一个问题(可能是最重要的):用什么方式将词组输入到模型中去。简单的NLP问题可能并不需要将词组作为独立个体对待(atomic symbols),但现在的问题绝大多数需要这样一个预处理,来体现词组之间关联/相似性和区别。所以我们引入词向量的概念,如果把词编码成词向量,我们很容易从向量的角度去衡量不同的词之间的关联与差异(常用的距离测度法,包括Jaccard, Cosine, Euclidean等等,注:距离测度法,即用一个可观测度量的量来描述一个不能直接观测度量的量)。

2.词向量

我们拿英文举例。

英语中大约有1300万个词组(token,自定义字符串,译作词组),不过他们全部是独立的吗?并不是哦,比如有一些词组,“Feline猫科动物”和“Cat猫”,“Hotel宾馆“和”Motel汽车旅馆”,其实有一定的关联或者相似性在。因此,我们希望用词向量编码词组,使它代表在词组的N维空间中的一个点(而点与点之间有距离的远近等关系,可以体现深层一点的信息)。每一个词向量的维度都可能会表征一些意义(物理含义),这些意义我们用“声明speech”来定义。例如,语义维度可以用来表明时态(过去与现在与未来),计数(单数与复数),和性别(男性与女性)。

说起来,词向量的编码方式其实挺有讲究的。咱们从最简单的看起,最简单的编码方式叫做one-hot vector:假设我们的词库总共有n个词,那我们开一个1*n的高维向量,而每个词都会在某个索引index下取到1,其余位置全部都取值为0.词向量在这种类型的编码中如下图所示:
w a a r d c a r k = [ 1 0 0 ⋮ 0 ] , w a = [ 0 1 0 ⋮ 0 ] w a t = [ 0 0 1 ⋮ 0 ] ⋯ w z e b r a = [ 0 0 0 ⋮ 1 ] w^{aardcark}= \begin{bmatrix} 1 \\ 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix} , w^{a}= \begin{bmatrix} 0 \\ 1 \\ 0 \\ \vdots \\ 0 \end{bmatrix} w^{at}= \begin{bmatrix} 0 \\ 0 \\ 1 \\ \vdots \\ 0 \end{bmatrix} \cdots \\ w^{zebra}= \begin{bmatrix} 0 \\ 0 \\ 0 \\ \vdots \\ 1 \end{bmatrix} waardcark=1000,wa=0100wat=0010wzebra=0001
这种词向量编码方式简单粗暴,我们将每一个词作为一个完全独立的个体来表达。遗憾的是,这种方式下,我们的词向量没办法给我们任何形式的词组相似性权衡。例如:
( w h o t e l ) T w m o t e l = ( w h o t e l ) T w c a t = 0 (w^{hotel})^Tw^{motel}=(w^{hotel})^Tw^{cat}=0 (whotel)Twmotel=(whotel)Twcat=0
(注:这里 W − 1 W^{-1} W1 W W

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值