Efficient Estimation of Word Representations in Vector Space

https://arxiv.org/pdf/1301.3781.pdf“>论文翻译
摘要:
我们提出了两个新的模型框架用来计算从非常大的数据集中单词的连续向量表示;
表示的质量在一个单词相似度任务中进行测试;结果与之前效果最好的技术进行比较,这些技术基于不同类型的神经网络;我们使用更低的计算量在准确率上有很大的提高,例如,它从1.6billion单词量的数据集中花费不到一天时间训练得到高质量的向量表示;而且,这些向量用于我们的测试集,计算单词句法和语义相似度时提供了很好的表现;

简介:
许多当前的NLP系统和技术把单词视为原子单位,其中没有单词间相似度的概念,它们由单词表中的序号来表示;这种做法有几个原因:简单,鲁棒,和观察经验:使用大量数据训练的简单模型效果好于使用少量数据训练的复杂模型;一个例子就是流行的N-gram模型,用于统计语言建模,使用所有实际可以利用的数据训练N-gram是可能的;
然而,简单的技术在许多的任务中有自身的限制,例如,在自动语音识别中,相关领域的数据量被限制,它的性能通常由高质量的转录的语音数据量来主导(通常只有几百万单词)。在机器翻译中,许多语言中存在的语料仅仅包含数十亿的单词;因此,现在的情况是,简单的放大基础的技术并不会导致明显的进步,我们不得不关注于更高级的技术;
随着最近几年机器学习技术的进步,有了在更大的数据集上训练更复杂模型的可能性;而且应该优于简单模型。可能最成功的概念是使用单词的分布式向量表示。例如,基于语言模型的神经网络就明显由于N-gram模型;
文章目标
这篇文章的主要的目标是介绍从数十亿单词量的大数据集学习高质量单词向量,其中词典包含了数百万的单词;据我们所知,之前存在的框架没有哪个能够在百万单词量的数据集上进行训练,得到了维度在50-100之间的合适的单词向量;
我们使用最近提出的技术来度量得到的向量表示的质量;惊奇的发现,相似的单词不仅仅趋向于彼此之间更加接近,而且单词之间可能具有多重维度的相似性;这在之前的屈折变化语言的上下文中已经观察到,例如,名词可能拥有多种不同的词后缀,当我们在原始的向量空间的子空间寻找相似的单词的时候,很有可能找到拥有相似后缀名的单词;
在这篇文章中,我们尝试开发新的框架,它能够保存单词之间存在的线性规律,进而尝试最大化向量操作的精确度;我们设计新的复杂测试集用来句法和语义规则测试;
而且,我们讨论训练时间和精确度与单词向量维数、训练数据的大小之间的关系;
之前的工作
把单词表示为连续向量拥有很长的历史;一个用于估计神经网语言模型的非常流行框架模型被提出
模型的框架
许多不同种类的模型被提出,用来估计单词的连续表示;包括众所周知的Latent Semantic Analysis (LSA) and Latent Dirichlet Allocation (LDA);
在这篇文章中,我们关注于通过神经网络学习得到单词的分布式向量表示;就像前面展示的,它们通过保存单词之间的线性规则使得性能明显优于LSA;此外,LDA在大的数据集上计算代价很大;
为了比较不同模型框架,我们定义了模型计算复杂度,作为评价完整的模型训练的数量指标;接下来,我们试着在最小化计算复杂度的同时,最大化准确度;
对于下面的所有模型,训练复杂度正比于:
O=E*T*Q
这里E是指训练的迭代次数,T是指训练集中单词的数量,Q在每个模型框架中以后定义;一般选择E =3-50 ,T上至十亿,所有的模型使用随机梯度下降算法和反向传播进行训练;
Feedforward Neural Net Language Model (NNLM)
概率前馈神经网络语言模型已被提出,它包括输入、输出、投影、隐含、输出层。在输入层,N个词使用 1-of-V coding进行编码,V是指词典中的单词数量;之后,输入层被映射到一个映射层P,它具有维度N*D,使用一个共享的映射矩阵,N个输入在任何指定的时间都是激活的,组建投影层是一个相对简单的操作
NNLM架构在映射层和隐含层之间的计算变得复杂,因为在映射层的值是稠密的。对于一个通常的选择,N=10 ,映射层可能是500-2000,然而隐含层大小H通常为500-1000,而且,隐含层用于计算在单词表中所有单词的概率分布,结果导致V维的输出向量。因此,每一个训练样本的计算复杂度为:
Q =N*D+N*D*H+H*V;
其中支配项为H*V。然而,一些实际的解决方案被提出来能够避免它,或者使用 hierarchical versions of the softmax,或者通过在训练过程中没有归一化的模型来避免完整的归一化模型;

2.2 循环神经网络语言模型(RNNLM)
基于语言模型的循环神经网络已经被提出用来克服前馈NNLM的某种限制,例如,需要指出上下文的长度,因为传统的RNNs能够有效的表达更复杂的模型,相比于摘得神经网络;RNN模型没有映射层,只有输入层,隐含层、输出层;这个模型的特点在于循环矩阵,它连接隐含层和它自身,使用延迟连接,它使得循环模型形成短时间的记忆,过去的信息能够通过隐含层的状态表示,它的更新根据当前的输入和前段时间隐含层状态;
RNN中每一个训练样本的复杂度为:
Q=H*H+H*V
这里单词的表示D和隐含层状态H拥有相同的维度。紧接着,项H*V能够通过使用hierarchical softmax.有效的减少为H*log2(V)。大部分复杂度来自于H*H;
神经网络的并行训练
为了在超大数据集上运行神经网络模型,我们已经在名叫Dist Belief的大规模分布式框架的基础上实现了一些模型;包括前馈NNLM和在文章中提出的新模型;这个框架允许相同的模型并行的运行多个副本,所有的副本通过一个保存有所有的参数的中心服务器同步它的梯度更新,对于这个并行训练,我们使用小的批同步梯度下降,使用一个自适应的学习率生成器称为Adgrad;在这个框架下,通常使用一百或跟多的副本,每一个使用在数据中心的不同机器的多个CPU

新的对数线性模型(New Log-linear Models)
在这一部分,我们提出两个新的框架模型,用最小化计算复杂度学习单词的分布式向量表示;
从前面可知,计算复杂度主要来源于模型的非线性的隐含层;然而这是使得神经网络富有吸引力的原因,,我们决定开发更多的相似模型,它可能不能像神经网络那样精确地表示数据,但是能够尽可能的在更多的数据进行训练;
新的框架基于之前我们的工作,在那里发现了神经网络语言模型能够成功的通过两个步骤训练:首先,通过简单模型学习单词连续向量表示,在这些单词的分布式向量表示的基础之上进行N-gramNNLM 训练 。然而,后续有大量工作来学习用来学习词向量
3.1连续词袋模型( Continuous Bag-of-Words Model)
第一个被提出的模型与前馈NNLM相似,在这个模型中,非线性隐含层被移除,映射层被所有的单词共享(而不是仅仅共享映射矩阵)因此,所有的单词被映射到相同的位置(它们的向量被求平均),我们称这个框架为词袋模型,因为在模型中,过去的单词的顺序不影响映射;而且,我们还用未来的单词;我们已经在下面介绍的项目中获得了最好的性能,项目中通过构建一个log-linear 分类器,带有四个历史的单词和四个未来单词作为输入,训练准则是正确的分类当前的单词(中间词),训练复杂度为:
Q= N*D+D*log2(V)
我们把这个模型简称为CBOW,不同于标准的词袋模型,它使用上下文的连续分布向量表示。这个模型框架由下图显示;注意输入层与映射层之间的权值向量被所有位置的单词共享,和NNLM中相同的方式
第二个框架与CBOW相似,但是与基于上下文预测当前词相反,它试图最大化一个单词的分类器;更精确的说,我们使用每个当前单词作为带有连续的映射层的log-linear 分类器的输入,预测当前单词之前和之后一定范围内的单词;我们发现增加范围能够提高生成的单词向量的质量;但是还增加了计算复杂度;由于远距离的单词通常与当前单词有更少的关系,我们通过在我们的训练样本中从这些单词中采样更少,给予远距离单词更小的权重;
框架的训练复杂度成正比于:
Q=C*(D+D*log2(V))
这里C是单词最大化距离,因此,如果我们选择C = 5 ,对于每个训练单词,我们随机的选择一个数字R ,在<1;C>之间,然后使用R当前单词的R个历史单词和R个未来单词作为正确的标签。这需要我们做R*2单词分类器,把当前单词作为输入,R+R个单词作为输出;在下面的试验中,C = 10;
这里写图片描述

4 结果
为了比较不同的词向量版本的质量,之前的文章通常会使用一个表,展示样本单词和它最相似的单词,直观的理解他们;尽管很容易显示France与Italy相似;把这些向量应用于更复杂的相似度任务中更具有挑战性;根据前面的观察,单词之间存在不同类型的相似度,例如,单词big与bigger形似,同样的意义,small与smaller相似;另一个类型的关系的示例:big -biggest 和small - smallest;我们将要在一个问题中呈现两个单词对之间的关系,就像这样:similar相对于small和biggest相对于big具有相同的意义吗?
多少令人吃惊!这个问题能够通过实施简单的单词的向量表示的代数运算进行回答。为了找到与small在语义上最相近的的单词,而且与biggest-big具有相同的意义;我么能够简单的计算向量X = vector(“biggest”)-vector(“big”)+vector(”small”);然后,我们通过Cosine Distance在向量空间中寻找与X最接近的单词;
把它作为问题的答案进行回答;当词向量被很好地训练的时候,使用这个方法很有可能获得正确的答案;
最后,我们发现当我们在大的数据集上训练高维词向量的时候,生成的向量能够用于回答非常微妙的单词之间的语义相关问题;例如,一个城市与所处于的国家。例如France-Paris和Germany-Berlin。具有这些语义关系的词向量能够对现存的许多NLP应用提供很大的帮助,例如,机器翻译、信息检索、问答系统,和将来出现的其他应用;
这里写图片描述
任务描述
为了度量词向量的质量,我们定义了一个复杂的测试集,它包括了五种类型的语义问题。九个类型的句法问题。包括每个类别的两个样本集在上表展示;总之,共拥有8869个语义问题和10675个句法问题。在每个类别的问题根据两步进行构建,首先,相似的单词对序列被自动的构建,然后,通过链接两个单词对,一个大的问题序列被构建;例如,我们产生一个序列记录68个美国的大城市与它们所属的州,通过随机的链接两个单词对功能产生2.5K个问题;在我们的测试集中,仅仅包含了单个单词的标签,因此多单词的实体并没有出现(例如New york );
我们计算了所有问题类型的整体精确度,每一个问题类型被分开考虑;假设只有向量通过上面的方法得到对应的最相似的单词就是问题所对应的正确的单词,问题才视为正确;因此,同义词视为错误;由于当前的模型没有任何关于单词形态学的信息输入,这意味着达到100%的精确度不太可能;然而,我们相信单词向量对于模型应用的有用性应该与这个精确指标相关。而且,通过结合单词结构信息,还能获得进步,尤其对于句法问题;
最大化精确度
我们使用GoogleNews语料来训练词向量。语料包含了大约6B标签;
我们把单词表限制在1million个频率高的单词;明显的,我们正在面对时间约束优化问题,就像期待使用更多的数据和更高维度词向量能够提高精度一样。为了得到即好又快的结果,评估最好的模型框架选择;我们首先使用训练数据的子集进行训练、评价各种模型;把单词表限制在频率最好的30k个单词;使用CBOW框架,得到不同的词向量维度或者增加训练数据量的训练结果在下表中进行展示:
这里写图片描述
可以看出,在一些点之后,增加更多的维度和增加训练数据提供递减的提升。因此,我们不得不提高向量维度,同时提高训练数据的量;虽然这一观察似乎微不足道,值得注意的是,当前流行于使用相对大的数据集训练词向量,但是相对不足的尺寸(例如50-100),训练数据增加一倍大概等同于向量尺寸中增加一倍增加的计算复杂度;
对于在表2 和表4 呈现的实验,我们使用了随机梯度下降和负反馈进行三次训练迭代,我们选择开始的学习率为0.025,线性减小,因袭最后一次迭代是接近于零;
学习得到的关系的示例
这里写图片描述
上图展示了符合各种各样关系的单词对。我们依照下面介绍的方法:通过两个单词向量相减来定义单词之间的关系,结果加上另一个单词。例如,Paris - France +Italy =rome 。所有能看出,准确度是相当的高,尽管还有很多的提升空间(注意,使用我们精确地度量,即假设准确的匹配,上表呈现的结果仅仅得分60%);我们相信在更大大数据集上训练更高维度的词向量将要表现的更好,使能够促进创新的应用的发展,
另一个提高精确度的方法是提供一个样本更多的关系。通过使用十个样本而不是一个来形成词向量,在语义-句法测试集上我们最好的模型上已经实现精度提高10%;

把向量公式应用于解决不同的任务是可能的,例如,我们已经实现了很好的精确度用来选择列表以外的单词,通过计算单词序列所对应的词向量的平均,寻找最远距离的词向量。只是某些人工智能测试中比较流行的一个问题。显然,使用这些技术还会有很多的发现;

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在全轮驱动(AWD)车辆中进行车速估计是一项重要的任务。估计车速可以帮助驾驶员更好地了解车辆的动态状况,确保驾驶的安全性。 首先,车辆的车速可以通过使用车辆自带的速度传感器来估计。这些传感器可以测量车轮旋转的速度,然后通过车辆的车轮直径等参数进行计算,从而得出车速的估计值。 其次,车速的估计还可以通过使用车辆上安装的惯性测量单元(IMU)进行。IMU可以测量车辆的加速度和旋转速度,通过对这些数据进行积分和滤波处理,可以得到车辆的位移和旋转角度。然后,通过这些数据计算出车辆的车速。 另外,车辆上的其他传感器也可以辅助车速的估计。例如,使用GPS可以测量车辆在地球表面上的位置变化,可以通过这些位置数据的变化来计算车速。另外,使用雷达或相机等传感器可以监测周围环境中的物体移动情况,通过分析这些移动的物体的速度和方向,可以得到车辆的车速估计值。 总之,在AWD车辆中进行车速估计是一项复杂的任务,需要结合多种传感器和数据进行计算和分析。准确的车速估计对于驾驶员的安全和行车控制至关重要。 ### 回答2: 在AWD车辆中估计车速可以通过多种方式来完成。其中一种方法是使用车辆的制动系统来估计车速。制动系统通过监测车辆的轮胎旋转速度来估计车速。当车辆行驶时,每个轮胎的旋转速度会根据车辆的速度而有所变化。通过比较不同轮胎的旋转速度,可以获得一个接近实际车速的估计。 另一种常见的方法是使用车辆的动力系统来估计车速。AWD车辆通常配备有多个驱动轴,每个驱动轴都有一个独立的动力输出装置。通过监测不同驱动轴的动力输出和转速,可以计算出车辆的速度。 除了以上两种方法外,还可以使用车辆的惯性传感器来估计车速。惯性传感器可以检测车辆加速度的变化,并根据这些变化来估计车速。这种方法相对于其他方法更加灵活,可以适用于各种道路和驾驶条件。 需要注意的是,这些方法都是基于估计和计算而来的,可能存在一定的误差。车辆的负载、行驶条件、轮胎磨损等因素都会对估计结果产生影响。因此,在估计车速时需要考虑这些因素,并进行适当的校正和调整,以提高估计精度。 ### 回答3: 在全轮驱动车辆中,估计车辆速度的主要方法有多种。其中一种常用的方法是使用车辆的转速和轮胎直径来进行估算。当车辆在行驶过程中,发动机的转速会通过传动装置传递给车轮,从而推动车辆前进。因此,通过测量发动机转速可以推断车辆的速度。同时,了解车辆所使用的轮胎直径也能提供一定的参考,因为车轮每转一圈所走过的距离与其直径有关。 另外一种估算车辆速度的方法是使用车辆的里程表和所用时间。里程表记录了车辆行驶的总距离,而所用时间可以通过计时器或车载导航系统等设备来获得。通过计算车辆在一段时间内行驶的距离,再与所用的时间进行比较,就可以估算出车辆的速度。 除了以上两种方法,现代车辆中也经常使用车载传感器来测量车辆的速度。这些传感器可以测量车轮的转速,然后通过电子控制单元(ECU)计算出车辆的速度。这种方法通常比较精确,可以准确地估算车辆的实际速度。 综上所述,在全轮驱动车辆中,估算车辆速度可以使用车辆转速和轮胎直径的关系、里程表和时间的关系以及车载传感器等方法。这些方法各有其优势和适用场景,在实际应用中可以根据需要选择合适的方法进行估算。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值