向量空间中词表示的有效估计

目录

向量空间中词表示的有效估计

1 简介

2 模型构建

2.1 前馈神经网络语言模型(NNLM)

2.2 递归神经网络语言模型(RNNLM)

2.3 神经网络的并行训练

3 新的对数线性模型

3.1 连续的词袋模型

3.2 连续Skip-gram模型

4 结果

4.1 任务描述

4.2 最大化精度

4.3 模型架构比较

4.4 模型大规模并行训练

4.5 微软研究语句完成挑战

5 学习关系的例子

6 结论


向量空间中词表示的有效估计

1 简介

在大量数据上训练的简单模型优于在较少数据上训练的复杂系统,然而,简单的技术在许多任务中都有限制,比如在语音翻译中,相关数据是有限的,而模型好好主要受限于高质量数据的规模。在某些情况下,简单地扩展基本技术并不会带来任何显著的进展,我们必须关注更高级的技术。随着机器学习的发展,在更复杂的模型上训练更大的数据集成为可能。可能最成功的概念是使用单词的分布式表示。例如,基于神经网络的语言模型显著优于N-gram模型。

    1. 目标

介绍可用于从数十亿个单词的海量数据集和数十亿个词汇表中中学习高质量单词向量的技术。期望相似的单词不仅会彼此接近,而且可以有多个维度的相似。名词可以有多个词尾,如果我们在原始向量空间的子空间中搜索相似的词,就有可能找到词尾相似的词。

 

研究发现,词汇表征的相似性超越了简单的句法规律。使用单词偏移技术,对单词向量进行简单的代数运算,例如,向量(“King”)-向量(“Man”)+向量(“Woman”)得到的向量最接近单词Queen的向量表示。

 

我们试图通过开发新的模型体系结构来最大限度地提高这些向量运算的精度,从而保持单词之间的线性规则。我们设计了一个新的综合测试集来测量句法和语义的规律,结果表明,许多这样的规律都可以被准确地学习到。此外,我们还讨论了训练时间和精度如何依赖于单词向量的维数和训练数据量。

2 模型构建

我们关注的是通过神经网络学习的单词的分布式表示,因为之前的研究表明,在保持单词之间的线性规则方面,神经网络的表现明显优于LSA(潜在语义分析); 此外,对于大型数据集,LDA在计算上变得非常昂贵。

训练复杂度与下列式子成正比:

其中:

E:训练的轮数(epochs);E通常取3-50

T:训练集中的单词数;T通常达到10亿

Q:针对每个模型体系结构进一步定义的

所有模型均采用随机梯度下降法和反向传播法进行训练

2.1 前馈神经网络语言模型(NNLM)

它由输入层、投影层、隐藏层和输出层组成。在输入层,使用1-of-V编码对前面的N个单词进行编码,其中V表示单词的大小。然后使用共享的投影矩阵将输入层投影到维数为N×D的投影层P上。由于在任何给定时间只有N个输入是活动的,投影层的组合相对来说是廉价的操作。由于投影层中的值比较密集,使得在投影层和隐层之间的计算变得复杂。对于N = 10的常见选择,投影层(P)的大小可能是500到2000,而隐藏层的大小H通常是500到1000个单元。利用隐层计算词汇表中所有单词的概率分布,得到维数为V的输出层。因此,每个训练实例的计算复杂度为:

其中主导项是H×V。但是,提出了若干实际的解决办法来避免这种情况;要么使用softmax的分层版本,要么使用训练期间没有标准化的模型完全避免标准化模型。使用词汇表的二叉树表示,需要计算的输出单元数量可以减少到log 2 (V)左右。因此,大部分的复杂性是由N×D×H这一项引起的。

 

在我们的模型中,我们使用层次结构的softmax,其中词汇表表示为哈夫曼二叉树。哈夫曼树将短二进制代码分配给频繁的单词,这进一步减少了需要计算的输出单元的数量。平衡二叉树需要log 2 (V)输出来求值,而基于Huffman树的分层softmax只需要log 2 (Unigram perplexity(V))

 

例如,当词汇量为100万个单词时,这将导致评估速度提高约两倍。虽然这对于神经网络LMs来说不是关键的加速,因为计算瓶颈在N×D×H项,但是我们稍后将提出没有隐藏层的体系结构,从而严重依赖于softmax归一化的效率。

 

2.2 递归神经网络语言模型(RNNLM)

克服前馈神经网络的某些局限性。例如需要指定上下文长度(模型N的顺序),并且因为理论上RNNs可以比浅层神经网络更有效地表示复杂的模式。RNN模型没有投影层;只有输入、隐藏和输出层。这种模型的特殊之处在于使用延时连接将隐藏层连接到它自己的递归矩阵。这允许递归模型形成某种短期记忆,因为来自过去的信息可以由根据当前输入和前一个时间步骤中隐藏层的状态更新的隐藏层状态表示。RNN模型每个训练实例的复杂度为:

 

其中,单词的表示D与隐含层H具有相同的维数。同样,通过使用层次softmax,可以将H×V有效地缩减为H×log 2 (V)。大部分的复杂性来自于H×H。

2.3 神经网络的并行训练

为了在大数据集上训练模型,我们在大规模分布式框架DistBelief上实现了多个模型,包括前馈NNLM和本文提出的新模型。该框架允许我们并行运行同一模型的多个副本,每个副本通过保存所有参数的集中式服务器同步其梯度更新。对于这种并行训练,我们使用小型批量异步梯度下降与自适应学习率过程称为Adagrad。在此框架下,通常使用100个或多个模型副本,每个副本在数据中心的不同机器上使用多个CPU内核。

3 新的对数线性模型

介绍两种新的学习单词分布式表示的方法,并试图最小化计算复杂度。从上述分析中可以看出,最复杂的部分主要在非线性隐藏层。我们决定探索更简单的模型,这些模型可能不能像神经网络那样精确地表示数据,但可能可以在更有效的数据上进行训练。

3.1 连续的词袋模型

第一种结构类似于前馈NNLM,去掉非线性隐层,所有单词共享投影层(不只是投影矩阵);因此,所有单词都被投影到相同的位置(它们的向量取平均值)。我们称这个架构为单词包模型,因为历史上单词的顺序并不影响投影。此外,我们也使用将来时的词;我们通过在输入端建立一个包含四个将来词和四个历史词的对数线性分类器,得到了下一节所介绍任务的最佳性能,训练准则是正确分类当前(中间)词。那么训练复杂度:

我们将这个模型进一步表示为CBOW,因为它不像标准的单词袋模型,它使用上下文的连续分布式表示。模型架构如下图所示。注意,输入层和投影层之间的权重矩阵以与NNLM中相同的方式共享所有单词位置。

3.2 连续Skip-gram模型

我们将每个当前单词作为一个连续投影层的对数线性分类器的输入,并在当前单词前后预测一定范围内的单词。由于距离较远的单词与当前单词的关联通常比与当前单词较近的单词要小,所以我们在训练示例中对这些单词的采样较少,从而对距离较远的单词的权重较小。

该体系结构的训练复杂度:

其中:

C:单词的最大距离

因此,如果我们选择C = 5,那么对于每个训练单词,我们将在< 1;C >范围内随机选择一个数字R,然后使用来自历史的R单词和来自当前单词未来的R单词作为正确的标签。这将要求我们做R×2个单词的分类,以当前单词作为输入,每个R + R单词作为输出。在接下来的实验中,我们使用C = 10。

4 结果

“什么是类似于small 同一意义上的biggest 类似于big”?这些问题可以通过对单词的向量表示进行简单的代数运算来回答。X = vector(”biggest”)−vector(”big”)+vector(”small”),然后,我们在向量空间中搜索由余弦距离测量到的最接近X的单词,并将其作为问题的答案。

 

我们发现,当我们在大量数据上训练高维词向量时,得到的向量可以用来回答单词之间非常微妙的语义关系,比如一个城市和它所属的国家,例如,France is to Paris as Germany is to Berlin。具有这种语义关系的词向量可以用来改进许多现有的NLP应用程序。

4.1 任务描述

为了评估词向量的质量,我们定义了一个包含五类语义问题和九类句法问题的综合测试集。首先手动创建了类似的单词对列表,然后一个大的问题列表是由连接两个单词对组成的。只有当使用上述方法计算的向量与问题中正确的单词完全相同时,才假定问题得到正确答案;同义词因此被视为错误。

4.2 最大化精度

一般情况下,增加数据量或者维度,可以提高精度。但是,在某个点之后,添加更多的维度或添加更多的训练数据提供的改进越来越少。

 

使用来自词汇量有限的CBOW体系结构的单词向量,对语义-句法单词关系测试集子集的准确性。只有包含最常见的30000个单词的问题才会被使用。结果如下:

使用基于相同数据的模型(使用640维单词向量)的体系结构的比较。在语义-句法关系测试集上和在句法关系测试集上均有较好的准确性,如下图所示:

4.3 模型架构比较

(1)语义-句法词关系测试集上公开可用的词向量与模型中的词向量的比较。使用完整的词汇表。

(2)同一数据上三阶段训练模型与一阶段训练模型的比较。在完整的语义-句法数据集上报告准确性。

4.4 模型大规模并行训练

使用小批量异步梯度下降和自适应学习速率过程称为Adagrad。在训练中使用了50到100个模型副本。

4.5 微软研究语句完成挑战

这个任务由1040个句子组成,每个句子中缺少一个单词,目标是选择与句子其余部分最连贯的单词,给出五个合理的选择。

5 学习关系的例子

Paris - France + Italy = Rome

我们相信,在更大的数据集更大的维数上训练的字向量将表现得更好,并将使开发新的创新应用程序成为可能。另一个提高准确性的方法是,提供不止一个关系的例子,用十个例子而不是一个来形成关系向量(我们将单个向量平均在一起),我们发现在语义-句法测试中,我们的最佳模型的准确性绝对提高了约10%。

6 结论

我们研究了在一系列句法和语义语言任务上,由各种模型导出的单词向量表示的质量。我们观察到,与流行的神经网络模型(前馈和递归)相比,使用非常简单的模型体系结构训练高质量的字向量是可能的。

 

词向量可以成功地应用于知识库中事实的自动扩展,以及对现有事实正确性的验证。

------------------------------------------------------------------------------------------------------------

参考资料:https://arxiv.org/pdf/1301.3781.pdf

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值