我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:盈盈彩登陆 > 浮萍 >

如何表示一个词语的意思?神经网络词嵌入的基本思路

归档日期:05-01       文本归类:浮萍      文章编辑:爱尚语录

  上一节讨论了自然语言处理,讨论了深度学习,非常宏观,也非常有趣。这一节和下一节的探讨则会直接跳到最基础的内容:词向量。同时,也会涉及到一些基本的数学推导。

  如何表示一个词语的意思?计算机如何处理词语的意思离散化表示的问题从符号化表示到分布式表示基于相似度的分布式表示通过向量定义词语的含义word2vec神经网络词嵌入的基本思路word2vec主要思路Skip-gram预测word2vec细节一张图浓缩Skipgram训练模型:计算向量梯度梯度推导梯度下降随机梯度下降法关于公式排版Md2All 简介

  什么是“意思”?这是个简单的问题,想要解释清楚却并不容易。怎么办,向词典求助。韦氏词典说,“意思”是词语、短语所表达的思想;人们使用词语、符号所要表达的思想;作品、艺术所要表达的思想。这基本上与语言学家的思路是一致的。

  在语言学家眼中,词语是一种语言符号。任何语言符号是由“能指”和“所指”构成的,“能指”指语言的声音形象,“所指”指语言所反映的事物的概念。比如英语的“tree”这个单词,它的发音就是它的“能指”,而“树”的概念就是“所指”。

  他说:“她这个人真有意思(funny)。”她说:“他这个人怪有意思的(funny)。”于是人们以为他们有了意思(wish),并让他向她意思意思(express)。他火了:“我根本没有那个意思(thought)!”她也生气了:“你们这么说是什么意思(intention)?”事后有人说:“真有意思(funny)。”也有人说:“真没意思(nonsense)”。(原文见《生活报》1994.11.13.第六版)[吴尉天,1999] 《统计自然语言处理》

  过去几十年里主要使用的是分类词典。比如使用WordNet词库可以查询上义词和同义词。

  无论是基于规则的语言处理,还是基于统计的语言处理,大都把词语当作单个符号进行处理。这种离散化、分类式的表示都普遍存在上述问题。

  这就是所谓的one-hot 向量,也是一种localist的表示方式(只顾自己,不顾他人)这种编码方式会导致向量维度随着词表的增加而增加。2万 (speech) 5万 (PTB) 50万 (big vocab) 1300万 (Google 1T),最后,这些词向量会变得非常非常长,使得计算机难以处理。

  符号化表示体现不出词语之间的内在联系,无法表示意思的相似度。任何两个独热向量都是正交的,无法通过任何运算得到相似度。

  因此需要找到一种可以直接把相似度编码进向量的方法,也就是说可以直接从向量中读出词语之间的内在联系。

  例如,如何知道banking的意思呢?方法就是找到成千上万含有banking的例句,看它周围都出现了哪些词语,然后通过处理这些词语来获得banking的含义:

  我们先把一个词语定义成一个稠密向量,通过调整一个单词及其上下文单词的向量,使得根据两个向量可以推测两个词语的相似度;或通过一个词可以预测词语的上下文;或根据上下文可以预测这个词。这种手法也是递归的。

  借助词向量来定义一个预测中心词和语境词的概率模型(给定中心词,预测语境词的概率):

  的语境词(负号表示除了某某之外)。损失函数的目的是判断预测的准确与否。如果根据中心词可以完美预测语境词,则损失函数为零。而一般情况下是做不到的这一点的。

  有了损失函数后,接下来就会在一个大型语料库的不同位置得到训练实例,调整词向量,最小化损失函数。

  最后,令人惊叹的奇迹就会发生!产生的词向量非常强大,能充分地表示词语的含义。(后面会提到)

  Skip-gram的核心思想是定义一个给定中心词、预测语境词的概率分布模型。然后通过调整向量,使概率分布最大化。

  注意:这里虽然有四条线,但模型中只有一个条件分布。学习就是要最大化这些概率。

  的窗口中的所有外围词的预测概率。。然后通过调整向量,使得预测概率最大。

  对其取负对数,得到负对数似然函数,这样就把连我乘转换为求和。我们要对其最小化。

  的概率分布。softmax是一种将实数值转换成概率(0-1)的标准方法。

  从左到右是中心词独热向量,乘以中心词向量矩阵W,获得中心词语义向量,乘以另一个语境词矩阵W得到每个词语的“相似度”,对相似度取softmax得到概率,与答案对比计算损失。

  这两个矩阵都含有V个词向量,也就是说同一个词有两个词向量,哪个作为最终的、提供给其他应用使用的embeddings呢?有两种策略,要么加起来,要么拼接起来。

  ,训练的过程就是优化这些参数,方法是梯度下降法。以之前的模型为例,有V个词,每个词有两个向量,每个向量为d维,共有2dV个参数。

  面对海量语料库和窗口数,计算所有参数的梯度,会让每次参数更新变得异常缓慢!这对所有神经网络来说,都不是个好主意。

  虽然随机梯度下降充满噪音,但效果奇好,而且速度要快几个数量级。神经网络喜欢嘈杂的算法!

  Facebook AI研究团队描述了一个能够从现实世界视频中提取可控角色的系统

  基于YOLOv2模型的监控系统丧失对人物的识别能力,从而实现在摄像头下顺利”隐身”的效果

本文链接:http://vasclinic.net/fuping/794.html