资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
再探深度学习词向量表示Advanced word vector representations主讲人:李泽魁目录Lecture1知识点回顾神经概率语言模型(Bengio2003)Word2vec(Mikolov2013)(CBOW&Skip-gram)*(HS&NEG)词向量的评价方法Softmax分类模型(原PPT乱入)词向量的应用场景目录对比cs224d Lecture 3 目目录Lecture1知识点回顾(Refresher)词向量梯度下降&随机梯度下降(GD&SGD)如何评测词向量(evaluate)Softmax分类(softmaxclassification)若干习题集(problemset)Lecture1知识点回顾神经概率语言模型(Bengio2003)Word2vec(Mikolov2013)(CBOW&Skip-gram)*(HS&NEG)词向量的评价方法Softmax分类模型(原PPT乱入)词向量的应用场景本次本次目目录知识点回顾:词向量词向量表示One-hot Representation“黑板”表示为 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 .Distributional Representation“黑板”表示为 0.792, 0.177, 0.107, 0.109, 0.542, .词向量降维SVD,LSA,LDABased on lexical co-occurrenceLearning representationsPredict surrounding words of every wordEg. word2vec知识点回顾: input & output vector所以每个词w都有两个向量表示input vecter:窗口内的中心向量(center vector) voutput vector:非中心词向量(external vectors) v例如window size = 1,句子 I like learninglike为v_likeI、learning为v_I v_learning知识点回顾: Simple word2vec Predict surrounding words in a window of length c of every word.知识点回顾: Word2Vec & GloVeWord2VecEfficient Estimation of Word Representations in Vector Space. Mikolov et al. (2013)GloVeGlove: Global Vectors for Word Representation. Pennington et al. (2014)aggregated global word-word co-occurrence statistics from a corpus深度学习词向量的语言模型(引言)语言模型:判定一句话是否为自然语言传统的NLP语言模型(以N-gram为例)如何计算一个句子的概率?机器翻译:P(high winds tonite) P(large winds tonite)拼写纠错:P(about fifteen minutes from) P(about fifteen minuets from)语音识别:P(I saw a van) P(eyes awe of an)音字转换:P(你现在干什么|nixianzaiganshenme) P(你西安在干什么|nixianzaiganshenme)自动文摘、问答系统、. .深度学习词向量的语言模型(引言)传统的NLP语言模型(以N-gram为例)如何计算一个句子的概率?问题形式化定义p(S)=p(w1,w2,w3,w4,w5,wn) =p(w1)p(w2|w1)p(w3|w1,w2).p(wn|w1,w2,.,wn-1) =p(w1)p(w2|w1)p(w3|w2).p(wn|wn-1)其他语言模型指数语言模型最大熵模型MaxEnt、最大熵马尔科夫模型MEMM、条件随机域模型CRF(平滑语法、语义的加入)神经概率语言模型Bengio2003、Mikolov2013等深度学习语言模型都有哪些?(粗略)2000年,徐伟,神经网络训练语言模型Can Artificial Neural Networks Learn Language Models?用神经网络构建二元语言模型(即 P(wt|wt1))的方法深度学习语言模型都有哪些?(粗略)2003年,Bengio,三层的神经网络构建语言模型A Neural Probabilistic Language Model深度学习语言模型都有哪些?(粗略)2008,Ronan Collobert 和 Jason WestonC&W model Natural Language Processing (Almost) from Scratch2008,Andriy Mnih 和 Geoffrey HintonA scalable hierarchical distributed language model2010,MikolovRNNLMRecurrent neural network based language model2012,HuangImproving Word Representations via Global Context and Multiple Word PrototypesBengio2003 Bengio2003 该结构中的学习参数输入的词向量v(w), w属于Dictionary各层的参数WUpq各层的规模投影层:(n-1)*m,n为上下文词数,不超过5;m为词向量维度,10103隐藏层:n_hidden,用户指定,一般为102量级输出层:N,词表大小,语料相关,104105量级most computation here (也是 word2vec 的主要优化点)隐藏层to输出层的tanh输出层的softmaxBengio2003 计算公式推导映射层首尾拼接(n-1)*m ,记作x隐藏层(未画出)假设有h个节点tanh(H*x + d)隐藏层与输出层权值矩阵为 U (|V|*h)输出层|V|个节点,softmax为归一化概率 y公式为W矩阵输入层与输出层(跨了两层)的直连边矩阵,线性变换Bengio 发现直连边虽然不能提升模型效果,但是可以少一半的迭代次数同时他也猜想如果没有直连边,可能可以生成更好的词向量ffnnlm相对于 ngram模型的优点词语之间的相似性可以通过词向量计算下面例子中 cat 和 mouse 在ffnnlm中词向量相近,而在ngram中cat的概率要大很多A cat is walking on the street * 10000A mouse is walking on the street * 1计算过程自带平滑效果计算的是p(w|context)ffnnlm中词向量的角色输入与训练的参数语言模型训练结束 后的副产品词向量的历史词向量表示最先于1986年Hinton提出2003年Bengio发扬光大ffnnlmFeed-forward Neural Net Language ModelSENNA、HLBL、Word2vec 、SSWE、 GloVe Word2Vec所做改进(Mikolov 2013)映射层不再是将输入单词的向量表示按顺序排列,而是将他们相加,减少计算量去掉了tanh隐层,减少计算量,同时效果并不差目的是寻找单词的向量表示,而不是语言模型利用了上下文而不是上文了使用层次softmax使用negative samplingWord2Vec所使用模型CBOW & Skip-gram(CBOW & Skip-gram) *2两个模型(可选其一)CBOW (Continuous Bag-Of-Words Model)Skip-gram (Continuous Skip-gram Model)两套框架(可选其一)Hierarchical Softmax Negative SamplingCBOW+HS (structure)输入层上下文2C个词向量(m维)隐层输入词向量的累加和输出层Huffman Tree (Why?)权值:词频非叶节点(|D|-1 个) 代表某一类别的词叶节点(|D|个) 代表某一个词CBOW+HS (huffman code)Huffman tree叶节点是单词,对应一个huffman code,例如“00101”每个叶节点对应一个路径,记左子树为1,右子树为0投影层每维节点与每个非叶节点有连线,可以看做非叶节点具有不同权值theta每个节点分裂概率使用 逻辑回归正例概率(左分支 1)负例概率(右分支 0)CBOW+HS (a train sample)Train sample (Context(“足球”), 足球)Train huffman path 1001四次分裂Loss function ( 是0/1)i.e.CBOW+HS (Gradient Ascent Method)GD (Gradient Descent Method)要在整个训练集上最小化代价函数J()需要计算所有窗口里的参数梯度SGD (Stochastic Gradient Descent Method)窗口太多,迭代一轮太慢随机梯度下降(SGD):在每一个窗口计算完毕后更新所有的参数CBOW+HS (Gradient Ascent Method)SGD (Stochastic Gradient Descent Method)随机梯度下降(SGD):在每一个窗口计算完毕后更新所有的参数但是在每一个窗口里,我们仅有2c-1个词,这样的话要更新的参数非常稀疏解决方法保留词向量的哈希值*更新词嵌入矩阵L和L的固定列如果你有上百万个词向量并且在做分布式训练的话就不需要发送大量的更新信息了CBOW+HS (Gradient Ascent Method)theta update (theta gradient)word_vector update (word_vector gradient)CBOW+HS (hierarchical)No hierarchical structure输出层每一个词都算一遍,时间复杂度是O(|V|)Binary treeO(log2(|V|)CBOW+HS (softmax)softmaxsoftmax函数是logistic(sigmoid)函数的推广sigmoid函数只能分两类,而softmax能分多类如果某一个z_j大过其他z,那么softmax的分量就逼近于1,其他就逼近于0Skip-gram + HS输入层=投影层输出层仍为二叉树优化目标转化每个词概率相乘求导过程类似CBOW+HSNegative Sampling Negative Sampling (简称NEG)理论支撑Noise Contrastive Estimation(NCE)用于提高训练速度、改善词向量质量Hierarchical softmax的替代版本采用随机负采样替代tree structureNegative Sampling Negative Sampling 中的 Negative Sample?以CBOW为例已知Context(w) 和 词w正样本为 词w负样本为 除去词w之外的所有词Negative Sampling的依据负样本太多了高频词更易被采样带权采样问题*CBOW + Negative Sampling 约定:上下文Context(w) 和 词w,优化目标其中i.e.增大正样本概率(前半部分)减少负样本概率(后半部分)求导、更新参数略Skip-gram + Negative Sampling 优化目标其中i.e.同样,增大正样本概率(前半部分)减少负样本概率(后半部分)求导、更新参数略词向量评价(翻译版)Intrinsic在一个特定的子任务(后几页)中进行评测计算迅速有助于理解相关的系统不太清楚是否有助于真实任务除非和实际的NLP任务的相关性已经建立起来Extrinsic 在一个真实任务中进行评测需要花很长的实际来计算精度不太清楚是否是这个子系统或者其他子系统引起的问题如果用这个子系统替换原有的系统后获得精度提升有效(Winning!)词向量评价 (Intrinsic - Word Vector Analogies)通过一些语义或语法类比问题上的余弦相似度距离的表现来评测词向量问题:如果信息符合但不是线性的怎么办?词向量评价 (Intrinsic -Semantic)句法理论评价词向量评价 (Intrinsic - Syntactic)词向量评价 (Intrinsic - Sem. & Syn.)词向量评价 (Sem. & Syn. using GloVe)非对称上下文(仅有左侧的单词)并不是很好最佳的向量维度:300左右,之后变化比较轻微对于GloVe向量来说最佳的窗口长度是8词向量评价 (Sem. & Syn. using GloVe)训练的时间对于GloVe来说有帮助Word2vec不一定词向量评价 (Sem. & Syn. using GloVe)训练数据Wiki比新闻语料更相关如何应对歧义问题 (好像有点跑题)我们希望一个词向量能捕获所有的语义信息(例如run即是noun也是verb),但是这样的话词向量会被拉向两个方向对词窗口进行聚类,并对每个单词词保留聚类标签,例如bank1,bank2等如何应对歧义问题 (好像有点跑题)词向量评价 (Intrinsic - correlation)词向量评价 (Extrinsic)任何词向量可以辅助的NLP任务越来越多的领域简单的单词的分类问题 (原PPT乱入)从深度学习的词向量中最大的获益是什么?*有能力对单词进行精确的分类国家类的单词可以聚和到一起因此可以通过词向量将地名类的单词区分出来可以在其他的任务中将单词的任意信息融合进来可以将情感分析问题映射到单词分类中在语料库中寻找最具代表性的正/负例单词分类问题 引出的 softmax 分类(1)softmax分类在给定词向量x的情况下获得y类的概率分类问题 引出的 softmax 分类(2)损失函数(Lossfunction)代价函数(Costfunction)目标函数(Objectivefunction)Softmax的损失(Loss):交叉熵(CrossEntropy)假设分布是:p=0,0,1,0,0,对应计算的概率分布是q交叉熵,可以写成熵和两个分布的KL散度之和简单的单词的分类问题 例子:情感分析两个选择:方案1:仅仅训练softmax权重W方案2:同时训练词向量问题:训练词向量的优点和缺点是什么Pro: 更好的适应训练数据Con: 更差的泛化能力简单的单词的分类问题 -训练的词向量的情感分享可视化FunEnjoyableWorthRightBlarblarBlarblardullboring最后:词向量的应用汇总NLP任务挖掘词之间的关系,word analogy,譬如同义词、上位词将词向量作为特征应用到其他机器学习任务中,例如作为文本分类的feature,NER、CHK等任务机器翻译Relational extractionConnecting images and sentences,image understanding非NLP任务将qq群作为doc,用户作为word,训练user distributed representation,挖掘相似user将query session作为doc,query作为word,训练query distributed representation,挖掘相似query将不同用户点击行为作为doc,单个点击作为word,训练product distributed representation,挖掘相似product 参考文献(按照PPT页面顺序)Socher,CS224d Slides fandywang,斯坦福大学自然语言处理 Language Modelinglicstar,Deep Learning in NLP (一)词向量和语言模型falao_beiliu,深度学习word2vec笔记hisen,word2vec傻瓜剖析Mikolov,word2vec source codeshujun_deng,Deep Learning实战之word2vec 网易有道皮果提,word2vec 中的数学原理详解杨超,Google 开源项目 word2vec 的分析?知乎火光摇曳,语义分析的一些方法(中篇)王芊,Softmax 函数的特点和作用是什么?知乎52nlp,斯坦福大学深度学习与自然语言处理Thanks Q&A
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号