Word Embedding模型: 词、短语及它们的组合的分布式表示
来源:互联网 发布:上海烟草网络销售网 编辑:程序博客网 时间:2024/06/04 19:26
摘要
最近引入的连续Skip-gram模型是学习可以高质量分布式向量表示的有效方法,而这种分布式向量表示可以刻画大量精确的句法和语义关系。本文我们介绍了Skip-gram模型的多种扩展,它们可以提升向量的质量和训练速度。通过对频繁词进行重复采样我们可以极大地提升学习速度,学习到更有规律的单词表示。我们还描述了一种分层softmax的简单代替方案称作负抽样。
单词表示的内在局限是它们对单词顺序的无差异化以及不能表示惯用短语。例如,在单词表示中,难以简单地将“Canada”和“Air”结合得到“Air Canada”。受此例所激发,我们给出了一种找到文本中的短语的简单方法,并且表明为百万级的短语学习到好的向量表示是可能的。
引言
在自然语言处理任务中,向量空间中单词的分布式表示通过对相似的词分类可以帮助学习算法取得更好的效果。单词表示的最早使用可以追溯到1986年[Rumelhart, Hinton and Williams]。此后该思想便被应用于统计语言模型中,获得了极大的成功。后续的工作包括将其应用到自动语音辨识,机器翻译以及大量的自然语言处理任务中。
最近,Mikolov等人引入了Skip-gram模型[8],这是一种从大量分结构化的文本数据中学习高质量的向量表示的有效方法。与之前大量使用的用神经网络结构学习单词向量的架构不同,训练Skip-gram模型(如图1)不涉及密集的矩阵乘法。这就使得训练非常有效:经过优化的单机训练可以在一天训练1000亿个单词。
使用神经网络计算得到的单词表示非常有趣,因为学习到的向量可以显式编码很多语言规律和模式。有点惊人的是,很多这些模式可以表示成linear translations(线性变换)。例如,
本文我们给出了原始Skip-gram模型的若干扩展。我们的研究表明在模型训练时对频繁词进行子抽样可以极大提升训练速度(2-10倍),并且提升了欠频繁词的表示精度。此外,我们介绍了用Noise Contrastive Estimation(噪音对比估计)的简单变体来训练Skip-gram模型,实验表明我们的方法相比于之前工作中使用的更加复杂的分层softmax方法,可以得到更好的频繁词的向量表示,训练速度更快。
单词表示受限于它们不能表示惯用语,惯用语不是单个词的简单组合。例如波士顿环球报是一家报纸,但它不是波士顿和环球两个单词组合在一起的意思。因此,使用向量来表示整个短语使得Skip-gram模型更具有表达力。其它的通过构成词向量来表示句子意思的技术也可以受益于短语向量而不是词向量。
将基于词的模型扩展到基于短语的模型相当简单。首先我们使用数据驱动的方法识别大量的短语,然后在训练阶段我们将短语视作单个符号。为了评价短语向量的质量,我们生成了包含单词和短语的类比推理任务的测试集。我们测试集中一个典型的类比对是蒙特利尔:蒙特利尔加拿大人队,多伦多:多伦多枫叶队(二者都是北美冰球联盟的俱乐部)。因此如果vec(Montreal Canadiens)-vec(Montreal)+vec(Toronto)的最近表示为vec(Toronto Maple Leafs),那么我们就认为是一个正确的短语表示。
Skip-gram模型
Skip-gram模型的训练目标是发现可以用于预测句子或者文档中附近的词(surrounding words)的单词表示。更正式地讲,给定一个训练词
其中c是训练环境的规模(可以是中心词center word
其中
分层Softmax
完全softmax的有效近似计算是分层Softmax。在神经网络语言模型环境中,首先由Morin和Bengio引入。主要优势在于在神经网络中不需要评估W个输出节点而是
分层Softmax使用一种输出层的二元树表示(有W个词)作为它的叶子节点,而且对于每个节点,显式地表示它的子节点的相关概率。这些定义了一个将概率分配到单词的随机游走模型。
更精确的是,我们可以通过一个从树根的合适路径到达每个单词
其中
分层softmax使用的树结构对结果又很大影响。Mnih和Hinton探究了很多方法来构建树结构及其对训练时间和模型精度的影响。在我们的工作中,我们用了一个二元Huffman树,由于它对频繁词分配了短代码,因而可以得到更快的训练速度。之前有观测发现,按照频率将单词分组可以加速基于语言模型的神经网络的训练速度。
负抽样
一种对分层Softmax的替代方案是Noise Contrastive Estimation(NCE),这种方法由Gutmann和Hyvarimen引入,并被Mnih和Teh应用于语言模型中。NCE指出一个好的模型应该可以通过逻辑回归从噪音中区分数据。这类似于Collobert和Weston使用的Hinge loss,他们在训练模型时将数据排在噪音前面。
尽管NCE可以近似最大化softmax的对数概率,但是Skip-gram模型只关心学习到高质量的向量表示,所以我们可以任意地简化NCE只要向量表示可以保持它们的质量。我们用下面的目标函数来定义负抽样(NEG):
该目标函数用来替换Skip-gram目标函数中的每个
NCE和NEG都将噪音分布
频繁词的子抽样
在非常大的语料库中,最频繁的词可能会出现上亿次(如in,the,a等)。这类词相比于那些较少出现的词通常提供较少的信息。例如,尽管Skip-gram模型可以从法国和巴黎的共现中发现模式,但是从同样频繁出现的法国和the中得到较少的信息,因为几乎每个词都会与the共现。这一思想也可反向应用:即频繁词(in, the, a)的向量表示在经过几百万个样本的训练后也不会有明显变化。
为了考虑稀有词和频繁词的不平衡性,我们用一种简单的子抽样方法:训练集中的每个单词被丢弃概率的计算公式如下:
其中
实验结果
本节我们验证了分层Softmax(HS),NCE,负抽样和训练词的子抽样方法。我们使用Mikolov等人[8]引入的类比推理任务。该任务由下面的类比如:“德国”:“柏林”::“法国”:?组成,通过求一个向量
为了训练Skip-gram模型,我们使用了由多个新闻文章组成的大型数据集(有10亿单词的谷歌内部数据)。我们去除了训练数据中出现次数不超过5次的单词,得到的词典的规模为692K(也就是词典中有接近70万个单词)。多个Skip-gram模型在单词类比测试集上的效果如表1所示。该表显示:在类比推理任务中负抽样优于分层Softmax方法,甚至略微胜于NCE方法。对频繁词的子抽样提升了训练速度,使得单词表示更加精确。
- Word Embedding模型: 词、短语及它们的组合的分布式表示
- word embedding的模型与测试
- Word Embedding中Embedding的解释
- Word Embedding 和Skip-Gram模型 的实践
- Word Embedding的通俗解释
- 关于NLP的word Embedding
- Word embedding中 句向量模型PV-DM(句向量的分布记忆模型)与PV-DBOW(句向量的分布词袋):
- FM算法能够学习到原始特征的embedding表示
- FM算法能够学习到原始特征的embedding表示
- 基于依赖性的词嵌入(Dependency-based word embedding)[Part I]
- 使用Word Embedding构造简洁有效的文本摘要系统
- 使用Word Embedding构造简洁有效的文本摘要系统
- pytorch加载已训练好的word-embedding
- word embedding
- word embedding
- word embedding
- 应用图的组合表示
- 常见的OJ评判结果以及它们表示的意思
- 工欲善其事,必先利其器---常用IDE
- 基于R语言构建的电影评分预测模型
- HDU 5811 Colosseo
- ctypes使用指南
- Git常用命令
- Word Embedding模型: 词、短语及它们的组合的分布式表示
- 程序员代码面试指南 IT名企算法与数据结构题目最优解.pdf
- 项目笔记二
- 图解番茄工作法读书笔记
- 第四章 4.4 赋值运算符
- UVA 10801 Lift Hopping
- Ubuntu12.04-上网慢怎么办
- 黑苹果安装CocoaPods遇到Ruby版本过低的解决方案
- select、poll、epoll的区别