当前位置: 代码迷 >> 综合 >> Efficient Estimation of Word Representations in Vector Space 笔记
  详细解决方案

Efficient Estimation of Word Representations in Vector Space 笔记

热度:95   发布时间:2023-12-07 01:17:35.0

先上这篇paper链接:https://arxiv.org/pdf/1301.3781.pdf

摘要

这篇paper介绍了两种可从大规模数据集计算continuous vector representations of words的模型。(这边的continuous或可理解为上下文中心词是连在一起的;亦或相对于one-hot编码的非0即1,各维度上都是实数)。在单词相似性任务中衡量这些representations 的性能,并将结果与以前基于不同类型神经网络的优秀的模型进行比较。在更低的计算成本下,准确度有了很大的提高。这些vectors在测试集上能很好的捕捉到语意和句法的相似性(we show that these vectors provide state-of-the-art performance on our test set for measuring syntactic and semantic word similarities.)。

1 引言

当时很多的NLP算法,将words当作最小的原子用词典中的下标表示,缺点是没有words间相似性的概念,优点是简单(大训练集上的简单模型的表现优于小训练集上的复杂模型,在有限的计算资源和时间复杂度下,简单的模型能作用于更大的训练集)、鲁棒【simplicity, robustness and the observation that simple models trained on huge amounts of data outperform complex systems trained on less data】。例如N-gram模型能作用于万亿级别单词的数据集。

但是在很多任务中简单模型表现不佳。例如自动语音识别领域的数据比较少,模型表现与高质量的转录语音数据的量相关,通常只有百万级别。机器翻译领域,某些语言的语料也只有数十亿级别乃至更少。在这些情况下,对简单模型的一般改进并不能拿到优异的表现。

现在的技术使得在更大的数据上训练更复杂的模型成为可能,复杂模型的表现通常也优于简单模型。最成功的案例是use distributed representations of words。例如基于神经网络的语言模型明显优于N-gram。

1.1 文章的主旨

文章旨在从具有百万级别的单词、规模在数十亿级别的语料中学习高质量的单词的向量表示【learning high-quality word vectors from huge data sets with billions of words, and with millions of words in the vocabulary】。作者表示,当单词向量的维度在50-100之间的时候,以往的模型很难支撑起在数亿级别的语料上进行训练。

文章利用已有的评价单词向量质量的方法,不仅期待相似的单词向量彼此临近,还期待单词能拥有多种维度的相似性multiple degrees of similarity】。现实也确实如此,例如名词有多种后缀,在词向量的子空间搜索相似的词,通常也能发现这些词有相同的结尾【This has been observed earlier in the context of inflectional languages - for example, nouns can have multiple word endings, and if we search for similar words in a subspace of the original vector space, it is possible to find words that have similar endings.】。

这种相似性已经超越了简单的句法规则。将代数运算用在词向量上,例如vector(“King”)- vector("Man") + vector("Woman"),我们会发现得到的向量与单词Queen的向量表示很临近。

文章通过新的模型结构来最大限度地提高这些向量运算的准确性,以保持单词之间的线性规律。文章设计新的综合的测试集来衡量句法和语法规律【syntactic and semantic】,并表明可以以高的准确率学习到很多类似的规律。文章还在各种训练集上,讨论了词向量的维度对训练时间和准确率的影响。

2. 模型结构

之前有用LDA和LSA来得到词的continuous representations。相对于LSA,神经网络模型能很好的提供保持单词之间的线性规律,而LSA在训练大规模数据集的时候代价高昂。

文章用模型可学习的参数来表示模型的复杂度【define first the computational complexity of a model as the number of parameters that need to be accessed to fully train the model】。比较不同模型的复杂度公式如下:

O = E \times T \times Q

其中,E是训练的轮数,T是训练集的单词数,Q是每个模型的复杂度。

2.1 Feedforward Neural Net Language Model (NNLM)前馈神经网络语言模型

附这篇文章地址:https://jmlr.csail.mit.edu/papers/volume3/bengio03a/bengio03a.pdf

  相关解决方案