这是word2vec的作者在《Efficient Estimation of Word Representations in Vector Space》这篇论文的基础上进行扩展的另一篇论文。
详情看我在语雀做的笔记:
《Distributed Representations of Words and Phrasesand their Compositionality》论文翻译和解读 · 语雀
下面只摘抄一小部分
1、摘要
最近介绍的连续词袋模型(Skip-gram)对于学习高质量的分布式向量表示是一个有效的方法,该方法可以获取大量精准的语法和语义的单词关系。在这篇论文中,我们提出了几个扩展,提高了向量的质量和训练速度。通过对常用词的二次抽样,我们可以获得显著的加速效果,同时还可以学习到更有规律的单词关系。我们还描述了一种简单替换分层Softmax的方案,称之为负采样。
词语表征的一个固有局限性是他们不关心词序,而且无法表达惯用短语。
- 例如,“波士顿环球”是一份报纸,所以它不是“波士顿”和“环球”的意思的自然组合。
本文提出了一种在文本中查找短语的简单方法,并且表明学习数以百万计短语的良好向量是有可能的。
2、介绍
在一个向量空间中单词的分布式表示可以帮助学习算法在NLP任务中通过把相似的单词分组来获得更好的性能。
- 补充:单词的分布式表示:把一句话或一段话当做固定长度的向量表示。如果能够用一个向量精准地表示一句话,那么可以直接用这个向量用于文本分类、信息检索、机器翻译等等各个领域。
- 比如"The dog is running on the grass",把这句话表示成一个300维的向量,这个向量包含了这个句子的一些信息,可以用这个向量来做一些任务。字符的向量表示为char embedding,词的向量表示为word embedding,句子的向量表示叫sentence embedding。得到句子的分布式表示之后可以将这个向量用于文本分类、信息检索、机器翻译等。如果能将一个句子准确地表示成向量,那就可以用这个向量来做各种任务。
最近,Mikolov等人介绍了Skip-gram模型,一种有效的从大规模非结构化文本数据中学习高质量单词向量表示的方法。与以前用于学习单词向量的大多数神经网络架构不同,训练Skip - gram 模型(见图1)不涉及密集的矩阵乘法。这也使得训练十分的有效: 一种优化的单机实现一天以内能够训练超过1000亿个单词。
用神经网络计算单词表示法是非常有趣的,因为学习的向量明确的编码了许多语言规则和模式。有些令人吃惊地是,这些模式中的许多都可以表示为线性平移。例如,向量计算: vec("Madrid") - vec("Spain") + vec("France") 计算的结果和其他任何按此向量表示,vec("Paris")是最接近的。
|