首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

自然语言处理(NLP)是什么,语言的特点,NLP的难点;

深度学习(DL)和经典的机器学习(ML)相比有哪些优势,DL在工程中的应用发展历程;

NLP的几种应用场景

接下来,跟随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的一些任务。但缺点也很明显:

维数灾难. 如果有10万单词,维数就是10万。

词汇鸿沟.不能很好地刻画词语与词语间的相似性,adore和respect的词向量是正交的,反映不出它们是同义词。

强稀疏性.

word vectors

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

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

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

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

Word2vec

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

基于超大的文本集

每一个单词都用向量表达

文本有单词 c 和 c 外的上下文单词集合 o组成,扫描文本中的每一个位置 t

利用单词 c 的向量 和其上下文 o 的向量之间的相似性,计算给定 c 时 o 的概率(或已知 o 时 c 的概率).

计算调整词向量使得上步的概率值最大

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

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

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

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

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

当 w 是中心词,对应的向量为 Vw

当 w 是上下文词,对应的向量为 Uw

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

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

More details

截止目前,我们都是已知中心词预测上下文单词,这就是Skip-grams (SG)模型;反过来,如果已知上下(bagof contextwords)预测中心词,称为ContinuousBagofWords(CBOW)

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

如果样本出现负样本噪声时,需要对目标函数适当做适当修正,可以参考 google 的DistributedRepresentationsofWordsandPhrasesandtheirCompositionality”(Mikolov etal.2013).

关于算法channel

算法channel是一个工程与学术相结合的原创笔记分享平台,提供包括基础算法,机器学习,深度学习,NLP,工具库使用等10余个频道,如果你对算法和人工智能感兴趣,欢迎在公众号后台点击「交流群」。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180331G148KB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券