前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >斯坦福大学NLP-cs224课程笔记2:词向量

斯坦福大学NLP-cs224课程笔记2:词向量

作者头像
double
发布2018-07-25 18:01:02
7010
发布2018-07-25 18:01:02
举报
文章被收录于专栏:算法channel算法channel

开篇Richard教授总结了深度学习如何应用于NLP领域,包括:

  • 自然语言处理(NLP)是什么,语言的特点,NLP的难点;
  • 深度学习(DL)和经典的机器学习(ML)相比有哪些优势,DL在工程中的应用发展历程;
  • NLP的几种应用场景

详细请参考:斯坦福大学NLP-cs224课程笔记1:应用深度学习到自然语言处理简介

在第一堂课中,Richard教授留了3门课外阅读材料,线性代数,概率统计,凸优化,大神推荐的材料每门都浓缩到只有10页左右,但基本都包括了重要知识点。接下来,边学边结合这些资料,应该效果会更好,如有需要在后台回复:math.

接下来,跟随Richard一起学习NLP之词向量模型,词向量模型是将词语表达为数值向量的过程,这是进行数值计算的前提,也是NLP工作开展的第一步。

one-hot

one-hot 数值表达单词的方法很直接,将此库单词数标记为向量的长度,每个词向量的分量只有一个为1,其余全为0,1的位置对应该词在词典的位置,比如:

adore 表示为 [ 0,0,0,1,...,0,0 ]

respect 表示为 [ 0,1,0,0,...,0,0 ]

这种表示方法的优点是简洁,每个词分配一个编号,比如 adore 编号为102,respect 编号为34214,配合最大熵,SVM等算法可以完成NLP的一些任务。但缺点也很明显:

  1. 维数灾难. 如果有10万单词,维数就是10万。
  2. 词汇鸿沟. 不能很好地刻画词语与词语间的相似性,adore和respect的词向量是正交的,反映不出它们是同义词。
  3. 强稀疏性.

word vectors

一个单词的意思总是通过与它邻近的那些单词定义,这是NLP中最成功的idea之一。当一个单词 w 出现在文本中,w 的上下文就是在fixed-size窗口内的单词集合,例如 w 为 banking 时,它的语义可以通过以下三个句子的 banking 的上下文推断。

正是通过单词 w 的上下文确定 w 意思的想法,才有了下面的分布的、稠密的词向量表达,克服了 one-hot 表达的缺点。

基于此想法构建 w 的词向量,同 w 有相似上下文的那些单词,也会与 w 有相似的词向量,如 linguistics 表达为:[ 0.286 0.792 −0.177 −0.107 0.109 −0.542 0.349 0.271 ],注意无特殊说明,向量一般都指列向量。

有时也称 word vectors 为 word embeddings, 或 word resprensentations.

Word2vec

Mikolov et al. 2013 利用单词的意思通过其上下文确定的思想,开源了一个学习词向量的框架:Word2vec 模型。Word2vec 的主要思想:

  1. 基于超大的文本集
  2. 每一个单词都用向量表达
  3. 文本有单词 c 和 c 外的上下文单词集合 o 组成,扫描文本中的每一个位置 t
  4. 利用单词 c 的向量 和其上下文 o 的向量之间的相似性,计算给定 c 时 o 的概率 (或已知 o 时 c 的概率).
  5. 计算调整词向量使得上步的概率值最大

当文本扫描到位置 t 即单词 into 时,假定上下文窗口尺寸定义为 2 ,into 的上下文为前、后共 4 个位置,分别计算 4 个概率 : P(Wt+j | Wt)

下一个位置上的单词为 banking,同样计算 4 个概率:

更一般地,在已知中心词 wj 和 wj 的上下文窗口尺寸为 m 下,预测 wj 的上下文窗口的单词集合,即求窗口内几个单词都出现的概率,如下,T 为整个文本的单词个数,参数 theta 就是需要求解优化的参数:

最大似然估计的目标函数与线性回归、逻辑回归的一致,详细推导过程可以参考之前推送(后台回复 9 ),如下,即求目标函数的最小值:

目标函数中参数 theta 是待求解的,但是概率 P 是需要提前求解的,如何求解呢?

在这个模型中,处于文本中的每一个单词要么是中心词,要么是上下文,每个单词 w 用 2 个向量来表达:

  1. 当 w 是中心词,对应的向量为 Vw
  2. 当 w 是上下文词,对应的向量为 Uw

然后,对于中心词 c 和上下文词 o,给定 c 时 o 出现的概率可以表达为一个 softmax 函数:

分子中向量 Vw 和 Uw 相似性(相关性)越大,则分子越大;分母取e后,相当于对文本中的所有单词进行了正则处理。

可以用梯度下降求解目标函数中的参数,依次扫描每一个窗口,分别求出中心词的梯度及上下文窗口的梯度,同时更新本窗口的参数,如下所示当扫描到中心词 banking 时的场景。关于这部分内容,仍然参考之前推送(后台回复 9 )

More details

截止目前,我们都是已知中心词预测上下文单词,这就是 Skip-grams (SG) 模型;反过来,如果已知上下(bag of context words)预测中心词,称为 Continuous Bag of Words (CBOW)

注意到词库单词数亿级时,求成本函数的梯度便是亿级的,迭代更新一次将会很慢! 解决办法是每次迭代时,选择一批窗口作为样本,更新样本的窗口参数,这种方法称为 Stochastic gradient descent (SGD)

如果样本出现负采样技术时,需要对目标函数适当做适当修正,可以参考 google 的 Distributed Representations of Words and Phrases and their Compositionality” (Mikolov et al. 2013).

查看本课程完整资料,请后台回复:cs224

点击以下标题查看相关内容:

  • 最小二乘法原理(后):梯度下降求权重参数
  • 线性回归:算法兑现为python代码

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • one-hot
  • word vectors
  • Word2vec
  • More details
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档